如何为仅接受来自特定 IP 的 telnet 的机器编写 iptables 规则?

如何为仅接受来自特定 IP 的 telnet 的机器编写 iptables 规则?

我知道如何拒绝特定的 IP,但如何拒绝除一个 IP 之外的所有 IP?

仅拒绝 1:iptables -A FORWARD -s 1.2.3.4 -d 2.2.2.2 -i eth0 -p tcp -m tcp --dport 23 -j REJECT。

在这种情况下,我拒绝 1.2.3.4 远程登录到 2.2.2.2

答案1

你这样做通常被认为是“错误”的。你不想将明确禁止的内容列入黑名单,而是想将允许的内容列入白名单。这样你的默认设置是安全的(拒绝/删除),并且你只在需要时将内容列入白名单。

不过,要回答你的问题,iptables 中的很多参数都可以用!来否定。

因此,对于您的情况,您可以使用:

iptables -A FORWARD -s ! 1.2.3.4 -d 2.2.2.2 -i eth0 -p tcp -m tcp --dport 23 -j REJECT

考虑将默认策略切换为拒绝。

答案2

用于!否定。例如:

iptables -A FORWARD -s ! 1.2.3.4 -d 2.2.2.2 -i eth0 -p tcp -m tcp --dport 23 -j REJECT

将仅允许 IP 1.2.3.4 通过。

您还可以使用 tcpwrappers(即 /etc/hosts.allow 和 /etc/hosts.deny),但是这不太“困难”,因为 telnet 仍然会响应。

附注:您可能应该从 telnet 转到 ssh 等,尽管我想在您的情况下这可能是不可能的。

相关内容