ipset (Русский) - ArchWiki

Jump to content
From ArchWiki

Состояние перевода: На этой странице представлен перевод статьи 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-gitAUR от автора Maeyanie.com в сочетании со скриптом ipset-update.sh может использоваться с cron для автоматического обновления различных чёрных списков. На данный момент по умолчанию реализована блокировка: страны, узла выхода Tor и списка Bluetrack pg2.

## Другие команды

Для просмотра наборов:

    # ipset list

или

    # ipset -L

Для удаления набора:

    # ipset destroy myset

или

    # ipset -X myset

Для удаления всех наборов:

    # ipset destroy

Дополнительную информацию см. в ipset(8).

## Оптимизация

Инструмент iprangeAUR может помочь уменьшить количество записей в ipset.conf путём объединения соседних диапазонов или удаления пересекающихся диапазонов. Это может повысить производительность маршрутизатора/брандмауэра, если размер таблицы огромен. Этот инструмент также может преобразовать список имён хостов в IP-адреса.

Хоть ipset и спроектирован так, чтобы его можно было хорошо масштабировать, это не означает, что можно делать до бесконечности. В частности, в некоторых странах очень большое пространство IP-адресов, что делает геоблокировку неэффективной.

Category:

- Firewalls (Русский)