Задача: Хочу разобрать как для надстройки над правилами Iptables в лице применяемого теперь уже везде firewalld можно активировать ведение лога попыток блокировки тех, кто пытается подключиться к тем или иным портам.

Сегодня речь пойдет на тему, как на Ubuntu 22.04 Server при использовании надстройки над правилами iptables, а именно firewalld включить или выключить возможность ведения лога отклоненных попыток подключения. Возможно выхотите зафиксировать что с Вашего подконтрольного хоста идет обращение, и Вы что-то намудрили с правилами и соединение не устанавливается. Кстати да, это полезная вещь.

Текущая система:

ekzorchik@srv-us2204a:~$ uname -a
Linux srv-us2204a.ru 5.15.0-119-generic #129-Ubuntu SMP Fri Aug 2 19:25:20 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
ekzorchik@srv-us2204a:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy
ekzorchik@srv-us2204a:~$
ekzorchik@srv-us2204a:~$ dpkg -l | grep firewalld
ii  firewalld                              1.1.1-1ubuntu1                          all          dynamically managed firewall with support for network zones
ii  python3-firewall                       1.1.1-1ubuntu1                          all          Python3 bindings for firewalld
ekzorchik@srv-us2204a:~$

Шаг №1: Производим поиск конфигурационного файла firewalld.conf в системе Ubuntu 22.04 Server когда firewalld уже есть в системе:

ekzorchik@srv-us2204a:~$ sudo find / -name firewalld.conf
/etc/firewalld/firewalld.conf
ekzorchik@srv-us2204a:~$ sudo ls -l /etc/firewalld/
total 32
-rw-r--r-- 1 root root 2484 Mar 28  2022 firewalld.conf
drwxr-xr-x 2 root root 4096 Mar 28  2022 helpers
drwxr-xr-x 2 root root 4096 Mar 28  2022 icmptypes
drwxr-xr-x 2 root root 4096 Mar 28  2022 ipsets
-rw-r--r-- 1 root root  268 Mar 28  2022 lockdown-whitelist.xml
drwxr-xr-x 2 root root 4096 Mar 28  2022 policies
drwxr-xr-x 2 root root 4096 Mar 28  2022 services
drwxr-xr-x 2 root root 4096 Nov 30  2023 zones
ekzorchik@srv-us2204a:~$

Шаг №2: Активируем опцию логирования:

ekzorchik@srv-us2204a:~$ sudo nano /etc/firewalld/firewalld.conf
# LogDenied
# Add logging rules right before reject and drop rules in the INPUT, FORWARD
# and OUTPUT chains for the default rules and also final reject and drop rules
# in zones. Possible values are: all, unicast, broadcast, multicast and off.
#Параметр LogDenied включает правила ведения журнала #прямо перед правилами отклонения и сброса в цепочках
#INPUT, FORWARD и OUTPUT для правил по умолчанию, а #также окончательные правила отклонения и сброса в #зонах.
#Возможные значения: all, unicast, broadcast, #multicast и off.
# Default: off
#LogDenied=off
LogDenied=all
ekzorchik@srv-us2204a:~$ sudo firewall-cmd --reload
success
ekzorchik@srv-us2204a:~$

Шаг №3: Посмотреть значение параметра LogDenied:

ekzorchik@srv-us2204a:~$ sudo firewall-cmd --get-log-denied
all
ekzorchik@srv-us2204a:~$

для его изменения можно задействовать не только конфигурационный файл, а еще через изменение параметра:

sudo firewall-cmd --set-log-denied=all

Шаг №4: Смотрим какие пакеты попали в список отклоненных:

