首页主机资讯Linux vsftp防火墙配置:如何保护服务器安全

Linux vsftp防火墙配置:如何保护服务器安全

时间2025-10-10 00:25:03发布访客分类主机资讯浏览1325
导读: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
Ubuntu上如何实现SQL Server的高可用性 Linux vsftp性能监控:如何实时了解服务器状态

游客 回复需填写必要信息