Назад | Перейти на главную страницу

Скрипт iptables для проблемы Treason Uncloaked

У меня ОЧЕНЬ старая версия ядра, которую я не могу обновить из-за тупого «босса, который думает, что знает все». Мне нужно либо уволить моего босса, либо создать сценарий bash, который может добавлять правило iptable каждый раз, когда он читает другой ip с помощью dmesg. Как я могу это сделать. На данный момент у меня есть это, который работает хорошо, но он продолжает дублировать IP по очевидным причинам того, как там работает iptable. Мне нужно найти способ, прежде чем добавлять 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

Почему бы просто не использовать Fail2Ban? Установить для него фильтр должно быть достаточно просто.

Однако что-то вроде следующего также будет работать.

for BADIP in $(dmesg | grep 'Treason uncloaked!' | cut -d' ' -f6 | cut -d':' -f1 | sort --unique)
do
    iptables -L INPUT | grep $BADIP
    if [ $? -ne 0 ]
    then
        iptables -A INPUT -s $BADIP -j DROP
    fi
done

Не проверено, но основы таковы, что $? это код выхода последней команды. Если grep находит IP-адрес, он выйдет с 0. Если grep не сможет найти IP-адрес, он будет ненулевым, и будет выполнено условие if.