尝试使用 iptables 阻止除 SSH 和 RDP 之外的所有流量

尝试使用 iptables 阻止除 SSH 和 RDP 之外的所有流量

编辑:使用 iptables 阻止除 ssh(端口 22)和 RDP(端口 3389)之外的所有传入/传出流量的工作脚本:

#!/bin/sh
# Block all incoming/outgoing traffic except for ssh and rdp

iptables -Z # zero counters
iptables -F # flush (delete) rules
iptables -X # delete all extra chains

# Set default filter policy to DROP
iptables -P INPUT   DROP
iptables -P OUTPUT  DROP
iptables -P FORWARD DROP

# Allow DNS
iptables -A INPUT --proto udp --sport 53 --jump ACCEPT
iptables -A OUTPUT --proto udp --dport 53 --jump ACCEPT
iptables -A OUTPUT --proto tcp --dport 53 --jump ACCEPT

# Allow unlimited traffic on loopback (localhost)
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Allow ssh (22) and rdp (3389)
iptables -A INPUT  -p tcp -m multiport --dports 22,3389 -j ACCEPT

# Continue accepting packets after connection is established (and moved to some random >1024 port)
iptables -A INPUT --match state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT --match state --state ESTABLISHED,RELATED -j ACCEPT

撤消:

#!/bin/sh

# Set default filter policy to ACCEPT
iptables -P INPUT   ACCEPT
iptables -P OUTPUT  ACCEPT
iptables -P FORWARD ACCEPT

iptables -Z # zero counters
iptables -F # flush (delete) rules
iptables -X # delete all extra chains

答案1

你错过了类似这样的内容:

iptables -A INPUT  --match state --state ESTABLISHED,RELATED --jump ACCEPT
iptables -A OUTPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT

在建立连接后继续接受数据包。当发生这种情况时,服务器端的连接会移动到某个随机的 >1024 端口,这就是为什么在端口 22 和 3389 上接受数据包是不够的。

允许 DNS 查找:

iptables -A INPUT  --proto udp --sport 53 --jump ACCEPT
iptables -A OUTPUT --proto udp --dport 53 --jump ACCEPT
iptables -A OUTPUT --proto tcp --dport 53 --jump ACCEPT

要同时为多个端口设置规则(so--sports--dports),您必须启用multiport模块。否则 iptables 会抱怨未知选项“--dports”。因此,要在一行中允许 SSH 和 RDP 传入连接:

iptables -A INPUT --proto tcp -m multiport --dports 22,3389 --jump ACCEPT

此外,由于您将默认策略设置为 DROP,因此您不需要在最后两行中为输入/输出连接额外设置 DROP。我确实知道它们会让您感觉更安全,但这就像设置主机名,并且还要每分钟设置一次 cron 作业以防万一。事实上,这可能会在将来导致问题,当您忘记这两行并附加一些其他规则时,您会困惑为什么它们不起作用。

相关内容