Pro můj blokátor darknetu potřebuji pouze seznam výstupních uzlů Tor IO a následující pravidlo:
location / {
limit_req zone=one; #request limit
limit_conn addr
include /etc/nginx/conf.d/tor-ips.conf; #tor ips blocken ...
}
Pomocí následujícího skriptu mohu vytvořit černou listinu IP:
Aktualizační skript IP
#!/bin/sh
# Copyright 2012, Nico R. Wohlgemuth <nico@lifeisabug.com> WGET=/usr/bin/wget
LIST=/etc/nginx/conf.d/tor-ips.conf
#ziel der blacklist
LISTBAK=/etc/nginx/conf.d/tor-ips.bak
TEMPLIST=/tmp/torlist.txt
wget -qO- https://check.torproject.org/exit-addresses | grep ExitAddress | cut -d ' ' -f 2 | sed "s/^/deny /g; s/$/;/g" > $TEMPLIST
if [ ! -s $TMPTEMPLIST ]; then
echo "error: list is empty or was not downloaded"
exit 1
fi
head -n3 $TEMPLIST
tail -n3 $TEMPLIST
echo -e "\ndoes this look okay? [y/n]: "
read yesno
if [ $yesno != "y" ]; then
echo "error: aborted"
rm $TEMPLIST exit 2
else
mv $LIST $LISTBAK
mv $TEMPLIST $LIST
fi
/usr/sbin/nginx -t
if [ $? -ne 0 ]; then
echo "deine config ist kaputtt"
else
/bin/systemctl reload nginx
echo "alles ok"
fi
Skript umístí seznam PI (tor-ips.conf) do adresáře “/etc/nginx/conf.d/”. Zkontroluje konfiguraci serveru a aktualizuje nastavení Nginx. Zablokovaní uživatelé ji pak uvidí:
