过去几周我每小时login失败的次数达到了1000次,我确定其中有99%是来自僵尸程序。 我已经安装了fail2ban,我一直在阻止一些子网,但是我也决定改变我用于SSH的端口。 这只是我使用服务器,所以它是一个简单的变化,摆脱了很多的机器人请求。
我做了改变,一切工作正常。 我想现在阻止22港口。我已经检查了firewalld,22港口从来没有规定,这让我不知道它是如何工作的。 必须有一些东西来确保端口22的请求不被阻塞。 如何禁用此function并完全locking端口22?
从你以前的问题,我看到你正在使用CentOS 6. /etc/sysconfig/iptables文件将包含您的IPv4防火墙在第一次加载时的状态。 这可能与防火墙的运行状态有所不同,尤其是在您添加了任意规则的情况下。 您可以使用该命令保存防火墙的当前状态
service iptables save
这将覆盖/etc/sysconfig/iptables (首先进行备份可能是谨慎的)。
在正常情况下,你会发现这样的一条线
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
这允许连接到端口22.只需删除该行,然后保存该文件。 当你回到命令行时,运行命令
service iptables reload
这将确保保存的防火墙状态和正在运行的防火墙状态相同。 这是有效的,因为CentOS 6上的默认防火墙在INPUT链末尾有一个整体的REJECT规则。
如果你不想依靠毯子拒绝然后改变线
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j DROP
如上所述保存并重新启动。
请注意,@ipor说的是真实的。 如果你已经将sshd移动到不同的端口,那么它就会被closures,因为没有任何东西在监听。
使用下面的IPtable规则,以root身份login后,在防火墙级别阻止端口22。
阻止从外部到系统的eth0(nic卡)的ssh。
iptables -F
服务iptables保存
iptables -A INPUT -i eth0 -p tcp –dport 22 -j DROP
iptables -A OUTPUT -o eth0 -p tcp –sport 22 -j DROP
服务iptables保存
所以它将永远保持iptable状态。 (请记住,有很多方法可以阻止不需要的请求,因为任何人都可以执行“search”),所以您可以根据自己的要求select要在您的环境中使用的人。)