Просто бесконечно проста с учетом того, что ipset теперь идет в поставке ядра:
Огромное преимущество ipset в том, что он сам проверяет на наличие дубликатов (на самом деле это приятное следствие из его структуры данных - хэша) и не нужно заниматься этим самостоятельно:
Удалять IP из бана нужно следующим образом:
Полностью очистить спсиок блокировки можно так:
Использования модуля при ну очень большом числе IP показывает, что он весьма стабилен и отлично работает:
Еще будет полезной фича ipset save, с помощью которой можно сделать восстановление/сохранение содержимого списков при перезагрузке:
Источники: http://lmn.name/archives/331 http://daemonkeeper.net/781/mass-blocking-ip-addresses-with-ipset/
dpkg -S /lib/modules/3.2.0-4-amd64/kernel/net/netfilter/ipset/ip_set_list_set.koСтавим зависимости:
linux-image-3.2.0-4-amd64: /lib/modules/3.2.0-4-amd64/kernel/net/netfilter/ipset/ip_set_list_set.ko
apt-get install ipsetСоздаем хэш:
ipset --create blacklist iphash --hashsize 4096Смотрим его содержимое:
ipset --listДобавляем несколько IP в список блокировки:
Name: blacklist
Type: hash:ip
Header: family inet hashsize 4096 maxelem 65536
Size in memory: 65656
References: 0
Members:
ipset --add blacklist 41.231.136.121Убеждаемся, что они добавлены:
ipset --add blacklist 37.236.253.170
ipset --add blacklist 37.236.239.42
ipset --listДобавляем правило iptables для отсечения товарищей, кто в этом списке:
Name: blacklist
Type: hash:ip
Header: family inet hashsize 4096 maxelem 65536
Size in memory: 65704
References: 0
Members:
41.231.136.121
37.236.253.170
37.236.239.42
iptables -I INPUT -m set --match-set blacklist src -p TCP --destination-port 80 -j DROPВ итоге это будет выглядеть примерно так:
iptables -nvL
Chain INPUT (policy ACCEPT 2822 packets, 188K bytes)
pkts bytes target prot opt in out source destination
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set blacklist src tcp dpt:80
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 1882 packets, 320K bytes)
pkts bytes target prot opt in out source destination
Огромное преимущество ipset в том, что он сам проверяет на наличие дубликатов (на самом деле это приятное следствие из его структуры данных - хэша) и не нужно заниматься этим самостоятельно:
ipset --add blacklist 41.176.136.101
ipset v4.2: 41.176.136.101 is already in set blacklist.
Удалять IP из бана нужно следующим образом:
ipset --del blacklist 41.176.136.101
Полностью очистить спсиок блокировки можно так:
ipset --flush blacklist
Использования модуля при ну очень большом числе IP показывает, что он весьма стабилен и отлично работает:
ipset -L | wc -lБаги/фичи: "ipset v4.2: IP/port/element is outside of the set or set is full", при достжении размера очереди 65 тысячам IP:
43815
ipset -L |wc -lФикс - нет фикса (http://flug.org.ua/lists/debian-russian/71086/) Как обходник можно создать кучу хэшей и пропускать трафик через них.
65541
Еще будет полезной фича ipset save, с помощью которой можно сделать восстановление/сохранение содержимого списков при перезагрузке:
ipset save
create blacklist hash:ip family inet hashsize 4096 maxelem 65536
add blacklist 41.231.136.121
add blacklist 37.236.253.170
add blacklist 37.236.239.42
Источники: http://lmn.name/archives/331 http://daemonkeeper.net/781/mass-blocking-ip-addresses-with-ipset/
No comments :
Post a Comment
Note: only a member of this blog may post a comment.