ZNC es un “IRC bouncer” con el que estarás siempre presente en tus canales IRC, y no te perderás ninguna conversación.

Los canales IRC siguen siendo una buena opción para participar, preguntar o encontrarte con muchas comunidades. Este medio es comúnmente utilizado por muchos proyectos de software libre en los que debatir, ponerse en contacto, comunicarse y ayudarse en determinadas tareas.

Si has utilizado alguna vez algún canal de IRC, verás que algunos usuarios están permanentemente conectados al canal, sea la hora que sea. ¿Quiere eso decir que están permanentemente sentados delante de su equipo? La respuesta es: no. Aunque sí están “leyendo” todo lo que ocurre.

Muchos usuarios que utilizan IRC, lo que hacen es conectarse a un “IRC Bouncer” o reboteador de IRC. Esto no es más que un software instalado en un servidor que “lee y almacena” por nosotros aquello que pasa en los canales a los que nos conectamos.

Esos usuarios se conectan a sus servidores un software les envía aquello que ha pasado durante su ausencia. Veamos cómo instalar ese software para conectarnos nosotros a nuestro servidor y no perdernos nunca ninguna conversación o llamadas de otros usuarios.

Para ello necesitaremos un servidor donde instalar el software que queremos. Tal como vimos en una entrada anterior, utilizo un Servidor Privado Virtual (o VPS por sus siglas en inglés) en Clouding.io. Veremos cómo instalar y configurar el software en un servidor con CentOS como sistema operativos (será similar en otros sistemas operativos que utilicemos en nuestro servidor)

El software que utilizaremos para instalar en nuestro servidor será ZNC. El proceso constará de 2 partes:

En una primera parte tendremos que instalar en nuestro servidor ZNC y configurarlo

En una segunda parte deberemos configurar nuestro cliente IRC con el que nos conectamos, para que se conecte a nuestro servidor.

Primero veamos un esquema de qué hace ZNC. Como vemos en el dibujo ZNC es un servidor intermedio, al que nos conectamos y que almacena todo aquello que pasa durante nuestra ausencia de los canales IRC.

Instalación y configuración de ZNC

Me conecto a mi servidor en Clouding.io servidor mediante SSH (tal como vimos en otro artículo). Si tienes una Raspberry Pi en tu casa también puede servir.

Mi servidor está corriento CentOS, por tanto primero deberemos instalar el repositorio EPEL, y desde ahí instalar ZNC. Mediante:

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm rpm -Uvh epel-release-7*.rpm yum install znc

Nos conectaremos mediante el puerto 6697 de nuestro servidor para conectarnos mediante tráfico cifrado SSL. Quizás debamos primero abrir este puerto en nuestro servidor. Para ello, bien desde el panel de configuración de Clouding.io o con estos comandos (con privilegios de super usuario):

firewall-cmd --add-port=6697/tcp firewall-cmd --runtime-to-permanent

Ya con nuestro usuario normal, deberemos crear un nuevo archivo de configuración para nuestro usuario de ZNC, para ello escribimos el siguiente comando:

znc -c

Y nos irá irá realizando una serie de preguntas para ir configurando las distintas opciones de ZNC. Algunas de esas opciones podremos cambiarlas después desde la interfaz web de ZNC.

