查看访问日志,我发现来自某个 IP 地址的访问过多。然后,我编辑 .htaccess 或 .conf 文件以拒绝来自该 IP 的访问。我想知道是否有命令或 oneliner 可以完成这项工作,例如deny 1.2.3.4
.
或者请告诉我如何在 .conf 文件中的特定行号处插入一行deny 1.2.3.4
,然后重新启动 apache。
补充:我的Joyent实例没有iptables
命令,而是有IPF。
答案1
您需要将其添加到iptables
以阻止 IP:
iptables -A INPUT -s <ipaddress> -j DROP
根据手册页:
DROP
意思是把数据包扔到地板上。
答案2
首先你必须编辑你的ipfilter
配置文件/etc/ipf/ipf.conf
。
例如添加:
block in from src.ip.addr to dest.ip.addr
src.ip.addr
您想要阻止的地址在哪里,dest.ip.addr
您的公共 IP 地址是哪里(您应该可以将其放在any
这里)。
您可以使用 测试您的设置ipfstat -io
。只需确保该ipfilter
服务已启用即可。如果您不知道如何操作,可以查看您最喜欢的搜索引擎或提出一个新问题(不要忘记提及您的操作系统)。
答案3
阻止 IP 的问题是,如果攻击端的人意图攻击您的 IP,他们只会转移到另一个 IP。
fail2ban 工具在阻止 IP 方面非常有效,因此 IP 会阻止一段时间然后解除阻止。
这可以确保如果您意外错误地阻止了某个 IP,它最终会解除阻止。
使用fail2ban解决了攻击者仅短时间使用某个IP,然后该IP返回到空闲池的问题。如果此 IP 随后由“真实”站点分配+您添加了手动阻止,则没有流量会流向这个新的“真实”站点。
手动阻止一个 IP 可能没问题 + 我见过一些人随着时间的推移阻止了 1000 个 IP。
使用fail2ban 可以让自动驾驶仪维护好坏IP。