我正在尝试允许 SSH 访问一定范围的 IP(从192.168.1.1
到192.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
唉,这不管用,设置了 VM 后,192.168.1.89
我仍然可以通过 SSH 访问。有人能帮忙吗?
答案1
192.168.1.0/24
不是从 1 到 24,而是使用 24 位(= 前 3 个块),因此它将接受以 192.168.1 开头的任何内容。正确的是 /27,但它最多允许 192.168.1.31。
下一个较小的范围是 /28,最多允许 192.168.1.15。
答案2
/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
答案3
第一个 DROP all INPUT Rullse(为了更安全)第二个:iptables -A INPUT -p tcp -i eth0 --dport 22 -m iprange --src-range 192.168.1.1-192.168.1.24 -j ACCEPT 玩得开心