Перейти к основному содержанию

UFW блокирует легитимный трафик

Linux 2

Столкнулись с проблемой. Обнаружили, что UFW на серверах иногда блокирует разрешённые пакеты. Т.е. всё работает, но иногда не работает. Долго этой проблемы не замечали, пока она не коснулась базы данных.

UFW (Uncomplicated Firewall) — это интерфейс iptables, предназначенный для упрощения процесса настройки брандмауэра.

iptables — утилита командной строки, которая является стандартным интерфейсом управления работой межсетевого экрана netfilter для ядер Linux, начиная с версии 2.4.

netfilter — межсетевой экран, встроен в ядро Linux с версии 2.4.

В логе можно обнаружить сообщения вида:

[UFW BLOCK] IN=eno1 OUT= MAC=[MAC адрес] SRC=[IP источника] DST=[IP сервера] LEN=52 TOS=0x08 PREC=0x20 TTL=51 ID=63422 PROTO=TCP SPT=6738 DPT=5432 WINDOW=4093 RES=0x00 ACK FIN URGP=0 

Интернет подсказал куда копать:

iptables -nL -v | grep "ctstate INVALID"

linux

И видим, что срабатывают дропы на кривых пакетах. Первый столбец: pkts — пакеты, второй: bytes — байты.

Причина появления кривых пакетов неизвестна. И разбираться в этом нет времени и желания. Самый простой способ — отключить это правило. Безопасность при этом мы не нарушим, запрещённый трафик так и будет блокироваться, просто для разрешённых IP адресов трафик перестанет блокироваться независимо от степени кривизны пакета.

В before.rules комментируем строки:

# drop INVALID packets (logs these in loglevel medium and higher)
# -A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
# -A ufw-before-input -m conntrack --ctstate INVALID -j DROP

Ну, и ещё надо конфиги пошерстить, мало ли кто чего добавил.

Теги

 

Похожие материалы

Установка и настройка keepalived на примере MultiFactor Ldap Adapter

Есть два сервера с операционной системой Ubuntu 20.04.4 LTS. Но обоих серверах развёрнут LDAP proxy сервер на базе Multifactor. По сути это обычные LDAPS сервера, которые неплохо было бы объединить в один отказоустойчивый кластер Master— Slave с плавающим виртуальным IP-адресом. Сделаем это с помощью keepalived.