我怎样才能有效地(在谈论防火墙级别时做到快速,并且可以使用许多IP来做到这一点)在给定时间内阻止一个IP地址,例如:一个月,如果它试图以任何方式联系端口22 TCP,所以端口检查,通过连接ssh
等等。
iptables
我怎样才能用OpenBSD做到这一点pf
?
主要思想是 SSHD 在非默认端口上运行,通过这种阻止方法,我们可以在不需要任何额外软件的情况下强化我们的保护。
它应该阻止 IP DROP
,而不是RFC REJECT
更新:我的意思是它应该自动完成。我不想手动给出每个 IP 地址。
答案1
您可以使用fail2ban
或类似的软件,并使用自定义规则来阻止任何尝试连接到端口 22 的 IP 地址。
fail2ban
管理自动阻止主机进行不需要的连接(基于各种标准,包括连接尝试次数、特定日志文件中的错误消息、尝试获取特定 URL 或几乎任何您能想到的内容并编写脚本来测试for) 以及此类块的自动过期。
fail2ban
适用于大多数/所有 Linux 发行版,主页位于:http://www.fail2ban.org/
答案2
阻止来自 IP 1.2.3.4 的传入请求
以下命令将丢弃来自 IP 地址 1.2.3.4 的任何数据包:
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port {PORT-NUMBER-HERE} -s {IP-ADDRESS-HERE} -j DROP
示例端口 22:
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 22 -s 1.2.3.4 -j DROP
阻止结果
/sbin/iptables -A OUTPUT -i eth0 -p tcp --destination-port {PORT-NUMBER-HERE} -s {IP-ADDRESS-HERE} -j DROP
示例端口 22:
/sbin/iptables -A OUTPUT -i eth0 -p tcp --destination-port 22 -s 1.2.3.4 -j DROP