解决 Treason Uncloaked 问题的 Iptables 脚本

解决 Treason Uncloaked 问题的 Iptables 脚本

我有一个非常老的内核版本,由于愚蠢的“自以为无所不知的老板”的原因,我无法更新它。我要么解雇我的老板,要么编写一个 bash 脚本,该脚本可以在每次使用 dmesg 读取不同的 ip 时添加 iptable 规则。我该怎么做呢?目前我有这个,它运行良好,但由于 iptable 在那里的工作方式显而易见的原因,它不断重复 IP。我需要找到一种方法,在附加 IP 之前,我想确保 ip 不在 iptable 列表中:

for BADIP in $(dmesg | grep 'Treason uncloaked!' | cut -d' ' -f6 | cut -d':' -f1 | sort --unique)
do
iptables -A INPUT -s $BADIP -j DROP
done

答案1

为什么不直接使用失败禁止? 为其设置过滤器应该相当简单。

但是,类似下面的方法也可以起作用。

对于 $(dmesg | grep ‘Treason uncloaked!’ 中的 BADIP | cut -d’ ‘ -f6 | cut -d’:’ -f1 | sort --unique)
    iptables -L 输入 | grep $BADIP
    如果 [ $? -ne 0 ]
    然后
        iptables -A 输入 -s $BADIP -j DROP
完毕

未经测试,但基本情况是 $? 是最后一个命令的退出代码。如果 grep 找到 ip,它将以 0 退出。如果 grep 找不到 ip,它将为非零,并且将触发 if 条件。

相关内容