06-FTP服务器搭建 vsftpd 安全性配置

本文详细介绍了如何在Linux系统中进行FTP服务的安全配置,包括firewalld防火墙和SELinux的设置,以及vsftpd的端口修改。同时,讲解了启用SFTP协议并配置SSL加密的过程,确保数据传输的安全性。通过tcpdump工具抓包分析了FTP客户端与服务端的连接过程,验证了配置的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、FTP服务安全配置

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用户可以删除目录,但不能删除文件

 

二、启用SFTP协议(SSL加密)

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 tcpdump抓包

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不安全的服务器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值