Member of The Internet Defense League Últimos cambios
Últimos Cambios
Blog personal: El hilo del laberinto Geocaching

[IRCOPS-ESNET] Problema: Denegación de servicio en ESNET

Última Actualización: 13 de Julio de 1.998 - Lunes

Message-ID: <35A4C541.D2ADB7A9@argo.es>
Date: Thu, 09 Jul 1998 13:27:29 +0000
From: "Jesús Cea Avión" <jcea@argo.es>
Organization: Argo Redes y Servicios Telematicos, S.A.
To: Lista IRCops ESNET <ircops@esnet.org>, josafat@netspain.com
Subject: [IRCOPS-ESNET] Problema: Denegación de servicio en ESNET

Hola a todos. A continuación os comento un problema DoS en ESNET, tal y como está configurada. Es un tema que me encontré hace tiempo, y que con las pruebas de "JUPE" se ha convertido en un problema.

Como muchos sabréis, el servidor impone unas ciertas condiciones para las conexiones repetidas desde una misma IP, como podeis leer en http://www.argo.es/~jcea/irc/throttling.htm.

El problema es que esas limitaciones TAMBIEN SE APLICAN A LOS SERVIDORES.

En otras palabras, si un servidor intenta conectar al hub demasiado rápido, el hub lo bloqueará.

El problema es que en la configuración por defecto indicada en http://www.argo.es/~jcea/irc/esnet1.htm#conf se fija un tiempo entre reintentos de 10 segundos. Por tanto si a un servidor se le hace SQUIT un par de veces seguidas, el HUB lo bloqueará.

¿La solución?. La más sencilla es subir el tiempo a 90-120 segundos. Con esto desaparece el problema, pero hace que un split dure, al menos, ese tiempo (en vez de los diez segundos actuales).

Otra solución posible, que tengo ya en el Argobot y en Olimpo, es usar una técnica de BACKOFF exponencial. Cada vez que la conexión es bloqueada, se espera el doble que la última vez más un segundo. Por ejemplo, si tenemos un tiempo entre reintentos de 10 segundos, como ahora, la cosa quedaría: 10, 21, 43, 87, etc., segundos. Por tanto si HUB bloquea 60 segundos desde el último error, el tiempo de espera normal sería de 10 segundos (como ahora), pero si hay bloqueo sería de 10+21+43+87=161 segundos.

Es decir, normalmente la reconexión se realizaría en 10 segundos. Si hay problemas, sin embargo, tardará un máximo de 161 segundos.

Estoy pensando el asunto. Es posible que pronto saque un parche para hacerlo. Os mantendré informados.

PS: Si creo ese parche, se puede bajar el tiempo de reconexión a 1 segundo. En ese caso los splits serían muy cortos, y en el caso peor se esperaría (para un tiempo de bloqueo de 60 segundos): 1+3+7+15+31+63=120 segundos. Ya os contaré.

-- 
Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
jcea@argo.es http://www.argo.es/~jcea/ _/_/    _/_/  _/_/    _/_/  _/_/
                                      _/_/    _/_/          _/_/_/_/_/
PGP Key Available at KeyServ   _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibnitz


Message-ID: <35A51135.F49246E9@argo.es>
Date: Thu, 09 Jul 1998 18:51:33 +0000
From: "Jesús Cea Avión" <jcea@argo.es>
Organization: Argo Redes y Servicios Telematicos, S.A.
To: ircops@esnet.org
Subject: Re: [IRCOPS-ESNET] Problema: Denegación de servicio en ESNET
References: <35A4C541.D2ADB7A9@argo.es>

> El problema es que en la configuración por defecto indicada en
> http://www.argo.es/~jcea/irc/esnet1.htm#conf se fija un tiempo entre
> reintentos de 10 segundos.

Ya tenía en funcionamiento el parche backoff cuando me he dado cuenta de un error grave: cuando solo hay un HUB todo funciona como debe, pero cuando hay varios HUBs y *AL MENOS* uno de ellos está CAIDO (no conecta el propio TCP), perdemos la característica del backoff y el sistema degenera al caso normal.

Por ello he preferido proponer la otra otra solución. Por defecto el control de clonos bloquea una IP durante 20 segundos. Suponiendo que nadie lo toque (nadie debería), basta con cambiar el retardo entre intentos de 10 segundos a 20 segundos. Con eso debería bastar.

Los que hayan tomado la configuración de ejemplo en http://www.argo.es/~jcea/irc/esnet1.htm#conf tendrán una línea:

Y:30:120:10:1:1000000            # Hubs

Deben cambiarla por

Y:30:120:20:1:1000000            # Hubs

Actualizaré mi web en cuanto encuentre un momento. Vosotros recordad cambiar eso, es importante, y hacer un "/rehash" en el servidor.

-- 
Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
jcea@argo.es http://www.argo.es/~jcea/ _/_/    _/_/  _/_/    _/_/  _/_/
                                      _/_/    _/_/          _/_/_/_/_/
PGP Key Available at KeyServ   _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibnitz



Python Zope ©1998 jcea@jcea.es

Más información sobre los OpenBadges

Donación BitCoin: 19niBN42ac2pqDQFx6GJZxry2JQSFvwAfS