ipset (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
ipset
. Дата последней синхронизации: 10 декабря 2023. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Ссылки по теме
Межсетевой экран
iptables (Русский)
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
.
Важно
Однажды наблюдалась (редкая) ошибка
FS#79674
, которая привела к сбою
iptables.service
из-за отсутствия ipsets, несмотря на успешное выполнение
ipset.service
. Используйте избыточную защиту и подумайте об использовании скрипта мониторинга, если вам нужна 100% уверенность в том, что ваш брандмауэр работает.
Блокировка с помощью PeerGuardian и других черных списков
Инструмент
pg2ipset-git
AUR
от автора Maeyanie.com в сочетании со скриптом
ipset-update.sh
может использоваться с cron для автоматического обновления различных чёрных списков. На данный момент по умолчанию реализована блокировка: страны, узла выхода Tor и списка Bluetack pg2.
Другие команды
Для просмотра наборов:
# ipset list
или
# ipset -L
Для удаления набора:
# ipset destroy
myset
или
# ipset -X
myset
Для удаления всех наборов:
# ipset destroy
Дополнительную информацию см. в
ipset(8)
.
Оптимизация
Инструмент
iprange
AUR
может помочь уменьшить количество записей в ipset.conf путём объединения соседних диапазонов или удаления пересекающихся диапазонов. Это может повысить производительность маршрутизатора/брандмауэра, если размер таблицы огромен. Этот инструмент также может преобразовать список имён хостов в IP-адреса.
Хоть ipset и спроектирован так, чтобы его можно было хорошо масштабировать, это не означает, что можно делать до бесконечности. В частности, в некоторых странах очень большое пространство IP-адресов, что делает геоблокировку неэффективной.