COMO INTERCONECTAR EGGDROPS

[Traducción de aardvark]

INDICE

  1. Acerca de este documento.
  2. Términos utilizados
  3. ¿Para qué sirve una botnet?
  4. Cómo añadir y conectar bots
  5. Usando los atributos del eggdrop
  6. Cómo hacer que 2 bots compartan usuarios
i. ACERCA DE ESTE DOCUMENTO
El propósito de este documento es mostrar para qué sirve una botnet y cómo puede ser útil. También cubre los atributos del eggdrop e información de compartición de usuarios entre bots.

ii. TERMINOS UTILIZADOS
Los siguientes son términos comunes utilizados en este documento. If applicable, there is also the associated command named.

Botnet - Término utilizado para describir múltiples bots interconectados.

Link - Término que significa la conexión de un bot. Comando: ".link <bot>" ".unlink <bot>"

Hub - Se dice que un bot actúa como hub cuando uno o más bots están conectados a él.

Leaf - Se le llama leaf a un bot que no es hub y que está conectado a otro. Un bot leaf solo tiene un bot conectado a él, su hub. Un bot puede ser marcado con el atributo "l" (leaf) para evitar que otros bots se conecten a él.

Link Bot - Se le llama así a cualquier bot que esté conectado a otro, independientemente de que sea hub o leaf.

Share - Término que describe a 2 bots compartiendo registros.

Share Bots - Término usado para describir a 2 o más bots compartiendo registros.

Aggressive Share - Término que describe la dirección en que se comparten registros. Un bot en Aggresive Share le envía sus registros a un bot en modo pasivo.

Passive Share - Término que describe la dirección en que se comparten registros. Un bot en Passive Share acepta registros de un bot en modo activo/agresivo. Nota: A partir de la versión 1.3.x los atributos de activo y pasivo son relativos y no absolutos como en la versión 1.1.5, esto es, un mismo bot puede ser activo y pasivo al mismo tiempo en relación a otros bots a los cuales esté conectado.

Ejemplo de árbol de bots:


Superbot
    |
    +-Interbot
         |
         +-Peonbot
Interbot tiene un sharebot maestro: Superbot, y un sharebot esclavo: Peonbot.
Interbot es pasivo (recibe registros) de Superbot al mismo tiempo que es activo/agresivo (envía registros) a Peonbot.

Atributos - Los atributos determinan qué puede o qué se le permite hacer a un bot. Los atributos pueden ser globales o específicos a un canal.

Atributos que afectan a una botnet.


Un bot marcado con:
  s   comparte agresivamente (le enviará registros a un bot pasivo)
  p   comparte pasivamente (aceptará registros de un bot activo)
  g   comparte todos sus canales (funciona bien a partir de 1.4.x)
  h   es un hub, un bot tratará de conectarse automáticamente a su hub
  a   es un bot alternativo, tratará de conectarse automáticamente a él
      si no puede conectarse a su hub
  l   leaf, no se le permite conectarse a otros bots simultáneamente
  r   reject, no se le permite conectarse a la botnet
  i   isolate, aisla la partyline a través de 2 bots conectados
  0-9 atributos definidos por el usuario
Comando: ".botattr <bot> [(.+<atributo> [#canal]) o (.-<atributo> [#canal])]"

Address - Dirección física del bot, conteniendo su host y puerto. Por ejemplo: box.shell.com:3874
Comando: ".chaddr <bot> <host:puerto[/userport]>"

Relay - El puerto de comunicaciones del bot. Se puede definir uno para conexiones con otros bots y otro para usuarios.

Relay connection - Una conexión relay se usa para brincar o puentear a otro bot usando la partyline.
Comando: .relay <bot>

Port - El puerto telnet que le sirve al bot para comunicarse con otros bots y/o usuarios. Se pueden especificar puertos diferentes para conexiones de bots y usuarios.

iii. ¿PARA QUE SIRVE UNA BOTNET?
Básicamente una botnet es útil si se desea usar más de un bot para proteger un canal. Los bots de una botnet pueden ejecutar tareas controladas por un script. Tales tareas podrían ser: darse OP entre ellos, proteger el canal conjuntamente contra flood, etc. En el directorio de scripts en ftp://ftp.eggheads.org se pueden encontrar varios de éstos.

También, los bots interconectados pueden compartir registros de usuarios (ya sea en forma global o de ciertos canales); esto ayuda a reducir el tiempo que se requiere para tener una base de datos completa y actualizada; sin embargo, se advierte que un usuario con ciertos privilegios en un bot (ya sea maestro o esclavo) puede alterar o manipular la base de datos de usuarios de toda la botnet.

