Кто-то пытается войти на мой сервер Dovecot. Я добавил правило запрета ufw для сети, поскольку он продолжает выбирать разные адреса из одной и той же небольшой сети, но эти правила запрета не имеют никакого эффекта. Правило начинает действовать только тогда, когда я указываю IP-адрес.
Я изменил порт прослушивания сервера dovecot, но он находит новый порт и продолжает попытки войти.
Сеть, которую я хочу отфильтровать, - это 185.211.245.128 - 185.211.245.255.
У меня открыты порты postfix и ssh, но он ориентирован на dovecot.
Это правила, которые я установил в ufw
Anywhere DENY 185.211.245.128/25 Anywhere DENY 185.211.245.0/24 Anywhere DENY 185.211.245.170 996 DENY 185.211.245.170 996/tcp ALLOW Anywhere
Только последнее опровержение возымело действие. У меня сейчас есть попытки подключения с другого адреса из этой сети.
Я добавил правила запрета сети с помощью следующей команды:
# ufw deny from 185.211.245.128/25
Почему ufw не принимает во внимание эти правила запрета?
Обновление 1: Я перезагрузился и получил час облегчения, но снова получаю попытки подключения. iptables выглядят правильно:
Chain ufw-user-input (1 references) pkts bytes target prot opt in out source destination 3 180 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:xxx 32 1672 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 19 1092 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 22 1268 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:587 7 424 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:465 0 0 DROP all -- * * 141.98.80.16 0.0.0.0/0 0 0 DROP all -- * * 5.79.252.176 0.0.0.0/0 0 0 DROP all -- * * 5.53.119.178 0.0.0.0/0 5 200 DROP all -- * * 185.211.245.128/25 0.0.0.0/0 0 0 DROP all -- * * 185.211.245.0/24 0.0.0.0/0 0 0 DROP all -- * * 185.211.245.170 0.0.0.0/0 0 0 DROP tcp -- * * 185.211.245.170 0.0.0.0/0 tcp dpt:996 0 0 DROP udp -- * * 185.211.245.170 0.0.0.0/0 udp dpt:996 0 0 DROP all -- * * 168.228.151.234 0.0.0.0/0 0 0 DROP all -- * * 185.211.245.198 0.0.0.0/0 34 2160 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:996
Очевидно, 5 пакетов были отклонены правилом deny 185.211.245.128/25. Но у меня сейчас снова подключения от 185.211.245.170.
Это то, что я вижу в auth.log. Перезагрузился до 12:00.
Feb 18 12:37:28 srv01 auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=xxx rhost=185.211.245.170 Feb 18 12:37:31 srv01 auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=xxx rhost=185.211.245.170 Feb 18 12:37:58 srv01 auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=xxx rhost=185.211.245.170 Feb 18 12:38:00 srv01 auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=xxx rhost=185.211.245.170 Feb 18 13:11:12 srv01 auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=xxx rhost=185.211.245.170 Feb 18 13:11:14 srv01 auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=xxx rhost=185.211.245.170 Feb 18 13:11:33 srv01 auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=xxx rhost=185.211.245.170 Feb 18 13:11:36 srv01 auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=xxx rhost=185.211.245.170
Похоже, iptables не работает должным образом или его можно обойти.
Процесс dovecot прослушивает 0.0.0.0:996 и ::: 996.
Обновление 2: даже страннее. Заглянув в журнал ufw.log, я вижу, что попытки подключения из моего дома к серверу через порт 996 были отклонены этой ночью. Но вчера вечером мне удалось получить доступ к моему серверу imap через тот же порт. Что-то действительно подозрительное.
Обновление 3: У меня был запущен fail2ban. Поскольку я остановил fail2ban, что привело к удалению правил в iptables, больше не сообщается о неудачных попытках подключения в auth.log. Их мог создать fail2ban, а я думал, что это dovecot. В iptables я вижу медленно увеличивающееся количество отбрасываемых пакетов для правила 185.211.245.128/25. Я этого и ожидал. Похоже, что fail2ban мешает iptables, или просто ведение журнала было неправильным. Но через 4 часа и сразу после публикации этого обновления я получил четыре новых попытки подключения.
Обновление4: Я добился некоторого прогресса. Попытки входа в систему блокируются, когда правила удаления помещаются перед всеми разрешающими правилами. Похоже, что злоумышленник извлекает выгоду из других разрешающих правил, чтобы обойти запрещающее правило. Как это возможно, пока неясно. Если эта интерпретация верна, ufw имеет дыру, которая является проблемой безопасности!
Правила отказа, очевидно, должны быть на первом месте. Я могу убедиться в этом сам, но наивное использование ufw может обнажить хост. Я бы посоветовал ufw всегда вставлять запрещающие правила перед всеми разрешающими правилами в качестве меры предосторожности.
Перезагрузить сервис sudo ufw reload
и судо service iptables restart
, Не забудьте разрешить ssh, если вы находитесь на сервере.
Во-первых, UFW очень прост, и я считаю его ужасным. Кажется, что это очень легко, но по какой-то причине люди, которые разрабатывают такие вещи, думают, что это легко означает запутать вас и затруднить изучение чего-либо, вместо того, чтобы просто делать то, что вы просите, даже если это иногда означает блокировку себя или блокирование неправильных сетей. Вам, вероятно, стоит использовать что-нибудь получше, например shorewall.
Во-вторых, я предлагаю всякий раз, когда вы используете расплывчатый и ограниченный пользовательский интерфейс UFW, также проверяйте iptables -nvL
чтобы получить четкое и полное описание того, что такое текущая конфигурация iptables. Увидев этот вывод, я уверен, что ваша проблема будет ясна (если не для вас, то для меня), но не уверен, сможете ли вы затем найти команду UFW для создания правильных настроек iptables (я никогда не устраняю неполадки UFW так далеко ... Я просто заменяю его на shorewall, если вообще возникнут проблемы).
бегать sudo ufw enable
или sudo ufw reload
если он уже включен после создания правила (правил)