hacker

Блокируем потенциально опасные ip-адреса. Версия 2.0

Паранойя для системного администратора является нормальным явлением. Все потенциальные риски рано или поздно срабатывают, последний взлом сайта OpenSSL является тому хорошим подтверждением и, наверное, первым официальным взломом виртуальной машины через уязвимость гипервизора.

Я уже описывал вариант блокирования потенциально опасных ip-адресов, сегодня я хочу предложить еще один вариант, с использованием провайдера списка потенциально опасных ip-адресов OpenBL.org. Для сбора информации OpenBL.org использует сеть собственных серверов (в основном виртуальных), которые выступают в качестве приманок и фиксируют атаки типа подбора пароля или сканирования на известные уязвимости популярных веб-приложений (phpMyAdmin, WordPress, phpBB и т.д.).

Для блокировки можно использовать null route (backhole) или . Второй вариант дает возможность посмотреть статистику, а в совокупности с ipset обеспечивает приемлемую производительность.

Потребуется создать таблицу ipset:

 ipset create openbl hash:ip hashsize 4096 family inet 

И соответствующие правила iptables:

 iptables -N openbl iptables -I INPUT -p tcp -m set --match-set openbl src -m multiport --dports 21,22,23,25,80,110,143,443,587,993,995 -j openbl iptables -A openbl -j DROP 

Полную версию скрипта я здесь приводить не буду, ее можно скачать по ссылке: openbl.sh.gz

Статистика после суток использования выглядит следующим образом:

 -bash-4.1$ iptables -nv -L openbl Chain openbl (1 references) pkts bytes target prot opt in out source destination 78 3296 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 

Для того чтобы скрипт создал таблицу ipset и правила iptables достаточно запустить его с аргументом «start»:

 -bash-4.1$ ./openbl.sh start 

Так же можно добавить обновление списка ip-адресов в cron:

 5 * * * * openbl.sh update