🐧 Как использовать команду ipset на Linux

by itisgood

IP-сеты- это хранимые коллекции IP-адресов, сетевых диапазонов, MAC-адресов, номеров портов и имен сетевых интерфейсов.

Инструмент iptables может использовать наборы IP-адресов для более эффективного подбора правил.

Например, допустим, вы хотите отбрасывать трафик, исходящий из одного из нескольких диапазонов IP-адресов, которые, как вы знаете, являются вредоносными.

Вместо того чтобы настраивать правила для каждого диапазона в iptables напрямую, вы можете создать набор IP-адресов и затем ссылаться на него в правиле iptables.

Это делает ваши сеты правил динамичными и, следовательно, более простыми в настройке; всякий раз, когда вам нужно добавить или поменять местами сетевые идентификаторы, обрабатываемые брандмауэром, вы просто меняете набор IP.

Команда ipset позволяет создавать и изменять IP-сеты.

Сначала вам нужно задать имя, способ хранения и тип данных для вашего набора, например:

# ipset create range_set hash:net

В данном случае range_set – это имя, hash – метод хранения, а net – тип данных.

Затем вы можете добавить диапазоны в набор:

# ipset add range_set 178.137.87.0/24
# ipset add range_set 46.148.22.0/24

Затем с помощью iptables вы можете настроить правило для отбрасывания трафика, источник которого соответствует диапазонам в этом наборе:

# iptables -I INPUT -m set --match-set range_set src -j DROP

см.также:

Альтернативный вариант – дропать трафик, пункт назначения которого соответствует этому набору:

iptables -I OUTPUT -m set --match-set range_set dst -j DROP

СИНТАКС

Синтаксис команды ipset следующий:

# ipset [options] {command}

Блокировка списка сетей

1. Начните с создания нового “набора” сетевых адресов.

Система создаст новый “хэш” набор сетевых адресов “net” с именем “myset”.

# ipset create myset hash:net

или

# ipset -N myset nethash

2. Добавьте в набор любой 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

3. Наконец, настройте iptables на блокирование любого адреса из этого набора.

Эта команда добавит правило в верхнюю часть цепочки “INPUT”, чтобы “-m” сопоставить набор с именем “myset” из ipset (-match-set), когда это пакет “src”, и “DROP”, или блокировать его.

# iptables -I INPUT -m set --match-set myset src -j DROP

Блокировка списка IP-адресов

1. Начните с создания нового “набора” ip-адресов.

Система создаст новый “хэш” набор “ip” адресов с именем “myset-ip”.

# ipset create myset-ip hash:ip

или

# ipset -N myset-ip iphash

2. Добавьте в набор любой IP-адрес, который вы хотите заблокировать.

# ipset add myset-ip 1.1.1.1
# ipset add myset-ip 2.2.2.2

3. Наконец, настройте iptables на блокировку любого адреса из этого набора.

# iptables -I INPUT -m set --match-set myset-ip src -j DROP

Как сделать ipset постоянным

Созданный вами ipset хранится в памяти и исчезает после перезагрузки.

Чтобы сделать ipset постоянным, необходимо выполнить следующие действия:

1. Сначала сохраните ipset в файле /etc/ipset.conf:

# ipset save > /etc/ipset.conf

2. Затем включите ipset.service, который работает аналогично iptables.service для восстановления правил iptables.

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

1. Чтобы просмотреть наборы:

# ipset list

или

# ipset -L

2. Чтобы удалить набор с именем “myset”:

# ipset destroy myset

или

# ipset -X myset

3. Чтобы удалить все наборы:

# ipset destroy

You may also like

Leave a Comment