Я настроил простое iptable, которое должно зарегистрировать все отброшенные пакеты в файл. Когда я проверяю свой файл журнала, это пусто.
Мой iptables:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere #Allow loopback
LOGGING all -- anywhere anywhere
DROP all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain LOGGING (1 references)
target prot opt source destination
LOG all -- anywhere anywhere LOG level warning prefix "IPTables-Dropped: "
DROP all -- anywhere anywhere
И в /etc/rsyslog.d/90-iptables.conf
Я перенаправляю сообщения в другой файл:
:msg,contains,"IPTables-Dropped: " /var/log/iptables.log"
Теперь измененный в
kern.warning /var/log/iptables.log
Вывод от sudo iptables -v -x -n -L
урожаи:
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
58254 11751250 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
3937 232480 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
52 2824 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
68 3696 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
114 9187 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
1636 154417 LOGGING all -- * * 0.0.0.0/0 0.0.0.0/0
16 668 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 70233 packets, 16508738 bytes)
pkts bytes target prot opt in out source destination
Chain LOGGING (1 references)
pkts bytes target prot opt in out source destination
1641 154653 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "IPTables-Dropped: "
1640 154613 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Условно, только на файлы, заканчивающиеся в .conf
в /etc/rsyslog.d
, смотрят rsyslogd
. Значение по умолчанию /etc/rsyslogd.conf
файл содержит это:
#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf
рекомендация состоит в том, чтобы изменить имя файла с /etc/rsyslog.d/iptables.log
до /etc/rsyslog.d/iptables.conf
. Однако рассмотрите, чтобы далее следовать конвенции и включать префикс порядка загрузки, подобный другим файлам в том каталоге. т.е. /etc/rsyslog.d/90-iptables.conf
Примечание: Я протестировал /etc/rsyslog.d/iptables.conf
, и это хорошо работает.
Это вызвано тем, что они зарегистрированы от ядра.
необходимо измениться на это в /etc/rsyslog.conf
kern.warning /var/log/iptables.log
Это - старый вопрос, но он не имеет принятого ответа или исправляет ответ насколько я вижу. Это, делают с порядком, в котором файлы конфигурации журнала загружаются в /etc/rsyslog.d/
каталог.
Я зафиксировал его путем предварительного ожидания моего iptables.conf
файл с 10-
таким образом, имя файла затем читает:
10-iptables.conf
Это загружает его как более высокий приоритет, чем 50-defaults.conf
файл в том же каталоге, который я принимаю, является сверхкольцом поведение в Вашей конфигурации журнала iptables и направлении входа к расположению файла по умолчанию /var/logs/syslog
.
Это загружает эти конфигурации в алфавитном порядке так путем нумерации их, можно настроить приоритет загрузки. Файлы вся потребность иметь .conf
префикс, хотя, потому что, именно это rsyslog
ищет при загрузке конфигураций журнала.