ubuntu下安装vsftpd的坑

在安装vsftpd的时候,服务正常启动成功后,无法用xftp新建的用户登录,root也无法登录的情况:
要修改4个配置文件
第一个是/etc/ftpusers ,储存禁止用ftp登录,把你想要添加可登录的用户注释掉,我这里只需要root能登录。


ftpuser.png

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


ftpusers.png

第三个是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.png

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

vsftpd命令:
systemctl restart vsftpd 重启
systemctl stop vsftpd 停止
systemctl start vsftpd 启动
systemctl status vsftpd 查看状态

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


xftp.png

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

shell.png

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

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

你可能感兴趣的:(ubuntu下安装vsftpd的坑)