Linux vsftp防火墙设置:保护服务器安全
导读:Linux vsftpd防火墙设置:保护服务器安全 一、基础防火墙规则配置(控制连接与数据传输) FTP服务依赖控制连接(默认端口21,用于身份验证)和数据连接(动态端口,用于文件传输)。为确保vsftpd正常工作,需先开放这些基础端口:...
Linux vsftpd防火墙设置:保护服务器安全
一、基础防火墙规则配置(控制连接与数据传输)
FTP服务依赖控制连接(默认端口21,用于身份验证)和数据连接(动态端口,用于文件传输)。为确保vsftpd正常工作,需先开放这些基础端口:
- 控制连接:允许TCP端口21通过防火墙,这是FTP客户端与服务器建立连接的必要端口。
- Debian/Ubuntu(ufw):
sudo ufw allow 21/tcp
- CentOS/RHEL(firewalld):
sudo firewall-cmd --permanent --add-port=21/tcp
- Debian/Ubuntu(ufw):
- 数据连接:
- 主动模式:需开放TCP端口20(FTP服务器向客户端发起数据连接的传统端口)。
- Debian/Ubuntu(ufw):
sudo ufw allow 20/tcp
- CentOS/RHEL(firewalld):
sudo firewall-cmd --permanent --add-port=20/tcp
- Debian/Ubuntu(ufw):
- 被动模式(推荐):由于主动模式易受防火墙拦截,需开放动态端口范围(如40000-50000或1024-1048),供服务器向客户端发起数据连接。
- Debian/Ubuntu(ufw):
sudo ufw allow 40000:50000/tcp
- CentOS/RHEL(firewalld):
sudo firewall-cmd --permanent --add-port=40000-50000/tcp
- Debian/Ubuntu(ufw):
- 主动模式:需开放TCP端口20(FTP服务器向客户端发起数据连接的传统端口)。
二、配置防火墙持久化与重载
修改防火墙规则后,需保存配置以确保重启后生效:
- ufw(Debian/Ubuntu):
sudo ufw reload
(无需额外保存,ufw会自动持久化规则)。 - firewalld(CentOS/RHEL):
sudo firewall-cmd --reload
(重新加载规则,--permanent
参数确保规则永久保存)。
三、增强安全性的高级防火墙配置
1. 使用firewalld的FTP服务模块(简化配置)
firewalld内置了FTP服务模块,可自动处理控制连接、数据连接及被动模式的端口范围,无需手动指定端口:
- 添加FTP服务:
sudo firewall-cmd --permanent --add-service=ftp
- 重载firewalld:
sudo firewall-cmd --reload
此方法会自动开放FTP所需端口,并支持动态端口调整,适合新手快速配置。
2. 限制访问源IP(防范非法访问)
若FTP服务器仅需内部网络或特定IP访问,可通过防火墙限制源IP地址:
- ufw(Debian/Ubuntu):
sudo ufw allow from 192.168.1.0/24 to any port 21/tcp
(仅允许192.168.1.0/24网段访问21端口)。 - firewalld(CentOS/RHEL):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="21" accept'
。
3. 结合SELinux增强安全(可选但推荐)
SELinux可为FTP服务提供额外的访问控制,需调整相关布尔值以允许vsftpd正常工作:
- 允许FTP用户访问家目录:
sudo setsebool -P ftp_home_dir 1
(默认情况下,SELinux禁止FTP用户写入家目录)。 - 允许匿名用户写入(若启用匿名FTP):
sudo setsebool -P allow_ftpd_anon_write 1
(默认值为0,禁止写入)。
四、验证防火墙配置
配置完成后,需通过以下方式验证防火墙是否允许FTP流量:
- 测试控制连接:使用FTP客户端(如FileZilla)连接服务器的21端口,确认能正常登录。
- 测试数据连接:上传或下载文件,确认被动模式能正常工作(无“无法打开数据连接”错误)。
- 查看防火墙规则:通过
sudo ufw status
(ufw)或sudo firewall-cmd --list-all
(firewalld)确认规则已正确应用。
注意事项
- 优先使用firewalld:firewalld是CentOS/RHEL 7及以上版本的默认防火墙工具,支持动态管理规则,比iptables更易用。
- 避免开放过多端口:仅开放必要的FTP端口(21、20、被动模式端口范围),减少攻击面。
- 定期更新规则:根据业务需求变化,及时调整防火墙规则(如新增允许的IP地址、修改被动模式端口范围)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux vsftp防火墙设置:保护服务器安全
本文地址: https://pptw.com/jishu/719400.html