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.
#!/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 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."
bloquear_ips_de_tor_con_iptables.1648301137.txt.gz · Last modified: 2022/03/26 14:25 by busindre