在我更新 Ubuntu 14.04 VPS 的 iptables 之后,规则如下:
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Prevent HTTP DOS Attacks
sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
# Open Local Loopback
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
# Drop Invalid Packets
sudo iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
# Disallow other traffics
sudo iptables -P FORWARD DROP
sudo iptables -A INPUT -j DROP
结果我无法再运行 apt-get update。
你对这个问题有什么想法吗?
谢谢。
答案1
您尚未允许您发起的任何传出流量的返回路径。您需要类似以下内容的操作(将 eth0 更改为您的接口名称):
sudo iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
顺便说一下这条规则:
# Prevent HTTP DOS Attacks
sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
永远不会被击中,因为你通过之前的规则绕过了它:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
无论如何,应该通过指定“新”状态来进一步限制它。