Linux vsftp防火墙配置:如何保护服务器安全
导读:Linux vsftpd防火墙配置:保护服务器安全的分步指南 一、基础防火墙规则配置(控制与数据端口) FTP服务依赖控制连接(默认端口21,用于身份验证)和数据连接(默认端口20,用于文件传输),需首先放行这些基础端口。此外,为避免被动模...
Linux vsftpd防火墙配置:保护服务器安全的分步指南
一、基础防火墙规则配置(控制与数据端口)
FTP服务依赖控制连接(默认端口21,用于身份验证)和数据连接(默认端口20,用于文件传输),需首先放行这些基础端口。此外,为避免被动模式(PASV)下的连接问题,需额外开放数据端口范围。
Ubuntu/Debian(使用ufw)
# 允许FTP控制端口(21)
sudo ufw allow 21/tcp
# 允许FTP数据端口(20)
sudo ufw allow 20/tcp
# 允许被动模式数据端口范围(示例:30000-31000,需与vsftpd配置一致)
sudo ufw allow 30000:31000/tcp
# 重新加载ufw以应用规则
sudo ufw reload
CentOS/RHEL(使用firewalld)
# 允许FTP服务(自动包含21端口)
sudo firewall-cmd --permanent --add-service=ftp
# 允许被动模式数据端口范围(示例:30000-31000)
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
# 重新加载firewalld以应用规则
sudo firewall-cmd --reload
CentOS/RHEL(使用iptables)
# 允许FTP控制端口(21)
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
# 允许FTP数据端口(20)
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
# 允许被动模式数据端口范围(示例:30000-31000),并允许已建立的连接
sudo iptables -A INPUT -p tcp --dport 30000:31000 -m state --state NEW,ESTABLISHED -j ACCEPT
# 保存iptables规则(CentOS 7及以上需使用systemctl保存)
sudo service iptables save # 或 sudo /sbin/iptables-save >
/etc/sysconfig/iptables
二、vsftpd配置优化(配合防火墙增强安全)
防火墙规则需与vsftpd配置协同工作,避免因配置冲突导致安全漏洞。
1. 禁用匿名访问
匿名用户无需认证即可登录,存在极大安全隐患,需彻底禁用:
编辑/etc/vsftpd.conf
,设置:
anonymous_enable=NO
2. 限制用户访问目录(chroot)
将用户限制在自己的主目录(家目录),防止越权访问系统文件:
chroot_local_user=YES
allow_writeable_chroot=YES # 允许chroot目录可写(避免用户无法上传文件)
3. 启用SSL/TLS加密
FTP传输默认明文,需启用SSL/TLS加密保护数据隐私:
- 生成自签名证书(或使用CA颁发的证书):
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
- 修改
vsftpd.conf
,启用SSL:ssl_enable=YES rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem force_local_data_ssl=YES # 强制数据连接使用SSL force_local_logins_ssl=YES # 强制登录过程使用SSL ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO ssl_ciphers=HIGH
4. 配置被动模式端口范围
被动模式下,服务器需开放指定端口范围供客户端连接,需与防火墙规则一致:
pasv_enable=YES
pasv_min_port=30000 # 起始端口(与防火墙规则一致)
pasv_max_port=31000 # 结束端口(与防火墙规则一致)
pasv_address=服务器公网IP # 指定服务器IP(避免客户端获取到内网IP)
三、强化防火墙访问控制(限制IP范围)
为降低被扫描或攻击的风险,建议限制可访问FTP服务的IP地址,仅允许可信IP连接。
Ubuntu/Debian(ufw)
# 仅允许特定IP段(示例:192.168.1.0/24)访问FTP控制端口(21)
sudo ufw allow from 192.168.1.0/24 to any port 21/tcp
# 删除之前的全局允许规则(若有)
sudo ufw delete allow 21/tcp
CentOS/RHEL(firewalld)
# 仅允许特定IP(示例:192.168.1.100)访问FTP服务
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ftp" accept'
# 删除之前的全局允许规则(若有)
sudo firewall-cmd --permanent --remove-service=ftp
# 重新加载firewalld
sudo firewall-cmd --reload
四、其他安全增强措施
1. 修改FTP问候横幅
隐藏vsftpd版本信息,避免攻击者利用版本漏洞发起针对性攻击:
编辑/etc/vsftpd.conf
,添加:
ftpd_banner=Welcome to FTP Server. All activities are monitored.
2. 启用日志记录
记录FTP操作日志,便于追踪异常行为:
编辑/etc/vsftpd.conf
,添加:
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
3. 定期更新软件
及时更新vsftpd及系统组件,修复已知安全漏洞:
# Ubuntu/Debian
sudo apt update &
&
sudo apt upgrade vsftpd
# CentOS/RHEL
sudo yum update vsftpd
通过以上步骤,可构建“防火墙+vsftpd配置”的双重安全防线,有效保护Linux服务器上的vsftpd服务免受非法访问和攻击。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux vsftp防火墙配置:如何保护服务器安全
本文地址: https://pptw.com/jishu/721970.html