LINUX

IRC con XChat, Irssi y UnrealIRCD en CentOS 7

En esta ocasión vamos a hablar de Internet Relay Chat, o simplemente IRC. En la primera parte de este artículo revisaremos este protocolo, cómo usar Irssi o XChat para conectarse en Freenode y otras redes de IRC, ingresar a los canales y hablar con la gente. Después de eso, verá cómo iniciar su propio servicio de IRC con UnrealIRCd.

Tabla de contenido

  • Introducción
  • Conexión en IRC
  • Comandos básicos de IRC
  • Sirviendo IRC con UnrealIRCd

Introducción

Tal vez recuerde los chats de IRC, cuando no existía Facebook, Google+ o LinkedIn y nuestras redes sociales eran canales de chat de IRC. Hoy tenemos muchas alternativas para hablar con alguien en Internet, junto con las redes sociales tenemos muchos servicios de mensajería populares, como Whatsapp, Skype, Hangouts, etc.

Sin embargo, a pesar de que IRC no es el principal programa de comunicación en Internet, sigue vivo y es una gran herramienta. Es un protocolo liviano, ampliamente implementado y estandarizado, creado originalmente en 1988 por usuarios de BBS como reemplazo y mejora del programa de conversación y que, por sus características, vio el nacimiento y la muerte de muchos otros sistemas de mensajería.

Conexión en IRC

Para conectarse a una red IRC, necesitará un software de cliente. Estos son algunos buenos clientes para Linux.

Irssi

Irssi es un cliente de IRC basado en curses, es bastante bueno, personalizable, permite el uso de scripts y descarta la necesidad de un servidor X.

Instalar en pc

yum install irssi

Conéctese a una red con la bandera -c,

irssi -c irc.freenode.org

Cambiar entre las ventanas de Irssi puede ser un poco complicado la primera vez, puede usar [Ctrl+n] para ir a la siguiente ventana y [Ctrl+p] para el anterior. el comando / window.

/window [ next | previous ]

Utilice el parámetro de lista para mostrar una lista con las ventanas abiertas

/window list

