GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar y configurar un servicio de ejemplo con xinetd en RHEL 8/CentOS 8 Linux

Xinetd, o el Daemon de Servicios de Internet Extendidos, es un llamado super-servidor. Puede configurarlo para escuchar en el lugar de muchos servicios e iniciar el servicio que debe manejar una solicitud entrante solo cuando realmente llega al sistema, ahorrando así recursos. Si bien esto puede no parecer un gran problema en un sistema donde el tráfico es relativamente permanente, este servicio frente a otro enfoque tiene algunas ventajas interesantes, como registro o control de acceso.

En este artículo instalaremos xinetd en un RHEL 8 / CentOS 8 y pondremos el sshd demonio bajo su cuidado. Después de verificar la configuración, ajustaremos un poco la configuración para ver el control de acceso en acción.

En este tutorial aprenderás:

  • Cómo instalar xinetd
  • Cómo configurar sshd en RHEL 8/CentOS 8 como un servicio xinetd
  • Cómo permitir el acceso solo desde una red específica al servicio sshd de xinetd
  • Cómo auditar el tráfico de las entradas de registro de xinetd

Permitir el acceso desde un determinado segmento de red a sshd.

Requisitos de software y convenciones utilizadas

Cómo instalar el servicio xinetd en Red Hat 8 instrucciones paso a paso

Xinetd se puede encontrar en los repositorios base después de configurar los repositorios oficiales de gestión de suscripciones. El sshd El servidor está instalado en cualquier Red Hat (y prácticamente en cualquier distribución de Linux) de forma predeterminada.

