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