Configuration.es
From the makers of InspIRCd.
La configuración de InspIRCd se hace editando un archivo de texto de configuración, usualmente llamado inspircd.conf. El archivo inspircd.conf está formateado como un documento html, lo que para mucha gente es de alguna manera diferente de lo que están acostumbrados. El formato de una instrucción en el archivo se vé acontinuación:
<nomre_de_tag variable="valor">
Puede haber de una a más variables en el tag, la cual cada una ha de tener exactamente un valor. Una variable debe ser seguida inmediatamente por símbolos de igual, = y despues de este, comillas, sin espacio entre el igual y las comillas como se ha mostrado en ese ejemplo. El nombre del tag debe contener solamente carácteres alfanuméricos.
NOTA: En InspIRCD 1.1, puedes poner un salto de línea con un valor:
<nombre_de_tag variable="primera parte del valor segunda parte del valor">
Nótese que pese a que muchas opciones no admiten saltos de línea y el ircd fallará si escribes un salto de línea en un campo el cual no lo permite.
No requieres tags de cierre como en XML (</nombre_de_tag>).
Para un ejemplo acerca de esto, y referencias cruzadas a esta página, por favor, mira la sección Configuración Anotada.
Las opciones de configuración para la versión actual de InspIRCd son las siguientes:
Contents |
<server>
Este tag indica el nombre del servidor que asignas al mismo, una descipción del servidor y el nombre de la red. El nombre de la red será anunciado a los clientes cuando conectan y es usado por estos clientes como mIRC para determinar que cosas debe ejecutar. Puedes tener sólamente un tag <server>.
<admin>
<admin name="Sr Persona" nick="Persona" email="señor@persona.org">
Son los detalles administrativos de tu servidor, mostrados cuando a un usuario que llama al comando /ADMIN. Puedes sólamente tener un tag <admin>
<bind>
<bind address="" port="6667">
El tag <bind> indica que puertos debe escuchar tu servidor. Si quieres que tu servidor escuche todas las direcciones IP disponibles deberás dejar el campo address vacío como se muestra arriba. Si quieres que InspIRCd escuche sólamente a una dirección IP especificala en address. Debes usar direcciones IP y no hosts. Puedes tener tantos como tags como quieras.
<bind address="" port="7000" type="servers">
Este formato de <bind> especifica un puerto el cual escucha para servidores. Puedes especificar una dirección IP en el tag binid como dijimos antes.
Puedes también especificar rangos en bind. Por ejemplo:
<bind address="1.2.3.4" port="7000-7005">
Nos quedaremos el rango de puertos desde el 7000 al 7005.
Puedes también separar los puertos individualmente con comas o usar una combinación de los dos:
<bind address="1.2.3.4" port="7001,7005,7006-7010">
El tag bind puede hacer uso de comunicaciones encriptadaas y comprimidas. Usando estos ejemplos:
Usando OpenSSL: (En inglés)
<bind address="" port="6667" ssl="openssl">
Usando gnutls: (En inglés)
<bind address="" port="6667" ssl="gnutls">
Usando Compresión: (En inglés)
<bind address="" port="6667" transport="zip">
IPv6
Si has compilado InspIRCd con soporte IPv6 puedes hacer bind a direcciones IPv4 e IPv6 aquí especificandolo en address. Nótese que si tu servidor ha sido compilado como servidor IPv6 y si dejas el campo address vacío, todas las direcciones IPv6 intentarán ser asignadas, pero ninguna dirección IPv4 será asignada. Si haces esto deberás especificar manualmente las direcciones IPv4 que quieras asignar.
<power>
<power diepass="XXXXX" restartpass="XXXXX" pause="5">
Este tag especifica la contraseña necesitada para los comandos /DIE y /RESTART. La variable pause indica cuántos segundos debe esperar despues del notice 'server is shutting down' antes de finalmente terminar con el servidor. Puedes tener sólamente uno de estos tags, y este tag no es opcional. Por defecto en muchas configuraciones (incluída la de Win32) este comando dejado sin configurar es un riesgo de seguridad. Por favor, asegúrate de configurar este tag correctamente.
<link>
<link name="other.server.org" ipaddr="foomatic.bazqux.org" port="7000" sendpass="XXX" recvpass="XXX" autoconnect="120" hidden="no" failover="other2.server.org" transport="transporttype" bind="1.2.3.4">
Este tag especifica un servidor al cual tu servidor puede intentar conectar. Para iniciar el link debes actualmente usar /CONNECT. Mientras conecta, tu servidor enviará la contraseña especificada en sendpass y esperara la contraseña especificada en recvpass como respuesta. Conectará en el puerto TCP que has especificado. El nombre del servidor no tiene que coincidir con el hostname que has especificado, pero debe coincidir con el tag link que hay en el servidor opuesto. Puedes tener tantos de estos como quieras.
El valor opcional de autoconnect, si está dado, causa que el servidor automáticamente intente conectar a esta conexión (hacia afuera), intentandolo cada X segundos (usando el intervalo que das en este parámetro). Como el valor de tiempo de espera para una conexión internamente es de 30 segundos, no deberás dar este valor en menos de 31 segundos.
El valor de hidden es opcional y si es configurado como yes, true o 1 causará que la IP del servidor y su hostname sea oculto para todos los operadores. Sólamente será mostrada si una conexión falla debido a una contraseña errónea o nombre de servidor inválido (que no coincide el bloque <link>). Para esclarecer: con esta opción puesta, solo el nombre del servidor (e.x: en el ejemplo de arriba, solo 'other.server.org' seria sioempre mostrado a los operadores, y no su hostname, 'foomatic.bazqux.org'.
Los valores fallover, transport y bind son todos opcionales, y si estan definidos son usados para lo siguiente:
- bind reservará cualquier conexión saliente a la dirección IP dada. Esto es mayormente usado para servidores multi-homed.
- transport usará el módulo especificado como capa de protocolo de transporte. Entradas válidas en este campo son gnutls, openssl o zip para m_ssl_gnutls, m_ssl_openssl y m_ziplinks respectivamente.
- fallover indica otro nombre de servidor que intentar si uno falla al conectar. Mira la documentación en Linking To Other Servers para más información.
<uline>
<uline server="services.beastie.com"> <uline server="stats.beastie.com" silent="yes">
Este tag indica que uno o más servidores en tu red sonU lined. En términos de IRC, U-linear un servidor significa que el servidor tiene permisos especiales, usualmente estos asociados con bots de servicios de red. Para una descripción más detallada acerca de servidores u-lineados historicamente y como son relacionados con InspIRCd, haz clic en el enlace anterior. Debes tener cero o más de estos tags.
'silent' es un parámetro opcional que puede ser puesto a "yes" (sí), el cual suprime SNOMASKs (Máscaras de noticias del servidor) +CQ de esos servidores.
<connect>
<connect allow="*" timeout="60" flood="10" pingfreq="120" threshold="5" sendq="131074" recvq="4096" globalmax="3" localmax="3" port="6660">
Este tag indica que deseas permitir o denegar el que clientes conecten a tu servidor. Por defecto, si ningúno de estos esta definido, es denegar el permiso de acceso a todo el mundo. Usa la variable allow para permitir una máscara de direcciones IP o de hosts o símplemente replazalo con una variable deny para denegar acceso a una dirección IP o máscara o hostname. Puedes también asignar un password en el tag allow para indicar que los usuarios pueden entrar, previo especificar la contraséña correcta mientras conectan. El valor de timeout indica cuanto esperará el servidor para que un usuario se registre al conectar. Si no ocurre el registro en esos segundos, la conexión será cerrada, lo que protege de maliciosos usuarios manteniendo conexiones abiertas en tu servidor las cuales no pretendan usar. Esto es un valor ajeno a las comprobaciones PING. El valor de flood indica cuantas líneas tiene el sendq de los usuarios antes de que estos sean desconectados por flooding. Hay cuatro maneras por las cuales funciona el control de flood, desconectandote:
- Enviar más de "flood" líneas de golpe, lo que causa que el ircd te desconecte inmediatamente.
- Enviar más de "flood" líneas por "threshold" segundos, que causa que el ircd te desconect por llegar a "flood" líneas (en esos segundos).
- Enviando más de "recv1" bytes a tu buffer antes de que el ircd pueda procesar los datos.
- Intentar recibir más de "sendq" bytes de un golpe desde el ircd.
Puedes opcionalmente incluír el valor de pingfreq como se muestra arriba, el cual indica el intervalo de comprobaciones de estado PING el cual este grupo de conexiones es verificado. Si no incluyes este valor, por defecto será 120 segundos.
El valor opcional de port determina que puerto este tag está manejando. Si no se usa, el tag connect cubre todos los puertos reservados excepto las que lleven un puerto que concuerde.
- Las opciones localmax y globalmax pueden ser usadas para forzar los límites de sesiones locales y globales en conexiones. Los límites de sesion son contados en contra de los usuarios, pero aplicado solo a usuarios de la clase. Por ejemplo, si tienes una clase 'A' que tiene el límite de sesiones a 3, y una clase 'B' que tiene el límite de sesiones a 5 y de alguna manera dos usuarios se las han arreglado para estar en clase B, también estos estarán en clase A por tanto solo hay una conexión libre para esta IP en A, pero si pueden conectar en B, entonces hay 3. Si estos valores son obviados, por defecto es 3 (para las dos opciones).
Nótese que los tag connect son leídos de arriba a abajo, teniendo preferencia el primero sobre los siguientes y en este orden, de tal manera que si denegas una máscara amplia hará que esta tenga preferencia sobre un tag posterior que fuere el que permita entrar a los usuarios.
<class>
<class name="Shutdown" commands="DIE RESTART REHASH">
Estos tags definen clases. Una clase es un grupo nominado de uno o más comandos que puede ser usado para construír un tipo de operador. Estos comandos que colocas en estas clases son arbitrarios, no estas forzado a poner por ejemplo todos los comandos de servicio juntos, o agrupar KLINE con KILL, en resumen, puedes agrupar de la manera que quieras. Puedes tener tantos tags class como desees.
Con la versión 1.0 beta 6, si pones un comando llamado '*' (sin comillas) en una clase, entonces la clase cubre TODAS las posibilidades. ¡USALO CON PRECAUCIÓN!
<class name="Everything" commands="*">
<type>
<type name="GlobalOp" classes="OperChat BanControl HostCloak Modular" host="globalop.chatspike.net">
Este tag define los tipos de operadores. Un tipo de operador es un nombre de grupo de una o más clases. Cuando este tipo de operador gana sus permisos, ganarán el hostname especificado por la variable host (si está definida; si este campo no está definido, el host no cambiará), y tendrá acceso a todos los comandos que la clase le da. Puedes poner tántos de estos como quieras.
Los nombres de tipo no incluyen espacios. Si quieres poner un espacio usa un _ en la configuración.
<type name="Global_Op" classes="OperChat BanControl HostCloak Modular" host="globalop.chatspike.net">
NOTA: cuando especificas <type:swhois> y <oper:swhois>, el bloque oper toma preferencia sobre el tag type.
<oper>
<oper name="helper" password="helper" host="*@*" type="Helper>
Este tag define los opers actuales. Cada oper puede tener un solo tipo de oper definido por la variable type. Puedes introducir el mismo tag con distintos hosts, haciendo que este operador pueda tener más de un hostname, o puedes separar múltiples hostnames con espacios. Por ejemplo:
<oper name="oper" password="iam1337!" host="*@secret.place.com *@home.com" type="ReallyALamer">
Puedes también un swhois para operadores añadiendo un tag swhois dentro del bloque oper como sigue:
<oper name="eLement" password="WolfSage" host="*@*document.finder.editor.com"
type="ReallyALover" swhois="This Would Be an SWHOIS">
La contraseña del citado operador está en texto sin cifrar, a menos que cargues el módulo m_md5 o el m_sha256 así como también m_oper_hash.
<oper name="helper" hash="md5" password="fde5d67bfb6dc4b598291cc2ce35ee4a" host="*@*" type="Helper"> or
<oper name="helper" hash="sha256"
password="e81d3b0e9d82feaaf5f6e55bdff24731d7eee08632ffa63801e6397290c5d20a" host="*@*" type="Helper">
Para generar un password encriptado usa mkpasswd
Nótese que type ES sensible a las mayúsculas. Si fallas en escribir esta configuración, tu oper FALLARÁ.
<files>
<files motd="/path/to/motd" rules="/path/to/rules">
Este tag, único en la configuración, especifica el path del mensaje del día (el cual es un archivo de texto) y las normas que se muestran en el comando /RULES. El path puede ser especificado como relativo al directorio de la configuración o en su defecto puede ser un pathname absoluto, desde el sistema de ficheros raíz.
<module>
<module name="m_silence.so">
Este tag especifica que deseas cargar un módulo. Puede haber tantos tags module como modules quieras cargar, módulos que residen en el directorio especificado cuando ejecutaste ./configure.
<options>
<options prefixquit="Quit: " loglevel="debug" netbuffersize="10240" maxwho="32" noservices="no" allowhalfop="yes" moduledir="/path/to/modules" somaxconn="128" userstats="oclgk" customversion="" maxtargets="20" hidesplits="no" hidewhois="" flatlinks="no" hideulines="no" nouserdns="no" syntaxhints="no" cyclehosts="yes" ircumsgprefix="no" announcets="yes" hostintopic="yes" announceinvites="yes" quietbursts="no" hidekills="no" exemptchanops="" morronbanner="">
Este tag especifica un grupo de opciones misceláneas. Contiene muchas de las opciones documentadas en la siguiente subsección.
prefixquit
- El valor de prefixquit es el valor el cual es puesto en cada mensaje quit. Tiene múltiples usos. El primario es el de prevenir el falseo de mensajes de kill, pero si lo deseas puedes anunciar tu red aqui. Sin más decir... realmente están en TU red jeje, pero la red de cada uno.
loglevel
- El tag loglevel especifica el nivel de log. La configuración usual es default. Sólamente use verbose o debug si estas haciendo debug en un módulo. verbose y debug pueden guardar información sensitiva y también generar logs bastante grandes y nunca ha de ser usado en una red de producción. El nivel default es suficientemente pequeño en detalles para usarlo utilmente si tienes poco espacio de disco o de quota.
netbuffersize
- Define el tamaño del buffer que recive datos de los clientes. Esto es un complemento a per-connect-group, límites de flood. Si por ejemplo lo pones a 10k (10240) entonces si un usuario envia más de 10k de golpet ek servidor recibe más de 10k de datos en la llamada recv() entonces será desconectado del servidor por floodear. Incrementar netbuffersize toma más memoria, pero permite que la cosa vaya fluida.
maxwho
- La variable maxwho indica el maximo número de respuestas que WHO puede generar. En la mayoría de redes de irc con más de 1000 usuarios, hacer /WHO 0 o /WHO * (depende del tipo de ircd) desconectaría al usuario y consumiría además muchos recursos del servidor. Este límite es creado para evitar que los usuarios se floodeen a sí mismos.
noservices
- La variable noservices es usada en redes que no tengan servicios de red ni los tendrán. Si pones esta variable a 'yes' el primer usuario en cada canal obtendrá transparentemente +q si el módulo m_chanprotect está cargado de la misma manera que transparentemente se le dá +o. Esto significa que los fundadores existen en todo momento para otorgar +a, etc si y solo sí los módulos correctos están cargados sin necesidad de servicios para otorgar el +q inicial. Nótese que en esta situación puede haber sólamente un founder por canal y cuando el canal se vacía el registro del canal es eliminado, así como el registro del founder que lo ocupó. Esto es bueno para redes cuya policía no contiene nada acerca de la posesión de nicks o canales. Si esta variable es 'no', el IRCD operará en la misma manera que UnrealIRCd o Bahamut, sólamente dando +q a quien el servidor le envie un SAMODE (los bots de red, vamos).
qaprefixes
- Esta opcion cuando está activada, permite a los usuarios con modos +q o +a los prefijos ~ o & como UnrealIRCd. Si está apagado los prefijos no serán mostrados en absoluto. Sólo es util en redes funcionando con el módulo m_chanprotect.
deprotectself
- Cuando esta opcion está activada, los usuarios con el modo +q o +a tienen la opción de quitarse estes modos. La configuración por defecto es la de no activar este feature ya que permite a un founder quitarse el status de founder sin usar bots de red.
somaxconn
TO BE CONTINUED

















