Мне интересно, каким должен быть лучший подход в отношении обработки журнала элементов в iptables. Например, у меня есть такое правило:
$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied ACK-FIN Scan: " --log-ip-options --log-tcp-sequence --log-tcp-options --log-level 7
$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -j DROP
Мне было любопытно, лучше ли иметь следующую часть правила
-m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied ACK-FIN Scan: " --log-ip-options --log-tcp-sequence --log-tcp-options --log-level 7
включены в цепочку или должны быть отправлены в другую цепочку, например цепочку LOGDROP?
Возможно ли иметь что-то вроде следующих правил?
$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied ACK-FIN Scan: "
$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -j LOGDROP
$IPT -A LOGDROP -p TCP --log-ip-options --log-tcp-sequence --log-tcp-options --log-level 7
$IPT -A LOGDROP -j DROP
Заранее благодарим вас за помощь в этом.
Начиная снизу ...
$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied ACK-FIN Scan: "
$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -j LOGDROP
$IPT -A LOGDROP -p TCP --log-ip-options --log-tcp-sequence --log-tcp-options --log-level 7
$IPT -A LOGDROP -j DROP
Я не уверен, что точно понимаю, чего вы здесь хотите ... но, как написано, нет, это не сработает. В --log-ip-options
и другие --log-*
варианты предоставляются LOG
модуль, поэтому без -j LOG
их просто не узнают:
# iptables -A LOGDROP -p tcp --log-iptions
iptables v1.4.7: unknown option `--log-iptions'
Try `iptables -h' or 'iptables --help' for more information.
Если это была всего лишь опечатка и возникает вопрос: "Могу ли я позвонить LOG
несколько раз для одного и того же пакета? ", да. Вы можете сделать это нормально:
-A INPUT -j LOG --log-prefix="prefixA "
-A INPUT -j LOG --log-prefix="prefixB "
-A INPUT -j LOG --log-prefix="prefixC "
И так далее. Вы регистрируете пакет несколько раз, каждый с префиксом. Как вы показали, рекомендуется всегда включать --limit
операторы, чтобы предотвратить попадание в вашу систему большого количества совпадений по этим правилам.
Ваш вопрос о том, где лучше всего разместить правило регистрации, действительно зависит от ваших индивидуальных потребностей. Если вы хотите завершить несколько ваших цепочек с помощью LOG
и DROP
комбинации, вероятно, проще всего рассматривать это как "подпрограмму" и создать специальный LOGDROP
цепь. Это значит, что все будет так же --log-prefix
. Если вам действительно нужно идентифицировать конкретные результаты, тогда в вашем наборе правил будет несколько операторов log / drop.