VSFTPD的安装配置
VSFTPD
FTP:文件传输协议
端口:20、21
vsftpd:ftp服务端程序
安装vsftpd程序
yum -y install vsftpd
主配置文件:/etc/vsftpd/vsftpd.conf
用户禁止登录列表: /etc/vsftpd/ftpusers
/etc/vsftpd/user_list
vsftpd验证方式:匿名访问,本地用户,虚拟用户
匿名访问
1、编辑主配置文件
anonymous_enable=YES 允许匿名用户访问
anon_umask=022 匿名用户上传文件的umask值
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 允许匿名用户修改目录名或删除目录
2、重启服务
systemctl restart vsftpd
systemctl enable vsftpd
3、修改权限
匿名访问模式下的FTP根目录 /var/ftp
chown ftp /var/ftp/pub
SELinux的布尔值
getsebool -a | grep ftp
setsebool -P ftpd_full_access=on
本地模式
1、编辑文件
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
userlist_deny=YES YES表示禁止名单中的用户,NO表示仅允许名单中的用户
userlist_enable=YES 允许“禁止登录名单”,名单文件:ftpusers、user_list
2、重启服务
systemctl enable vsftpd
systemctl restart vsftpd
3、创建用户
useradd ftptest
echo 'ftptest' | passwd --stdin ftptest
4、修改权限
getsebool -a | grep ftp
setsebool -P ftp_full_access=on
虚拟用户模式
1、建立虚拟FTP用户数据库文件
cd /etc/vsftpd
vim vuser.list
#单行为账号,双行为密码
ftpuser
ftpuserpassword
使用db_load命令用HASH生成数据库文件vuser.db;
db_load -T -t hash -f vuser.list vuser.db
修改数据库权限
chmod 600 vuser.db
删除原有帐密文件
rm -f vuser.list
2、创建FTP根目录及虚拟用户映射的系统用户
创建用户virtual并设置不允许登录系统并定义用户的家目录
useradd -d /var/ftproot -s /sbin/nologin virtual
修改目录权限
chmod -Rf 755 /var/ftproot/
3、建立支持虚拟用户的PAM认证文件
vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db/etc/vsftpd/vuser
4、编辑主配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
guest_enable=YES 开启虚拟用户模式
guest_username=virtual 指定虚拟用户账号
pam_service_name=vsftpd.vu 指定pam文件
allow_writeable_chroot=YES 允许禁锢的FTP根目录可写而不拒绝用户登录
5、为虚拟用户设置不同权限
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vuser_dir
创建用户独立的权限配置文件目录
mkdir /etc/vsftpd/vuser_dir
创建用户配置文件
touch ftpuser 空白文件表示无权限
vim ftpuser
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
6、重启服务
systemctl enable vsftpd
systemctl restart vsftpd
7、修改selinux
setsebool -P ftpd_full_access=on