ip ripe блокировка через iptables и ipset

Список сетей
ftp://ftp.ripe.net/ripe/stats/delegated-ripencc-latest

Спамеры
http://www.stopforumspam.com/downloads/listed_ip_1.zip

Сразу примеры скриптов,потом буквы
=============================================
#!/bin/bash
echo -n «Applying blacklist to IPSET…»
ipset -N blacklist iphash
xfile=$(cat /etc/blacklist/listed_ip_1.txt)
for ipaddr in $xfile
do
ipset -A blacklist $ipaddr
done
echo «…Done»
echo -n «Applying blacklist to Netfilter…»
iptables -v -I INPUT -m set —match-set blacklist src -j DROP
iptables -v -I INPUT -m set —match-set blacklist src -j LOG —log-prefix «DROP blacklist entry»
echo «…Done»
==============================================
или
блокировка по geoip
==============================================
To block IP addresses based on geo location (country) here is a simple shellscript:
#!/bin/sh
ipset -N geoblock nethash
for IP in $(wget -O – http://www.ipdeny.com/ipblocks/data/countries/{cn,kr,pk,tw,sg,hk,pe}.zone)
do
ipset -A geoblock $IP
done
iptables -A INPUT -m set –set geoblock src -j DROP
==============================================
Может быть интересно
==============================================
To auto-timeout a rule (and not generate any message if it already exists):
ipset create test hash:ip timeout 10
ipset add —exists test 91.83.231.25 120 (overwriting the default 10 seconds value)

To auto-learn a MAC address: (and define a range)
ipset create test bitmap:ip,mac range 192.168.0.0/24
ipset add test 192.168.0.1,11:11:22:22:11:11
ipset add test 192.168.0.2 (this one will auto-learn)

Если Hash is full, cannot add more elements
Размер хэша увеличить надо, например:
ipset create blocktest hash:ip hashsize 16777216 maxelem 16777216
==============================================
Ipset позволяет использовать большие таблицы IP и MAC адресов, подсетей, номеров портов совместно с iptables (подключение производится через одно правило, в таблице используется хэширование). Возможно быстрое обновление списка целиком.

Официальная страница — ipset.netfilter.org.
ipset представляет из себя модуль ядра ip_set, ряд вспомогательных библиотек и утилиту ipset для задания параметров.
Установка тривиальна, во всех современных дистрибутивах присутствует пакет с одноименным названием.
Модуль ядра можно проверить командой:
# modprobe ipt_set
Добавить в /etc/sysconfig/iptables-config для автозагрузки

В Debian 7 и выше:
# apt-get install ipset

CentOS / RHEL (используйте EPEL репозиторий):
# yum install ipset

Добавляем (A — add) ip адреса blacklist и смотрим (L — list) содержимое set:
# ipset -A blacklist 192.168.0.211
# ipset -A blacklist 10.10.0.23
# ipset -L blacklist
Name: blacklist
Type: hash:ip
Revision: 0
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16512
References: 0
Members:
10.10.0.23
192.168.0.222

Посмотреть на наш ipset и его размер:
# ipset —list -terse
Name: blacklist
Type: hash:ip
Revision: 0
Header: family inet hashsize 4096 maxelem 65536
Size in memory: 142800
References: 0

Удаляем ip адреса из blacklist set (D — delete):
# ipset -D blacklist 192.168.0.222
# ipset -L blacklist
Name: blacklist
Type: hash:ip
Revision: 0
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16512
References: 0
Members:
10.10.0.23

Проверяем, есть ли ip в blacklist set (T — test):
# ipset -T blacklist 10.10.0.23
10.10.0.23 is in set blacklist.

Удаляем все ip адреса из blacklist set (F — flush):
# ipset -F blacklist

Удаляем сам set (X):
# ipset -X blacklist