Configuración de un servidor InspIRCd IRC en Ubuntu 16.04 LTS

Internet Relay Chat (IRC) es algo que ha existido desde los primeros días de Internet. En esta guía, le mostraré cómo configurar un servidor IRC con InspIRCd con Atheme para servicios IRC adicionales. InspIRCd es uno de los pocos servidores IRC escritos desde cero y uno de los pocos servidores IRC que proporciona una cantidad ajustable de características mediante el uso de un sistema de módulo avanzado.

Prerrequisitos

InspIRCd debería funcionar con cualquier tamaño de instancia. Sus requisitos mínimos del sistema son una CPU de 700MHz y 300MB de RAM.

Actualiza el sistema

Al iniciar sesión como usuario de sudo, puede actualizar el sistema al último estado estable de la siguiente manera:

apt-get update && apt-get upgrade 

Configurar el cortafuegos

Primero endurezcamos un poco el VPS. Habilitaremos ufwy agregaremos algunas reglas. Comencemos con la configuración de puertos:

ufw allow 22/tcp
ufw allow 6667/tcp
ufw enable

El firewall abrirá un cuadro de diálogo para aceptar los cambios. Solo presiona Ypara sí.

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

Instalar y configurar InspIRCd

Luego podemos instalar InspIRCd, para Ubuntu 16.04 este paquete está disponible a través del repositorio principal.

apt-get install inspircd 

Una vez que se realiza la instalación, podemos comenzar a configurar el servicio. La configuración principal se puede encontrar en el /etc/inspircd/inspircd.confarchivo y tiene el diseño de un archivo XML.

nano /etc/inspircd/inspircd.conf

Primero busque la serveretiqueta. Esta etiqueta es donde ingresa los detalles de su servidor / red, la mayoría de estas configuraciones son visibles para sus usuarios.

  • name: Nombre de host de su servidor. No necesita resolverse, pero debe ser la sintaxis correcta (por ejemplo:) sub.example.net.
  • description: Descripción del servidor.
  • id: El SID a utilizar para este servidor. Esto no debe comentarse a menos que haya un conflicto SID. Esto debe tener tres caracteres de largo. El primer carácter debe ser un dígito [0-9], los dos caracteres restantes pueden ser letras [AZ] o dígitos.
  • network: Nombre de red dado en conectar a clientes. Debe ser el mismo en todos los servidores de la red y no contener espacios.

En nuestra guía usaremos lo siguiente:

<server name="irc.example.net"
        description="My EXAMPLE.NET server"
        id="5AA"            
        network="ExampleNET">

Reemplace la etiqueta original con la de arriba.

A continuación, busque la adminetiqueta. Estas configuraciones son los detalles administrativos de su servidor. Se muestran cuando escribe el /ADMINcomando.

  • name: Nombre real
  • nick: Apodo (preferiblemente lo que usa en la red).
  • email: dirección de correo electrónico. No tiene que ser válido, pero esta dirección será la que sus usuarios deben contactar con usted en caso de problemas.

Usemos el administrador Xenial:

<admin name="Xenial Xerius"
   nick="xenial"
   email="[email protected]">

Ahora ve al bind address. Esta etiqueta se usa para abrir el servicio. Por defecto verá la IP localhost ( 127.0.0.1). Esto significa que el servicio no puede ser contactado por el mundo exterior. Abramos nuestro servicio sin usar ninguna dirección. Esto hará que el servicio se vincule a cualquier interfaz ethernet que posea la máquina:

<bind address="" port="6667" type="clients">

La siguiente etiqueta será la poweretiqueta. Esta etiqueta define dos contraseñas.

  • diepass: Contraseña para que los operadores la usen si desean apagar un servidor.
  • restartpass: Contraseña para que los operadores la usen si necesitan reiniciar un servidor.

Es mejor cambiar estas contraseñas predeterminadas:

<power diepass="die123" restartpass="restart123" pause="2">

La última configuración que cambiaremos son las operconfiguraciones. Estos definen los inicios de sesión del operador.

  • name: inicio de sesión del operador que se utiliza para operar (Ejemplo:) /oper name password.
  • password: texto simple y sin etiqueta
  • host: Qué nombres de host / IP pueden operar. Se pueden separar múltiples opciones por espacios, y se permiten los CIDR. Simplemente puede usar *o @para esta sección.
  • type: De qué tipo es este. El bloque de arriba debe tener tres clases ya definidas: NetAdmin, GlobalOpy Helper. El NetAdmines el que estaremos usando.

Cambie la operetiqueta usando el siguiente contenido. Tenga en cuenta que para nuestro ejemplo usaremos " @" para el host. En un entorno de producción, no es deseable usar esto:

<oper name="xenial"
   password="mypassword"
   host="*@*"
   type="NetAdmin">

Antes de reiniciar el servicio, edite los archivos motdy rules:

nano /etc/inspircd/inspircd.motd

Reemplácelo con el tuyo, por ejemplo:

This is the motd of example.net. Here you can list planned outages or information your users need to know about this IRC server.

Finalmente edite los archivos de reglas.

nano /etc/inspircd/inspircd.rules

Agregue sus propias reglas, por ejemplo:

The first rule of Fight Club is: You do not talk about Fight Club. The second rule of Fight Club is: You DO NOT TALK ABOUT FIGHT CLUB! 

Ahora que todo está configurado, reinicie el servicio IRC:

service inspircd restart

Para verificar que todo se esté ejecutando, consulte la netstatherramienta:

netstat -tulpn | grep -i inspircd

Debería enumerar el programa inspircd, escuchando en el puerto 6666:

tcp6       0      0 :::6667                 :::*                    LISTEN      31313/inspircd
udp        0      0 0.0.0.0:39335           0.0.0.0:*                           31313/inspircd

Para probar el servidor podemos instalar un cliente de terminal IRC. En Windows puede usar un programa como mIRC. En nuestro ejemplo usaremos weechat. Este es un cliente IRC basado en texto que se puede usar en una sesión de terminal.

Instale la aplicación weechat a través de los repositorios:

apt-get install weechat 

Una vez instalada esta aplicación, ejecute este cliente IRC:

weechat

Para ver todos los comandos que weechat tiene para ofrecer, puede solicitar el comando de ayuda:

/help

Para salir de weechat, puede escribir el siguiente comando:

/quit    

Agregue nuestro servidor local a una conexión en weechat:

/server add local localhost

Ahora podemos conectarnos al perfil de conexión llamado 'local':

/connect local

Verá nuestro motd y reglas emergentes en la ventana de terminal.

Para promocionarse como operador, escriba lo siguiente:

/oper xenial mypassword

Esto nos mostrará una confirmación del éxito:

22:40:34   local  -- | User mode [+o] by irc.example.net
22:40:34   local  -- | You are now a NetAdmin

Eso es todo para nuestro servidor IRC.

Instalación de servicios IRC - Atheme

Atheme es un conjunto de servicios para redes IRC diseñado para grandes redes IRC con altos requisitos de escalabilidad. Agrega servicios adicionales como NickServ (registro de apodo) a su red IRC.

Atheme se puede encontrar en el repositorio de Ubuntu:

apt-get install atheme-services

Una vez que los binarios estén instalados, extraiga el archivo de configuración de ejemplo y cópielo en la athemecarpeta:

gunzip /usr/share/doc/atheme-services/examples/atheme.conf.example.gz
cp /usr/share/doc/atheme-services/examples/atheme.conf.example /etc/atheme/atheme.conf

A continuación, edite este archivo de configuración:

nano /etc/atheme/atheme.conf

Primero busque el loadmodulecomando de protocolo. Esto debe definirse de la siguiente manera:

loadmodule "modules/protocol/charybdis";

Reemplazar charybdiscon el protocolo de inspircd:

loadmodule "modules/protocol/inspircd12";

Siguiente búsqueda del servicio name:

name = "services.int";

Cambie services.intpara que coincida con el nombre de dominio o la dirección IP de su servidor IRC:

name = "services.irc.example.net";

Una vez hecho esto, busque el número:

numeric = "00A";

Ahora cámbielo a un valor diferente al numérico utilizado en la etiqueta del servidor utilizada anteriormente.

numeric = "77C";

Una vez hecho esto, configuremos el nombre de la red. Buscar por netname:

netname = "misconfigured network";

Cambie este valor al parámetro de red en la etiqueta del servidor.

netname = "ExampleNET";

Cambiar el valor de hidehostsuffix:

hidehostsuffix = "users.misconfigured";

Eliminar el .misconfigured:

hidehostsuffix = "users";

Luego, cambie el nombre del administrador al que usamos antes:

adminname = "xenial";

Coincidir adminemailcon el correo electrónico asociado utilizado antes:

adminemail = "[email protected]";

Ahora que esto está hecho, necesitamos crear un enlace ascendente para nuestros servicios. Encuentra los dos uplinkbloques de código y coméntalos todos. Agregue /*antes del uplink{comando y */al final de la llave de cierre.

Se verá así:

/* this is an example for using an IPv6 address as an uplink */
/*
uplink "irc6.example.net" {
        host = "::1";
        password = "linkage";
        port = 6667;
};
*/

A continuación, agregue nuestro propio enlace ascendente. Este enlace ascendente solo se ejecutará en la IP de nuestro host local y en el puerto 7001. Especifique una contraseña súper secreta (la usaremos más adelante):

uplink "services.irc.example.net" {
    host = "127.0.0.1";

    // password
    // If you want to have same send_password and accept_password, you
    // can specify both using 'password' instead of individually.
    password = "SuperSecret123456";

    port = 7001;
 };

Finalmente busque nuestras definiciones de servicio. Comience con el nickservbloque primero.

En el bloque nickserv, busque la hostetiqueta y cámbiela a ExampleNet/services/NickServ:

nickserv {

    ...<<truncated>>...

    /* (*)host
     * The hostname we want NickServ to have.
     */
    host = "ExampleNet/services/NickServ";

    /* (*)real
     * The realname (gecos) information we want NickServ to have.
     */
    real = "Nickname Services";

    ...<<truncated>>...

Cambie también hostname tagpara todos los demás servicios:

nickserv:  ExampleNet/services/NickServ
chanserv:  ExampleNet/services/ChanServ
global:    ExampleNet/services/Global
infoserv:  ExampleNet/services/InfoServ
operserv:  ExampleNet/services/OperServ
saslserv:  ExampleNet/services/SaslServ
memoserv:  ExampleNet/services/MemoServ
gameserv:  ExampleNet/services/GameServ
botserv:   ExampleNet/services/BotServ
groupserv: ExampleNet/services/GroupServ
hostserv:  ExampleNet/services/HostServ
helpserv:  ExampleNet/services/HelpServ
alis:      ExampleNet/services/ALIS

Una vez hecho esto, guarde y salga del archivo de configuración.

Para probarlo todo, ejecuta el atheme-servicesbinario:

atheme-services

Esto debería decirle exactamente si funciona o no. Si no recibe una salida como la que se muestra a continuación, regrese y verifique si hay errores en el archivo de configuración:

[19/02/2018 23:06:24] db-open-read: database '/var/lib/atheme/services.db' does not yet exist; a new one will be created.
[19/02/2018 23:06:24] pid 1929
[19/02/2018 23:06:24] running in background mode from /

Ahora habilite el servicio editando el archivo de servicios:

nano /etc/default/atheme-services

Cambiar el ENABLEDvalor:

DAEMON_OPTS=""
ENABLED=1

Ahora podemos comenzar el servicio:

service atheme-services restart

Comprueba su estado:

service atheme-services status

Esto devolverá resultados similares:

● atheme-services.service - LSB: Atheme-services daemon init.d script
   Loaded: loaded (/etc/init.d/atheme-services; bad; vendor preset: enabled)
   Active: active (running) since Wed 2018-02-19 23:45:05 UTC; 8s ago
     Docs: man:systemd-sysv-generator(8)

Feb 19 23:45:05 vultr.guest atheme-services[2810]: Starting Atheme IRC Services: atheme-service
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] atheme 6.0.11 is start
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] Module operserv/sgline
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] module_load(): module
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] /etc/atheme/atheme.con
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] db-open-read: database
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] pid 2824
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] running in background
Feb 19 23:45:05 vultr.guest atheme-services[2810]: .
Feb 19 23:45:05 vultr.guest systemd[1]: Started LSB: Atheme-services daemon init.d script.

Antes de terminar, debemos agregar nuestros servicios Atheme a InspIRCd:

nano /etc/inspircd/inspircd.conf

Al final del archivo agregue estas líneas:

<bind address="127.0.0.1" port="7001" type="servers">

<uline server="services.irc.example.net">

<link name="services.irc.example.net"
  ipaddr="127.0.0.1"
  port="7001"
  allowmask="127.0.0.1"
  sendpass="SuperSecret123456"
  recvpass="SuperSecret123456">

<chanprotect noservices="no"
         qprefix="~"
         aprefix="&">

# Modules needed for services to function
<module name="m_chanprotect.so">
<module name="m_halfop.so">
<module name="m_services_account.so">
<module name="m_deaf.so">
<module name="m_spanningtree.so">
<module name="m_globops.so">
<module name="m_cban.so">
<module name="m_svshold.so">
<module name="m_hidechans.so">
<module name="m_servprotect.so">
<module name="m_chghost.so">
<module name="m_namesx.so">
<module name="m_uhnames.so">    

Ahora reinicie el servicio InspIRCd:

service inspircd restart

Asegúrese de que todo esté funcionando bien:

service inspircd status

Ahora inicie nuestro cliente weechat nuevamente:

weechat

Conéctese a nuestro servidor local:

/connect local

Verá aparecer inmediatamente uno de nuestros servicios Atheme: NickServ. Te saludará con información sobre sí mismo.

23:12:48   local  -- | NickServ (NickServ@ExampleNet/services/NickServ): Welcome to ExampleNet,
                 | root! Here on ExampleNet, we provide services to enable the registration of
                 | nicknames and channels! For details, type /msg NickServ help and /msg
                 | ChanServ help.

Puede consultar NickServ y descubrir sus comandos disponibles con lo siguiente:

/msg NickServ help


Leave a Comment

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.

Cómo instalar LiteCart Shopping Cart Platform en Ubuntu 16.04

Cómo instalar LiteCart Shopping Cart Platform en Ubuntu 16.04

LiteCart es una plataforma de carrito de compras gratuita y de código abierto escrita en PHP, jQuery y HTML 5. Es un software de comercio electrónico simple, liviano y fácil de usar.

Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS

Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS

¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i

Instalación de McMyAdmin en Ubuntu 14.10

Instalación de McMyAdmin en Ubuntu 14.10

McMyAdmin es un panel de control del servidor de Minecraft utilizado para administrar su servidor. Aunque McMyAdmin es gratuito, hay varias ediciones, algunas de las cuales son pai

Configurar un servidor TeamTalk en Linux

Configurar un servidor TeamTalk en Linux

TeamTalk es un sistema de conferencia que permite a los usuarios tener conversaciones de audio / video de alta calidad, chat de texto, transferir archivos y compartir pantallas. Es yo

How to Install and Configure CyberPanel on Your CentOS 7 Server

How to Install and Configure CyberPanel on Your CentOS 7 Server

Using a Different System? Introduction CyberPanel is one of the first control panels on the market that is both open source and uses OpenLiteSpeed. What thi

Instalar Grafana en Ubuntu 16.04 LTS