What port would you like ZNC to listen on? (1025 to 65535): 6697 #Escogemos este puerto Would you like ZNC to listen using SSL? (yes/no) [no]: yes #Para que no viaje en texto plano Would you like to create a new pem file now? (yes/no) [yes]: yes #Para nuestro certificado SSL Would you like ZNC to listen using ipv6? (yes/no) [yes]: yes #Por qué no... Listen Host (Blank for all ips): Load global module ? (yes/no) [no]: yes Load global module ? (yes/no) [no]: yes Username (AlphaNumeric): Victorhck Enter Password: ************ Confirm Password: ************ Would you like this user to be an admin? (yes/no) [yes]: yes Nick [FirstUser]: Victorhck Alt Nick [IRCNickname_]: Victorhck_ Ident [IRCNickname]: Real Name [Got ZNC?]: Bind Host (optional): Number of lines to buffer per channel [50]: 50 #Número de líneas que guardará mientras no estamos en el canal Would you like to clear channel buffers after replay? (yes/no) [yes]: yes Default channel modes [+stn]: Load module ? (yes/no) [no]: yes Load module ? (yes/no) [no]: yes Load module ? (yes/no) [no]: yes Would you like to set up a network? (yes/no) [no]: yes #Decimos que sí para crear nuestra red en freenode Load module ? (yes/no) [no]: yes Load module ? (yes/no) [no]: no Load module ? (yes/no) [no]: yes Load module ? (yes/no) [no]: yes Load module ? (yes/no) [no]: yes Load module ? (yes/no) [no]: yes IRC server (host only): irc.freenode.net [irc.freenode.net] Port (1 to 65535) [6667]: 6697 [irc.freenode.net] Password (probably empty): Does this server use SSL? (yes/no) [no]: no Would you like to add another server for this IRC network? (yes/no) [no]: no Would you like to add a channel for ZNC to automatically join? (yes/no) [yes]: yes Channel name: #opensuse-es Would you like to add another channel? (yes/no) [no]: no Would you like to set up another network? (yes/no) [no]: no Would you like to set up another user? (yes/no) [no]: no Launch ZNC now? (yes/no) [yes]: yes

Al finalizar de entrar todas nuestras opciones, se lanzará ZNC en nuestro servidor. Ya tenemos en marcha el servicio. Ahora podemos acceder a la interfaz web de znc en nuestro servidor mediante el navegador web en la siguiente dirección:

http(s)://<dirección:IP:servidor>:<puerto>

Si escogimos SSL el navegador nos dará una advertencia ya que el certificado no está “firmado”. Pero omitiendo esa advertencia y creando una excepción (confiamos en nuestro servidor) el navegador accede a la interfaz web de nuestro servicio ZNC en nuestro servidor.

Introducimos el nombre y contraseña creados, y entramos en la interfaz de ZNC, aquí ya todo es más intuitivo y sencillo. Podremos modificar algunas de las opciones creadas con anterioridad, crear más usuarios, añadir más canales a los que queremos estar conectados, etc…

Configuración del cliente de IRC para conectarse a ZNC

Ahora deberemos decirle a nuestro cliente IRC que queremos que se conecte a nuestro servidor en donde ya de manera predeterminada se conectará a los canales deseados, y cuando cerremos el cliente y nos volvamos a conectar nos mostrará un registro de lo que ha sucedido en nuestra ausencia.

En mi caso utilizo Plasma, así que utilizo el cliente de KDE para IRC que es Konversation.

En Archivo →Lista de servidores, deberemos crear una nueva red y configurarla. En ese menú también deberemos marcar la opción de “Mostrar en el arranque de la aplicación”

Le damos un nombre a la red. En servidores, le ponemos la dirección IP de nuestro servidor, y en lista de canales podemos especificar uno, o no. Se conectará a los que hayamos establecido en ZNC.

Conclusión

La verdad es que no ha sido muy difícil poner en marcha el servicio en el VPS de Clouding.io. Yo lo tengo corriendo bajo CentOS, pero tanto en Debian como en Ubuntu se realizará de manera similar, variando la manera de instalar los paquetes, y ciertas diferencias.

Yo que soy un habitual de algunos canales de IRC este primer proyecto en los VPS de Clouding.io ha sido una buena primera toma de contacto con esto de trabajar con servidores de manera remota. Muy interesante la experiencia.

Si entráis en algún canal IRC de los que visito, nos leeremos, aunque quizás no este delante del PC en ese momento y sea ZNC quien haga el trabajo por mí! 🙂

Enlaces de interés

——————————————————————————–