/* Archivo de configuración para UnrealIRCd 5 * * Simplemente copie este archivo a su directorio conf /, llámelo * 'unrealircd.conf' y recorrerlo línea por línea (¡edítalo!) * * Importante: Todas las líneas, excepto { y } terminan con un; * Esto es muy importante, si pierde un; en algún lugar entonces el * el analizador de archivos de configuración se quejará y el archivo no * ¡será procesado correctamente! * Si esta es su primera experiencia con una configuración de UnrealIRCd * entonces realmente le recomendamos que lea 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 5 (¡muy extensa!): * https://www.unrealircd.org/docs/Main_Page/es * * Preguntas frecuentes: * https://www.unrealircd.org/docs/FAQ * */ /* Esto es un comentario, todo el texto aquí se ignora (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 módulos. Los módulos le permiten * personalizar el conjunto de funciones que desea habilitar en UnrealIRCd. * Vea más: https://www.unrealircd.org/docs/Modules * * Al usar la inclusión a continuación, le indicamos al IRCd que lea el archivo * 'modules.default.conf' este cargará más de 150 módulos * cargados con UnrealIRCd. En otras palabras: esto simplemente cargará * todas las funciones disponibles en UnrealIRCd. * Si está configurando UnrealIRCd por primera vez, le sugerimos * utilizar este. Entonces, cuando todo esté en funcionamiento, puedes venir * volver más tarde para personalizar la lista (si así lo desea). */ include "modules.default.conf"; /* Ahora incluyamos algunos otros archivos: * - help / help.conf para nuestro sistema on-IRC /HELPOP * - badwords.conf para canal y modo de usuario +G * - spamfilter.conf como ejemplo de uso de filtro de texto. * (comentado) * - operclass.default.conf contiene algunas buenas operclasses que * puedes usarlo en tus bloques operativos. */ include "help/help.conf"; include "badwords.conf"; //include "spamfilter.conf"; include "operclass.default.conf"; /* Este es el bloque me {} 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 * letras. El sid debe ser único para su red IRC (cada servidor debe * tiene su propio sid). */ me { name "irc.ejemplo.org"; info "Servidor EjemploNET"; sid "001"; } /* El bloque admin {} define lo que los usuarios verán si escriben /ADMIN. * Normalmente contiene información sobre cómo contactar al administrador. */ admin { "Bob Smith"; "bob"; "correo-electrónico@ejemplo.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: cola de recepción máxima de una conexión (control de inundaciones) */ /* Clase de cliente con buenos valores predeterminados */ class clients { pingfreq 90; maxclients 1000; sendq 200k; recvq 8000; } /* Clase especial para IRCOps con límites superiores */ 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; /* máximo de servidores */ sendq 20M; } /* Bloques de permitir definen qué clientes pueden conectarse a este servidor. * Esto le permite agregar una contraseña de servidor o restringir el servidor a * IP específicas únicamente. También configuras las conexiones máximas * permitido por IP aquí. * Ver también: https://www.unrealircd.org/docs/Allow_block */ /* Permitir que todos entren, pero solo 3 conexiones por IP */ allow { mask *; class clients; maxperip 3; } /* Ejemplo de un bloque de permiso especial en una IP específica: * Requiere que los usuarios de esa IP se conecten con una contraseña. Si la contraseña * es correcto, entonces permite 20 conexiones en esa IP. */ allow { mask 192.0.2.1; class clients; password "algunacontraseña"; maxperip 20; } /* Los bloques de operaciones definen sus operadores de IRC. * Los operadores de IRC son personas que tienen "derechos adicionales" en comparación con otros, * por ejemplo, pueden /KILL a otras personas, iniciar la vinculación del servidor, * /JOIN a canales aunque estén prohibidos, etc. * * Para obtener más información sobre cómo convertirse en un IRCOp y cómo administrar * tareas, consulte: https://www.unrealircd.org/docs/IRCOp_guide * * Para obtener detalles sobre el bloque oper {} en sí, consulte * https://www.unrealircd.org/docs/Oper_block */ /* Aquí hay un ejemplo de bloque de operador para 'bobsmith' con contraseña 'test'. * ¡¡DEBES cambiar esto !! */ oper bobsmith { class opers; mask *@*; password "test"; /* Los permisos de operador se definen en un bloque 'operclass'. * Ver https://www.unrealircd.org/docs/Operclass_block * UnrealIRCd viene con una serie de bloques predeterminados, consulte * el artículo para una lista completa. Elegimos 'netadmin' aquí. */ operclass netadmin; swhois "es un Administrador de Red"; vhost netadmin.ejemplo.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 estándar para IRC 6667 */ listen { ip *; port 6667; } /* Puerto estándar para IRC SSL/TLS 6697 */ listen { ip *; port 6697; options { tls; } } /* Puerto especial SSL/TLS servers-only/(Solo servidores) para enlaces */ listen { ip *; port 6900; options { tls; serversonly; } } /* NOTA: Si está en una shell IRCd con varias IP y usa * los bloques listen {} anteriores, es probable que obtenga un * Error "address is already in use" y el ircd no se inicia. * Esto significa que DEBE vincularse a una IP específica en lugar de '*' como: * escuchar { ip 1.2.3.4; puerto 6667; } * Por supuesto, reemplace la IP con la IP que se le asignó. */ /* * Los bloques de enlaces le permiten enlazar 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 para obtenerlo. */ password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; } class servers; } /* El bloqueo de enlaces para servicios suele ser mucho más sencillo. * Para obtener más información sobre qué son los Servicios, * ver https://www.unrealircd.org/docs/Services */ link servicios.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 utiliza servicios debe agregarlos aquí. * ¡¡¡NUNCA ponga aquí el nombre de un servidor UnrealIRCd !!! */ ulines { servicios.ejemplo.org; } /* Aquí puede agregar una contraseña para los comandos solo IRCOp /DIE y /RESTART. * Esto está destinado principalmente a proporcionar una pequeña protección contra accidentes * se reinicia y el servidor se mata. */ drpass { restart "reiniciar"; die "muere"; } /* El bloque de registros define qué se debe registrar y en qué archivo. * Ver también https://www.unrealircd.org/docs/Log_block */ /* Este es un buen valor predeterminado, registra todo */ log "ircd.log" { flags { oper; connects; server-connects; kills; errors; flood; sadmin-commands; chg-commands; oper-override; tkl; spamfilter; } } / * Con "aliases" puedes crear un alias como /ALGO para enviar un mensaje * algún usuario o bot. Suelen utilizarse para servicios. * * Tenemos varios archivos de alias preestablecidos, consulte el directorio alias /. * Como 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 habituales. */ ban nick { mask "*C*h*a*n*S*e*r*v*"; reason "Reservado para Servicios"; } /* Prohibir ip. * Tenga en cuenta que normalmente se usa /KLINE, /GLINE y /ZLINE para esto. */ ban ip { mask 195.86.232.81; reason "Te odio"; } /* Ban server - if we see this server linked to someone then we delink */ ban server { mask eris.berkeley.edu; reason "Sal de aquí."; } /* Banear un user - solo como ejemplo, normalmente usa /KLINE or /GLINE para esto */ ban user { mask *tirc@*.saturn.bbn.com; reason "Idiota"; } /* Banear realname te 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 prohibición 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 le sugerimos que se agregue aquí. De esa manera siempre puedes entrar * incluso si accidentalmente te aplicas una prohibición de * LINE. */ /* Excepciones, te protege de KLINE and ZLINE */ except ban { mask *@192.0.2.1; // puede agregar más entradas de máscara aquí.. } /* excepto prohibir con tipo 'all' te protege de GLINE, GZLINE, QLINE, SHUN */ except ban { mask *@192.0.2.1; type all; } /* Con deny dcc puedes prohibir nombres de archivo para DCC */ deny dcc { filename "*sub7*"; reason "Posible Sub7 Virus"; } /* deny channel te perimte banear un canal entero (mascará) */ deny channel { channel "*warez*"; reason "Warez es ilegal"; class "clients"; } /* VHosts (Virtual Hosts) permite 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: /VHOST test test * NOTA: solo las personas con un host 'unrealircd.com' pueden usarlo así * asegúrese de cambiar vhost :: mask antes de realizar la prueba. */ vhost { vhost odio.microsefrs.com; mask *@unrealircd.com; login "testeo"; password "testeo"; } /* Los bloques de 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 * por causar ataques con 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. * Consulte https://dronebl.org/ para obtener su documentación y el * significado de los tipos de respuesta. En el momento de escribir este artículo utilizamos tipos: * 3: IRC Drone, 5: Embotellador, 6: Spambot o drone desconocido, * 7: DDoS Drone, 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 comprometido, * 16: Gusanos de autorooting. */ 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. Consulte https://dronebl.org/lookup?ip=$ip para más detalles."; } /* EFnetRBL, consulte https://rbl.efnetrbl.org/ para obtener documentación * y el significado de los tipos de respuesta. * Al momento de escribir este artículo: 1 es proxy abierto, 4 es TOR, 5 es drones/flooding. * * NOTA: Si desea permitir proxies TOR en su servidor, entonces * necesita eliminar el '4;' a continuación 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 detectado. Consulte https://rbl.efnetrbl.org/?i=$ip para más detalles."; } /* 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"; hiddenhost-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 50-100 caracteres * 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/Vps para * que UnrealIRCd genere 3 cadenas aleatorias para ti. */ cloak-keys { "aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW"; "uno más"; "y otro más"; } } /* Configuración específica del servidor */ set { kline-address "setea.un.correo.electrónico"; /* Correo electrónico o URL que se muestra cuando un usuario está baneado */ modes-on-connect "+ixw"; /* cuando los usuarios se conectan, 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"; /* Las IRCOps se unen automáticamente a este canal. */ options { hide-ulines; /* ocultar las líneas U en /MAP and /LINKS */ show-connect-info; /* muestra "looking up your hostname" cuando conectas */ } 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 * usar un mensaje QUIT. Con suerte, esto ayudará a detener el spam. */ anti-spam-quit-message-time 10s; /* O simplemente setea un quit estático, significa que cualquier /QUIT es ignorado */ /* static-quit "Client quit"; */ /* static-part hace lo mismo para /PART */ /* static-part yes; */ /* Protección contra flood: * Hay muchas configuraciones para esto y la mayoría tienen buenos valores predeterminados. * Ver https://www.unrealircd.org/docs/Set_block#set::anti-flood */ anti-flood { } /* Opciones de Filtro de texto */ spamfilter { ban-time 1d; /* la duracion por defecto de un *LINE seteado por el filtro de texto */ ban-reason "Spam/Publicidad"; /* razón por defecto */ virus-help-channel "#ayuda"; /* canal de uso para 'viruschan' */ /* except "#ayuda"; inmunidad para el canal Ayuda del filtro de texto */ } /* Restringir ciertos comandos. * Ver https://www.unrealircd.org/docs/Set_block#set::restrict-commands */ restrict-commands { list { connect-delay 60; exempt-identified yes; exempt-reputation-score 24; } invite { connect-delay 120; exempt-identified yes; exempt-reputation-score 24; } /* Además de la capacidad de restringir cualquier comando, * como se muestra arriba. También hay 4 tipos especiales * que puede restringir. Estos son "private-message", * "private-notice", "channel-message" y "channel-notice". * Están comentados (desactivados) en este ejemplo: */ //private-message { // connect-delay 10; //} //private-notice { // connect-delay 10; //} } } /* * Lo siguiente configurará la limitación de la conexión de "unknown users". * * Cuando UnrealIRCd detecta una gran cantidad de usuarios que se conectan desde direcciones IP * que no se han visto antes, se rechazan las conexiones de las nuevas IP * por encima de la configuración establecida. Por ejemplo, 10:60 solo pueden conectarse 10 usuarios por minuto * que no se hayan visto antes. Las direcciones IP conocidas siempre pueden ingresar, * independientemente de la configuración establecida. Lo mismo para los usuarios que inician sesión con SASL. * * Consulte también https://www.unrealircd.org/docs/Connthrottle para obtener más detalles. * O simplemente siga leyendo los ajustes de configuración predeterminados a continuación: */ set { connthrottle { /* Primero debemos configurar lo que llamamos "known users". * De forma predeterminada, estos son usuarios en direcciones IP que tienen * una puntuación de 24 o más. Una puntuación de 24 significa que * 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 del grupo "known users" (ya sea por reputación * o por SASL) siempre están permitidos por este módulo. */ known-users { minimum-reputation-score 24; sasl-bypass yes; } /* Los nuevos usuarios son todos los usuarios que no pertenecen al * grupo de usuarios conocidos. Se consideran "nuevos" y en * caso de un gran número de nuevos usuarios que se conectan * están sujetos a limitación de velocidad de conexión. * Por defecto, la configuración 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; } /* Esta configuración es para cuando este módulo NO este 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 "known users". * - El servidor acaba de iniciarse (primeros 3 minutos). */ disabled-when { reputation-gathering 1w; start-delay 3m; } } } /* Finalmente, es posible que desee tener un MOTD (Mensaje del día), esto puede ser * hecho creando un archivo de texto 'ircd.motd' en su directorio conf /. * Este archivo se mostrará a sus 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/Main_Page/es * 2) https://www.unrealircd.org/docs/FAQ <- ¡responde el 80% de sus preguntas! * 3) Si aún tiene problemas, puede obtener asistencia: * - 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. */