如何使用bash将充满IP块的文件批量添加到IPTables

时间:2014-06-08 03:16:53

标签: bash iptables

如何使用BASH(或其他脚本语言)将充满IP块的文本文件批量添加到IPTables?或者是否有其他阻止这些地址范围的方法?

编辑:换句话说,有没有办法编程迭代文件并构建相关条目?

3 个答案:

答案 0 :(得分:11)

你能在iptables配置脚本​​中创建一个循环吗?像

这样的东西
#!/bin/bash
for x in $(cat ip_list.txt)
do
    iptables -A INPUT -s $x -j DROP
done

您的ip_list.txt文件看起来像

1.1.1.1
2.2.2.2
3.3.3.3
etc

答案 1 :(得分:3)

您可以解析ip list并检查IP地址是否已被阻止或是否:

#!/bin/bash

for i in $(cat iptables.log)
do
    /sbin/iptables -L -n -v | grep -q "${i}"
    RETVAL=$?
    if [ $RETVAL -ne 0 ]; then
     /sbin/iptables -A INPUT -s "${i}" -j DROP
    fi
done

答案 2 :(得分:0)

过多的请求和带宽使用可能是由搜索引擎尝试抓取您的网站的机器人引起的,也可能是因为有人通过社交媒体链接到您的网站时,Facebook或者facebook等网站会创建缩略图。

要停止机器人,您应该使用您网站上的robots.txt文件。阅读有关该文件的更多信息并在robotstxt.org配置它。我认为在stackoverflow上也有几篇关于它的帖子。