bloquear_ips_de_tor_con_iptables
This is an old revision of the document!
Bloquear IPs procedentes de la red Tor con reglas iptables
Este sencillo script descarga una lista actualizada con las IPs de los nodos Tor de salida conocidos y posteriormente bloquea las IPs (V4 y v6) de dicha lista mediante iptables.
#!/bin/bash ######################## IPTABLES_TARGET="DROP" IPTABLES_CHAINNAME="TOR" ######################## # Comprueba que no existe el chain "TOR" en IPv4 y lo crea (-N). if ! iptables -L $IPTABLES_CHAINNAME -n >/dev/null 2>&1 ; then iptables -N $IPTABLES_CHAINNAME >/dev/null 2>&1 # Los paquetes entrantes TCP usarán las reglas del chain TOR, la cual según se definió en la cabecera será denegada. iptables -A INPUT -p tcp -j $IPTABLES_CHAINNAME 2>&1 fi # Comprueba que no existe el chain "TOR" en IPv6 y lo crea (-N). if ! ip6tables -L $IPTABLES_CHAINNAME -n >/dev/null 2>&1 ; then ip6tables -N $IPTABLES_CHAINNAME >/dev/null 2>&1 ip6tables -A INPUT -p tcp -j $IPTABLES_CHAINNAME 2>&1 fi # Descarga la lista de IPs a bloquear, la ordena y en el caso de haber lineas comentadas las elimina. echo -e "\nGetting TOR node list from dan.me.uk\n" CMD=$(wget -q -O - "https://www.dan.me.uk/torlist/" | sort -u | sed 's|^#.*$||g') # Elimina las reglas actuales del chain "TOR" y genera las nuevas reglas. iptables -F $IPTABLES_CHAINNAME ip6tables -F $IPTABLES_CHAINNAME for IP in $CMD; do if [[ $IP =~ .*:.* ]] # IPv6 then ip6tables -A $IPTABLES_CHAINNAME -s $IP -j $IPTABLES_TARGET let COUNT_IPv4=COUNT_IPv4+1 else let COUNT_IPv6=COUNT_IPv6+1 # IPv4 iptables -A $IPTABLES_CHAINNAME -s $IP -j $IPTABLES_TARGET fi done echo -e "\n\t $COUNT_IPv4 IPv4 blocked.\n\t $COUNT_IPv6 IPv6 blocked."
Historial con todos los nodos salida de la red Tor (Desde 2012): https://collector.torproject.org/ (IPv4).
Tor actualmente no registra en sus listas de nodos salida las direcciones IPv6, pero pueden ser obtenidas desde este enlace “https://metrics.torproject.org/rs.html#search/flag:exit%20”. La URL que usa el script “https://www.dan.me.uk/torlist/” sí mantiene en el listado las IPv6, aunque no se sabe a ciencia cierta de donde son obtenidas. Un método de conseguir dicha información podría ser el siguiente.
# Desde una dirección IPv4 dig +short -x 185.56.83.83 onion.xor.sc dig +short AAAA onion.xor.sc. 2a06:e80:3000:1:bad:babe:ca11:911 # Desde una IPv6 (No siempre las IPv6 tienen configurados registros PTR). dig +short -x 2a06:e80:3000:1:bad:babe:ca11:911
bloquear_ips_de_tor_con_iptables.1666735225.txt.gz · Last modified: 2022/10/26 00:00 by busindre