CentOS中的iptables是一个强大的防火墙工具,可以帮助你保护服务器的安全。以下是一些使用iptables保护服务器安全的建议:
默认拒绝所有流量: 在开始配置之前,确保iptables的默认策略是拒绝所有传入和转发的流量,只允许必要的流量通过。
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
允许SSH连接: 如果你需要远程访问服务器,确保只允许来自可信IP地址的SSH连接。
iptables -A INPUT -p tcp --dport 22 -s <trusted_ip>/32 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
将<trusted_ip>
替换为你的可信IP地址。
限制SSH尝试次数: 为了防止暴力破解攻击,可以限制SSH登录尝试的次数。
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
允许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
允许DNS查询: 允许DNS查询以确保服务器能够解析域名。
iptables -A INPUT -p udp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
日志记录: 记录所有被拒绝的连接尝试,以便于监控和审计。
iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A FORWARD -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
保存iptables规则: 配置好iptables规则后,确保保存它们,以便在服务器重启后仍然有效。
service iptables save
或者使用iptables-save
和iptables-restore
命令。
定期审查和更新规则: 定期审查iptables规则,确保它们仍然符合你的安全需求,并根据需要进行更新。
请注意,iptables规则可能会因服务器的具体用途和配置而有所不同。在应用上述建议时,请根据你的实际情况进行调整。此外,对于更高级的安全需求,可能需要考虑使用更专业的防火墙解决方案或安全组服务。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: CentOS JS日志中常见的配置错误有哪些