ipset (Русский)
ipset — это сопутствующее приложение для межсетевого экрана Linux iptables. Он позволяет, помимо прочего, задавать правила для быстрой и простой блокировки набора IP-адресов.
Установка
Установите пакет ipset.
Настройка
Блокировка списка сетей
Для начала создайте новый «набор» сетевых адресов. Эта команда создаст новый «хэш» набор сетевых адресов с названием «myset».
# ipset create myset hash:net
или
# ipset -N myset nethash
Добавьте в набор любые IP-адреса, которые вы хотите заблокировать.
# ipset add myset 14.144.0.0/12 # ipset add myset 27.8.0.0/13 # ipset add myset 58.16.0.0/15 # ipset add myset 1.1.1.0/24
Затем настройте iptables для блокировки любого адреса из этого набора. Данная команда добавляет правило в цепочку INPUT, которое отбрасывает любые входящие пакеты с источником из множества IP-адресов, определенного как «myset».
# iptables -I INPUT -m set --match-set myset src -j DROP
Блокировка списка IP-адресов
Начните с создания нового «набора» IP-адресов. Эта команда создаст новый «хеш» набор IP-адресов с именем «myset-ip».
# ipset create myset-ip hash:ip
или
# ipset -N myset-ip iphash
Добавьте в набор любые IP-адреса, которые вы хотите заблокировать.
# ipset add myset-ip 1.1.1.1 # ipset add myset-ip 2.2.2.2
Наконец, настройте iptables для блокировки любого адреса из этого набора.
# iptables -I INPUT -m set --match-set myset-ip src -j DROP
Делаем ipset постоянным
Созданный вами ipset хранится в памяти и исчезнет после перезагрузки. Чтобы сделать ipset постоянным, вам необходимо сделать следующее:
Во-первых, сохраните ipset в /etc/ipset.conf
:
# ipset save > /etc/ipset.conf
Затем включите ipset.service
, который работает аналогично iptables.service
для восстановления правил iptables.
iptables.service
из-за отсутствия ipsets, несмотря на успешное выполнение ipset.service
. Используйте избыточную защиту и подумайте об использовании скрипта мониторинга, если вам нужна 100% уверенность в том, что ваш брандмауэр работает.Блокировка с помощью PeerGuardian и других черных списков
Инструмент pg2ipset-gitAUR от автора Maeyanie.com в сочетании со скриптом ipset-update.sh может использоваться с cron для автоматического обновления различных чёрных списков. На данный момент по умолчанию реализована блокировка: страны, узла выхода Tor и списка Bluetack pg2.
Другие команды
Для просмотра наборов:
# ipset list
или
# ipset -L
Для удаления набора:
# ipset destroy myset
или
# ipset -X myset
Для удаления всех наборов:
# ipset destroy
Дополнительную информацию см. в ipset(8).
Оптимизация
Инструмент iprangeAUR может помочь уменьшить количество записей в ipset.conf путём объединения соседних диапазонов или удаления пересекающихся диапазонов. Это может повысить производительность маршрутизатора/брандмауэра, если размер таблицы огромен. Этот инструмент также может преобразовать список имён хостов в IP-адреса.
Хоть ipset и спроектирован так, чтобы его можно было хорошо масштабировать, это не означает, что можно делать до бесконечности. В частности, в некоторых странах очень большое пространство IP-адресов, что делает геоблокировку неэффективной.