Bastante fácil con iptables. Puede tener reglas que coincidan con usuarios específicos, y ya debería haber configurado tor
para ejecutarse con su propia ID de usuario; los paquetes deb y rpm proporcionados por las principales distribuciones de Linux y el Proyecto Tor ya configuraron un usuario para Tor.
Muestra completa, iptables utilizables y configuraciones de Tor a continuación. Este firewall se puede cargar con el iptables-restore
comando. El resultado final de esta configuración enrutará de forma transparente todo el tráfico que se origina o se reenvía a través del host a Tor, sin necesidad de configurar proxies. Esta configuración debe ser a prueba de fugas; aunque, por supuesto, deberías probarlo a fondo.
Tenga en cuenta que 998
iptables almacena el uid para el usuario tor (aquí ). Sustituya el uid correcto para su usuario tor en cada lugar que aparece aquí.
Tenga en cuenta también que la dirección IP del host debe proporcionarse en la primera regla para admitir el tráfico entrante de red clara y LAN dirigido directamente al host (aquí se muestra como 198.51.100.212
). Si tiene varias direcciones IP, repita la regla para cada dirección.
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -d 198.51.100.212/32 -j RETURN
-A PREROUTING -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 49151
-A OUTPUT -o lo -j RETURN
-A OUTPUT -m owner --uid-owner 998 -j RETURN
-A OUTPUT -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
-A OUTPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 49151
COMMIT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp -d 127.0.0.1 --dport 22 -j ACCEPT
-A INPUT -j LOG --log-prefix "IPv4 REJECT INPUT: "
-A FORWARD -j LOG --log-prefix "IPv4 REJECT FORWARD: "
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -d 127.0.0.1/32 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -d 127.0.0.1/32 -p tcp -m tcp --dport 49151 -j ACCEPT
-A OUTPUT -m owner --uid-owner 998 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -j LOG --log-prefix "IPv4 REJECT OUTPUT: "
COMMIT
La regla ssh INPUT solo permite conexiones si llegan a través del host local, es decir, un servicio oculto Tor. Si también desea permitir conexiones ssh entrantes a través de clearnet, elimine -d 127.0.0.1
.
El torrc
archivo correspondiente es:
User toranon
SOCKSPort 9050
DNSPort 53
TransPort 49151
AutomapHostsOnResolve 1
Esta configuración requiere que el host tenga una dirección IP estática. Para los casos de uso esperados, es probable que ya haya planeado que tenga una dirección IP estática.
Y finalmente, la salida!
[root@unknown ~]# curl ifconfig.me
31.31.73.71
[root@unknown ~]# host 31.31.73.71
71.73.31.31.in-addr.arpa domain name pointer cronix.sk.
[root@unknown ~]# curl ifconfig.me
178.20.55.16
[root@unknown ~]# host 178.20.55.16
16.55.20.178.in-addr.arpa domain name pointer marcuse-1.nos-oignons.net.