为什么使用 iptables 限制 OUTPUT 流量会杀死 ssh

为什么使用 iptables 限制 OUTPUT 流量会杀死 ssh

我正在尝试创建一个简单的 iptables 配置,将传出连接限制为一组 IP 地址。但是,每次我尝试配置 OUTPUT 规则时,我都会终止 ssh 连接。

为了解决这个问题,我们假设我想允许所有传入流量,并且只允许端口 53 上的 ip 8.8.8.8 传出流量。

这是我开始的 iptables 配置:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination
DOCKER-USER  all  --  anywhere             anywhere
DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain DOCKER (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             ip-172-17-0-2.eu-central-1.compute.internal  tcp dpt:9090

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target     prot opt source               destination
DOCKER-ISOLATION-STAGE-2  all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain DOCKER-USER (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

现在我尝试限制传出流量,如下所示:

iptables -I OUTPUT -d 8.8.8.8 -p udp --dport 53 -j ACCEPT
iptables -P OUTPUT DROP

我执行第二个命令的实例我的 ssh 连接被阻止,我必须重新启动服务器。

也许我对 iptables 或 ssh 的理解错了。我的印象是 OUTPUT 链将控制服务器发起的传出连接,并且不应该影响我在端口 22 上连接到服务器的能力。此外,端口 80 和 443 上的所有其他传入连接都被终止,因此它不仅SSH。

答案1

我想我现在明白了:

iptables -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -d 127.0.0.0/8 -j ACCEPT
iptables -A OUTPUT -d 8.8.8.8 -p udp --dport 53 -j ACCEPT
iptables -P OUTPUT DROP

这应该阻止服务器发起的连接上的所有传出流量。但不适用于由传入连接发起的连接。

相关内容