vsftp安装配置

bash

yum -y install vsftpd

bash

cd /etc/vsftpd
vi vsftpd.conf
#可以使用我编写好的简单做修改
mv vsftpd.conf vsftpd.conf.bak
wget https://raw.githubusercontent.com/bwcxyk/Flgurebed/master/vsftpd/vsftpd.conf

bash

vi /etc/vsftpd/vuser

第一行为用户名,第二行为密码。不能使用root作为用户名

csharp

ftpuser
ftppass

bash

db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db

设定PAM验证文件,并指定对虚拟用户数据库文件进行读取

bash

chmod 600 /etc/vsftpd/vuser.db

修改/etc/pam.d/vsftpd文件

bash

#先备份一下
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
vi /etc/pam.d/vsftpd

先将原有配置注释掉,添加如下配置

csharp

# Virtual user setting.
auth    required pam_userdb.so   db=/etc/vsftpd/vuser
account required pam_userdb.so   db=/etc/vsftpd/vuser

建立虚拟用户个人配置文件

bash

mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
vi ftpuser

local_root=/data/file/ftpuser
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

建立ftpuser用户根目录

bash

mkdir -p /data/file/ftpuser
mkdir /home/vsftp

创建虚拟用户的宿主用户

bash

useradd --system vsftp -d /home/vsftp -s /bin/false
chown -R vsftp:vsftp /home/vsftp
chown -R vsftp:vsftp /data/file/ftpuser

1.500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:

这个问题发生在最新的这是由于下面的更新造成的:

  • Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

要修复这个错误,可以用命令chmod a-w /home/vsftp去除用户主目录的写权限。或者在vsftpd的配置文件中增加allow_writeable_chroot=YES

vsftpd.conf解释

参考:https://www.cnblogs.com/miclesvic/articles/10437213.html

2.服务器发回了不可路由的地址。被动模式失败。

添加配置pasv_address=外网ip