使用日志监控工具,我注意到一个 IP 尝试以 root 身份登录 100-200 次但失败了(PAM 的日志捕获了该情况),这些 IP 略有不同,但都源自一个域,该域是某个地方的专用服务器主机,我不在乎是否阻止访问,也不会有任何损失。
(编辑:或者如果检查期间未完成 DNS 解析,则可能是 IP 范围。我也不知道该怎么做。)
我已将 IP 添加到 iptables 中,如何阻止整个主机 (foobar.com) 访问我的 VPS 上的任何服务(包括 SSH)?我正在使用 Ubuntu 10.04LTS 服务器。
答案1
iptables 不会、也不应该使用 DNS,但您可以使用单个语句阻止某个地址范围,前提是该范围是一个完整的网络块,例如:
iptables -A INPUT -s 172.16.3.64/26 -j DROP
将(假设您在 INPUT 链中之前没有冲突的 ACCEPT)丢弃来自源的所有数据包172.16.3.64
- 172.16.3.127
。
如果你不熟悉网络块和 CIDR 的斜线符号,可以找到一个很好的指南http://en.wikipedia.org/wiki/IPv4_subnetting_reference。
答案2
如果你只需要阻止 ssh 会话,这是一个非常有用的脚本 -http://denyhosts.sourceforge.net/
答案3
用于阻止源 IP 地址............ ):
iptables -A 输入 -s 172.34.5.8 -j 删除
RedHat INIT 脚本非常相似。您可以使用它来启动和停止 iptables,以及保存规则集。
要保存活动规则,请执行以下操作:
/etc/init.d/iptables 保存
这会将您的规则保存到“/etc/sysconfig/iptables”。
当你启动 iptables 时,规则从 '/etc/sysconfig/iptables' 中读取:
/etc/init.d/iptables 启动
启动 iptables [确定]
当你停止 iptables 时,所有规则都将被刷新:
/etc/init.d/iptables 停止
停止 iptables [确定]