Логирование iptables

Автор dr_faust, 06 августа 2017, 17:54:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

dr_faust

Допустим, имеем

iptables -P INPUT DROP
iptables -A INPUT --sport 22 --dport 22 -j ACCEPT


Вопрос: как залогировать политику для цепочки INPUT(iptables -P INPUT DROP)(и возможно ли это впринципе)?

Примечание. К прерванной дискуссии в жабе.
Открыть содержимое (спойлер)

В жабе мы с одним из здешних старожилов поспорили про -P и -A. Позволю высказать свое мнение, хотя я, безусловно, не такой спец и, в частности, iptables только начинаю осваивать.
-P, --policy цепочка цель
Определить стратегию для цепочки. Допустимые цели описаны в разделе ЦЕЛИ настоящего документа. Стратегия может быть задана только для встроенных цепочек и не может быть задана для цепочек определённых пользователем.
-A, --append цепочка определение-правила
Добавить одно или несколько правил в конец указанной цепочки. Если имя источника и/или стока (назначения) соответствует нескольким адресам, правило будет добавлено для всех возможных комбинаций адресов.
-I, --insert цепочка [номер-правила]
определение-правила" В указанной цепочке вставить одно или более правил в позицию заданную номером. Так, если указан номер 1, правило или правила будут вставлены в начало цепочки. Это подразумеваемая позиция, если номер не указан.

Исходя из процитированного, а также из личных садистских опытов над бедным iptables, считаю, что политика цепочки не есть правило, поэтому iptables и не учитывает местоположение сей записи в конфиге, ставь хоть в начале, хоть в середине, хоть в конце массива правил.
Правило — описание ситуации и действий в такой ситуации.
Т.е.

iptables -A INPUT --sport 22 --dport 22 -j ACCEPT

сие означает, что если кто-то будет стучаться на порт 22, то его следует пустить.
Политика цепочки же указывает действие. Которое надо совершить с случае, если на него нет правила.
Допустим, в нашем случае ничего не сказано о dns, следовательно все пакеты, поступающие на порт 53 будут дропаться: такова политика.
[свернуть]
P.S.    endru, если что-то неправильно сформулировал, просьб не сильно бить.
Devuan 4. Debian 12. LXDE.

sidbar

Наверное так
iptables -A INPUT -p all -j LOG
те пакеты которые разрешены в правилах, не будут в логе.
Devuan GNU/Linux

endru

Добавлю к ответу выше:
в файл /etc/rsyslog.d/10-iptables.conf вносим нужные изменения (если изменения нужны)
при логировании добавляем префиксы:
iptables -P INPUT DROP
iptables -P INPUT DROP -j LOG --log-prefix "iptables: INPUT DROP: "


dr_faust

#3
endru

iptables -P INPUT DROP -j LOG --log-prefix "INPUT DROP: " --log-level 7 --log-uid --log-ip-options --log-tcp-options
iptables v1.4.21: Illegal option `-j' with this command

Try `iptables -h' or 'iptables --help' for more information.

Может

iptables -A INPUT -j LOG --log-prefix "INPUT DROP: " --log-level 7 --log-uid --log-ip-options --log-tcp-options

?
Devuan 4. Debian 12. LXDE.

RRR777

 Может

iptables -A INPUT -j LOG --log-prefix "INPUT DROP: " --log-level 7 --log-uid --log-ip-options --log-tcp-options

?
[/quote]
Насколько я понимаю работу ipatables. Сначала ты с этим пакетами которые попадают под твой фильтр делаешь действие LOG, указываешь для себя какой-то префикс ит.д.
И сразу после этого с этими же пакетами делаешь DROP (хотя лучше делать REJECT c опциями)
т.е.

iptables -A INPUT -j LOG --log-prefix "INPUT DROP: " --log-level 7 --log-uid --log-ip-options --log-tcp-options
iptables -A INPUT -j DROP