Записки Инженера
  • Главная
  • Резюме
  • Портфолио
  • Блог
  • Контакт
Ban IP

IPTABLES и IPSET

Volodymyr Блог 26 августа 2026

Для успешного исключения проникновения и внедрения вредоносных кодов в структуру сайтов необходимо использовать функционал Iptables и Ipset.
Ipset позволяет на уровне сервера создавать списки IP-адресов, с которых идут массовый brute-force, сканирование директорий, отправка запросов типа: POST /index.php?option=com_ajax&plugin=helixultimate&format=json&task=saveMegaMenuSettings HTTP/1.1 и POST /index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon HTTP/1.1.

Запуск IPTABLES и IPSET

Сначала проверяем наличие на сервере работающего на ОС Debian-12 пакета Ipset. Может он установлен и просто не настроен.

ipset version

Поскольку команда ipset version дала command not found, значит пакет отсутствует. Установка: apt update и apt install ipset.

apt update

Bookworm upgrade

ipset persistent

После успешной инсталляции проверяем: ipset list. Пустой вывод говорит, что ipset установлен, но отсутствует черный список - Blacklist.

ipset list

 

Настройка IPSET

Для работы IPSET требуется Blacklist. Поэтому формируем черный список. Создаём универсальный blacklist. Используем hash:net, чтобы Fail2Ban мог писать туда IP, и подсети:
ipset create blacklist hash:net family inet hashsize 4096 maxelem 200000.

Для того, чтобы видеть по каким адресам из черного списка идет срабатывание Iptables, то есть видеть статистику надо запустить логирование:
iptables -I INPUT 1 -m set --match-set blacklist src -j LOG --log-prefix "IPSET-BLACKLIST: " --log-level 4.

ipset log and drop

Где IPSET-BLACKLIST – название нашего лог файла.
Формируем для Iptables правило: iptables -I INPUT 2 -m set --match-set blacklist src -j DROP
Сохранение конфигурации Iptables: netfilter-persistent save и iptables-save > /etc/iptables/rules.v4

rules_v4

Добавляем IP-адрес в черный список, командой: ipset add blacklist
Удаление адреса из списка: ipset del blacklist
Сохранение списка: ipset save > /etc/ipset.conf

add blacklist

eM Client не видит Wildcard-сертификат

eM Client не видит Wildcard-сертификат

Volodymyr Блог 21 августа 2026

При настройке почтового клиента eM Client неожиданно возникла проблема, которой раньше не было. До этого настройка почтовых клиентов Outlook и Mozilla Thunderbird для приема писем от сервера не вызывала никаких сбоев. Все происходило автоматически, только email-адрес и пароль требовалось ввести при создании учетных записей в программах.
Также прием сообщений от администрируемого сервера, работающего на ОС Debain-12 свободно осуществлялась на Gmail, Proton и Zoho.
Ради справедливости стоит отметить, что от некоторых пользователей адресов приходили уведомления о сбоях при попытках получения писем.

Проверка сертификатов

eM Client при создании учетной записи сразу выводит: «Имя хоста не совпадает с именем, указанным в сертификате» и данные сертификата:

  • Subject: O="Org"
  • Issuer: O="Org"
  • Valid until: 21.12.2034

Значит почтовый клиент получает не тот сертификат, который прописан при помощи FastPanel на сервере.
На сервере прописан Wildcard Positive перекрывающий поддомены, поэтому почтовый домен должен иметь защищенное соединение.
Для работы eM Client нужно, чтобы обеспечивалось: RFC 6125 и точное совпадение hostname CN/SAN.
FastPanel показывает в настройках почты, что для почтовых клиентов надо использовать порты для: IMAP – 143, SMTP – 587 и POP3 – 110.
Через SSH делаем проверку сертификатов по этим портам.
Ключевые строки отработки команды openssl s_client -connect -starttls говорят сами за себя – подтверждая, что Wildcard не подключается.

-starttls pop3

Для решения проблемы открываем файл конфигурации SSL в Dovecot. Для этого заходим в директорию: /etc/dovecot/conf.d и редактируем 10-ssl.conf. Просматривая файл видим, что ssl_cert и ssl_key обращаются к Dovecot, а не к Wildcard.

private_dovecot_key

Прописываем правильные пути до ключа и файла сертификата Wildcard Positive.

Ok, Dovecot

После внесений изменений обязательно делаем перезапуск: systemctl restart dovecot и проверяем сертификаты по портам.

ssl pop3

Теперь все почтовые порты отдают корректный Wildcard Positive сертификат Sectigo и настройка eM Client сразу активируется.

 

Fail2Ban

Fail2Ban

Volodymyr Блог 17 августа 2026

Fail2Ban сканирует файлы журналов сервера, и при помощи фильтров блокирует IP-адреса. Это происходит за счет обновления правил брандмауэра системы, чтобы отклонять новые подключения с этих IP-адресов в течение настраиваемого периода времени. Правильное использование Fail2Ban позволяет существенно ограничить зловредное проникновение и нивелировать попытки несанкционированных запросов до CMS.

Установка и запуск

Fail2Ban входит в состав приложений Fastpanel - панели управления сервером. Если Fail2Ban уже установлен и запущен, то Fastpanel покажет соответствующий статус и программа будет видна в списке активных сервисов и включена в автозагрузку.

Fail2ban Fastpanel

После инсталляции Fail2Ban надо обязательно проверить ее статус по серверу через SSH командой: systemctl status fail2ban.

systemctl status fail2ban

На скрине показано, что Fail2Ban у нас не работает. Причину падения определяем по логу самой программы, он пишется на Debian-12-Fastpanel в директорию: /var/log. Просматривая лог обнаруживаем запись: «Backend 'systemd' failed to initialize due to No module named 'systemd'».
Следовательно, необходимо установить библиотеку Python для работы с логами systemd-journald. Из-за этого сервис Fail2Ban завершает работу с ошибкой при старте.
Устанавливаем недостающий пакет python3-systemd при помощи команды: apt update && apt install python3-systemd -y.

systemd-journald

После успешной инсталляции python3-systemd делаем systemctl restart fail2ban и проверку статуса systemctl status fail2ban.

systemctl status fail2ban

По-умолчанию, Fail2Ban всегда оснащен фильтром sshd и при старте его запускает.

sshd

Сегодня я лучше, чем вчера, а завтра я буду лучше, чем сегодня!
© 2026 automationfiles.info - vlniemtsov
  • Главная
  • Резюме
  • Портфолио
  • Блог
  • Контакт
  • +380 95 569 05 24
  • +371 287 319 62
  • ing@automationfiles.info