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

вопрос о логировании iptables

Мне интересно, каким должен быть лучший подход в отношении обработки журнала элементов в 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.