Если вам нужны только эти 4 строки, а не имена файлов:
awk 'FNR<=4' ./*.log
Чтобы строки имели префиксы с именами файлов:
awk 'FNR<=4 {print FILENAME ": " $0}' ./*.log
Или с GNU grep
:
grep -Hm4 '^' ./*.log
-A
добавляет правила в конец цепочки iptables
.
Если вы хотите регистрировать каждый пакет прежде всего, попробуйте использовать-I
:
-I INPUT -j LOG --log-tcp-options --log-tcp-sequence --log-prefix "[MY_PREFIX] "
-I FORWARD -j LOG --log-tcp-options --log-tcp-sequence --log-prefix "[MY_PREFIX] "
Тем не менее, лучший способ решить эти проблемы — создать новые цепочки и изменить правила, чтобы использовать эти цепочки вместо стандартных.
В качестве (простого )примера у вас может быть две новые цели:
iptables -N LOG_DROP
iptables -N LOG_ACCEPT
и создайте правила «по умолчанию» как
iptables -A LOG_DROP -j LOG --log-tcp-options --log-tcp-sequence --log-prefix "[MY_PREFIX] "
iptables -A LOG_DROP -j DROP
iptables -A LOG_ACCEPT -j LOG --log-tcp-options --log-tcp-sequence --log-prefix "[MY_PREFIX] "
iptables -A LOG_ACCEPT -j ACCEPT
Тогда по вашим правилам можно "отправить" на LOG_DROP
вместо DROP
и LOG_ACCEPT
вместоACCEPT
:
iptables -A INPUT -p tcp --dport 22 -j LOG_DROP # Log and drop input packets to port 22