【问题标题】:How do I use bash to bulk add a file full of IP blocks to IPTables如何使用 bash 将充满 IP 块的文件批量添加到 IPTables
【发布时间】:2016-01-08 05:25:51
【问题描述】:

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

编辑:换句话说,有没有办法编写一些东西来遍历文件并构建相关条目?

【问题讨论】:

  • 您是否打算使用 Webmin 来管理防火墙?如果没有,那么有几种选择可以做你想做的事情。不了解实际问题的更多信息(例如,http 请求是否一开始就无效),很难给出准确的答案。例如,您可能希望查看 OSSEC,以阻止垃圾邮件请求。
  • kirkkosinski.com/2013/11/… 试试这个。可能会有所帮助
  • 我一直在使用 Webmin 将条目添加到 IPtables 阻止列表(拒绝范围链)。我可以手动输入所有数据,但在我看来,必须有更简单的方法。
  • fail2ban 是此类事情的事实上的标准工具。
  • @Matthew - George 的编辑非常完美。简明扼要地说明您正在尝试做什么以及出了什么问题。如果您有代码,请展示您尝试过的内容。不要闲聊无关的饲料。很多人不读漫谈,他们会搬家。就我个人而言,当我面对一个漫不经心的帖子时,我会使用 Unclear what you ask

标签: bash iptables


【解决方案1】:

你能在你的 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

【讨论】:

  • 我们实际上是在“/etc/sysconfig/iptables-config”中交谈吗?我认为我可以在不破坏任何东西的情况下做到这一点?
  • 不,通常在操作您的 IPTables 规则时,一切都在 bash 脚本中配置,然后要应用规则,您执行脚本。这允许您执行任何典型的 bash 脚本伏都教来帮助您制定规则。以本页第 3 节为例:wiki.centos.org/HowTos/Network/IPTables
  • 更像sed 's/.*/iptables -A INPUT -s & -j DROP/' | sh 以避免无用使用 Cat 和未引用的变量。
  • 你也应该使用 -w 选项,尤其是当不止一个脚本在修改表格时。
【解决方案2】:

您可以解析ip列表并检查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

【讨论】:

    【解决方案3】:

    过多的请求和带宽使用可能是由于来自搜索引擎的机器人试图抓取您的网站,以及当 facebook 或 linkedin 等网站创建缩略图时,因为有人从社交媒体链接到您的网站。

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

    【讨论】:

    • 我没有遇到问题的机器人。服务器可以处理一些谷歌我正在谈论的范围,每个范围有 20 到 30 个活动连接,每个来自属于滥用类型的已知安全港的范围。在每个站点级别 robots.txt 用于表现良好的脚本和 badBehaviour 用于不。来自托管公司的一些 IP 范围仍然使用了超过我的 CPU 的公平份额,并且连接太多。除了阻止所有美国和中国之外,我只想阻止属于托管公司的非常大的 IP 范围,这些公司没有业务戳我的服务器。
    猜你喜欢
    • 2020-07-23
    • 2012-10-07
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 2019-10-24
    • 2013-10-28
    相关资源
    最近更新 更多