/* Archivo de configuración para UnrealIRCd 6 * * Simplemente copie este archivo a su directorio conf/, llámelo * 'unrealircd.conf' y revíselo línea por línea (¡edítelo!) * * Importante: Todas las líneas, excepto { y } terminan con ; * Esto es muy importante, si pierde un ; en algún lugar entonces el * el analizador del archivo de configuración se quejará y el archivo no * ser procesado correctamente! * Si esta es tu primera experiencia con una configuración de UnrealIRCd * entonces te recomendamos que leas un poco sobre la sintaxis, * esto solo toma unos minutos y te ayudará mucho: * https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax * * Documentación de UnrealIRCd 6 (¡muy extensa!): * https://www.unrealircd.org/docs/UnrealIRCd_6_documentation * * Preguntas frecuentes: * https://www.unrealircd.org/docs/FAQ * */ /* Esto es un comentario, todo el texto aquí es ignorado (tipo de comentario #1) */ // Esto también es un comentario, esta línea se ignora (tipo de comentario #2) # Esto también es un comentario, nuevamente esta línea se ignora (tipo de comentario #3) /* UnrealIRCd hace un uso intensivo de los módulos. Los módulos le permiten completamente * personaliza el conjunto de características que deseas habilitar en UnrealIRCd. * Ver: https://www.unrealircd.org/docs/Modules * * Al usar el incluir a continuación, le indicamos al IRCd que lea el archivo * 'modules.default.conf' que cargará más de 150 módulos * enviado con UnrealIRCd. En otras palabras: esto simplemente cargará * todas las funciones disponibles en UnrealIRCd. * Si está configurando UnrealIRCd por primera vez, le sugerimos * utilizar esta. Luego, cuando todo esté funcionando, puedes venir * volver más tarde para personalizar la lista (si lo desea). */ include "modules.default.conf"; /* Ahora incluyamos algunos otros archivos también: * - help/help.conf para nuestro sistema on-IRC /HELPOP * - badwords.conf para canal y modo de usuario +G * - spamfilter.conf como ejemplo para el uso de spamfilter * (Comentado) * - operclass.default.conf contiene algunas buenas operclasses que * puedes usar en tus bloques operativos. */ include "help/help.conf"; include "badwords.conf"; //include "spamfilter.conf"; include "operclass.default.conf"; include "snomasks.default.conf"; /* Cargar el módulo de encubrimiento predeterminado (2021 en adelante): */ loadmodule "cloak_sha256"; /* O cargue el módulo antiguo de UnrealIRCd 3.2/4/5 en su lugar: */ //loadmodule "cloak_md5"; /* Este es el bloque yo { } que básicamente dice quiénes somos. * Define el nombre de nuestro servidor, alguna línea de información y un "sid" único. * La identificación del servidor (sid) debe comenzar con un dígito seguido de dos dígitos o * cartas. El sid debe ser único para su red IRC (cada servidor debe * tener su propio sid). */ me { name "irc.example.org"; info "ExampleNET Server"; sid "001"; } /* El bloque admin { } define lo que verán los usuarios si escriben /ADMIN. * Normalmente contiene información sobre cómo contactar con el administrador. */ admin { "Bob Smith"; "bob"; "email@example.org"; } /* Los clientes y servidores se colocan en bloques de clase { }, los definimos aquí. * Los bloques de clase constan de los siguientes elementos: * - pingfreq: con qué frecuencia hacer ping a un usuario/servidor (en segundos) * - connfreq: con qué frecuencia intentamos conectarnos a este servidor (en segundos) * - sendq: el tamaño máximo de cola para una conexión * - recvq: máxima cola de recepción de una conexión (control de inundación) */ /* Clase de cliente con buenos valores predeterminados */ class clients { pingfreq 90; maxclients 1000; sendq 200k; recvq 8000; } /* Clase especial para IRCOps con límites más altos */ class opers { pingfreq 90; maxclients 50; sendq 1M; recvq 8000; } /* Clase de servidor con buenos valores predeterminados */ class servers { pingfreq 60; connfreq 15; /* intenta conectarte cada 15 segundos */ maxclients 10; /* maximo de servidores */ sendq 20M; } /* Permitir que los bloques definan qué clientes pueden conectarse a este servidor. * Esto le permite agregar una contraseña de servidor o restringir el servidor a * IP específicas solamente. También configuras las conexiones máximas * permitido por IP aquí. * Ver también: https://www.unrealircd.org/docs/Allow_block */ /* Permitir el ingreso de todos, pero solo 3 conexiones por IP */ allow { mask *; class clients; maxperip 3; } /* Los bloques Oper definen sus operadores IRC. * Los operadores de IRC son personas que tienen "derechos adicionales" en comparación con otros, * por ejemplo, pueden /MATAR a otras personas, iniciar la vinculación del servidor, * /ÚNETE a los canales aunque estén prohibidos, etc. * * Para obtener más información sobre cómo convertirse en un IRCOp y cómo ser administrador * tareas, ver: https://www.unrealircd.org/docs/IRCOp_guide * * Para obtener detalles sobre el propio bloque oper { }, consulte * https://www.unrealircd.org/docs/Oper_block */ /* Aquí hay un bloque de operación de ejemplo para 'bobsmith' con la contraseña 'test'. * ¡DEBES cambiar esto! */ oper bobsmith { class opers; mask *@*; password "test"; /* Los permisos de operación se definen en un bloque 'operclass'. * Ver https://www.unrealircd.org/docs/Operclass_block * UnrealIRCd se envía con una serie de bloques predeterminados, consulte * el artículo para una lista completa. Elegimos 'netadmin' aquí. */ operclass netadmin; swhois "is a Network Administrator"; vhost netadmin.example.org; } /* Los bloques de escucha definen los puertos donde el servidor debe escuchar. * En otras palabras: los puertos que los clientes y servidores pueden usar para * conectarse a este servidor. * * Sintaxis: * listen { * { * ip ; * port ; * options { * ; * } * } */ /* Puerto IRC estándar 6667 */ listen { ip *; port 6667; } /* Puerto IRC estándar 6697 */ listen { ip *; port 6697; options { tls; } } /* Puerto especial solo para servidores SSL/TLS para vincular */ listen { ip *; port 6900; options { tls; serversonly; } } /* NOTA: Si está en una shell IRCd con múltiples IP y usa * los bloques de escucha anteriores { } entonces probablemente obtendrás un * Error 'Dirección ya en uso' y el ircd no se iniciará. * Esto significa que DEBE vincularse a una IP específica en lugar de '*' como: * escucha { ip 1.2.3.4; puerto 6667; } * Por supuesto, reemplaza la IP con la IP que te fue asignada. */ /* * Los bloques de enlace le permiten vincular varios servidores para formar una red. * Ver https://www.unrealircd.org/docs/Tutorial:_Linking_servers */ link hub.ejemplo.org { incoming { mask *@algo; } outgoing { bind-ip *; /* o explícitamente una IP */ hostname hub.ejemplo.org; port 6900; options { tls; } } /* Usamos la huella digital SPKI del otro servidor para la autenticación. * Ejecute './unrealircd spkifp' en el otro lado del linkeo para obtenerlo. */ password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; } class servers; } /* El bloque de enlace para servicios suele ser mucho más simple. * Para más información sobre qué son los Servicios, * ver https://www.unrealircd.org/docs/Services */ link services.ejemplo.org { incoming { mask 127.0.0.1; } password "cambiameporfavor"; class servers; } /* Las líneas U dan a otros servidores (incluso) más poder/comandos. * Si usas servicios debes agregarlos aquí. * ¡NUNCA pongas el nombre de un servidor UnrealIRCd aquí! */ ulines { services.ejemnplo.org; } /* Aquí puede agregar una contraseña para los comandos /DIE y /RESTART exclusivos de IRCOp. * Esto está destinado principalmente a proporcionar un poco de protección contra accidentes * reinicios y muertes del servidor. */ drpass { restart "restart"; die "die"; } /* El bloque de registro define qué debe registrarse y en qué archivo. * Ver también https://www.unrealircd.org/docs/Log_block */ /* Este es un buen valor predeterminado, registra todo excepto * cosas de depuración y unión/parte/kick. */ log { source { all; !debug; !join.LOCAL_CLIENT_JOIN; !join.REMOTE_CLIENT_JOIN; !part.LOCAL_CLIENT_PART; !part.REMOTE_CLIENT_PART; !kick.LOCAL_CLIENT_KICK; !kick.REMOTE_CLIENT_KICK; } destination { file "ircd.log" { maxsize 100M; } } } /* Con "aliases" puedes crear un alias como /ALGO para enviar un mensaje a * algún usuario o bot. Suelen utilizarse para servicios. * * Tenemos una cantidad de archivos de alias preestablecidos, consulte el directorio alias/. * A modo de ejemplo, aquí incluimos todos los alias utilizados para los servicios de anope. */ include "aliases/anope.conf"; /* Prohibir los apodos para que no puedan ser utilizados por usuarios regulares */ ban nick { mask "*C*h*a*n*S*e*r*v*"; reason "Reservado para Servicios"; } /* Baneo por ip. * Tenga en cuenta que normalmente usa /KLINE, /GLINE y /ZLINE para esto. */ ban ip { mask 195.86.232.81; reason "Te odio"; } /* Baneo del servidor: si vemos que este servidor está vinculado a alguien, lo desvinculamos */ ban server { mask eris.berkeley.edu; reason "Sal de aquí."; } /* Baneo de usuario: solo como ejemplo, normalmente usa /KLINE o /GLINE para esto */ ban user { mask *tirc@*.saturn.bbn.com; reason "Idiot"; } /* Baneo del nombre real le permite prohibir clientes en función de su 'nombre real' * o campo 'gecos'. */ ban realname { mask "Equipo Swat"; reason "mIRKFORCE"; } ban realname { mask "sub7server"; reason "sub7"; } /* Excepciones de baneo y TKL. Le permite eximir a los usuarios/máquinas de * KLINE, GLINE, etc. * Si es un IRCOp con una IP estática (y no hay personas que no sean de confianza en esa IP) * entonces te sugerimos que te añadas aquí. Así siempre puedes entrar * incluso si accidentalmente colocas una prohibición de *LINE en ti mismo. */ /* excepto que el baneo te proteja de KLINE y ZLINE */ except ban { mask *@192.0.2.1; // puede agregar más entradas de máscara aquí.. } /* excepto el baneo con el tipo 'todos' (all) te proteja de GLINE, GZLINE, QLINE, SHUN */ except ban { mask *@192.0.2.1; type all; } /* Con los bloques de denegación de DCC puede prohibir los nombres de archivo para DCC */ deny dcc { filename "*sub7*"; reason "Posible Sub7 Virus"; } /* denegar canal le permite prohibir un canal (máscara) por completo */ deny channel { channel "*warez*"; reason "Warez es ilegal"; class "clients"; } /* Los VHosts (hosts virtuales) permiten a los usuarios adquirir un host diferente. * Ver https://www.unrealircd.org/docs/Vhost_block */ /* Ejemplo de vhost que puede usar. En el tipo de IRC: prueba de prueba /VHOST * NOTA: solo las personas con un host 'unrealircd.com' pueden usarlo para * asegúrese de cambiar el vhost::mask antes de probar. */ vhost { vhost odio.microsefrs.com; mask *@unrealircd.com; login "test"; password "test"; } /* Los bloques de la lista negra consultarán un servicio de lista negra de DNS externo * cada vez que un usuario se conecta, para ver si se conoce la dirección IP * para causar ataques de drones, es una máquina pirateada conocida, etc. * Documentación: https://www.unrealircd.org/docs/Blacklist_block * O simplemente eche un vistazo a los bloques a continuación. */ /* DroneBL, probablemente la lista negra más popular utilizada por los servidores IRC. * Ver https://dronebl.org/ para su documentación y el * significado de los tipos de respuesta. Al momento de escribir usamos tipos: * 3: IRC Drone, 5: Embotellador, 6: Spambot o drone desconocido, * 7: Drone DDoS, 8: Proxy SOCKS, 9: Proxy HTTP, 10: ProxyChain, * 11: Proxy de página web, 12: Open DNS Resolver, 13: Atacantes de fuerza bruta, * 14: Proxy Wingate abierto, 15: Enrutador / puerta de enlace comprometidos, * 16: Gusanos autoenraizadores. */ blacklist dronebl { dns { name dnsbl.dronebl.org; type record; reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; } } action gline; ban-time 24h; reason "Proxy/Drone Detectado. Chequea https://dronebl.org/lookup?ip=$ip para más detalles."; } /* EFnetRBL, consulte https://rbl.efnetrbl.org/ para obtener la documentación * y el significado de los tipos de respuesta. * Al momento de escribir: 1 es proxy abierto, 4 es TOR, 5 es drones/inundaciones. * * NOTA: Si desea permitir proxies TOR en su servidor, entonces * necesita eliminar el '4;' abajo en la sección de respuesta. */ blacklist efnetrbl { dns { name rbl.efnetrbl.org; type record; reply { 1; 4; 5; } } action gline; ban-time 24h; reason "Proxy/Drone/TOR detected. Check https://rbl.efnetrbl.org/?i=$ip for details."; } /* Puede incluir otros archivos de configuración */ /* include "klines.conf"; */ /* Configuración de la red */ set { network-name "EjemploNET"; default-server "irc.ejemplo.org"; services-server "services.ejemplo.org"; stats-server "stats.ejemplo.org"; help-channel "#Ayuda"; cloak-prefix "Clk"; prefix-quit "Quit"; /* Las claves de ocultación deben ser las mismas en todos los servidores de la red. * Se utilizan para generar hosts enmascarados y deben mantenerse en secreto. * Las claves deben ser 3 cadenas aleatorias de 80 caracteres cada una (o más). * y debe constar de minúsculas (a-z), mayúsculas (A-Z) y dígitos (0-9). * SUGERENCIA: En *NIX, puede ejecutar './unrealircd gencloak' en su shell para dejar * UnrealIRCd genera 3 cadenas aleatorias para ti. */ cloak-keys { "Oozahho1raezoh0iMee4ohvegaifahv5xaepeitaich9tahdiquaid0geecipahdauVaij3zieph4ahi"; "y otra llave"; "y otra llave"; } } /* Configuración específica del servidor */ set { kline-address 'agrega.una.dirección.de.correo-electrónico'; /* correo electrónico o URL que se muestra cuando un usuario está baneado */ modes-on-connect "+ixw"; /* cuando los usuarios se conecten, obtendrán estos modos de usuario */ modes-on-oper "+xws"; /* cuando alguien se convierte en IRCOp obtendrá estos modos */ modes-on-join "+nt"; /* modos de canal predeterminados cuando se crea un nuevo canal */ oper-auto-join "#opers"; / * Los IRCOps se unen automáticamente a este canal * / options { hide-ulines; /* ocultar líneas U en /MAP y /LINKS */ show-connect-info; /* mostrar mensajes de "buscando su nombre de host" al conectarse */ } maxchannelsperuser 10; /* número máximo de canales que un usuario puede /JOIN */ /* El tiempo mínimo que un usuario debe estar conectado antes de que se le permita * use un mensaje SALIR. Con suerte, esto ayudará a detener el spam. */ anti-spam-quit-message-time 10s; /* O simplemente establezca una salida estática, lo que significa que se ignora cualquier razón /QUIT */ /* static-quit "Salida del cliente"; */ /* static-part hace lo mismo para /PART */ /* static-part yes; */ /* Protección contra inundaciones: * Hay muchas configuraciones para esto y la mayoría tiene buenos valores predeterminados. * Ver https://www.unrealircd.org/docs/Set_block#set::anti-flood */ anti-flood { } /* Configuración del filtro de spam */ spamfilter { ban-time 1d; /* duración predeterminada de una prohibición de *LINE establecida por spamfilter */ ban-reason "Spam/Publicidad"; /* razón por defecto */ virus-help-channel "#Ayuda"; /* canal a usar para la acción 'viruschan' */ /* except "#Ayuda"; canal para eximir de Spamfilter */ } /* Restringir ciertos comandos. * Ver https://www.unrealircd.org/docs/Set_block#set::restrict-commands */ restrict-commands { list { except { connect-delay 60; identified yes; reputation-score 24; } } invite { except { connect-delay 120; identified yes; reputation-score 24; } } /* Además de la capacidad de restringir cualquier comando, * como se muestra arriba. También hay 4 tipos especiales. * que puedes restringir. Estos son "mensajes privados", * "aviso privado", "mensaje de canal" y "aviso de canal". * Están comentados (deshabilitados) en este ejemplo: */ //private-message { // except { // connect-delay 10; // } //} //private-notice { // except { // connect-delay 10; // } //} } } /* * Lo siguiente configurará la limitación de conexión de "usuarios desconocidos". * * Cuando UnrealIRCd detecta una gran cantidad de usuarios que se conectan desde direcciones IP * que no se han visto antes, entonces se rechazan las conexiones de nuevas IP * por encima de la tarifa establecida. Por ejemplo a las 10:60 solo se pueden conectar 10 usuarios por minuto * que no se han visto antes. Las direcciones IP conocidas siempre pueden entrar, * independientemente de la tarifa establecida. Lo mismo para los usuarios que inician sesión con SASL. * * Ver también https://www.unrealircd.org/docs/Connthrottle para más detalles. * O simplemente siga leyendo los ajustes de configuración predeterminados a continuación: */ set { connthrottle { /* Primero debemos configurar lo que llamamos "usuarios conocidos". * De forma predeterminada, estos son usuarios en direcciones IP que tienen * una puntuación de 24 o superior. Una puntuación de 24 significa que el * La IP estuvo conectada a esta red durante al menos 2 horas * en el último mes (o mínimo 1 hora si está registrado). * La opción sasl-bypass es otra configuración. Significa * que los usuarios que se autentican en los servicios a través de SASL * también se consideran usuarios conocidos. * Usuarios en el grupo de "usuarios conocidos" (ya sea por reputación * o por SASL) siempre están permitidas en este módulo. */ except { reputation-score 24; identified yes; } /* Los nuevos usuarios son todos los usuarios que no pertenecen al * grupo de usuarios conocidos. Se consideran "nuevos" y en * caso de un alto número de tales nuevos usuarios que se conectan * están sujetos a limitación de velocidad de conexión. * Por defecto la tarifa es de 20 nuevos usuarios locales por minuto * y 30 nuevos usuarios globales por minuto. */ new-users { local-throttle 20:60; global-throttle 30:60; } /* Esto configura cuando este módulo NO estará activo. * La configuración predeterminada deshabilitará el módulo cuando: * - El módulo de reputación se ha estado ejecutando durante menos de * una semana. Si se ejecuta menos de 1 semana, entonces hay * datos insuficientes para considerar quién es un "usuario conocido". * - El servidor acaba de iniciarse (primeros 3 minutos). */ disabled-when { reputation-gathering 1w; start-delay 3m; } } } /* HISTORIAL DE UN CANAL: * UnrealIRCd tiene el modo de canal +H que los usuarios pueden usar para volver a leer * los mensajes del canal, antes de que se unieran. Para información general * en esta función, lee https://www.unrealircd.org/docs/Channel_history * * El historial del canal puede ser configurado vía set::history. Los valores predeterminados * son probablemente buenos para ti, pero si está en un sistema con poca memoria * o tiene miles de canales, entonces es posible que debas volver a verificar. Lee * https://www.unrealircd.org/docs/Set_block#set::history para las opciones. * * Además de eso, puedes tener "persistent channel history", cual * significa que el historial del canal se almacena encriptado en el disco * para que se conserve entre reinicios del servidor IRC, lee * https://www.unrealircd.org/docs/Set_block#Persistent_channel_history * La función de historial persistente NO está habilitada de manera predeterminada * porque usted necesita configurar un bloque de secreto { } para ello. Un sencillo * ejemplo con contraseñas almacenadas directamente en el archivo de configuración. * Para obtener una mejor seguridad, lee https://www.unrealircd.org/docs/Secret_block * las diferentes alternativas para que no almacenes contraseñas directamente en la configuración. */ //secret historydb { password "somepassword"; } //set { history { channel { persist yes; db-secret "historydb"; } } } /* Finalmente, es posible que desee tener un MOTD (Mensaje del día), esto puede ser * se hace creando un archivo de texto 'ircd.motd' en su directorio conf/. * Este archivo se mostrará a tus usuarios al conectarse. * Para obtener más información, consulte https://www.unrealircd.org/docs/MOTD_and_Rules */ /* * Problemas o necesita más ayuda? * 1) https://www.unrealircd.org/docs/UnrealIRCd_4_documentation * 2) https://www.unrealircd.org/docs/Main_Page/es <- ¡responde el 80% de tus preguntas! * 3) Si aún tiene problemas, puede obtener soporte: * - Foros: https://forums.unrealircd.org/ * - IRC: irc.unrealircd.org (SSL en el puerto 6697) / #unreal-support * ¡Tenga en cuenta que primero le pedimos que lea la documentación y las preguntas frecuentes! */