ekzorchik@srv-us2204a:~$ sudo dmesg | grep -i REJECT | head -n 10
[717811.411650] "filter_IN_public_REJECT: "IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:34:60:f9:8c:e2:49:08:00 SRC=79.133.182.10 DST=255.255.255.255 LEN=453 TOS=0x00 PREC=0xA0 TTL=64 ID=44347 PROTO=UDP SPT=55853 DPT=29810 LEN=433
[717811.477215] "filter_IN_public_REJECT: "IN=eth0 OUT= MAC=00:16:3c:2c:61:21:78:9a:18:8e:14:10:08:00 SRC=91.191.209.46 DST=94.154.11.193 LEN=40 TOS=0x00 PREC=0x00 TTL=250 ID=27215 PROTO=TCP SPT=53762 DPT=11608 WINDOW=1024 RES=0x00 SYN URGP=0
[717811.878368] "filter_IN_public_REJECT: "IN=eth0 OUT= MAC=33:33:00:00:00:01:00:16:3c:7f:60:09:86:dd SRC=fe80:0000:0000:0000:0216:3cff:fe7f:6009 DST=ff02:0000:0000:0000:0000:0000:0000:0001 LEN=197 TC=0 HOPLIMIT=1 FLOWLBL=234996 PROTO=UDP SPT=5678 DPT=5678 LEN=157
[717811.889427] "filter_IN_public_REJECT: "IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:16:3c:7f:60:09:08:00 SRC=94.154.11.161 DST=255.255.255.255 LEN=177 TOS=0x00 PREC=0x00 TTL=64 ID=0 PROTO=UDP SPT=5678 DPT=5678 LEN=157
[717813.855781] "filter_IN_public_REJECT: "IN=eth0 OUT= MAC=00:16:3c:2c:61:21:78:9a:18:8e:14:10:08:00 SRC=109.205.213.220 DST=94.154.11.193 LEN=40 TOS=0x00 PREC=0x00 TTL=247 ID=105 PROTO=TCP SPT=45788 DPT=24390 WINDOW=1024 RES=0x00 SYN URGP=0
[717818.841815] "filter_IN_public_REJECT: "IN=eth0 OUT= MAC=00:16:3c:2c:61:21:78:9a:18:8e:14:10:08:00 SRC=109.205.213.220 DST=94.154.11.193 LEN=40 TOS=0x00 PREC=0x00 TTL=247 ID=31231 PROTO=TCP SPT=45788 DPT=22546 WINDOW=1024 RES=0x00 SYN URGP=0
[717820.035877] "filter_IN_public_REJECT: "IN=eth0 OUT= MAC=00:16:3c:2c:61:21:78:9a:18:8e:14:10:08:00 SRC=109.120.150.231 DST=94.154.11.193 LEN=40 TOS=0x00 PREC=0x00 TTL=248 ID=42944 PROTO=TCP SPT=56764 DPT=51069 WINDOW=1024 RES=0x00 SYN URGP=0
[717821.481835] "filter_IN_public_REJECT: "IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:34:60:f9:8c:e2:49:08:00 SRC=79.133.182.10 DST=255.255.255.255 LEN=453 TOS=0x00 PREC=0xA0 TTL=64 ID=62282 PROTO=UDP SPT=55853 DPT=29810 LEN=433
[717821.834524] "filter_IN_public_REJECT: "IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:16:3c:a9:c6:fd:08:00 SRC=94.154.11.154 DST=94.154.11.255 LEN=258 TOS=0x00 PREC=0x00 TTL=64 ID=38748 DF PROTO=UDP SPT=45061 DPT=21027 LEN=238
[717824.848064] "filter_IN_public_REJECT: "IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:16:3c:fb:f3:76:08:00 SRC=195.93.252.49 DST=255.255.255.255 LEN=68 TOS=0x00 PREC=0x00 TTL=64 ID=16131 DF PROTO=UDP SPT=36447 DPT=1947 LEN=48
ekzorchik@srv-us2204a:~$

Шаг №5: Отключить параметр LogDenied, т.е. не засорять журнал обращениями к защищаемым сервисам на сервере которые были отброшены (по умолчанию):

ekzorchik@srv-us2204a:~$ sudo firewall-cmd --set-log-denied=off
success
ekzorchik@srv-us2204a:~$ sudo firewall-cmd --reload
success
ekzorchik@srv-us2204a:~$ sudo firewall-cmd --get-log-denied
off
ekzorchik@srv-us2204a:~$

Итого я для себя узнал еще что-то новенькое, хотя даже до этого момента даже не задавался этим вопросом, а зачем логировать то что было отклонено, может конечно в этом есть смысл для изучения.

Пока на этом заметка завершена, с уважением автор блога Олло Александр aka ekzorchik.