En esta ocasión vamos a hablar del 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 IRC, ingresar a canales y hablar con personas. Después de eso, verá cómo iniciar su propio servicio IRC con UnrealIRCd.
Índice
- Introducción
- Conectándose en IRC
- Comandos básicos de IRC
- Servir IRC con UnrealIRCd
Introducción
Puede que recuerdes los chats de IRC, cuando no existían Facebook Google+ o LinkedIn y nuestras redes sociales eran canales de chat de IRC. Hoy en día 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 ligero, ampliamente desplegado y estandarizado, creado originalmente en 1988 por los usuarios de BBS como reemplazo y mejora del programa de conversación y que por sus características vio nacer y morir a muchos otros sistemas de mensajería.
Conectando en IRC
Para conectarse a una red IRC, necesitará un software de cliente. Estos son algunos buenos clientes para Linux.
Irsi
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
yum install irssi
Conéctese a una red con el indicador -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] por lo anterior. el comando /ventana.
/window [ next | previous ]
Utilice el parámetro de lista para mostrar una lista con las ventanas abiertas
/window list
A continuación, puede saltar al número de ventana de la lista con [Alt+#] , donde # es el número de ventana entre 1 y 9. Otra forma de hacer esto es con el parámetro goto
También puede encontrar buenos consejos sobre cómo usar Irssi en el sitio web de quadpoint.
/window goto [1-9]
XChat
XChat simplifica el proceso para los recién llegados al brindarle opciones de apuntar y hacer clic para 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]
A medida que se conecta con éxito a la red, puede seleccionar una de las opciones para unirse a los canales. También puede usar el menú Servidor->Lista de Canales.
Comandos IRC básicos
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. Para listar canales relacionados con el desarrollo prueba
/list #devel*
Una vez que encuentre el canal que le interesa, intente unirse. con /unirse a #nombredelcanal.
/join #linux
OK, estás en un canal, puedes comenzar a hablar ahora, para saber quién está en el canal, haz esto con nombres
/names
Tal vez quiera saber más sobre quién es alguien en la red, pruebe whois.
/whois MrRobot
¿Quieres una ventana de chat con alguien? consulta.
/query MrRobot
Registra tu nick
No necesita crear una cuenta para chatear en las redes 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 Tuxman en Freenode. Pídele al NickServ que REGISTRE tu apodo
/msg NickServ REGISTER password [email protected]
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 ante la red
/msg NickServ IDENTIFY password
Conéctese e identifíquese al inicio de Irssi con los indicadores -n y -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
Instalando 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 que se ejecutan actualmente.
Requisitos adicionales
Aquí hay algunos requisitos para obtener lo mejor de su UnrealIRCd, a pesar de que no es obligatorio, es muy recomendable como verá.
NTP - Debe tener la hora y la fecha correctas, ntp es su mejor opción para mantener la hora y la fecha 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
Extrae el tarball
tar zxvf Unreal3.2.10.5.tar.gz
Entra en el árbol de fuentes
cd Unreal*
Habilitar usuario 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 con una cuenta de usuario sin privilegios, dentro de un entorno chroot, y por lo tanto hará que toda la configuración sea mucho más segura.
Para ello debe editar include/config.h archivo dentro del directorio de fuentes.
La característica del entorno chroot está definida por la siguiente directiva
/* #define CHROOTDIR */
Definir la constante IRC_USER
/* #define IRC_USER "<user name>" */
Definir la constante IRC_GROUP
/* #define IRC_GROUP "<group name>" */
Crear grupo para ircd
groupadd ircd
Cree un usuario ircd y agréguelo al grupo ircd.
useradd ircd -s /bin/false -g ircd
Configure la contraseña para el usuario de ircd para asegurarse de que nadie pueda ingresar.
passwd ircd
Configurar la compilación
En este punto, sigue las preguntas en la pantalla y puede usar la configuración predeterminada la mayor parte del tiempo, sin embargo, le aconsejo que responda Sí cuando se le pregunte si desea habilitar la compatibilidad con SSL.
./config
Construye las fuentes
make
Instalar archivos
make install
Si habilitó las funciones de usuario, grupo y chroot de ircd, ahora debe cambiar la propiedad del directorio UnrealIRCd.
chown -R ircd:ircd /home/ircd/UnrealIRCd
Configurar
Es hora de hacer que tu demonio IRC funcione. Para esto edite el unrealircd.conf , el archivo de configuración de UnrealIRCd. Puede encontrar el archivo bien documentado doc/sample.conf debajo de su árbol de directorios UnrealIRCD, puede ayudarlo en su viaje. Creé estos fragmentos de trabajo con una breve descripción.
yo - Este bloque establece algunas configuraciones básicas del servidor, nombre , información básica y el numérico valor que debe ser único en todos los servidores de la misma red.
me {
nombre "irc.localhost"; información "Mi servidor"; numérico 1;
};
administrador - Aquí estableces quién es el administrador del servidor, su nombre, nick y correo electrónico.
admin {
"Jorge Jedi"; /* Nombre */ "geroge";/* Apodo */ "[email protected]"; /* 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 {
frecuencia de ping 90; maxclientes 500; enviarq 100000; recvq 8000;
};' servidores de clase {
frecuencia de ping 90; maxclientes 10; /* Max servidores que podemos tener enlazados a la vez */ sendq 1000000; connfreq 100; /* Cuántos segundos entre cada intento de conexión */
};
permitir - Definir 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 feo.personas.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 las conexiones. En el bloque estamos escuchando en el puerto 6697 para los clientes de usuario que se conectan a través de la capa de conexión segura (SSL). Tenga en cuenta también la declaración de línea simple para conexiones de texto sin formato en el puerto 6667
listen *:6697 {
opciones {
SSL; solo clientes;
};
}; #escuchar *:8067; escucha *:6667; #escuchar *:6660-6669;
ópera - Atributos del 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 { host de usuario *@*; };
contraseña "fuba"; banderas {
administrador de red; can_gkline; can_kline; can_unkline; can_gzline; can_zline; puede_reiniciar; puede_morir; can_rehash; mundial;
};
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";
registrar - Cómo se escribirán los archivos de registro, en el ejemplo registramos eventos marcados como errores, muertes, etc.
log ircd.log {
tamaño máximo 5 MB; banderas {
errores; mata; opera; tkl;
};
};
establecer - Puede configurar muchas otras cosas aquí, en nuestro ejemplo tenemos una red en el dominio gaia.net llamada gaianet, que conecta a las personas con el canal #welcome, configuramos 3 claves de ocultación alfanuméricas diferentes, configuramos los hosts en la red, creamos un #canal de ayuda y otras opciones que se detallan en nrealircd.org.
set {
kline-address [email protected]; unirse automáticamente #bienvenido; op
opciones {
ocultar-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";
llaves de capa {
"aoAr1O6fh3Q6w4Hnl3J7hVz4Zb7x4YwpW"; "andaoAr1HnR6gl3sJ7uhVzO6fh3Q6w4oN3"; "a2Ja2JO6fh3Q6w4oNs7O6fh3Q6w4oN3s7";
};
anfitriones {
local "locop.gaia.net"; global "ircop.gaia.net"; coadmin "coadmin.gaia.net"; administrador "admin.gaia.net"; servicesadmin "csops.gaia.net"; netadmin "netadmin.gaia.net"; host-on-oper-up "no";
};
};
Iniciar 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 funcionar sin problemas, sin embargo, si tiene algún problema durante el inicio, lea los mensajes de error en la terminal y también en el archivo ircd.log para averiguar qué está mal.
Conclusión
Ya ha terminado, su cliente y servidor deberían estar ejecutándose ahora, puede hablar con personas de todo el mundo utilizando algunas de las redes globales o utilizando 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 te ayudarán.
Documentos RFC
El siguiente RFC define los estándares para el protocolo IRC. Deberías leer esto antes de que puedas obtener lo mejor de IRC.
RFC-1459, RFC-2810, RFC-2811, RFC-2812, RFC-2813, RFC-7194
Documentos y soporte de UnrealIRCd
Consulte la 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 del IRC conectándose a irc.unrealircd.org:6667 en el canal #unreal-support. ¡Gracias por leer!