检查selinux,firewall,iptables是否开启
将SELINUX=enforcing改为SELINUX=disabled,保存后退出,reboot重启服务器后生效
[root@zeq ~] vim /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted 2、查看firewalld的运行状态 [root@zeq ~] systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) 我现在是关闭状态 Docs: man:firewalld(1) 1、关闭firewalld [root@zeq ~] systemctl stop firewalld 3、安装vsftp [root@zeq ~] yum install vsftp -y 4、启动vsftp服务并加入开机自启 [root@zeq ~] systemctl start vsftpd [root@zeq ~] systemctl enable vsftpd 5、修改vsftp配置文件 1、备份配置文件 [root@zeq ~] cp /etc/vsftp/vsftp.conf /etc/vsftp/vsftp.conf.bak 2、修改配置文件内容 [root@zeq ~] vim /etc/vsftp/vsftp.conf 清空原有内容插入下面的内容 anonymous_enable=NO write_enable=YES chroot_local_user=YES chroot_list_enable=YES use_localtime=YES local_enable=YES allow_writeable_chroot=YES xferlog_enable=YES local_umask=022 pam_service_name=vsftpd use_localtime=YES listen_port=21 chroot_local_user=YES idle_session_timeout=120 data_connection_timeout=120 guest_enable=YES guest_username=ftpuser user_config_dir=http://www.likecs.com/etc/vsftpd/vuser_conf virtual_use_local_privs=YES pasv_min_port=10060 pasv_max_port=10090 accept_timeout=5 connect_timeout=1 6、创建宿主用户 1、创建用户 ftpuser 指定 /home/vsftpd 目录 [root@zeq ~] useradd -g root -M -d /home/vsftpd -s /sbin/nologin ftpuser 2、设置用户 ftpuser 的密码 [root@zeq ~] passwd ftpuser 3、把 /home/vsftpd 的所有权给ftpuser.root [root@zeq ~] chown -R ftpuser.root /home/vsftpd 7、建立虚拟用户文件 [root@zeq ~] vim /etc/vsftpd/vuser_passwd 第一、三行用户,第二、四行密码 ftp1 12345678 ftp2 12345678 8、生成虚拟用户数据文件并授权 [root@zeq ~] db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db [root@zeq ~] chmod 600 /etc/vsftpd/vuser_passwd.db 9、创建用户配置 [root@zeq ~] mkdir /etc/vsftpd/vuser_conf # 建立虚拟用户个人vsftp的配置文件 [root@zeq ~] cd /etc/vsftpd/vuser_conf # 进入目录 [root@zeq vuser_conf] touch ftp1 ftp2 [root@zeq vuser_conf] vim ftp1 ftp2第一行改为ftp2其他内容不变 local_root=http://www.likecs.com/home/vsftpd/ftp1 write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES 10、创建用户目录 [root@zeq ~] mkdir -p /home/vsftpd/ftp1 [root@zeq ~] mkdir -p /home/vsftpd/ftp2 11、重启vsftp服务 [root@zeq ~] systemctl restart vsftp 12、生成虚拟用户的PAM文件 [root@zeq ~] cd /etc/pam.d/ && cp vsftpd vsftpd.bak [root@zeq ~] vim /etc/pam.d/vsftpd 添加两行内容,原有内容注销 #%PAM-1.0 auth required /lib64/security/pam_userdb.so db=http://www.likecs.com/etc/vsftpd/vuser_passwd account required /lib64/security/pam_userdb.so db=http://www.likecs.com/etc/vsftpd/vuser_passwd #session optional pam_keyinit.so force revoke #auth required pam_listfile.so item=user sense=deny file=http://www.likecs.com/etc/vsftpd/ftpusers onerr=succeed #auth required pam_shells.so #auth include password-auth #account include password-auth #session required pam_loginuid.so #session include password-auth 13、客户端测试1、首先每次更改配置需要重启vsftpd服务。
2、上面每个配置文件中的内容最好是手动键入
3、客户端windows打开cmd到后台进行连接,网页和资源管理器里面都会有缓存也看不到报错。
4、服务器tail -f /var/log/secure查看日志(也可以tail -f /var/log/messages,这个看不出什么,前者更精准)
5、客户端报错示例(没有读到/etc/vsftpd/chroot_list这个文件,所以我们新建这个文件就行,记得重启服务)。
6、如果虚拟用户登录到自己的宿主目录后,不能上传文件的话,服务器端需要在宿主目录里面再新建一个文件夹,给这文件夹777权限,就可以了(直接把宿主目录设置777就会登录不了)
7、新增用户的话,需要在/etc/vsftpd/vsuser.passwd里面追加用户(删除就是删除用户),记得使用db_load重新生成vsuser.passwd文件即可,vuser_confi里面新建一个新建账户的权限文件,宿主目录记得新建存储文件。
8、建议使用ftp工具和cmd验证
9、修改完配置或者用户信息以后一定要重启服务和重新生成vsuser.passwd(重复第八步操作)