使用 Iptables 设置防火墙后无法 apt-get 更新

使用 Iptables 设置防火墙后无法 apt-get 更新

在我更新 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

无论如何,应该通过指定“新”状态来进一步限制它。

相关内容