Página siguiente Página anterior Índice general

4. El bot de gestión del servidor

4.1 Función de un bot de gestión del servidor

La función de un bot o script de gestión del servidor es ampliar las posibilidades del IRC, y a la vez permitir un cierto control sobre los usuarios. El bot se introduce como un usuario más, pero adquiere el poder del operador, lo que le permite administrar de manera eficiente los canales. Entre sus posibilidades están:

Existen multitud de bots disponibles. Entre los más importantes, podemos destacar:

4.2 Argobot

El Argobot es un bot relativamente sencillo escrito por el español Jesús Cea Avión ( http://www.argo.es/~jcea), aunque algunas grandes redes hispanas de IRC están adoptándolo. Soporta todas las características antes enunciadas, pero sin profundizar en ellas, de forma que no resulta tan grande y complejo como Eggdrop. Como ventaja añadida, ocupa muy poca memoria y es muy eficiente. Es un bot multicanal capaz de:

Otras características del Argobot son:

4.3 Instalación

El Argobot se puede conseguir en la página web de su creador ( http://www.argo.es/~jcea/irc/argobot.htm). Existen multitud de versiones, algunas desarrolladas específicamente para alguna gran red, y además se pueden conseguir una veintena de parches que corrigen algunos defectos y añaden nuevas características.

Si optamos por obtener el Argobot por Internet, descubriremos que apenas incluye unos pocos ficheros (código fuente C), y como única documentación un fichero README muy breve. Para paliar esta deficiencia, su autor a puesto toda la documentación disponible a través de Internet, en forma de páginas web. Es necesario, por tanto, descargar estas páginas y leerlas detenidamente.

El Argobot se suministra en forma de un fichero .tgz, que una vez descomprimido (en nuestro caso, en el directorio /usr/src/argobot/) da lugar a cuatro ficheros:

Es importante comprobar que este último fichero se ha creado realmente. Debido a algunas configuraciones de tar, es posible que no se genere este fichero (porque está vacío), lo que provocará errores al intentar ejecutar el Argobot. En este caso, es necesario crear el fichero manualmente (con la orden touch, por ejemplo), y darle los permisos apropiados.

Nota: si queremos utilizar una de las características más avanzadas del Argobot, como es la propagación de líneas K (sólo tiene sentido en redes de varios servidores), será necesario seguir las instrucciones relativas a los permisos y el fichero ircd.conf.

4.4 Edición del código fuente

Antes de compilar, es conveniente comprobar que el código fuente esta bien adaptado a nuestro sistema. Las modificaciones que debemos hacer dependen de la forma en la que vamos a ejecutar el bot:

Además de estas modificaciones, podemos definir el símbolo VERBOSE para que se impriman en la pantalla todos los mensajes que el servidor envía al Argobot. Otro símbolo interesante es CONTROL_FLOOD, que por defecto está activado, pero que deberemos eliminar si el nodo al que conectamos está preparado para controlar los ataques por flood.

4.5 Compilación

Como ya se ha indicado, el Argobot puede ser compilado bajo múltiples plataformas. En Linux, es suficiente con hacer:

gcc -Wall -g argobot.c -o argobot
chown root argobot
chgrp root argobot

La primera instrucción realiza la compilación, generando el fichero argobot. Con las dos siguientes, establecemos los propietarios de este fichero.

4.6 Configuración

La tarea de configuración se limita al fichero argobot.conf, aunque también es necesario crear una nueva cuenta de usuario para el operador del servidor IRC.

El fichero argobot.conf es un fichero de texto que contiene líneas con comandos. Al hacer la instalación, se genera un fichero de ejemplo, pero lo más conveniente es modificarlo para adaptarlo a nuestras necesidades. Los comandos son:

Puede haber tantos comandos join como sean necesarios. Para cada uno de ellos, se pueden indicar opciones específicas para el canal, mediante los siguientes comandos:

Para nuestro sistema, el fichero argobot.conf es el siguiente:

#
# Parámetros globales
#

# Nick utilizado a la hora de identificarse como IRCop, así como
# para el WHOIS
IRCnick ArgoBot

# Password correspondiente al nick anterior
IRCpasswd miclave
# Nick bajo el cual debe aparecer el bot
nick _ArgoBOT
passwd miclave

# Nombre del dominio al que se va a conectar el bot
server maquina.euitio.uniovi.es
port 6667

# Mensaje que aparece en el away del bot
away Bot de control de maquina.euitio.uniovi.es. No respondemos \
de los fallos.

# Mensaje enviado con el KILL a cualquier usuario que esté utilizando el
# nick definido en el comando NICK anterior
nick_collide Escoge otro Nick, por favor

# Las siguientes líneas configuran distintos aspectos de la seguridad
umbral_kline 5  # Máximo número de intentos (desconectado)
timeout_klines 15  # 15 minutos
timeout_whowas 5 # Tiempo entre whowas

#
#
# Grupos de usuarios
#
#

# Define el grupo de usuarios al que pertenecen todos
set todos *!*@*      # Comodines
group todos todos

# Define el grupo de IRCops
set diego *!diego@maquina.euitio.uniovi.es
set alfredo *!alfredo@maquina.euitio.uniovi.es
group IRCops diego alfredo

# Define el grupo de proveedores
group proveedores diego alfredo

# Canal ayuda-esnet
group ayuda-esnet diego alfredo

#
#
# Canales
#
#

join linux GOD
autoop IRCops
mode_default ntm
mode_disallow silpko
notice Canal dedicado a los amantes del Linux. \
Prohibido a Bill Gates.
timer 60 60 privmsg #linux :Mensaje enviado al canal linux de forma \
automática
timer 60 9999 topic #linux :Canal para los autenticos entendidos en \
informática y sistemas operativos.

# Pone un modo para reducir el consumo de ancho de banda
timer 60 600 mode _argobot :+d

4.7 Ejecución

Para ejecutar el bot, basta con escribir (preferiblemente como root):

cd /usr/src/argobot
./argobot

Si iniciamos Argobot de esta manera, imprimirá por la pantalla toda la actividad que registre (como entradas y salidas de usuarios), lo que puede ser conveniente por motivos de depuración, pero resulta innecesario durante una ejecución normal. Por tanto, es muy frecuente ejecutar el Argobot en segundo plano y redireccionando la salida:

nohup argobot &

Esto nos evitará ver todos los mensajes por la pantalla, pero los enviará a un fichero llamado nohup.out situado en el directorio actual. El problema es que este fichero puede crecer muy rápidamente, de manera que en grandes redes se suele enlazar con el dispositivo nulo, para convertirlo en un agujero negro:

ln -s /dev/null nohup.out

Durante la ejecución de una sesión de IRC, los usuarios autorizados pueden enviar mensajes al bot para cambiar su funcionamiento. Para realizar esta tarea, se emplea el comando MSG del IRC:

/MSG _argobot <clave> <comando> <canal> [nick]

Donde comando puede ser:


Página siguiente Página anterior Índice general