ADVERTENCIA
Tenga en cuenta que sshd se apagará durante esta configuración. NO intente completar esta guía en un sistema al que solo puede acceder con ssh, de lo contrario, perderá la conexión con el sistema en el momento en que apague sshd para iniciar el servidor xinetd.
  1. Primero necesitamos instalar el xinetd demonio. Usaremos dnf :
    # dnf install xinetd
  2. Si por alguna razón su sistema no contiene la instalación de OpenSSH, puede instalar paquetes como en este caso el openssh paquete de la misma manera que arriba:
    # dnf install openssh
  3. Xinetd viene con un archivo de configuración predeterminado /etc/xinetd.conf , así como algunos buenos ejemplos en el /etc/xinetd.d/ directorio, todo deshabilitado por defecto. Con un editor de texto como vi o nano , vamos a crear un nuevo archivo de texto /etc/xinetd.d/ssh con el siguiente contenido (tenga en cuenta que la nueva línea después del nombre del servicio es obligatoria):
    service ssh 
    {
     disable     = no
     socket_type = stream
     protocol    = tcp
     port        = 22
     wait        = no
     user        = root
     server      = /usr/sbin/sshd
     server_args = -i
    }
  4. Si sshd el servidor se está ejecutando en el sistema, debemos detenerlo; de lo contrario, xinetd no se puede vincular al puerto TCP 22. Este es el paso en el que se desconectará si ha iniciado sesión a través de ssh.
    # systemctl stop sshd

    Si planeamos usar sshd sobre xinetd a largo plazo, también podemos deshabilitar el systemd servicio para él, para evitar que se inicie en el momento del arranque:

    systemctl disable sshd
  5. Ahora podemos iniciar xinetd :
    # systemctl start xinetd

    Y, opcionalmente, habilite el inicio en el momento del arranque:

    # systemctl enable xinetd
  6. Después de que se inicia xinetd, podemos iniciar sesión a través de ssh, ya que nuestra configuración básica no contiene ninguna restricción adicional. Para probar el servicio, solicitamos iniciar sesión en localhost :
    # ssh localhost
    root@localhost's password: 
    Last login: Sun Mar 31 17:30:07 2019 from 192.168.1.7
    #
  7. Agreguemos otra línea a /etc/xinetd.d/ssh , justo antes de la pulsera de cierre:
    [...]
     server      = /usr/sbin/sshd
     server_args = -i
     only_from   = 192.168.0.0
    }

    Con esta configuración, restringimos el acceso solo desde el segmento de red 192.168.*.*. Necesitamos reiniciar xinetd para que este cambio de configuración surta efecto:

    # systemctl restart xinetd
  8. Nuestra máquina de laboratorio tiene más de una interfaz. Para probar la restricción anterior, intentaremos conectarnos a una interfaz que no esté permitida por la configuración de xinetd y una que sí esté permitida:
    # hostname -i
    fe80::6301:609f:4a45:1591%enp0s3 fe80::6f06:dfde:b513:1a0e%enp0s8 10.0.2.15 192.168.1.14 192.168.122.1

    Intentaremos abrir la conexión desde el propio sistema, por lo que nuestra dirección IP de origen será la misma que la del destino al que intentamos conectarnos. Por lo tanto, cuando intentamos conectarnos a 10.0.2.15 , no podemos conectarnos:

    # ssh 10.0.2.15
    ssh_exchange_identification: read: Connection reset by peer

    Mientras que la dirección 192.168.1.14 está dentro del rango de direcciones permitido. Obtendremos la solicitud de contraseña y podremos iniciar sesión:

    # ssh 192.168.1.14
    [email protected]'s password:
  9. Como no hemos cambiado la configuración de registro predeterminada, nuestros intentos de inicio de sesión (o, en otras palabras, nuestros intentos de acceder al servicio xinetd) se registrarán en /var/log/messages . Las entradas de registro se pueden encontrar con un simple grep :
    cat /var/log/messages | grep xinetd
    Mar 31 18:30:13 rhel8lab xinetd[4044]: START: ssh pid=4048 from=::ffff:10.0.2.15
    Mar 31 18:30:13 rhel8lab xinetd[4048]: FAIL: ssh address from=::ffff:10.0.2.15
    Mar 31 18:30:13 rhel8lab xinetd[4044]: EXIT: ssh status=0 pid=4048 duration=0(sec)
    Mar 31 18:30:18 rhel8lab xinetd[4044]: START: ssh pid=4050 from=::ffff:192.168.1.14

    Estos mensajes facilitan saber cómo se accedió a nuestros servicios. Si bien hay muchas otras opciones (incluida la limitación de conexiones concurrentes o la configuración de tiempos de espera después de conexiones fallidas para evitar ataques de DOS), esta sencilla configuración muestra el poder de este súper servidor que puede facilitar la vida del administrador de sistemas, especialmente abarrotado, orientado a Internet. sistemas.


Cent OS
  1. Cómo instalar y configurar Varnish Cache 6 con Nginx en CentOS 8

  2. Cómo instalar Lighttpd con PHP5 FastCGI y MySQL en CentOS 6 / RHEL 6

  3. Cómo instalar Go en Fedora y Rocky Linux/Centos/RHEL

  4. CentOS/RHEL:Cómo instalar e iniciar el servicio Apache httpd

  5. CentOS / RHEL 7:Cómo instalar y configurar el servidor ftp (vsftpd)

Cómo instalar WordPress en RHEL 8 / CentOS 8 Linux

Cómo instalar GIMP en CentOS 8 / RHEL 8 Linux

Cómo instalar Lighttpd con PHP FPM y MariaDB en CentOS 7 / RHEL 7

Cómo instalar y usar Neofetch en Linux (RHEL/CentOS/Arch)

Cómo instalar y configurar contenedores LXC Linux en CentOS/RHEL/Ubuntu

Cómo instalar y configurar el servidor VNC (TigerVNC) en CentOS / RHEL 7

    Requisitos de software y convenciones de la línea de comandos de Linux
    Categoría Requisitos, convenciones o versión de software utilizada
    Sistema RHEL 8 / CentOS 8
    Software xinetd 2.3.15-23, OpenSSH 7.8p1
    Otro Acceso privilegiado a su sistema Linux como root o a través de sudo comando.
    Convenciones # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando
    $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios