log frontend and backend

IPTABLES и IPSET

Для успешного исключения проникновения и внедрения вредоносных кодов в структуру сайтов необходимо использовать функционал 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