1. 遵循最小授权原则配置默认策略
默认策略是防火墙的第一道防线,应设置为拒绝所有未明确允许的流量,仅放行业务必需的流量。具体操作如下:
sudo iptables -P INPUT DROP(拒绝所有入站流量)、sudo iptables -P FORWARD DROP(拒绝所有转发流量)、sudo iptables -P OUTPUT ACCEPT(允许所有出站流量,若需限制出站可改为DROP并放行必要服务);firewall-cmd --set-default-zone=public(public区域默认拒绝所有入站流量),并通过--add-service或--add-port仅开放必要服务。2. 精准开放必要端口,关闭无用服务
仅开放业务运行必需的端口,减少攻击面。例如:
firewall-cmd --permanent --add-service=http + firewall-cmd --permanent --add-service=https(firewalld);或iptables -A INPUT -p tcp --dport 80 -j ACCEPT + iptables -A INPUT -p tcp --dport 443 -j ACCEPT(iptables);firewall-cmd --permanent --add-port=22/tcp;systemctl stop服务名停止服务,并通过chkconfig服务名 off禁用开机启动。3. 限制访问源IP,防范非法连接
通过防火墙规则限制仅信任的IP地址可访问关键服务,阻断非法IP的攻击尝试:
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' accept"(仅允许192.168.1.100访问);iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT(仅允许192.168.1.0/24网段访问SSH),并配合-j DROP拒绝其他IP。4. 防御DDoS及暴力破解攻击
通过限制连接频率和次数,防止大量无效请求耗尽服务器资源:
iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP(同一IP最多允许3个并发连接);iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT(每秒最多接受1个新连接请求,突发不超过3个);firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port port=22 protocol=tcp accept" --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port port=22 protocol=tcp drop"(复杂场景下的精细化控制)。5. 定期监控与审计防火墙日志
通过日志分析识别异常流量和潜在攻击,及时调整规则:
sudo tail -f /var/log/messages(需提前开启日志记录,iptables -A INPUT -j LOG --log-prefix "Firewall: ");journalctl -u firewalld(CentOS 7+)或/var/log/firewalld(日志文件路径);6. 优化SSH服务配置(强化远程管理安全)
SSH是Linux服务器最常被攻击的服务,需通过配置降低风险:
/etc/ssh/sshd_config,将Port 22改为其他端口(如Port 9999),减少自动化工具的扫描;PermitRootLogin no,使用普通用户登录后再通过su -切换至root;AllowUsers your_username(仅允许指定用户登录);systemctl restart sshd。7. 定期更新防火墙规则与系统
保持防火墙规则与系统补丁的最新状态,应对新出现的安全威胁:
iptables-save > /etc/iptables.rules.bak(iptables)或firewall-cmd --runtime-to-permanent(firewalld);yum update(CentOS)或apt update && apt upgrade(Ubuntu),修复已知漏洞。