ipset одно правило для множества ip

IPset это утилита командной строки, которая используется для администрирования базы под названием IP и находиться внутри ядра Linux. Набор IP может хранить IP-адрес, номера портов сети (TCP / UDP), MAC – адрес, имена интерфейсов или их комбинации в пути, что обеспечивает скорость молнии при совмещении записи против набора. Это ассоциативное приложение Руководство по iptables: Настройка и оптимизация фаервола Linux для брандмауэра в Linux, который позволяет нам с правилами установок быстро и легко заблокировать набор IP-адреса.

Утилита ipset дает возможность написать правило, только одно, а не использовать много однотипных правил iptables что позволяет ускорить работу iptables.

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

# aptitude install ipset
  1. Создается список:
    ipset -N dropips iphash

    , где dropips — название списка, iphash — тип списка, служит для хранения IP-адресов, хэширования предотвращает добавление в список дублирующих IP-адресов. Существуют типы списков для работы с ip-адресами, подсетями, портами, mac-адресами.

  2. Добавляются IP-адреса в список:
    ipset -A dropips 192.168.95.7

    или считывать из файла при помощи скрипта

    IST="/usr/sbin/ipset"
    # IPSET
    $IST -N dropips iphash
    $CAT $PATH/ipset.txt | (
    while read ip;
    do 
    $IST -A dropips $ip
    done
    );
    $IPT -A INPUT -m set --match-set dropips src -j DROP
    # END IPSET
  3. Создается правило для использования списка:
    iptables -A INPUT -m set --match-set dropips src -j DROP

    -m set указывает на использование модуля ipset, –set dropips указывает список IP-адресов, src указывает на то, что сверять нужно только IP-источника. Таким образом, будут отбрасываться все пакеты с IP-адресов, указанных в списке dropips.

  • Просмотреть список ipset
    # ipset -L

ipset v2.5.0: Error from kernel: Protocol not available

Устранение ошибки для Debian Wheezy, Ubuntu 11.10. Модуль ядра для ipset нужно установить с помощью module-assistant.

# aptitude install ipset netfilter-extensions-source xtables-addons-source
# uname -a
Linux spar 3.0.0-1-amd64 #1 SMP Sat Aug 27 16:21:11 UTC 2011 x86_64 GNU/Linux
# aptitude install linux-headers-3.0.0-1-all-amd64
# cd /usr/src
# tar xjf netfilter-extensions.tar.bz2

Компиляция модуля. m-a a-i сокращение от module-assistant auto-install.

# module-assistant prepare
# m-a a-i netfilter-extensions
# module-assistant prepare
# module-assistant auto-install xtables-addons-source
# shutdown -r now
PQ VPS сервера в 28+ странах.