Microordenadores - Desarrollos modernos para sistemas retro

Como crear un servidor IRC en la Raspberry Pi 3 con ngIRCd
20 de Julio de 2017

Configura un servidor de IRC en la Raspberry Pi con ngIRCd, un servidor de IRC libre, ligero y portable, disponible para Linux, BSD y Mac OS X entre otros sistemas, y con licencia GPL. A diferencia de otros servidores de IRC es fácil de configurar y además soporta IPv6, SSL y autenticación PAM.

Elección del servidor de IRC

ngIRCd significa demonio de IRC de siguiente generación. Aunque no perfecto, ngIRCd es el servidor de IRC que he encontrado más adecuado ya que no está basado en el antiguo ircd que contiene código de mala calidad. Además de estar disponible para Linux también está en el árbol de ports de OpenBSD, por lo que su instalación será muy sencilla.

Está implementado en C++ usando técnicas más modernas de programación y parte de cero, en lugar de aprovechar código antiguo. Aparte de por su funcionalidad, ngIRCd destaca por su archivo de configuración sencillo y limpio.

Elección del sistema operativo

Al tratarse de un servidor mi elección y recomendación es, sin dudas, OpenBSD debido a su calidad, sencillez y seguridad. Si no sabes como instalarlo en la Raspberry Pi 3 echa un ojo al tutorial de instalación de OpenBSD en la Raspberry Pi 3.

Una gran ventaja es que, por defecto, OpenBSD instalará ngIRCd con chroot y un usuario sin privilegios, de forma que si hay algún fallo de seguridad en ngIRCd el daño potencial estará limitado.

Instalación de ngIRCd

Como en OpenBSD 6.1 no hay paquetes binarios para la arquitectura ARM64 tendrás que compilar el paquete ngIRCd desde el árbol de ports.

Teniendo en cuenta que la versión de OpenBSD instalada es current, y siguiendo las instrucciones de la página de CVS en OpenBSD, el proceso consiste en descargar el árbol de ports para después compilar e instalar ngIRCd, el servidor IRC usado en este tutorial.

Como descargar el árbol de ports

Como aún no están disponibles los paquetes binarios para la arquitectura arm64 deberás instalar net/irssi desde los ports. El proceso es sencillo y viene perfectamente explicado en la sección AnonCVS de la web de OpenBSD. En este ejemplo voy a usar el mirror ftp.hostserver.de, concretamente la rama -current que es la que he instalado:

$ cd /usr
$ cvs -qd anoncvs@ftp.hostserver.de:/cvs get -P ports

Una vez descargado el árbol de ports, que son meras "recetas" para descargar, parchear y compilar los distintos programas, para actualizarlo bastaría con este comando:

$ cd /usr/ports
$ cvs -q up -Pd

Como compilar e instalar ngIRCd

Con el comando cd /usr/ports ; make search key="ngircd" veremos la ruta del port, que en este caso es net/ngircd. A continuación:

# cd /usr/ports/net/ngircd
# make install 
# make clean

Como configurar ngIRCd

El archivo de configuración /etc/ngircd/ngircd.conf

Indico los cambios que hago mediante los símbolos '-' y '+' las líneas que cambio y añado, respectivamente:

-       Name = 192.168.2.121 
+       Name = irc.example.net
-       AdminInfo1 = Administrador de la red Pi IRC 
-       AdminInfo2 = Netherlands 
-       AdminEMail = admin@192.168.2.121
+       ;AdminInfo1 = Description
+       ;AdminInfo2 = Location
+       ;AdminEMail = admin@irc.server
-       HelpFile = /usr/local/share/doc/ngircd/Commands.txt
+       ;HelpFile = /usr/local/share/doc/ngircd/Commands.txt
-       Info = Servidor de IRC en una Raspberry Pi 3 
+       Info = Server Info Text
-       Listen = 0.0.0.0 
+       ;Listen = 127.0.0.1,192.168.0.1
-       MotdPhrase = "Bienvenido al IRC"
+       ;MotdPhrase = "Hello world!"
-       Network = PIIrc 
+       ;Network = aIRCnetwork
-       Name = operador 
+       ;Name = TheOper
-       Password = password 
+       ;Password = ThePwd

Ahora se añade ngircd al arranque de OpenBSD y se inicia el servidor:

# rcctl enable ngircd
# rcctl start ngircd

Con esto ya te podrás conectar al servidor IRC. Si no sabes cómo echa un ojo al tutorial para conectarse al irc con la Raspberry Pi 3.

Enlaces


Contenido relacionado: