tor-block-iptables-blog-header-2016

Linux mini-howto: Blokujeme TOR EXIT nodes

Linux mini-howto?
Krátce o nástrojích ze života sysadmina.

Důvod proč blokovat přístup ke službám ze sítě Tor je na Vašem rozhodnutí a není předmětem tohoto článku.

Tor je anonymizační nástroj (software) maskující skutečný pohyb uživatele po internetové síti, ukrývající skutečnou IP adresu případně další informace, které mohou umožnit jeho sledování.

Tor je zkratka pro The Onion Routing, do češtiny nejčastěji překládané jako cibulové směrování, stejně jako zlobři jsou jako cibule a mají vrstvy tak tor má vrstvy (slupky). Internetová adresa (IP) odesílatele a příjemce nejsou v žádném bodě trasy průchodu sítí spolu k dispozici a z toho je zřejmé, že odposlechem provozu není možné určit kdo a s kým komunikuje (zjednodušeně).

tor-ipbables-network-2016

Blokování TOR pomocí iptables

Internetový trollové často skrze anonymní prostředí rozvracejí diskuze, obtěžují servery script útoky atd, blokace je triviální, tor projekt exportuje pravidelně seznam svých exit nodes, tedy prvky tor sítě, kterou jsou registrované jako výstupní uzly.

Co uděláme? Jednoduchým skriptem stáhneme seznam tor exit nodes a pomocí ipset je zablokujeme skrze iptables, bude to snadné.

# ipset -N torexit iphash
# wget -q https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=8.8.8.8 -O -|sed '/^#/d' |while read IP
do
  ipset -q -A torexit $IP
done
# iptables -A INPUT -m set --match-set torexit src -j DROP

Triviální!

Co dále, místo generické IP google DNS 8.8.8.8 si vyplňte vlastní IP adresu a je dobré si udělat aktualizace ipsetu do cronu plánovače (ideálně vždy “flushnout” ipset pomocí ipset flush [name] ať se vám to nekumuluje).

Šel jsem ještě o kus dále a je to důvod proč také vznikl tento mini článek, pro zákazníka, který má fyzické servery a větší množství virtuálních za routery Mikrotik (x86) byl vytvořen aktualizační script v Pythonu, který parsuje výstup check.torproject.org a pomocí SSH aktualizuje společně address list na těchto hraničních routerech a tím blokuje tor pro všechny servery kromě předřazené whitelistu, kromě tor sítě jdou blokovány některé další sítě, ze kterých přicházejí útoky.

Pro SSH a Python používáme Paramiko (https://pypi.python.org/pypi/paramiko), rychlé a jednoduché, pokud situace dovolí zkusíme uvolnit celý script a veškeré zdroje volně k dispozici pro všechny.

Užívejte moudře a díky za pozornost.
František Havel, MOJEservery.cz