iptables 是 Linux 系统中用于配置内核防火墙的一个命令行工具。通过 iptables,你可以设置一系列规则来控制网络数据包的流向,从而保护 Linux 服务器的安全。以下是一些使用 iptables 保护 Linux 服务器安全的基本步骤和建议:
首先,清除所有现有的 iptables 规则,以确保没有不必要的规则干扰安全策略。
iptables -F
iptables -X
为不同的链设置默认策略,通常是拒绝所有未经明确允许的流量。
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
根据服务器的实际需求,允许必要的流量通过。
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT
你可以限制特定 IP 地址或 IP 地址段的访问。
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -j DROP
SYN Flood 是一种常见的 DoS 攻击,可以通过限制 SYN 包的数量来防止。
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
记录所有被拒绝的流量,以便后续分析和审计。
iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
确保在系统重启后规则仍然有效。
iptables-save > /etc/iptables/rules.v4
定期审查和更新 iptables 规则,以适应服务器配置和安全需求的变化。
iptables 规则之前,建议先备份当前的规则集。iptables 规则时要小心,错误的规则可能导致服务器无法访问。通过以上步骤,你可以使用 iptables 基本地保护 Linux 服务器的安全。不过,安全是一个多层次的过程,除了 iptables,还应该考虑其他安全措施,如使用防火墙软件、定期更新系统和软件、使用强密码和多因素认证等。