Задача: Хочу разобрать как для надстройки над правилами 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.