Установка и использование ipset

ipset — инструмент состоящий из модуля ядра, библиотек и утилиты, позволяющий организовать список сетей, IP или MAC адресов и т.д., который очень удобно использовать например с IPTables.

Команда установки в Ubuntu:

sudo apt install ipset

Установка в CentOS:

yum install ipset

Приведу возможные типы списка:
net (сети, например 192.168.5.0/24)
ip (только ip, например 192.168.5.5)
mac (MAC адреса, например 11:22:33:44:55:66)
port (порты, удобно при создании списков ip,port)
iface (сетевые интерфейсы, удобно при создании списков ip,iface)

Приведу несколько примеров создания списка (где test — имя списка):

ipset -N test nethash
ipset create test nethash
ipset create test hash:net
ipset create test hash:ip
ipset create test hash:ip,port
ipset create test hash:ip,iface
ipset create test hash:mac

Приведу примеры добавления данных в списки:

ipset add test 192.168.5.5/24
ipset add test 192.168.5.5
ipset add test 192.168.5.5,80
ipset add test 192.168.5.5,udp:1812
ipset add test 192.168.5.5,eth0
ipset add test 11:22:33:44:55:66

Пример удаления элемента из списка:

ipset del test 192.168.5.5

Если добавляются одинаковые элементы, например скриптами, и чтобы не отображались лишние сообщения, что элемент уже добавлен, добавим к команде «-exist», например:

ipset add test 192.168.5.5 -exist

ipset не даст добавить в список одинаковые элементы, если добавить несколько одинаковых, в списке все равно будет один.

Пример просмотра списков:

ipset -L
ipset -L | wc -l
ipset --list

Просмотр конкретного списка (где test — имя списка):

ipset -L test

Переименовать список можно так:

ipset –e OLDNAME NEWNAME

Теперь когда у нас создан список, вручную или его заполняет скрипт, используя ipset и iptables например, очень удобно запретить доступ к серверу всем адресам которые есть в списке:

iptables -I INPUT -m set --match-set test src -j DROP

Или так (разрешить доступ всем, кроме адресов в списке):

iptables -I INPUT -m set ! --match-set test src -j ACCEPT

Смотрите также мои статьи:
Скрипт добавления IP адресов из файла в ipset
Настройка IPTables

Did my article help you? How about buying me a cup of coffee as an encouragement? Buy me a coffe.

Оставьте комментарий

Добавить комментарий