Luego puede saltar al número de ventana listado con [Alt+#], donde # es el número de ventana entre 1-9. Otra forma de hacer esto es con el parámetro goto

/window goto [1-9]

También puede encontrar buenos consejos sobre cómo usar Irssi en el sitio web de quadpoint.

XChat

XChat simplifica el proceso para los recién llegados al brindarle opciones de apuntar y hacer clic en los comandos y la mayoría de las acciones.

Puedes instalar XChat con yum

yum install xchat

Conéctese a las redes IRC, utilizando el cuadro de diálogo que se le presenta cuando acaba de iniciar XChat, también accesible desde el menú XChat-> Lista de redes [Ctrl+s]

Conéctese a redes IRC en XChat
Conéctese a redes IRC en XChat

Cuando se conecte con éxito a la red, puede seleccionar una de las opciones para unirse a los canales. También puedes usar el menú Servidor-> Lista de canales.

IRC unirse a Freenode XChat
IRC unirse a Freenode XChat

Comandos básicos de IRC

Ahora que tiene un cliente, aquí hay algunos comandos que puede usar en IRC. Cuando se conecte por primera vez a una red, el cliente le dará un apodo basado en el inicio de sesión de su sistema, y ​​para cambiar su apodo a Tuxman, por ejemplo, intente esto.

/nick Tuxman

Con un nuevo, es posible que desee ingresar en un canal. A lista canales relacionados con el desarrollo intentar

/list #devel*

Una vez que encuentre el canal que le interesa, intente unirse con / join #nombredecanal.

/join #linux

OK, estás en un canal, puedes empezar a hablar ahora, para saber quién está en el canal, haz esto con nombres

/names

Tal vez quieras saber más sobre quién es alguien en la red, prueba quién es.

/whois MrRobot

¿Quieres tener una ventana de chat con alguien? consulta.

/query MrRobot

Registra tu nick

No es necesario crear una cuenta para chatear en las redes de IRC. Sin embargo, si desea evitar que su apodo sea utilizado por otra persona, debe registrar su apodo en la red. Esto también le dará acceso a recursos que requieren apodos registrados, como encubrimiento y acceso a más canales.

Supongamos que desea registrar el apodo de Tuxman en Freenode. Pídale al NickServ que registre su apodo

/msg NickServ REGISTER password me@email.com

Después de eso, debe obtener su código de verificación que se envió al correo electrónico que proporcionó y enviarlo a NickServ

/msg NickServ VERIFY REGISTER nickname verifycode

Has registrado tu apodo, ahora puedes identificarte en la red.

/msg NickServ IDENTIFY password

Conéctese e identifíquese en el inicio de Irssi con los indicadores -ny -w.

irssi -c irc.freenode.net -n nickname -w password

También debe cambiar su contraseña de vez en cuando, use el siguiente comando

/msg nickserv set password newpassword

Instalación de UnrealIRCd

Entre otras implementaciones de Ircd, está UnrealIRCd. Tiene todas las funciones, es modular y está altamente documentado, también es el servidor de IRC más implementado en la actualidad, lo que corresponde a más del 50% de los servidores de IRC en ejecución.

Requisitos adicionales

Aquí hay algunos requisitos para obtener lo mejor de su UnrealIRCd, a pesar de que no es obligatorio, se recomienda encarecidamente, como verá.

Ntp – Debe tener la fecha y la hora correctas, ntp es su mejor opción para mantener la fecha y la hora correctas.

Instalar ntp

yum install ntp

Habilitar ntpd

chkconfig ntpd on

OpenSSL – Esto también es opcional, se utilizará si desea compatibilidad con SSL / TLS.

yum install openssl

Zlib – Esto le permitirá comprimir los paquetes de red y reducir la carga sobre los enlaces.

yum install zlib

Obtener UnrealIRCd

Descarga Unrealircd.

wget --no-check-certificate https://www.unrealircd.org/downloads/Unreal3.2.10.5.tar.gz

Extacta el tarball

tar zxvf Unreal3.2.10.5.tar.gz

Entrar en el árbol de fuentes

cd Unreal*

Habilitar usuario de chroot irc y grupo irc (recomendado)

Este paso es opcional pero muy recomendable ya que le permitirá eliminar los derechos de superusuario y ejecutar UnreadIRCd en una cuenta de usuario sin privilegios, dentro de un entorno chrooted, y por lo tanto hará que toda la configuración sea mucho más segura.

Para hacer esto debes editar include / config.h archivo dentro del directorio de fuentes.

La característica del entorno chroot está definida por la siguiente directiva

/* #define CHROOTDIR    */

Defina la constante IRC_USER

/* #define IRC_USER  "<user name>" */

Defina la constante IRC_GROUP

/* #define IRC_GROUP "<group name>" */

habilitar-usuario-chroot

Crear grupo para ircd

groupadd ircd

Cree un usuario ircd y agréguelo al grupo ircd.

useradd ircd -s /bin/false -g ircd

Establezca la contraseña para el usuario de ircd para asegurarse de que nadie pueda ingresar.

passwd ircd

Configurar la compilación

En este punto, siga las preguntas de la pantalla y podrá utilizar la configuración predeterminada la mayor parte del tiempo; sin embargo, le aconsejo que responda Sí cuando se le pida que habilite el soporte ssl.

./config
Configuración de la compilación de UnrealIRCd
Configuración de la compilación de UnrealIRCd

Construye las fuentes

make

Instalar archivos

make install

Si habilitó las funciones de usuario, grupo y chroot de ircd, ahora debería cambiar la propiedad del directorio UnrealIRCd.

chown -R ircd:ircd /home/ircd/UnrealIRCd

Configurar

Es hora de hacer que su demonio de IRC funcione. Para esto editar el unrealircd.conf, el archivo de configuración de UnrealIRCd. Puede encontrar el archivo doc / sample.conf, que está bien documentado, en el árbol de directorios de UnrealIRCD; puede ayudarle en su viaje. Creé estos fragmentos de trabajo con una breve descripción.

me – Este bloque establece algunas configuraciones básicas del servidor, nombre, básico info y el numérico valor que debe ser único en todos los servidores de la misma red.

me {

nombre «irc.localhost»; info «Mi servidor»; numérico 1;

};

administración – Aquí configura quién es el administrador del servidor, su nombre, apodo y correo electrónico.

admin {

«George Jedi»; / * Nombre * / «geroge»; / * Apodo * / «george@heaven.net»; /* Correo electrónico */

};

clientes / servidores de clase – Esto establece cómo los clientes y otros servidores son manejados por nuestro servidor respectivamente. frecuencia de ping, máximo de conexiones de clientes, frecuencia de intentos de reconexión, colas de recepción y envío.

class clients {

pingfreq 90; maxclients 500; sendq 100000; recvq 8000;

}; ‘ servidores de clase {

pingfreq 90; maxclients 10; / * Máximo de servidores que podemos tener vinculados a la vez * / sendq 1000000; connfreq 100; / * Cuántos segundos entre cada intento de conexión * /

};

permitir – Defina quién puede conectarse al servidor y cómo. El primer bloque permite conexiones de usuario desde cualquier IP o nombre de host y limita las conexiones a 5 por IP. El segundo bloque permite solo una conexión autenticada a personas de ugly.people.com

allow {

ip *; nombre de host *; clientes de clase; maxperip 5;

}; permitir {

ip * @ *; nombre de host *@*.ugly.people.com; clientes de clase; contraseña «jayajaya»; maxperip 1;

};

escucha – Qué puertos escuchar para conexiones. En la cuadra estamos escuchando puerto 6697 para clientes usuarios que se conectan a través de la capa de conexión segura (SSL). Tenga en cuenta también la declaración simple de línea para conexiones de texto sin formato en el puerto 6667

listen *:6697 {

opciones {

ssl; solo cliente;

};

}; #escucha *: 8067; escuchar *: 6667; #escucha *: 6660-6669;

oper – Atributos de operador, en este ejemplo usamos un operador apodado george que puede conectarse desde cualquier lugar con la contraseña «fuba»

oper george {clientes de clase; de {userhost * @ *; };

contraseña «fuba»; banderas {

netadmin; can_gkline; can_kline; can_unkline; can_gzline; can_zline; can_restart; can_die; can_rehash; global;

};

swhois «Ejemplo de una máscara whois»; snomask cFfkoSsqNG;

};

módulo de carga – Módulos de cargas, estos son los mínimos recomendados

loadmodule "modules/commands.so";
loadmodule "modules/cloak.so";

Iniciar sesión – Cómo se escribirán los archivos de registro, en el ejemplo, registramos los eventos marcados como errores, muertes, etc.

log ircd.log {

tamaño máximo 5 MB; banderas {

errores; mata oper; tkl;

};

};

colocar – Puede configurar muchas otras cosas aquí, en nuestro ejemplo tenemos una red en el dominio gaia.net llamada gaianet, que conecta a las personas al canal #welcome, configuramos 3 claves de capa alfanuméricas diferentes, configuramos los hosts en la red, creamos una #help channel y otras opciones que se detallan en nrealircd.org.

set {

kline-address my@email.address; auto-join #welcome; op

opciones {

hide-ulines;

};

maxchannelsperuser 10; servidor de servicios «services.gaia.net»; servidor predeterminado «localhost»; nombre de red «gaianet»; canal de ayuda «#ayuda»; prefijo de host oculto «gaia»;

cloak-keys {

«aoAr1O6fh3Q6w4Hnl3J7hVz4Zb7x4YwpW»; «andaoAr1HnR6gl3sJ7uhVzO6fh3Q6w4oN3»; «a2Ja2JO6fh3Q6w4oNs7O6fh3Q6w4oN3s7»;

};

Hospedadores {

local «locop.gaia.net»; global «ircop.gaia.net»; coadmin «coadmin.gaia.net»; admin «admin.gaia.net»; servicesadmin «csops.gaia.net»; netadmin «netadmin.gaia.net»; host-on-oper-up «no»;

};

};

Inicie UnrealIRCd

Con todo en su lugar, puede iniciar su demonio IRC ahora. Agregue el siguiente comando en rc.local para iniciar UnrealIRCd cuando se inicie su sistema.

/home/ircd/UnrealIRCd/unreal start

Debería ejecutarse sin problemas, sin embargo, si tiene algún problema durante el inicio, lea los mensajes de error en el terminal y también en el archivo ircd.log para averiguar qué está mal.

Conclusión

Por ahora ha terminado, su cliente y servidor deberían estar funcionando ahora, puede hablar con personas de todo el mundo usando algunas de las redes globales o usando su propia red. Sin embargo, es una buena idea aprender más sobre el protocolo IRC, cómo administrar redes, canales y usuarios, etc. Los siguientes documentos deberían ayudarlo.

Documentos RFC

El siguiente RFC define los estándares para el protocolo IRC. Debería leer esto antes de obtener lo mejor de IRC.

RFC-1459, RFC-2810, RFC-2811, RFC-2812, RFC-2813, RFC-7194

Soporte y documentos de UnrealIRCd

Referir documentación oficial de UnrealIRCd para adquirir más información. Contiene todos los detalles que no se describen en este documento. También puede obtener ayuda de IRC conectándose en irc.unrealircd.org:6667 en el canal # unreal-support. ¡Gracias por leer!

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar