CentOS 系统中的 iptables 是一个功能强大的防火墙工具,可以帮助你保护系统免受外部攻击。以下是使用 iptables 保障 CentOS 系统安全的一些建议:
清空默认规则: 在开始配置 iptables 之前,建议先清空所有默认规则,以避免潜在的冲突。
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
允许已建立的连接: 允许已建立的连接和相关的数据包通过防火墙,以便正常进行通信。
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
允许 SSH 连接:
如果你需要远程访问服务器,允许 SSH 连接非常重要。请确保将 your_ip_address 替换为你的实际 IP 地址。
iptables -A INPUT -p tcp --dport 22 -s your_ip_address -j ACCEPT
允许本地回环接口的流量: 本地回环接口(lo)用于本地进程间的通信,允许其流量可以提高系统性能。
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
允许 HTTP 和 HTTPS 连接: 如果你的服务器需要提供 Web 服务,请允许 HTTP(端口 80)和 HTTPS(端口 443)连接。
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
限制 ICMP 请求: ICMP 请求(ping)可能会被用于拒绝服务攻击,因此可以限制其速率。
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
限制连接速率: 为了防止暴力破解攻击,可以限制每个 IP 地址在一定时间内的连接速率。
iptables -A INPUT -p tcp --syn -m limit --limit 5/s --limit-burst 5 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
保存规则: 保存 iptables 规则,以便在系统重启后仍然生效。
service iptables save
定期审查和更新规则: 定期审查 iptables 规则,确保其仍然符合你的安全需求。随着业务的发展,你可能需要添加或删除某些规则。
请注意,这只是一些建议,实际配置可能因系统和应用的不同而有所差异。在配置 iptables 时,请务必谨慎操作,以免意外阻止合法流量或留下安全隐患。