iptables en el nodo de salida tor

9

Quiero ejecutar un enrutador Tor abierto .

Mi política de salida será similar a ReducedExitPolicy .

Pero también quiero que sea difícil para la red tor abusar de mis recursos.

Casos que quiero evitar que los clientes hagan a través de Tor:

  • Martilleando un sitio con muchos paquetes.
  • Netscans agresivos de bloques de IP completos

Casos que NO quiero evitar que los clientes hagan a través de Tor:

  • subir unos cuantos archivos de imágenes a la nube
  • sembrando un torrente

Mi pregunta es, ¿se puede hacer esto y cómo?

Mi primer pensamiento fue algún firewall (Linux / iptables o * BSD / ipfw / pf), pero esto probablemente será inútil debido a las propiedades inherentes del enrutador Onion.

¿Existe algún desarrollo continuo del equipo de torproject sobre este tema?

También pido sugerencias generales sobre cómo asegurar los nodos de salida de Tor.

Actualización (septiembre de 2012)

A partir de respuestas útiles y algunas otras investigaciones, creo que esto no se puede hacer.

Lo mejor que puede hacer para evitar que las personas abusen del nodo de salida para contribuir en DDOS es detectar paquetes muy frecuentes dirigidos a una IP.

El umbral "muy frecuente" depende del ancho de banda total del nodo ... Si es incorrecto, habrá falsos positivos, bloqueando el tráfico legítimo de aplicaciones TCP en tiempo real y el tráfico proveniente de muchos clientes a un destino.

Actualización (dic 2014)

Obviamente, mis predicciones eran ciertas: recibí varias quejas de abuso de red de mi proveedor de Internet.

