Exprimiendo InspIRCd con Anope

Continuamos hablando del mundo del IRC. En esta ocasión vamos a utilizar el servicio que levantamos vía Docker de la aplicación IRC InspIRCd, para añadirle más miga con Anope. Ya que este servicio nos va a permitir añadirle mucho más funcionalidades a nuestro servidor IRC.

La idea de esta entrada, surgió a raíz de visitar otros servidores IRC y ver que tenían la opción de utilizar los comandos de ChanServ, que son fantásticos para controlar los canales de IRC y muchas más cosas. El problema es que en InspIRCd no vienen habilitados por defecto.

Investigando un poco he averiguado que para poder utilizarlos tenemos que añadir un servicio de terceros. En este caso se trata de los servicios de ANOPE. Producto que he de decir no conocía. Más adelante os daré más detalles sobre él.

Antes de nada quiero recordar que el entorno de contenedores con Docker, lo tengo montado sobre una distribución con Ubuntu 22.04 en un VPS, de mi empresa de confianza Clouding.io

Logo oficinal de Anope IRC

¿De qué trata Anope?

Anope son un conjunto de servicios de IRC, herederos de lo que fue en su día el proyecto Epona, desde el 2003. Desde entonces han añadido un buen puñado de nuevas mejoras en la calidad y su funcionalidad.

Actualmente tienen dos versiones disponibles. Las versiones disponibles estables ofrecen instantáneas de la serie de desarrollo que se prueban de forma continua, lo que da como resultado un conjunto de servicios muy estables. Si utilizamos las versiones de desarrollo tendremos las últimas novedades.

Todo lo que ofrece

Según la información extraída de su página web, actualmente ofrecen diferentes servicios:

  • NickServ: servicios de administración de apodos. NickServ permite a nuestros usuarios registrar su apodo para evitar que otros roben su apodo. Los usuarios también podrán eliminar cualquier conexión fantasma con su apodo y podrán agrupar sus apodos más utilizados para que puedan usar el mismo conjunto de configuraciones y acceso para todos sus apodos.
  • ChanServ – servicios de gestión de canales. ChanServ brinda la posibilidad de registrar nuestros canales. De esta manera, ChanServ se puede usar para otorgar el estado de operador de canal a los operadores regulares, o para bloquear otros modos o un tema para su canal. La versión ofrecida de ChanServ proporciona un conjunto muy completo de funciones para la gestión de canales, lo que permite un control completo sobre los canales.
  • MemoServ: permite enviar notas a usuarios o canales. MemoServ ofrece una forma de enviar mensajes cortos a usuarios que actualmente están desconectados o a canales completos si así lo deseamos. Esto nos permite a nosotros y a nuestros usuarios decirles algo rápidamente a los usuarios fuera de línea, sin posibilidad de que lo olviden.
  • OperServ – servicios de utilidad del operador. OperServ proporciona un conjunto muy completo de funciones para los operadores de IRC, lo que les permite operar su red de una manera muy eficiente. Incluyendo funciones de uso frecuente como akills y limitación de sesiones, esta caja negra para operadores de IRC garantiza una red de IRC segura y fácil de administrar.
  • BotServ: servicios de bot de canal. BotServ nos permite crear varios bots para nuestra red. Estos bots pueden unirse a los canales y hacerse cargo de la mayoría de las acciones de ChanServ, lo que hace que las cosas sean un poco más intuitivas. Además, BotServ también agrega algunas características como comandos de fantasía y activadores de “patada”
  • HostServ: servicios de alojamiento virtual. HostServ ofrece una forma de proporcionar fácilmente hosts virtuales a los usuarios de su red. Si nuestro IRCd admite hosts virtuales, HostServ puede usarse como una interfaz muy fácil para configurarlos y habilita el host virtual cada vez que un usuario se une a la red.

Junto a estos servicios populares, Anope también ofrece algunos otros servicios. Estos incluyen HelpServ, un servicio que se usa para brindar a las personas una descripción general simple de los servicios, DevNull, un receptor de mensajes y Global, que se usa para enviar avisos globales a todos en su red IRC.

Respecto a la licencia tiene una pequeña pega, ya que se puede utilizar de forma gratuita pero no es software libre, aunque sí que sigue la filosofía de desarrollo del código abierto. Podemos obtener más información en: Github – Anope – Fichero README

Despliegue de InspIRCd y Anope

Siguiendo con el fichero de docker-compose que vimos en la última entrada sobre el tema. Además de añadir el servicio de Anope, que ahora veremos, previamente también habilité la conexión SSL para el servidor IRC. Eso sí, dejando los dos modos de conexión disponibles.

En lo que respecta a Anope, he consultado bastante documentación, que os dejaré al final de la entrada. Al final he creado un fichero docker-compose creo que bastante elegante. Donde las variables de entorno, de ambos servicios, se encuentran en fichero ocultos: .env para las variables de InspIRCd y .env_anope para el servicio de Anope. Podéis consultar los fichero en la página de Github Davidochobits: Docker-Compose-Files-Inspircd-docker

Eso sí, tener en cuenta que tenéis que cambiar los parámetros para que se adapten a vuestras necesidades, como la URL del servicio; la exposición de puertos, si fuese necesario; la clave del usuario operador de InspIRCd recordar que la tenéis que generar desde el propio chat IRC, utilizando el comando ‘mkpasswd’; la clave para Anope, es en texto plano, cosa que no me gusta, pero tengo que seguir investigando.

Otra cosa importante, en la parte de Anope, es que para entornos productivos se recomienda añadir un servicio de MySQL/MariaDB, cosa que yo no he hecho, ya que de momento todo esto es para pruebas. Al no indicar un servicio de base de datos, genera una base de datos SqlLite. Tenedlo en cuenta. Cualquier duda consultar la documentación oficial, que os dejo más abajo.

Aquí podéis ver una imagen del resultado:

Consultamos la ayuda de ChanServ, ofrecido desde Anope

Fuentes consultadas

Documentación de InspIRCd para Docker

Documentación de Anope para Docker

FAQ en la web oficial de Anope