hacker-inside

Linux: Blokujeme čínu,rusko firewallem a ipset

S Čínou i Ruskem jsou potíže, jsou veliké.

Nedávno zde proběhl článek Linux firewall: Blokujeme pomocí IPSET jak blokovat rozsáhlá pravidla v linux firewallu bez výkonové penalizace.

Dnes bych rád na toto téma lehce navázal, ukážeme si jak efektivně zablokovat provoz z konkrétní země, v našem případě jde o Čínu a Rusko, bude to jednoduché a rychlé, slibuji.

Co budeme potřebovat? Nástroj IPset,wget a seznam rozsahů konkrétní země.

Vytvoříme si dvě hash tabulky, následně stáhneme pomocí nástroje wget soubor veřejných rozsahů, aplikujeme v jednoduchém cyklu na ipset a poté pouze nasadíme iptables.

Pojďme na to!

root@havel-machine:~# ipset -N china hash:net
root@havel-machine:~# ipset -N russia hash:net

root@havel-machine:~# wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
root@havel-machine:~# wget http://www.ipdeny.com/ipblocks/data/countries/ru.zone

root@havel-machine:~# for i in $(cat cn.zone ); do ipset -A china $i; done
root@havel-machine:~# for i in $(cat ru.zone ); do ipset -A russia $i; done

root@havel-machine:~# iptables -A INPUT -p tcp -m set --match-set china src -j DROP
root@havel-machine:~# iptables -A INPUT -p tcp -m set --match-set russia src -j DROP

A to je vše! Dejte si pozor kam umístíte iptables DROP pravidla, musí být povětšinou před zbytkem pravidel, jinak nebudou mít efekt.

Prozkoumejte podrobněji www.ipdeny.com , k dispozici jsou i agregované seznamy rozsahů (v našem případě použit ne-agregovaný seznam, ipset agreguje za nás), pěkný je online generátor pravidel do iptables,ipchain,ipfw.acl. Co mě překvapilo je i seznam IPv6 rozsahů http://www.ipdeny.com/ipv6/ipaddresses/blocks/ , prostě skvělé.

K dokonalosti je vhodné celé řešení zabalit do scriptu, ošetřit možné chyby kolem wget a pravidelně aktualizovat, nechávám za domácí úkol.

Díky za Váš čas. František Havel