Para evitar el cierre del servicio, tuve que emplear el siguiente conjunto de iptablesreglas ( ONEWes una cadena para paquetes TCP SYN salientes (también conocidos como NUEVOS):

No estoy seguro de que sea suficiente, pero aquí está:

-A ONEW -o lo -j ACCEPT
-A ONEW -p udp --dport 53 -m limit --limit 2/sec --limit-burst 5 -j ACCEPT
-A ONEW -m hashlimit --hashlimit-upto 1/second --hashlimit-mode dstip --hashlimit-dstmask 24 --hashlimit-name ONEW -j ACCEPT
-A ONEW -m limit --limit 1/sec -j LOG --log-prefix "REJECTED: "
-A ONEW -j REJECT --reject-with icmp-admin-prohibited
filiprem
fuente

Respuestas:

2

Manten eso en mente:

  • Los clientes de Tor cambian los circuitos virtuales cada 10 minutos más o menos a mi entender actual. Esto significa que la IP de origen está cambiando alrededor de ese período de tiempo. Es poco probable que evite cualquier comportamiento que considere malicioso durante más tiempo que esa duración.

  • Tenga en cuenta que el hecho de que Tor solo represente el tráfico TCP y no cualquier otro protocolo limita bastante las posibilidades de abuso.

iptablespuede permitirle tratar las conexiones TCP salientes nuevas de manera diferente a las existentes. Cualquier cosa que ESTABLISHED,RELATEDsea ACCEPTEDo debe pasar por una cadena de "conexiones TCP existentes", y el TCP saliente que no quede atrapado por eso podría tener una tasa limitada. Cualquier tráfico saliente de Tor debe estar sujeto a esto.

Creo que entre lo anterior y el uso de la "Política de salida reducida" sería lo mejor que puede hacer.

Idealmente, no ejecutes nada más en tu caja Tor excepto:

  • Probablemente al menos tenga SSH activo, póngalo en un puerto diferente al 22.
  • Probablemente desee ejecutar un servidor web simple para mostrar esta página . Una mini-httpdinstancia chroot'ed debería hacer. No utilice inetd.

No ejecutes Tor en una caja que se está utilizando para otra cosa. Asegúrese de haber leído la sección "Salir de los relés" de las Preguntas frecuentes legales de Tor y comprender completamente sus implicaciones. También lea y haga todo esto .

LawrenceC
fuente
1

Será más difícil de lo normal prevenir estos ataques ya que la IP de origen no es constante. Sin embargo, que yo sepa, las rutas en tor solo cambian cada pocos minutos más o menos.

Por lo tanto, aún podría implementar algunas de las reglas estándar de limitación / filtrado, pero con un umbral más alto, ya que debe suponer que hay una red completa detrás de sus IP de origen.

Puedes filtrar:

  • paquetes de escaneo / huellas dactilares incorrectos o típicos (indicadores TCP / IP incorrectos, XMAS, la mayoría de los tipos de ICMP, etc.)
  • Paquetes inválidos que no se ajustan a conexiones en curso o nuevas (estado -m)
  • NUEVAS conexiones que comienzan en un umbral bastante alto

Sin embargo, tenga en cuenta que tales cosas generalmente se hacen en el tráfico entrante. No sabe qué tipo de protocolos ejecutarán sus "clientes" y puede restringirlos de maneras que pueden ser molestas / poco claras.

Además, para los paquetes NUEVOS (o sin estado) con limitación de velocidad, es posible que desee considerar un esquema más complicado en el que los paquetes rechazados (¡nunca DROP a menos que sea obviamente un ataque!) Sean aleatorios. De esta manera, un usuario normal puede intentar presionar la recarga y tener suerte, a pesar de que la tasa general está actualmente en el límite, mientras que un escáner de puertos concurrente no podrá eludir su límite de velocidad.

También pregunte en las listas de correo de Tor, probablemente no sea el primero en tener tales pensamientos: https://lists.torproject.org/cgi-bin/mailman/listinfo

pepe
fuente
1

En primer lugar, no sugeriría iptables para resolver todo esto, realmente un nodo Tor de salida ideal cargaría el tráfico de balace a través de algunos túneles VPN para mantener los ojos del ISP fuera de los paquetes y el verdadero destino y / o utilizar el proxy de almacenamiento en caché para mantener las solicitudes de repetición salientes al contenido estático popular al mínimo ... mientras mira esas opciones, aquí hay una curita para los problemas de quejas de abuso;

Fuentes de información utilizadas

http://www.ossramblings.com/using_iptables_rate_limiting_to_prevent_portscans

http://blog.nintechnet.com/how-to-block-w00tw00t-at-isc-sans-dfind-and-other-web-vulnerability-scanners/

Combinando los dos enlaces de origen en reglas que pueden usarse para frustrar a los bots que intentan usar su nodo de salida Tor para escanear puertos. Tenga en cuenta que esto puede hacer que los piratas informáticos que usan su nodo de salida sean muy descontentos, ya que estas reglas provocan que nmap se cuelgue.

#!/bin/bash
## Network interface used by Tor exit daemon
_tor_iface="eth1"
## Ports that Tor exit daemon binds to, maybe comma or space sepperated.
_tor_ports="9050,9051"
## Time to ban connections out in secconds, default equates to 10 minutes, same as default Tor cercut.
_ban_time="600"
## How long to monitor conections in seconds, default equates to 10 minutes.
_outgoing_tcp_update_seconds="600"
## How many new connections can be placed to a server in aloted update time limits. May nead to increes this depending on exit node usage and remote servers usages.
_outgoing_tcp_hitcount="8"
## How long to monitor connections for in minuets, default is 15 minutes but could be lessoned.
_outgoing_tcp_burst_minute="15"
## Hom many connections to accept untill un-matched
_outgoing_tcp_burst_limit="1000"

iptables -N out_temp_ban -m comment --comment "Make custom chain for tracking ban time limits" || exit 1
iptables -A out_temp_ban -m recent --set --name temp_tcp_ban -p TCP -j DROP -m comment --comment "Ban any TCP packet coming to this chain" || exit 1

iptables -N out_vuln_scan -m comment --comment "Make custom chain for mitigating port scans originating from ${_tor_iface}" || exit 1
for _tor_port in ${_tor_ports//,/ }; do
    iptables -A out_vuln_scan -p TCP -o ${_tor_iface} --sport ${_tor_port} -m recent --name temp_tcp_ban --update --seconds ${_ban_time} -j DROP -m comment --comment "Update ban time if IP address is found in temp_tcp_ban list" || exit 1
    iptables -A out_vuln_scan -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --set -m comment --comment "Monitor number of new conncetions to ${_server_iface}" || exit 1
    iptables -A out_vuln_scan -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --update --seconds 30 --hitcout 10 -j out_temp_ban -m comment --comment "Ban address when to many new connections are attempted on ${_tor_iface}" || exit 1
done
iptables -A out_vuln_scan -j RETURN -m comment --comment "Return un-matched packets for further processing" || exit 1

## Add rules to accept/allow outbound packets
iptables -N tor_out -m comment --comment "Make custom chain for allowing Tor exit node services" || exit 1
for _tor_port in ${_tor_ports//,/ }; do
    iptables -A tor_out -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --set --name limit_${_tor_port} -m comment --comment "Track out-going tcp connections from port ${_tor_port}" || exit 1
    iptables -A tor_out -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --update --seconds ${_outgoing_tcp_update_seconds:-60} --hitcount ${_outgoing_tcp_hitcount:-8} --rttl --name limit_${_tor_port} -j LOG --log-prefix "TCP flooding port ${_tor_port}" -m comment --comment "Log atempts to flood port ${_tor_port} from your server" || exit 1
    iptables -A tor_out -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --update --seconds ${_outgoing_tcp_update_seconds:-60} --hitcount ${_outgoing_tcp_hitcount:-8} --rttl --name limit_${_tor_port} -j DROP -m comment --comment "Drop attempts to flood port ${_tor_port} from your server" || exit 1
    iptables -A tor_out -p TCP -o ${_tor_iface} --sport ${_tor_port} -m limit --limit ${_outgoing_tcp_burst_minute:-15}/minute --limit-burst ${_outgoing_tcp_burst_limit:-1000} -j ACCEPT -m comment --comment "Accept with conditions new connections from port ${_tor_port} from your server" || exit 1
done
iptables -A tor_out -j RETURN -m comment ---comment "Reurn un-matched packets for further filtering or default polices to take effect." || exit 1
## Activate jumps from default output chain to new custom filtering chains
iptables -A OUTPUT -p TCP -o ${_tor_iface} -j out_vuln_scan -m comment --comment "Jump outbound packets through vulnerability scaning mitigation" || exit 1
iptables -A OUTPUT -p TCP -o ${_tor_iface} -j tor_out -m comment --comment "Jump outbound packets through conditional acceptance" || exit 1

Ejecutar arriba con bashpara tener magias preformadas en variables con ,cammas, es decir;

user@host~# bash iptables_limit_tor.sh

Aquí está esa lista de variables nuevamente

_tor_iface="eth1"
_tor_ports="9050,9051"
_ban_time="600"
_outgoing_tcp_update_seconds="600"
_outgoing_tcp_hitcount="8"
_outgoing_tcp_burst_minute="15"
_outgoing_tcp_burst_limit="1000"

Tenga en cuenta que también es posible que desee filtrar nuevas conexiones salientes para -m state NEW ! --syntipos de negocios divertidos utilizados por algunos bots para encontrar servidores explotables. Aquí hay una cadena de ejemplo que podría haber preferido los dos anteriores para filtrar aún más la charla con formato incorrecto

iptables -N out_bad_packets -m comment --comment "Make new chain for filtering malformed packets" || exit 1
iptables -A out_bad_packets -p TCP --fragment -j out_temp_ban -m comment --comment "Drop all fragmented packets" || exit 1
iptables -A out_bad_packets -p TCP -m state --state INVALID -j out_temp_ban -m comment --comment "Drop all invalid packets" || exit 1
iptables -A out_bad_packets -p TCP ! --syn -m state --state NEW -j out_temp_ban -m comment --comment "Drop new non-syn packets" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL NONE -j out_temp_ban -m comment --comment "Drop NULL scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL ALL -j out_temp_ban -m comment --comment "Drop XMAS scan"|| exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL FIN,URG,PSH -j out_temp_ban -m comment --comment "Drop stealth scan 1" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL SYN,RST,ACK,FIN,URG -j out_temp_ban -m comment --comment "Drop pscan 1"|| exit 1
iptables -A out_bad_packets -p TCP --tcp-flags SYN,FIN SYN,FIN -j out_temp_ban -m comment --comment "Drop pscan 2" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags FIN,RST FIN,RST -j out_temp_ban -m comment --comment "Drop pscan 3" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags SYN,RST SYN,RST -j out_temp_ban -m comment --comment "Drop SYN-RST scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ACK,URG URG -j out_temp_ban -m comment --comment "Drop URG scans" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL SYN,FIN -j out_temp_ban -m comment --comment "Drop SYNFIN scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL URG,PSH,FIN -j out_temp_ban -m comment --comment "Drop nmap Xmas scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL FIN -j out_temp_ban -m comment --comment "Drop FIN scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL URG,PSH,SYN,FIN -j out_temp_ban -m comment --comment "Drop nmap-id scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags RST RST -o ${_tor_iface} --sport ${_tor_port} -m limit --limit 2/second --limit-burst 3 -j out_temp_ban -m comment --comment "Mitigate Smurf attacks from excesive RST packets"
iptables -A out_bad_packets -p TCP --tcp-flags RST RST -o ${_tor_iface} --sport ${_tor_port} -m limit --limit 2/second --limit-burst 2 -j RETURN -m comment --comment "Ban Smurf attacks using excesive RST packets"
iptables -A out_bad_packets -j RETURN -m comment --comment "Return un-matched packets for further processing." || exit 1

Sin embargo, la cadena anterior sería muy restrictiva como cualquier paquete emparejado tendrá la IP prohibidas (tal vez cambiar -j out_temp_bana -j DROPo -j REJECTpara la prueba) para sin embargo muchos segundos elegidos en las reglas de esa cadena. Este conjunto de reglas también podría causar fallas positivas cuando las aplicaciones mal codificadas en el extremo del cliente se vuelven a conectar a través de un nuevo corte de Tor.

~~~~~

Software a tener en cuenta para seguir modelando el tráfico Consulte firejailLinux, la fuente está en Github y Source forge y las páginas de manual se pueden encontrar en la página de inicio anterior, un subdominio de WordPress, y DigitalOcean tiene una guía para Nginx con PHP y Firejail que con una pequeña modificación podría darle mucho más incitación en cuanto a dónde debería reducirse la red. Existen otras herramientas como las que KVMtambién se pueden usar para mantener los servicios específicos dentro de los límites operacionales, así que compre la mejor opción para su sistema.

Sin embargo, otra opción sería ejecutar fail2bande tal manera que cuando un administrador de sistemas loco realiza una conexión http o ssl a su IP, se agrega una regla para descartar-m state --state NEWconexiones a quienes solicitan su página de aviso de salida. Esto, si se combina con límites de tiempo no prohibidos, podría permitir al servidor remoto un descanso mientras su administrador del sistema murmura sobre la contaminación del registro ;-) Sin embargo, eso está más allá del alcance de esta respuesta actual y depende del software que esté utilizando para servir salir de las páginas de aviso; Sugerencia nginx y apache servirán el primer bloque vhost o servidor en sus configuraciones si ahora se solicitó la URL. Si usa otra cosa que no sea apache o nginx, querrá consultar las páginas de manual, pero para mí fue tan simple como configurar el primer vhost para iniciar sesión en un archivo diferente y tener fail2ban agregar cualquier IP de ese registro a una lista de prohibición temporal ; esto también funciona muy bien para prohibir los bots en servidores públicos porque generalmente usan una dirección IP y no proporcionan una solicitud de dominio, lo que hace que el servidor sirva la trampa de bot,

Apuesto a que twords ejecuta una política de salida de Tor restringida (parece que ya lo has manejado) y luego empuja el tráfico a través de túneles VPN, puntos de crédito adicionales para el equilibrio de carga entre túneles múltiples. Porque esto causaría menos interrupciones en el tráfico de la red Tor y mantendría los ojos de su ISP nublados al hecho de que está ejecutando un nodo de salida ... a menos que deseen admitir que olfatea y descifra su tráfico VPN. Esto se debe a que las reglas de ejecución que prohíben temporalmente o permiten que el host remoto se prohíba a sí mismo podrían provocar una violación de la privacidad de los clientes de su nodo, ya que empujar el tráfico a una VPN (o pocas) ayudaría a la privacidad de su cliente y mantendría su ISP debe ser perseguido con solicitudes de registros de tráfico de su red por parte de cualquier gobierno que pueda ejecutar whois www.some.domain.

~~~~

Ediciones / Actualizaciones

~~~~

Hice un viaje a mis notas extensas y saqué las configuraciones para servidores públicos que uso

Aquí está el jail.localstansa fail2ban

[apache-ipscan]
enabled  = true
port = http,https
filter = apache-ipscan
logpath = /var/log/apache*/*error_ip*
action = iptables-repeater[name=ipscan]
maxretry = 1

Y aquí está el apache-ipscan.confarchivo de filtro

[DEFAULT]
_apache_error_msg = \[[^]]*\] \[\S*:error\] \[pid \d+\] \[client <HOST>(:\d{1,5})?\]
[Definition]
failregex = \[client <HOST>\] client denied by server .*(?i)/.*
#^<HOST>.*GET*.*(?!)/.*
#   ^%(_apache_error_msg)s (AH0\d+: )?client denied by server configuration: (uri )?.*$
#            ^%(_apache_error_msg)s script '\S+' not found or unable to stat(, referer: \S+)?\s*$
ignoreregex = 
# DEV Notes: 
# the web server only responds to clients with a valid Host: 
# header. anyone who tries using IP only will get shunted into 
# the dummy-error.log and get a client-denied message
#
# the second regex catches folks with otherwise valid CGI paths but no good Host: header
#
# Author: Paul Heinlein

Y aquí está el iptables-repeater.confarchivo de acción .

# Fail2Ban configuration file
#
# Author: Phil Hagen <[email protected]>
# Author: Cyril Jaquier
# Modified by Yaroslav Halchenko for multiport banning and Lukas Camenzind for persistent banning
# Modified by S0AndS0 to combine features of previous Authors and Modders
#
[Definition]
# Option:  actionstart
# Notes.:  command executed once at the start of Fail2Ban.
# Values:  CMD
#
actionstart = iptables -N fail2ban-BADIPS-<name>
              iptables -A fail2ban-BADIPS-<name> -j RETURN
          iptables -I INPUT -j fail2ban-BADIPS-<name>
          ## Comment above line and uncomment bello line to use multiport and protocol in addition to named jails
          #iptables -I INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-BADIPS-<name>
          # set up from the static file
          #cat /etc/fail2ban/ip.blocklist.<name> |grep -v ^\s*#|awk '{print $1}' | while read IP; do iptables -I fail2ban-BADIPS-<name> 1 -s $IP -j DROP; done
          cat /etc/fail2ban/ip.blocklist.<name> |grep -v ^\s*#|awk '{print $1}' | while read IP; do iptables -I fail2ban-BADIPS-<name> 1 -d $IP -j DROP; done
          ## Comment above line and uncomment bellow line to check if there are blacklist files to load before attempting to load them
          # if [ -f /etc/fail2ban/ip.blacklist.<name> ]; then cat /etc/fail2ban/ip.blacklist.<name> | grep -e <name>$ | cut -d "," -s -f 1 | while read IP; do iptables -I fail2ban-BADIPS-<name> 1 -s $IP -j DROP; done; fi
# Option:  actionstop
# Notes.:  command executed once at the end of Fail2Ban
# Values:  CMD
#
actionstop = iptables -D INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-BADIPS-<name>
         iptables -F fail2ban-BADIPS-<name> 
         iptables -X fail2ban-BADIPS-<name>
# Option:  actioncheck
# Notes.:  command executed once before each actionban command
# Values:  CMD
#
#actioncheck = iptables -n -L INPUT | grep -q fail2ban-BADIPS-<name>
actioncheck = iptables -n -L OUTPUT | grep -q fail2ban-BADIPS-<name>
# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    <ip>  IP address
#          <failures>  number of failures
#          <time>  unix timestamp of the ban time
# Values:  CMD
#
#actionban = if ! iptables -C fail2ban-BADIPS-<name> -s <ip> -j DROP; then iptables -I fail2ban-BADIPS-<name> 1 -s <ip> -j DROP; fi
actionban = if ! iptables -C fail2ban-BADIPS-<name> -d <ip> -j DROP; then iptables -I fail2ban-BADIPS-<name> 1 -d <ip> -j DROP; fi
# Add offenders to local blacklist, if not already there
        if ! grep -Fxq '<ip>,<name>' /etc/fail2ban/ip.blocklist.<name>; then echo "<ip>,<name> # fail2ban/$( date '+%%Y-%%m-%%d %%T' ): auto-add for BadIP offender" >> /etc/fail2ban/ip.blocklist.<name>; fi
# Report offenders to badips.com
#        wget -q -O /dev/null www.badips.com/add/<name>/<ip>
# Option:  actionunban
# Notes.:  command executed when unbanning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    <ip>  IP address
#          <failures>  number of failures
#          <time>  unix timestamp of the ban time
# Values:  CMD
#
#actionunban = iptables -D fail2ban-REPEAT-<name> -s <ip> -j DROP
actionunban = iptables -D fail2ban-REPEAT-<name> -d <ip> -j DROP
# Disabled clearing out entry from ip.blacklist (somehow happens after each stop of fail2ban)
#sed --in-place '/<ip>,<name>/d' /etc/fail2ban/ip.blacklist.<name>
[Init]
# Defaut name of the chain
# 
# Defaut name of the chain
name = BADIPS
# Option:  port
# Notes.:  specifies port to monitor
# Values:  [ NUM | STRING ]  Default:
# 
#port = ssh
# Option:  protocol
# Notes.:  internally used by config reader for interpolations.
# Values:  [ tcp | udp | icmp | all ] Default: tcp

Nota: el filtro anterior se ha editado para bloquear OUTPUTlas acciones de inicio / detención, pero aún así querrá agregar las -p TCP -m state --state NEWconfiguraciones a cada línea para que solo se prohiban las nuevas conexiones salientes de la dirección IP registrada.

Lo último es configurar una configuración de Apache vHost que enruta a aquellos que no solicitan un dominio a un acceso específico y un registro de errores y establece el acceso permitido frente al denegado de modo que siempre produzca errores, ni siquiera el bucle invertido debería poder abrir la página sin mostrar errores . Por último, pero no menos importante, está configurando la página de error para Apache con el aviso de salida predeterminado de Tor para que se sirva en lugar de 503o404mensajes sosos. O si ha agregado las líneas de estado a las acciones de iptables para fail2ban, podría simplemente apuntar al mismo archivo de registro que utiliza su aviso de salida. El resultado sería que su servidor no podría hacer nuevas conexiones a la dirección IP del servidor que verificó su dirección IP pero que las conexiones establecidas y relacionadas aún estarían permitidas, es decir, aún podrían navegar por sus otras páginas pero no podría navegar a través de ellas. .

S0AndS0
fuente
Lo más bienvenido, si disfrutaste, acabo de enviar una gran cantidad de scripts / notas a GitHub que quizás quieras echarle un vistazo. Empecé este proyecto hace más de un año, pero ahora que la salud es un problema, lo hice público para depurar y agregar funciones en caso de que no pueda terminarlo; eso y algunas acciones tomadas localmente y globalmente por otros me han animado a tomar una posición para hacer de la privacidad personal un cambio más fácil.
S0AndS0
Escribí otro proyecto y lo envié a GitHub . Esto tiene como objetivo ayudar a los administradores del servidor a proteger los registros de sus servidores mediante el uso de cifrado asimétrico GnuPG. Mientras su nodo de salida o servicio oculto no contenga la clave privada relacionada, el proyecto anterior debería evitar que los registros pasados ​​filtren las direcciones IP de otros nodos que se conectan a su propio nodo.
S0AndS0
0

El ancho de banda limitado del resto de la red Tor resolverá esos problemas por usted. Además, si está preocupado, ejecute solo relé, no un nodo de salida.

Richard Hum
fuente
0

Tengo una mejor solución: servidor de caché de calamar. Servidor de caché Squid disponible para configurar la definición acly usted denyo acceptcada uno acl. Es muy interesante que el equipo de calamar defina un conjunto de reglas en su wiki que su pregunta encontró allí iptables,PF u otros no pueden hacer su trabajo, porque solo trabajan en otras capas.

Golfo pérsico
fuente
No veo ninguna forma sensata de combinar Squid (que sé y me gusta) con Tor ...
filiprem
tratar con Zebra route.
PersianGulf
¿Te refieres a redirigir el tráfico de salida que va al puerto 80 y pasarlo por el calamar para agregar algo de control? Esto resuelve solo una pequeña parte del problema. La verdadera causa es prevenir el abuso de Tor para cualquier DDOS basado en IP.
filiprem
Puede utilizar el diseño de su red en tres capas: 1. capa externa 2. capa de proceso. 3.user / server layer ====> Causa su seguridad será mejorada.
PersianGulf