как предотвратить флуд Syn -на определенном порту с помощью iptables?

$ awk 'BEGIN {count=0};
       NF>1 && $2 ~ /^[[:digit:]]+$/ {print;next};
       {count++};
       END { print "Removed " count " lines." }' input.txt 
AC 14      68123822        68123928
AC 16      34977639        34990886
AG 2       162266065       162266181
Removed 6 lines.

Если десятичные точки допустимы, используйте вместо них следующее:

$ awk 'BEGIN {count=0};
       NF>1 && $2 ~ /^[[:digit:]]+(\.[[:digit:]]+)?$/ {print;next};
       {count++};
       END { print "Removed " count " lines." }' input.txt 

Вывод для этой версии такой же, как и ваш пример ввода, потому что нет числовых -только вторых полей с десятичными точками.

Кстати, если вы не хотите, чтобы удаленные строки учитывались в основном выводе, вы можете напечатать их в stderr вместо стандартного stdout. Замените блок END на :

.
END { print "Removed " count " lines." > "/dev/stderr" }
0
26.11.2021, 17:08
1 ответ

Ваш код работает. Проблема в другом.

Вы можете проверить, сработало ли вообще ваше правило, с помощью

iptables -nvL INPUT

Возможно, вы случайно используете IPv6 (, если используется адрес localhost; вместо этого используйте 127.0.0.1 ).

Или в дополнение к iptablesиспользуется его преемник nftables. Свяжитесь с

nft list ruleset
0
27.11.2021, 12:03

Теги

Похожие вопросы