vsftp安装配置
目录
0.1 安装
yum -y install vsftpd
0.2 配置
cd /etc/vsftpd
vi vsftpd.conf
#可以使用我编写好的简单做修改
mv vsftpd.conf vsftpd.conf.bak
wget https://raw.githubusercontent.com/bwcxyk/Flgurebed/master/vsftpd/vsftpd.conf
0.2.1 创建虚拟用户文件
vi /etc/vsftpd/vuser
第一行为用户名,第二行为密码。不能使用root作为用户名
ftpuser
ftppass
0.2.2 生成用户数据文件
db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db
0.2.3 PAM配置
设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
chmod 600 /etc/vsftpd/vuser.db
修改/etc/pam.d/vsftpd
文件
#先备份一下
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
vi /etc/pam.d/vsftpd
先将原有配置注释掉,添加如下配置
# Virtual user setting.
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
0.2.4 虚拟用户配置
建立虚拟用户个人配置文件
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
用户根目录
mkdir -p /data/file/ftpuser
mkdir /home/vsftp
创建虚拟用户的宿主用户
useradd --system vsftp -d /home/vsftp -s /bin/false
chown -R vsftp:vsftp /home/vsftp
chown -R vsftp:vsftp /data/file/ftpuser
0.3 常见问题
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