iv. COMO AÑADIR Y CONECTAR BOTS
Con los términos que se vieron anteriormente, ya podemos comenzar con la conexión de 2 bots. Primero se necesitan saber los hosts y puertos de los bots. Digamos que Bot-A está en servidor.org usando el puerto 3333 y Bot-B está en galaxia.com usando el puerto 4444. Hay que añadir a cada bot en el otro, incluyendo su [email protected], dirección y puerto. En la consola de Bot-A hay que teclear: ".+bot Bot-B galaxia.com:4444" (asumiendo que Bot-A y Bot-B están en el mismo canal, Bot-A toma automáticamente la [email protected] de Bot-B; de otra manera, se tendría que añadir manualmente con ".+host") y en Bot-B se teclea: ".+bot Bot-A servidor.org:3333".

En este punto ya se pueden conectar manualmente por primera vez los bots tecleando ".link Bot-A" en la consola de Bot-B (o a la inversa, ".link Bot-B" en la consola de Bot-A). Al conectarse, ambos generarán passwords al azar para cada uno de ellos. Ahora ya se pueden añadir y conectar tantos bots como se quiera.

v. USANDO LOS ATRIBUTOS DEL EGGDROP
Los atributos asignan funciones especiales a los bots.

"h" (hub)
Si quieres que los bots se conecten automáticamente después de ser desconectados o reiniciados (ya se porque caiga el bot o por un reinicio del servidor) entonces se le debe asignar el atributo +h al bot al cual queremos que se conecte el otro. Comando: ".botattr <bot> +h".

"a" (alternativo)
Si por algún motivo un bot no se puede conectar a su hub, intentará conectarse a bots "alternativos", los cuales se definen con el atributo "+a". Comando: ".botattr <bot> +a".

"l" (leaf)
Este atributo asignado a un bot, hará que tu bot se desconecte de él si este mismo se llega a conectar con algún otro bot. Comando: ".botattr <bot> +l".

"r" (reject)
Este atributo asignado a un bot, hará que tu bot lo rechace de la botnet, no le será permitido conectarse ni a tu bot ni a ningún otro. Comando: ".botattr <bot> +r".

"i" (isolate)
Este atributo hará que los bots que lo tengan asignado se aíslen en una sola partyline. Comando: ".botattr <bot> +i".

"0-9" (definidos por el usuario)
Estos 10 atributos no tienen ninguna función preasignada; se han puesto para que puedan ser usados por scripts. Comando: ".botattr <bot> +(0-9)".

"s" (enviar registros a bots marcados con +s)
+s ¤ Si en la consola de Bot-A se marca a Bot-B con +s, entonces Bot-A tratará de mandarle sus registros (modo activo/agresivo) a Bot-B. Comando: ".botattr <bot> +s".
|s ¤ Con este atributo se pueden definir canales para compartir. Este atributo se puede usar únicamente con bots marcados previamente con +s. Comando: ".botattr <bot> |s #canal".

"p" (aceptar registros de bots marcados con +p) Si se asigna este atributo a un bot, se aceptarán registros de él. Comando: ".botattr <bot> +p".

"g" (global share) Si se asigna este atributo a un bot +s o +p, todos los banes y registros de todos los canales serán transferidos/aceptados, pasando por encima de cualquier atributo |s que pudiera haber. Comando: ".botattr <bot> +g".

vi. COMO HACER QUE 2 BOTS COMPARTAN USUARIOS
Antes de comenzar a preparar a los bots para compartir usuarios, hay que verificar que ambos tengan instalados los módulos transfer, share y filesys (ver el archivo conf). También es necesario que el canal que se vaya a compartir tenga la opción +shared (igual, en ambos bots).

Para poder compartir registros es necesario que los atributos estén correctamente marcados en los bots; de nada sirve marcar un Bot-A para compartir agresivamente si Bot-B no es marcado como pasivo para recibir los registros. Hay que marcar a Bot-A como agresivo (va a enviar registros) hacia Bot-B y marcar a Bot-B como pasivo (va a recibir registros) de Bot-A.

Hay 2 atributos que marcan la diferencia entre enviar y recibir. Un bot enviará registros a otros bots marcados con +s y recibirá registros de bots marcados con +p.

El envío de registros se hace en forma automática una vez que los 2 bots que comparten dichos registros se conectan. El bot agresivo inicia la transferencia y el bot pasivo la acepta. Si no se completa la transferencia de registros por algún motivo, los bots se desconectarán uno del otro.

Al compartir registros, también se comparten automáticamente banes e ignores (globales y/o de canal) entre bots. Los atributos de bots no son compartidos.

Ojalá este documento sea de ayuda.