云服务器免费试用

ubuntu安装vsftpd(ubuntu安装vsftp)

服务器知识 0 456

本文目录:

  • 1、ubuntu怎么安装vsftpd
  • 2、ubuntu vsftpd 530 Login incorrect 根本原因和解决方案
  • 3、ubuntu下安装vsftpd的坑

ubuntu怎么安装vsftpd

ubuntu下vsftpd配置:Linux是一种开源的、安全的操作系统,而且已经深入人心。作为一种流行的发行版本,Ubuntu的使用更为普及。vsftpd作为Linux下一种最为方便的FTP程序,也为人们所推崇。本文讲述的是如何在Ubuntu下安装配置vsftpd。

一、安装vsftp和db4

sudo apt-get install vsftpd sudo apt-get install db4.6-util

二、建立虚拟用户口令库文件

sudo mkdir /etc/vsftpd

新建名为logins.txt的用户口令文件,

sudo gedit /etc/vsftpd/logins.txt

奇数行为用户名。偶数行为密码,如下用户User1的密码为123456,User2的密码为12345

User1 123456 User2 12345 admin admin

三、生成vsftpd的认证文件

使用db_load命令生成认证文件:

db4.6_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db

将vsftpd_login.db的权限设为只对root可读写,即600

chmod 600 /etc/vsftpd/vsftpd_login.db

四、建立虚拟用户所需的PAM配置文件

在/etc/pam.d目录中建立vsftpd.vu内容如下

sudo gedit /etc/pam.d/vsftpd.vu auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

五、建立虚拟用户所需的系统用户和主目录

sudo useradd jtmvi -d /www -s /bin/false sudo chown jtmvi.jtmvi /www sudo chown jtmvi.jtmvi /www/User1 sudo chown jtmvi.jtmvi /www/User2 sudo chmod 700 /www

六、设置vsftpd.conf配置文件

(记得先备份)

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_old #备份 gedit /etc/vsftpd.conf listen=YES anonymous_enable=NO dirmessage_enable=YES xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES chroot_local_user=YES guest_enable=YES guest_username=jtmvi user_config_dir=/etc/vsftpd_user_conf pam_service_name=vsftpd.vu local_enable=YES

七 、 对不同的虚拟用户设置不同权限

sudo mkdir /etc/vsftpd_user_conf gedit /etc/vsftpd_user_conf/User1 write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/www/User1 gedit /etc/vsftpd_user_conf/User2 write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/www/User2 gedit /etc/vsftpd_user_conf/admin write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/www

八、重启vsftpd

/etc/init.d/vsftpd restart

ubuntu vsftpd 530 Login incorrect 根本原因和解决方案

ubuntu安装vsftpd一般使用:

sudo apt-get install vsftpd

参照其他网上教程的配置后,在账号、密码、主目录都是正确的情况下,可能会遇到账号登录提示 530 Login incorrect 的问题。

网络上有好多解决方案,例如修改/etc/vsftpd.conf文件 将pam_service_name=vsftpd 修改为 pam_service_name=ftp ,虽然能够解决这个问题,但是这种方法其实是错误的。这样由于/etc/pam.d/ftp文件不存在,等于是绕过了PAM。

/etc/pam.d/vsftpd 默认如下

可能导致530错误的有

auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

auth required pam_shells.so

auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

该配置项的含义是 /etc/ftpusers 中的用户禁止登陆,如果文件不存在在默认所有用户均允许登录. 所以确保用户没在这个文件内。

auth required pam_shells.so 配置项的含义为仅允许用户的shell为 /etc/shells

文件内的shell命令时,才能够成功

而创建ftp用户时,为了禁止ssh登录,一般多为/bin/false 、/usr/sbin/nologin 等,显然不是一个有效的bash,也就无法登录了。

1、查看/etc/ftpusers ,确保账号没有在这个文件内。

2、修改/etc/pam.d/vsftpd

将 auth required pam_shells.so 修改为- auth required pam_nologin.so 即可

3、重启vsftpd

ubuntu下安装vsftpd的坑

在安装vsftpd的时候,服务正常启动成功后,无法用xftp新建的用户登录,root也无法登录的情况:

要修改4个配置文件

第一个是/etc/ftpusers ,储存禁止用ftp登录,把你想要添加可登录的用户注释掉,我这里只需要root能登录。

第二个是/etc/allowed_user ,这个文件原先没有,是我手动创建的,如果有此文件就直接修改,添加的是允许用ftp登录,allowed_user文件里如果用户也有,但是ftpusers文件里也有,会以ftpusers优先,则此文件里用户不生效。

第三个是ftp服务器的配置文件,在/etc/vsftpd.conf,这里需要注意,如果listen参数已开,一定不要再开listen_ipv6=YES(重要的事情说三遍,一定不要开!一定不要开!一定不要开!),实在没头绪的可以拷贝我的配置。

vsftpd.conf

listen=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

dirmessage_enable=YES

use_localtime=YES

allow_writeable_chroot=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/vsftpd.log

chroot_local_user=YES

xferlog_std_format=YES

userlist_deny=NO

userlist_enable=YES

userlist_file=/etc/allowed_users

seccomp_sandbox=NO

local_root=/opt/ftp

utf8_filesystem=YES

secure_chroot_dir=/var/run/vsftpd/empty

pam_service_name=vsftpd

tcp_wrappers=YES

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

ssl_enable=NO

第四个是 /etc/pam.d/vsftpd ,因为配置中开了pam_service_name=vsftpd,所以我们要找到pam.d的位置,做一些修改,默认在/etc下。

图中画框的地方,是我做的修改,原先是auth required pam_shells.so ,这里需要修改成pam_nologin.so

修改完以上配置后,重启vsftpd服务

vsftpd命令:

systemctl restart vsftpd 重启

systemctl stop vsftpd 停止

systemctl start vsftpd 启动

systemctl status vsftpd 查看状态

测试服务:

可视化工具可使用xftp测试,好处是方便,傻瓜式操作,界面及配置如下:

命令行测试,好处是如遇到登录失败,可看具体报错信息:

输入密码后出现230 Login successful 则表示登录成功,如果登录出现其他编码,则有可能是用户配置原因,仔细检查以上四个文件。

PS:具体问题还得具体分析,以上并不代表所有问题都可这样解决,欢迎指正。

【ubuntu安装vsftpd】的内容来源于互联网,如引用不当,请联系我们修改。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu安装vsftpd(ubuntu安装vsftp)
本文地址: https://solustack.com/11162.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。