在Ubuntu系统中,使用iptables进行安全加固是一种常见的做法。以下是一些基本步骤和建议,帮助你提高系统的安全性:
首先,清空现有的iptables规则,以确保从一个干净的状态开始。
sudo iptables -F
sudo iptables -X
设置默认策略为DROP,这意味着所有未经明确允许的流量都将被丢弃。
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
根据你的需求,允许必要的流量通过。
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
为了防止某些类型的拒绝服务攻击,可以限制ICMP流量。
sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
sudo iptables -A INPUT -p icmp -j DROP
sudo iptables -A INPUT -p udp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
保存iptables规则,以便在系统重启后仍然有效。
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
定期审查和更新iptables规则,以确保它们仍然符合你的安全需求。
ufw
(Uncomplicated Firewall)来简化配置。通过以上步骤,你可以显著提高Ubuntu系统的安全性。