本文目录:
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】的内容来源于互联网,如引用不当,请联系我们修改。