Instalar Grafana en Ubuntu 16.04 LTS

¿Usando un sistema diferente? Introducción Grafana es un software de código abierto que transforma múltiples feeds de sistemas como Graphite, Telegraf, an

Instalar phpBB con Apache en Ubuntu 16.04

Instalar phpBB con Apache en Ubuntu 16.04

PhpBB es un programa de tablón de anuncios de código abierto. Este artículo le mostrará cómo instalar phpBB en la parte superior de un servidor web Apache en Ubuntu 16.04. Fue escrito

Cómo instalar Foreman en Ubuntu 16.04 LTS

Cómo instalar Foreman en Ubuntu 16.04 LTS

¿Usando un sistema diferente? Foreman es una herramienta gratuita y de código abierto que lo ayuda con la configuración y administración de servidores físicos y virtuales. Forema

Configurar un usuario no root con acceso a Sudo en Ubuntu

Configurar un usuario no root con acceso a Sudo en Ubuntu

Tener un solo usuario, que es root, puede ser peligroso. Así que arreglemos eso. Vultr nos brinda la libertad de hacer lo que queramos con nuestros usuarios y nuestros servidores.

Install eSpeak on CentOS 7

Install eSpeak on CentOS 7

Using a Different System? ESpeak can generate text-to-speech (TTS) audio files. These can be useful for many reasons, such as creating your own Turin

Cómo instalar Thelia 2.3 en CentOS 7

Cómo instalar Thelia 2.3 en CentOS 7

¿Usando un sistema diferente? Thelia es una herramienta de código abierto para crear sitios web de comercio electrónico y administrar contenido en línea, escrito en PHP. Código fuente de Thelia i

Instalación de Fuel CMS en Ubuntu 16.04 LTS

Instalación de Fuel CMS en Ubuntu 16.04 LTS

¿Usando un sistema diferente? Fuel CMS es un sistema de gestión de contenido basado en CodeIgniter. Su código fuente está alojado en GitHub. Esta guía le mostrará cómo t

Cómo instalar Couch CMS 2.0 en un VPS LAMP Debian 9

Cómo instalar Couch CMS 2.0 en un VPS LAMP Debian 9

¿Usando un sistema diferente? Couch CMS es un sistema de gestión de contenido (CMS) simple y flexible, gratuito y de código abierto que permite a los diseñadores web diseñar

Monitoree sus dispositivos usando LibreNMS en CentOS 7

Monitoree sus dispositivos usando LibreNMS en CentOS 7

¿Usando un sistema diferente? LibreNMS es un completo sistema de monitoreo de red de código abierto. Utiliza SNMP para obtener los datos de diferentes dispositivos. Una variedad

Cómo configurar la optimización TCP en Linux

Cómo configurar la optimización TCP en Linux

Introducción ¿Tiene problemas con la conectividad cuando los visitantes de otros países acceden a su sitio web? Preguntándose por qué la velocidad de descarga de su extranjero

Cómo implementar Ghost v0.11 LTS en Ubuntu 16.04

Cómo implementar Ghost v0.11 LTS en Ubuntu 16.04

¿Usando un sistema diferente? Ghost es una plataforma de blogs de código abierto que ha estado ganando popularidad entre los desarrolladores y usuarios comunes desde su 201

Cómo instalar Pip en Linux

Cómo instalar Pip en Linux

Pip es una herramienta para administrar paquetes de Python. El uso de un administrador de paquetes permite una gestión eficiente de su servidor. En este tutorial, explicaré cómo t

Cómo instalar Cacti 1.1 en CentOS 7

Cómo instalar Cacti 1.1 en CentOS 7

Cacti es una herramienta de gráficos y monitoreo de red de código abierto y libre escrita en PHP. Con la ayuda de RRDtool (herramienta de base de datos Round-Robin), Cacti se puede usar t

ZPanel y Sentora en CentOS 6 x64

ZPanel y Sentora en CentOS 6 x64

ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.