1. 选择合适的防火墙工具
Linux环境下,UFW(Uncomplicated Firewall,适用于Ubuntu/Debian)和FirewallD(适用于RHEL/CentOS/Fedora)是基于iptables/nftables的前端工具,通过简化命令降低配置复杂度;iptables则是原生底层工具,适合需要精细化控制的场景。新手推荐UFW,进阶用户可选择iptables。
2. 设置默认安全策略
默认策略是防火墙的核心防线,需遵循“拒绝所有入站,允许所有出站”原则:
sudo ufw default deny incoming
),避免非法IP访问服务器端口;sudo ufw default allow outgoing
),保障服务器正常访问外网(如下载更新、发送日志)。3. 开启防火墙并验证
启用防火墙前,务必确认已添加SSH允许规则(避免被锁在外面):
sudo ufw allow ssh # 允许SSH服务(默认端口22) sudo ufw enable # 启用防火墙
启用后,通过sudo ufw status verbose
查看规则状态(active
表示生效),确认默认策略和已添加规则是否正确。
4. 允许必要服务端口
仅开放服务器实际需要的服务端口,减少攻击面:
sudo ufw allow http
(80/tcp)、sudo ufw allow https
(443/tcp);sudo ufw allow 22/tcp
(或自定义端口,如sudo ufw allow 2222/tcp
);sudo ufw allow 3306/tcp
(MySQL,默认端口)。http
)代替端口号,更易维护。5. 限制访问源IP
遵循“最小权限原则”,仅允许信任的IP地址访问敏感服务:
sudo ufw allow from 192.168.1.100 to any port 22
(仅允许IP为192.168.1.100的设备访问SSH);sudo ufw allow from 10.0.0.0/24 to any port 80
(允许10.0.0.0/24子网访问Web服务)。6. 防御暴力破解
通过限制连接速率减少暴力破解尝试:
sudo ufw limit ssh/tcp # 限制SSH连接速率为每分钟6次(默认),超过则暂时封禁
或自定义限制(如每分钟10次):
sudo ufw limit 22/tcp rate 10/minute
此规则可有效防止黑客通过反复猜测密码入侵服务器。
7. 启用日志记录
开启日志功能,便于监控和排查异常活动:
sudo ufw logging on # 启用日志记录 sudo ufw logging medium # 设置日志级别为medium(平衡详细程度和系统负载)
日志默认存储在/var/log/ufw.log
,可通过grep "UFW BLOCK" /var/log/ufw.log
过滤被阻止的连接尝试,及时发现恶意IP。
8. 定期维护规则
sudo ufw status
,删除不再需要的规则(如测试后不再使用的端口);sudo cp /etc/ufw/user.rules ~/ufw_rules_backup
(手动备份),防止规则丢失;sudo apt update && sudo apt upgrade ufw
(Ubuntu/Debian),确保防火墙工具修复已知漏洞。9. 结合其他安全工具
防火墙并非万能,需与其他工具配合提升安全性:
sudo nano /etc/ssh/sshd_config
,设置PasswordAuthentication no
),使用密钥对认证,防止密码被破解;/var/log/auth.log
),自动封禁多次登录失败的IP(如sudo apt install fail2ban
,配置/etc/fail2ban/jail.local
)。