IRCd ( Internet Relay Chat Daemon ) es un servidor que ejecuta el protocolo Internet Relay Chat (IRC) , lo que permite a las personas comunicarse entre sí a través de Internet (lo que implica mensajes de texto en tiempo real).
El servidor acepta conexiones de un cliente IRC en un puerto específico . Cuando un servidor es parte de una red IRC, también mantiene conexiones con otros servidores/demonios.
El término ircd originalmente se refería a una sola variedad de software, pero finalmente se refirió a cualquier implementación de un demonio IRC. Sin embargo, la versión original todavía se distribuye con el mismo nombre.
El autor del término es Jarko Oikarinen (WiZ on IRC) desde 1989.
En las primeras versiones del protocolo, IRC no admitía muchas de sus funciones actuales, como las canalizaciones con nombre y sus operadores. Los canales estaban numerados y un canal cero significaba que no había conexión.
Ya en la versión 2.5, los canales recibieron nombres, y en la 2.7 reemplazaron completamente los números y apareció la posibilidad de prohibiciones (modo (+b). La versión 2.7 estuvo marcada por la controversia que llevó al surgimiento de EFNet . irc2.8 agregó "&channels" (canales que están solo en este servidor, no en toda la red) y "!channels" (que teóricamente están a salvo de captura ), esta versión es la base a partir de la cual se formaron todas las implementaciones actuales.
Los puertos 194 ("irc"), 529 ("irc-serv") y 994 ("ircs") se han asignado oficialmente a IRC. Sin embargo, estos puertos están en el rango privilegiado (0-1024), lo que en sistemas tipo Unix significa que el daemon necesitará tener privilegios de superusuario para abrir los puertos. Por razones de seguridad, esto no está permitido.
Por lo general, los puertos para un proceso IRCd son 6665 a 6669, y el predeterminado es 6667. Pueden ser abiertos por programas de cualquier usuario y, por lo tanto, son ampliamente utilizados.
La ejecución de un servidor IRC, que suele servir a varios miles de usuarios a la vez, requiere que se mantenga abierta una gran cantidad de conexiones TCP durante períodos prolongados, razón por la cual algunos ircd son de subprocesos múltiples .
Como resultado, las mejores plataformas para ircd son aquellas que ofrecen mecanismos eficientes para manejar un gran número de conexiones en un solo hilo. Linux ofrece esta capacidad en forma de epoll , en kernels posteriores a 2.4.x. FreeBSD (desde 4.1) ofrece kqueue . Solaris tiene /dev/poll desde la versión 7. Las diferencias entre estas nuevas interfaces pueden ser críticas. Los programadores de IRCU mencionaron un aumento en la capacidad práctica del servidor de 10.000 a 20.000 usuarios.
Algunos IRCds soportan SSL , otros todavía usan el túnel Stunnel genérico . No oficialmente, pero el puerto más utilizado para conexiones SSL IRCd es 6697.
Los demonios IRC admiten IPv4 y algunos también admiten IPv6 .
El salto de IRC generalmente se denomina bloqueo de un canal con nombre o apodo en un servidor o red o servidor de red.
Usar un apodo o un servidor suele ser útil cuando ciertos identificadores son únicos. Usando un identificador, puede adquirir un derecho exclusivo a un nombre, mientras que ninguno de los usuarios puede beneficiarse de él.
En la práctica, los operadores de IRC usan oops para hacer que los canales o los apodos sean inaccesibles . [1] Un hood de canal es una prohibición de canal, lo que significa que no podrá unirse cuando se conecte a un servidor, pero otros servidores pueden permitir que el usuario lo haga. De esta manera puedes bloquear canales problemáticos.
O-line , abreviatura de Operator Line, es una línea de código en la configuración del daemon que especifica qué usuarios pueden convertirse en operadores y qué privilegios recibirán. O-line establece el apodo, la contraseña, las banderas del operador y la máscara de host del operador específico. Un servidor puede tener muchas líneas O dependiendo de las necesidades del servidor y de la red [2] .
Las banderas de un operador describen sus privilegios. Algunos operadores pueden asignarse al enrutamiento de la red, otros mantienen el orden. [3] Los indicadores disponibles varían según el demonio que esté utilizando. Cuantas más funciones haya en el daemon, más banderas, y los servidores tradicionales tienen menos.
También puede establecer una restricción de host por máscara o dirección IP . En este caso, el operador debe tener una IP estática, pero esto será más seguro.
k-line o kill line (también k:line ) es un término que se aplica a un usuario específico. Agregar un usuario a la línea k significa una prohibición en este servidor, ya sea por un tiempo determinado o por completo. Dichos usuarios tienen prohibido conectarse al servidor. Tales líneas comienzan con la letra K en el archivo de configuración.
Gline o AKill es una prohibición de red global.
En algunos IRCd, como UnrealIRCd , Zline es similar a g-line , pero se aplica al rango de IP del cliente y se considera un último recurso. Dado que Zline no tiene una verificación de nombre de usuario (identd) o resolución de host, se puede aplicar a un usuario antes de que envíe cualquier información sobre la conexión. Además, Zline es más eficiente y usa menos recursos que Gline y Kline al banear a una gran cantidad de usuarios. Dado que no todos los IRCd son iguales, algunos como Charybdis usan 'Dline' en lugar de Z.
En algunos IRCd, como UnrealIRCd, Qline no permite un apodo o su grupo por máscara. Esto se usa más comúnmente para prohibir los apodos de servicio (como 'X' o NickServ ) o prohibir el uso de apodos de operadores por parte de personas que no son operadores. Algunos demonios cortan la conexión cuando el usuario usa un nick de Qline , y otros requieren un cambio de nick, o no hacen nada hasta que el usuario se conecta nuevamente. Charybdis usa 'Xline' para esto.
Internet Relay Chat | |||||||||
---|---|---|---|---|---|---|---|---|---|
Conceptos básicos | |||||||||
Listas y comparaciones |
| ||||||||
Protocolos relacionados |
| ||||||||
robots |
| ||||||||
demonios IRC |
| ||||||||
Servicios IRC | |||||||||
Gorilas y proxies |
| ||||||||
redes |
| ||||||||
| |||||||||
|