本文目录一览:
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_www.gsm-guard.net item=user sense=deny file=/etc/ftpusers onerr=succeed
和
auth required pam_www.gsm-guard.net
auth required pam_www.gsm-guard.net item=user sense=deny file=/etc/ftpusers onerr=succeed
该配置项的含义是 /etc/ftpusers 中的用户禁止登陆,如果文件不存在在默认所有用户均允许登录. 所以确保用户没在这个文件内。
auth required pam_www.gsm-guard.net 配置项的含义为仅允许用户的shell为 /etc/shells
文件内的shell命令时,才能够成功
而创建ftp用户时,为了禁止ssh登录,一般多为/bin/false 、/usr/sbin/nologin 等,显然不是一个有效的bash,也就无法登录了。
1、查看/etc/ftpusers ,确保账号没有在这个文件内。
2、修改/etc/pam.d/vsftpd
将 auth required pam_www.gsm-guard.net 修改为- auth required pam_www.gsm-guard.net 即可
3、重启vsftpd
你要检查你的启动脚本,是否带了参数。如果不带参数启动vsftpd,默认配置可能有两个:/etc/vsftpd.conf或者/etc/vsftpd/vsftpd.con,根据实际情况你自己检查。你应该在/etc/init.d/vsftpd启动脚本中,以 ”/usr/local/sbin/vsftpd /etc/vsftpd.conf“来启动。
配置你必须把local_enable选项打开,否则只能匿名访问。
下面是一个虚拟用户的配置,仅供参考:
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to FTP server, Please login
chroot_local_user=YES
listen=YES
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/user_conf
pam_service_name=vsftpd
secure_chroot_dir=/var/run/vsftpd
allow_writeable_chroot=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
在安装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_www.gsm-guard.net ,这里需要修改成pam_www.gsm-guard.net
修改完以上配置后,重启vsftpd服务
vsftpd命令:
systemctl restart vsftpd 重启
systemctl stop vsftpd 停止
systemctl start vsftpd 启动
systemctl status vsftpd 查看状态
测试服务:
可视化工具可使用xftp测试,好处是方便,傻瓜式操作,界面及配置如下:
命令行测试,好处是如遇到登录失败,可看具体报错信息:
输入密码后出现230 Login successful 则表示登录成功,如果登录出现其他编码,则有可能是用户配置原因,仔细检查以上四个文件。
PS:具体问题还得具体分析,以上并不代表所有问题都可这样解决,欢迎指正。
更新源列表
打开"终端窗口",输入"sudo apt-get update"--回车--"输入当前登录用户的管理员密码"--回车,就可以了。如果不运行该命令,直接安装vsftpd,会出现"有 几个软件包无法下载,您可以运行apt-get update------"的错误提示,导致无法安装。
安装vsftpd
打开"终端窗口",输入"sudo apt-get install vsftpd"--回车--安装完成。
判断vsftpd是否安装成功
打开"终端窗口",输入"sudo service vsftpd restart"重启vsftpd服务--回车--vsftpd处于运行状态,说明安装成功。
新建"/home/uftp"目录作为用户主目录
打开"终端窗口",输入"sudo mkdir /home/uftp"--回车--输入"sudo ls /home"--回车--有一个uftp目录,目录新建成功。
新建用户uftp并设置密码
打开"终端窗口",输入"sudo useradd -d /home/uftp -s /bin/bash uftp"--回车--用户新建成功--输入"sudo passwd uftp"设置uftp用户的密码--回车--输入两次密码--回车--密码设置成功。
使用gedit修改配置文件/etc/vsftpd.conf
打开"终端窗口",输入"sudo gedit /etc/vsftpd.conf"--回车--打开了vsftpd.conf文件,向文件中添加"userlist_deny=NO
userlist_enable=YES userlist_file=/etc/allowed_users"和"seccomp_sandbox=NO"--使文件中的"local_enable=YES"--保存。
使用gedit新建/etc/allowed_users文件
打开"终端窗口",输入"sudo gedit /etc/allowed_users"--回车--输入uftp--保存, 文件创建成功。
使用gedit查看/etc/ftpusers文件中的内容
打开"终端窗口",输入"sudo gedit /etc/ftpusers"--回车--打开这个文件后,看一看有没有uftp这个用户名,如果没有,就直接退出。如果有就删除uftp,因为这个文件中记录的是不能访问FTP服务器的用户清单。
9
使用winscp登录FTP服务器
下载安装WinSCP,运行WinSCP--输入IP、用户名、密码--保存--勾选"保存密码"--确定--登录--登录成功。