感谢CSDN虫虫环游世界
一:安装配置ftp
1.检查是否安装vsftpd:rpm -q vsftpd
2.若想删除已安装的vsftpd:rpm –e vsftpd-3.0.2-25.el7.x86_64
3.安装vsftpd: yum -y install vsftpd
5.设置vsftpd开机启动:systemctl enable vsftpd.service
6.vsftpd启动:systemctl start vsftpd.service
7.vsftpd停止:systemctl stop vsftpd.service
8.vsftpd重启:systemctl restart vsftpd.service
9.vsftpd状态:systemctl status vsftpd.service
确保vsftpd是启动状态
————————————————
二:禁用匿名用户
1.启动ftp:systemctl start vsftpd.service
2.开放21端口:
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --reload
若出现 FirewallD is not running 的错误
解决方法:查看防火墙是否开启:systemctl status firewalld.service
开启防火墙:systemctl start firewalld.service
3.关闭匿名用户:vim /etc/vsftpd/vsftpd.conf
修改以下三项:
anonymous_enable=NO
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
4.重启ftp:systemctl restart vsftpd.service
————————————————
三:配置虚拟用户
1.添加虚拟用户:
useradd 用户名 -s /sbin/nologin
设置密码:passwd 用户名
查看用户:cut -d : -f 1 /etc/passwd
删除用户:userdel -r 用户名(-r代表把用户相对应的目录一并删除)
2.查看ftp状态:getsebool -a|grep ftp
若出现 getsebool: SELinux is disabled 的错误
解决方法:vim /etc/selinux/config
修改:SELINUX=1,然后重启Linux
将红框内的内容设置为“on”
setsebool -P allow_ftpd_full_access on
setsebool -P tftp_home_dir on
3.配置用户目录访问权限
vim /etc/vsftpd/vsftpd.conf
设置:
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户,即可以浏览其ftp目录的上级目录.
如果不希望加在文件vsftpd.chroot_list中的用户浏览其ftp目录的上级目录,可以将第一条:chroot_local_user= NO
由于默认chroot_list不存在,所以要新建
vim /etc/vsftpd/chroot_list
然后加入上面新建的用户名
4.修改虚拟用户存储文件路径
vim /etc/vsftpd/vsftpd.conf
在文末加:
local_root=/var/ftp_folder
chroot_local_user=YES
anon_root=/var/ftp_folder
创建目录:
mkdir /var/ftp_folder
修改目录权限:
chown -R 用户名:root /var/ftp_folder
5.重启vsftpd:systemctl restart vsftpd.service
————————————————
四:验证ftp
1.验证客户端是否可以访问ftp
在浏览器或者资源管理器种输入:ftp://IP地址
输入用户名和密码
可以正常登录到ftp目录,当前目录为空
可以先在ftp目录创建文件,再验证
————————————————
五:外网访问权限,开启http和ftp服务
firewall-cmd --list-services(查看防火墙开启了哪些服务)
如上,则没有开通http和ftp服务
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=ftp
systemctl restart firewalld.service(重启防火墙!)
通过上面两个指令后,查看开启的服务(firewall-cmd --list-services)
则开启成功!
————————————————