IPset

libmnl:
“wget http://www.netfilter.org/projects/libmnl/files/libmnl-1.0.1.tar.bz2”
“tar -xf libmnl-1.0.1.tar.bz2”
“cd libmnl-1.0.1”
“./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include”
“make”
“make install”

IPset:
“wget http://ipset.netfilter.org/ipset-6.9.1.tar.bz2”
“tar -xf ipset-6.9.1.tar.bz2”
“cd ipset-6.9.1”
“./autogen.sh”
“./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include –enable-verbose”
Bei SLES 11 spinnt make und setzt den Ausführungsmodus für die neu erzeugten Files flasch daher mind. 20 mal “chmod 777 -R /root/temp/ipset-6.20” ausführen und “make” immer weider erneut ausführen bis alles kompiliert ist 🙁
“make”
“make modules”
“make install”
“make modules_install”
“make test”

“man ipset > ipset_man.txt”

#Kommandos############################################
Vorher alle Limits abschalten

ulimit -c unlimited
ulimit -d unlimited
ulimit -e unlimited
ulimit -f unlimited
ulimit -i unlimited
ulimit -l unlimited
ulimit -m unlimited
ulimit -n unlimited
ulimit -n 9999
ulimit -q unlimited
ulimit -r unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -u unlimited
ulimit -v unlimited
ulimit -x unlimited

echo 1 >  /proc/sys/vm/overcommit_memory
Falls mit Ratio gearbeitet wird
echo 2 >  /proc/sys/vm/overcommit_memory
echo 90 > /proc/sys/vm/overcommit_ratio
oder eventuell
echo “524288 (512MB) oder 1048576 (1GB)” > /proc/sys/vm/min_free_kbytes

“vi /boot/grub/menu.lst” ->
…. vmalloc=5000M

IPset Reglen einfügen und via IPtables matchen bzw. DROPen
“ipset -N new-set hash:ip” oder “ipset create antip2p hash:ip family inet hashsize 2000000 maxelem 4294967295”
“ipset add new-set 192.168.1.10-192.168.1.20”
“ipset -L”
“ipset test new-set 192.168.1.14”
“iptables -A INPUT -m set –match-set new-set src -j DROP”

“ipset -L | wc -l” = Zeigt die Anzahl der Regeln an
“ipset save new-set > datei.txt” = Speichert alle Regeln in eine Datei ab.
“ipset destroy” = Löscht alle Sets und Regeln.
“cat antip2p.txt | ipset restore -exist” = Wiederherstellen der Regeln und Set. Bei ca. 50 mio Adressen stürtzt Linux ab.

