iptable 规则不阻塞

psy*_*ok7 5 ssh iptables

我试图允许 SSH 访问特定范围的 IP(从192.168.1.1192.168.1.24)并阻止所有其他IP ,但由于我是 iptables 的新手,我似乎无法弄清楚。我有 :

iptables -A INPUT -s 192.168.1.0/24 -p udp --dport ssh -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j REJECT
iptables -A INPUT -p udp --dport ssh -j REJECT
Run Code Online (Sandbox Code Playgroud)

啧,这行不通,设置了虚拟机后192.168.1.89我仍然可以通过 SSH 访问。有人可以帮忙吗?

lau*_*ent 8

192.168.1.0/24不是从 1 到 24,而是使用 24 位(= 3 1st 块),因此它将接受以 192.168.1 开头的任何内容。正确的是 /27,但最多允许 192.168.1.31。

下一个较小的范围是 /28,最多允许 192.168.1.15。


Mik*_*eyB 7

/24 是 CIDR 长度,而不是范围。

要使用范围,请执行以下操作:

iptables -A INPUT -m iprange --src-range 192.168.1.1-192.168.1.24 -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j REJECT
Run Code Online (Sandbox Code Playgroud)