1.1在firewalld防火墙允许FTP通过
1.1.1 永久放行ftp服务
[root@ftp ~]# firewall-cmd --zone=public --add-service=ftp --permanent
success
1.1.2 重新加载防火墙(在不改变防火墙状态下应用防火墙规则)
[root@ftp vftproot]# firewall-cmd --reload
success
1.1.3 查看防火墙中服务的启动状态
[root@ftp vftproot]# firewall-cmd --query-service=ftp
yes
1.1.4 查看防火墙中永久放开的端口
[root@ftp ~]# firewall-cmd --permanent --list-ports
21/tcp
1.2 在SELinux中允许vsftp通过
1.2.1 将SELinux模式变更为Enforcing强制模式
[root@ftp ~]# getenforce
Permissive
[root@ftp ~]# setenforce 1
[root@ftp ~]# getenforce
Enforcing
1.2.2 在配置文件/etc/selinux/config中将Disable改为Enforcing
1.2.3 查询SELinux中FTP的安全上下文规则
1.2.4 设置SELinux允许策略
[root@ftp ~]# setsebool -P ftpd_full_access=on
1.3 修改vsftpd默认端口
1.3.1 编辑vsftpd.conf(vi /etc/vsftpd.conf),在配置文件中添加listen_port=2121
1.3.2 编辑/etc/services 文件,修改ftp 21端口为2121
[root@ftp ~]# grep ftp vim /etc/services
1.3.3 修改下面三项端口为2121
1.3.4 修改完端口后要重启vsftpd服务
[root@ftp ~]# systemctl restart vsftpd
1.3.5 在firewalld中放行2121端口
1.3.6 查看修改后的ftp服务端口是否启用
[root@ftp ~]# netstat -ntulp | grep vsftp
1.3.7 客户端访问测试
1.3.8 vsftpd运行在PASV模式下,命令端口为2121,数据端口随机。
注:此时如果在firewalld防火墙开启的情况下,只放行了2121端口,会导致FTP客户端连接到FTP服务器后,出现无法读取目录问题。此时临时关闭firewalld后,客户端访问正常。(已通过防火墙放开的2121端口会继续允许!)解决方法:在防火墙中放开10221~10228(可自定义监听端口范围)
1.3.9 在vsftpd.conf配置文件中添加以下配置
1.4.0 在filewalld中放行10021-10226端口
[root@ftp ~]# firewall-cmd --permanent --zone=public --add-port=10021-10026/tcp
success
[root@ftp ~]# firewall-cmd --reload
success
1.4.1 再次登录测试正常
1.4.2 在linux客户端下hr1用户可以删除目录,但不能删除文件
2.1 FileZilla连接提示不安全的服务器
2.2 检查vsftpd是否支持ssl模块
[root@ftp ~]# ldd $(which vsftpd) | grep ssl
2.3 建立vsftpd使用的凭证数据
[root@ftp ~]# cd /etc/pki/tls/ certs
[root@ftp certs]# make vsftpd.pem
另一种配置方法
2.4 配置解析
- Country Name:表示国家名称(2个字母代码,如CN)
- State or Province Name:表示国家或省市(这里直接输入CHINA)
- Locality Name(eg,city):表示地名或城市(这里直接输入CHINA)
- Organizational Name(eg,company):表示公司或组织名称(有限公司),如ORG
- Organizational Unit Name(eg,section):表示组织单元名称,如ORG
- Common Name:常用名称或服务器主机名,这里输入FTP
- Email Address:邮件地址
2.5 cp –a 将vsftpd.pem文件复制到/etc/vsftpd/下
注:cp -a 保留原文件属性的前提下复制文件
[root@ftp certs]# cp -a vsftpd.pem /etc/vsftpd
2.6 ll /etc/vsftpd/vsftpd.pem,默认权限为-rw-------
2.7 修改vsftpd配置文件
2.7.1 在原来配置文件的文未加下以下配置
[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf
2.7.2 SSL配置参数说明
ssl_enable=yes/no //是否启用 SSL,默认为 no
allow_anon_ssl=yes/no //是否允许匿名用户使用 SSL,默认为 no
rsa_cert_file=/path/to/file //rsa证书的位置
dsa_cert_file=/path/to/file //dsa证书的位置
force_local_logins_ssl=yes/no //非匿名用户登陆时是否加密 ,默认为 yes
force_local_data_ssl=yes/no //非匿名用户传输数据时是否加密 ,默认ye s
force_anon_logins_ssl=yes/no //匿名用户登录时是否加密 ,默认为 no
force_anon_data_ssl=yes/no //匿名用户数据传输时是否加密 ,默认为 no
ssl_sslv2=yes/no //是否激活 sslv2加密 ,默认 no
ssl_sslv3=yes/no //是否激活 sslv3加密 ,默认 no
ssl_tlsv1=yes/no //是否激活 tls v1加密 ,默认 yes
ssl_ciphers=加密方法 //默认是 DES-CBC3-SHA
2.7.3 重新启动vsftpd
[root@ftp certs]# systemctl restart vsftpd
2.7.4 客户端连接测试
2.7.5 修改配置文件
2.7.6 FileZilla客户端连接测试
2.7.7 FlashXP客户端登录
2.7.8 Linux客户端连接测试
2.8.1 安装tcpdump工具
[root@ftp ~]# yum -y install tcpdump
2.8.2 通过抓包分析FTP客户端与服务端建立连接的过程
[root@ftp ~]# tcpdump -i ens33 -A |more
2.8.3 过程分析
阶段1:客户端192.168.147.1通过10276端口向服务端192.168.147.149(2121,这里不显示)发起连接,然后服务端回应客户端,并启用随机端口10023监听此会话。(监听端口已在vsftpd配置文件中配置10021~10026范围)
阶段2:此时客户端通过随机端口10305向服务端发出数据连接PASV命令请求数据下载或上传,服务端通过10023端口向客户端192.168.147.1的10305
发送相关请求回应。到此,客户端可以从FTP服务器上下载或上传数据了。
2.8.4 查看客户端登录时的SSL加密类型
[root@ftp ~]# tcpdump -i ens33 -A host 192.168.147.1 and tcp port 2121
参考文章:
FileZilla连接FTP提示:不安全的服务器,不支持 FTP over TLS_多久会在的博客-优快云博客_ftp不安全的服务器