我对此束手无策。我永远也搞不懂为什么 IPTables 不能更容易理解 :/
无论如何,我们正在使用 iRedMail 作为我们的电子邮件系统。我的客户在几次错误设置 SMTP 后成功将自己锁定。我可以看到他的 IP 被列出(出于安全考虑已更改 :));
root@server:~# iptables -L -n --line-numbers | grep 200.81.82.175
1 REJECT all -- 200.81.82.175 0.0.0.0/0 reject-with icmp-port-unreachable
但我无论如何也想不出如何删除他的 IP!
我确实花了整整一个小时试图解除对他的屏蔽,但仍然无济于事。有人能给我指点一下吗?
附言一下 - 我如何才能将他的 IP 列入所有服务的白名单?我认为一旦我们解除对他的封锁,这将是最简单的选择!
答案1
当您知道链(例如INPUT
)和规则编号时,删除规则非常简单:
$ sudo iptables --delete INPUT 1
其中INPUT
是链的名称,1
是列表中规则的编号(通过运行例如iptables -L -n
您拥有的)获得。不要盲目地这样做;一定要检查你的假设!
的简写--delete
是-D
,其作用完全相同。
您还可以删除符合特定条件的规则。例如,您可以:
$ sudo iptables --delete INPUT -s 203.0.113.123 -j REJECT
这里,是/和/--delete
的类似物,并且需要指定完整规则。当规则集可能在工作过程中被修改时,这种方法更安全;因此,这是例如 所采用的方法。-I
--insert
-A
--append
fail2ban
您可以使用sudo iptables -S
以适合在相应-D
命令中使用的形式打印当前规则集。
我如何才能将他的 IP 列入所有服务的白名单?我认为一旦我们解除对他的封锁,这将是最简单的选择!
将所有服务的 IP 地址列入白名单不是一个好主意。相反,应该稍微放宽黑名单标准,这样授权用户的正常但错误的行为不会导致过度阻止。例如,您可以将 fail2ban 阻止超时时间缩减到合理的值,并确保阻止仅应用于特定的目标服务。