#I-Block Listen einlesen##
cat /root/scripte/ip_block_liste/iblock_listen/* \
| sed -n ‘s/^\(.*\):\([0-9.]\+-[0-9.]\+\).*$/add antip2p \2/p’ \
) | tee /root/scripte/ip_block_liste/antip2p.txt > /dev/null

#Nützliche Kommandos######
“find . -type f -iname “*” -print0 | xargs -0 grep -i :224.0.0.0″ oder “”find . -type f -iname “*” -print0 | xargs -0 grep -i -224.0.0.0″ = um einen exacten match zu laden

Siehe auch Doku “P2P i-Block Lists”

#Fehlermeldungen#########################################################################################################################################################
Fehlermeldung: Stürtzt bei ca. 16 mio Adressen ab. Wenn der “hashsize” noch größer gewählt wird stützt das OS komplett ab und sämtliche Prozesse werden beenden.
May  2 10:38:34 xenvm kernel: [ 2206.656155] ipset: page allocation failure: order:0, mode:0x20
May  2 10:38:34 xenvm kernel: [ 2206.656162] Pid: 4378, comm: ipset Not tainted 3.1.7-default #1
May  2 10:38:34 xenvm kernel: [ 2206.656167] Call Trace:
May  2 10:38:34 xenvm kernel: [ 2206.656180]  [<ffffffff81100ace>] warn_alloc_failed+0xee/0x160
May  2 10:38:34 xenvm kernel: [ 2206.656187]  [<ffffffff811049c9>] __alloc_pages_nodemask+0x629/0x860
May  2 10:38:34 xenvm kernel: [ 2206.656195]  [<ffffffff81141891>] kmem_getpages+0x51/0x150
May  2 10:38:34 xenvm kernel: [ 2206.656200]  [<ffffffff81142293>] fallback_alloc+0x163/0x220
May  2 10:38:34 xenvm kernel: [ 2206.656206]  [<ffffffff81141fc1>] ? cache_grow+0x2a1/0x2c0
May  2 10:38:34 xenvm kernel: [ 2206.656212]  [<ffffffff81142072>] ____cache_alloc_node+0x92/0x150
May  2 10:38:34 xenvm kernel: [ 2206.656220]  [<ffffffff81d07a07>] ? cache_alloc_refill+0x19e/0x1e5
May  2 10:38:34 xenvm kernel: [ 2206.656226]  [<ffffffff8114294d>] __kmalloc+0x16d/0x1f0
May  2 10:38:34 xenvm kernel: [ 2206.656233]  [<ffffffff81a4855f>] ? hash_ip4_elem_add.constprop.12+0x6f/0xc0
May  2 10:38:34 xenvm kernel: [ 2206.656239]  [<ffffffff81a4855f>] hash_ip4_elem_add.constprop.12+0x6f/0xc0
May  2 10:38:34 xenvm kernel: [ 2206.656245]  [<ffffffff81a48c19>] ? hash_ip4_resize+0xf9/0x260
May  2 10:38:34 xenvm kernel: [ 2206.656250]  [<ffffffff81a48c63>] hash_ip4_resize+0x143/0x260
May  2 10:38:34 xenvm kernel: [ 2206.656255]  [<ffffffff81a46505>] ? hash_ip4_uadt+0x195/0x260
May  2 10:38:34 xenvm kernel: [ 2206.656262]  [<ffffffff81a4108b>] call_ad+0xbb/0x260
May  2 10:38:34 xenvm kernel: [ 2206.656269]  [<ffffffff81d28969>] ? _raw_spin_lock+0x9/0x10
May  2 10:38:34 xenvm kernel: [ 2206.656276]  [<ffffffff81734020>] ? nla_parse+0x90/0xe0
May  2 10:38:34 xenvm kernel: [ 2206.656281]  [<ffffffff81a41503>] ip_set_uadd+0x203/0x2b0
May  2 10:38:34 xenvm kernel: [ 2206.656288]  [<ffffffff81b17fff>] ? in6_dump_addrs.isra.27+0xdf/0x190
May  2 10:38:34 xenvm kernel: [ 2206.656295]  [<ffffffff81a142cf>] nfnetlink_rcv_msg+0x1ef/0x230
May  2 10:38:34 xenvm kernel: [ 2206.656301]  [<ffffffff81a1410a>] ? nfnetlink_rcv_msg+0x2a/0x230
May  2 10:38:34 xenvm kernel: [ 2206.656306]  [<ffffffff81a140e0>] ? nfnl_lock+0x20/0x20
May  2 10:38:34 xenvm kernel: [ 2206.656312]  [<ffffffff81a10d69>] netlink_rcv_skb+0xa9/0xd0
May  2 10:38:34 xenvm kernel: [ 2206.656318]  [<ffffffff819a2f1a>] ? __alloc_skb+0x4a/0x230
May  2 10:38:34 xenvm kernel: [ 2206.656323]  [<ffffffff81a14010>] nfnetlink_rcv+0x10/0x20
May  2 10:38:34 xenvm kernel: [ 2206.656328]  [<ffffffff81a10678>] netlink_unicast+0x2a8/0x2f0
May  2 10:38:34 xenvm kernel: [ 2206.656333]  [<ffffffff819a2f4e>] ? __alloc_skb+0x7e/0x230
May  2 10:38:34 xenvm kernel: [ 2206.656339]  [<ffffffff81a1098a>] netlink_sendmsg+0x2ca/0x360
May  2 10:38:34 xenvm kernel: [ 2206.656345]  [<ffffffff81999836>] sock_sendmsg+0x106/0x120
May  2 10:38:34 xenvm kernel: [ 2206.656351]  [<ffffffff819988be>] ? sock_destroy_inode+0x2e/0x40
May  2 10:38:34 xenvm kernel: [ 2206.656357]  [<ffffffff8116ffc7>] ? destroy_inode+0x37/0x60
May  2 10:38:34 xenvm kernel: [ 2206.656363]  [<ffffffff8199c5a9>] sys_sendto+0xf9/0x130
May  2 10:38:34 xenvm kernel: [ 2206.656370]  [<ffffffff8117492b>] ? mntput_no_expire+0x2b/0xe0
May  2 10:38:34 xenvm kernel: [ 2206.656376]  [<ffffffff811749fa>] ? mntput+0x1a/0x30
May  2 10:38:34 xenvm kernel: [ 2206.656381]  [<ffffffff8115860e>] ? __fput+0x13e/0x200
May  2 10:38:34 xenvm kernel: [ 2206.656388]  [<ffffffff81d30912>] system_call_fastpath+0x16/0x1b
Lösung: Das ist einfach zuviel fuer ein 0815 Server. Vielleicht schaft eine SAP HANA sowas 😉
##############################
ABER, eine Alternative ist die IPs nicht einzelnt zu speichern sonder als Netz (cidr)
Dazu muss ein Hash:Net erstellt werden “ipset create antip2p hash:net family inet hashsize 2000000 maxelem 4294967295”  .
Nun via “cat antip2p.txt | ipset restore -exist” alle X-Millionen Adress Bereiche einlesen.
Dann sind es gerade mal “1042887” Einträge im Set. Aber trotzdem alle IPs 🙂

Zusatzinfo zu Hash:net
“ipset del antip2p 95.208.0.0-95.208.255.255” = löscht einen Bereich. einzelne IPs kann man leider nicht löschen.

Post Revisions: