因此,使用以下内容我可以获得IP地址列表
cat access.* | awk '{ print $1 }' | sort | awk '{print $1;}' | sort -n >> toblock.txt
如何过滤它以写出仅机器人IP?
然后我可以把它传递给:
for i in `cat block.txt`; do csf -d $i;done
所以我可以阻止他们......
答案 0 :(得分:0)
注意 - 如上所述,您建议将阻止来自源IP的所有流量;如果这是你的意图那么没关系 - 你也可以考虑使用'mod_security'(这篇文章包括使用:〜/ .htaccess与mod_rewrite规则,防火墙规则和mod_security - blocking the80 legs crawler) - 使用mod_security它更容易设置动态规则匹配'bots'并拒绝一个规则与潜在的数千个防火墙规则...
如果您更喜欢防火墙方法,那么可能更好:
回到你的查询,你需要为'坏机器人'创建一个REGEX(正则表达式)模式,如下所示:
BAD_BOTS="bad_bot1|very bad bot|super bad bot|etc bad bot patterns"
然后(忽略大小写并搜索这些模式)
egrep -i "${BAD_BOTS}" access.* | awk '{print $1}' | sort -n | uniq >> toblock.txt
我不熟悉'csf'所以我不能对你问题的这一部分发表评论。
:)
戴尔