GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar SSH en CentOS y RHEL

SSH (Secure Shell) es un protocolo de red seguro basado en la arquitectura cliente-servidor que le permite acceder de forma segura a ordenadores/servidores remotos a través de la red.

SSH es ampliamente utilizado por los administradores de sistemas para conectarse a servidores remotos. Esto hace que los administradores administren fácilmente servidores y aplicaciones de forma remota y segura desde cualquier lugar y en cualquier momento.

En esta guía, le mostraré cómo configurar y habilitar SSH en sistemas CentOS/RHEL. Con SSH habilitado en este sistema CentOS, debería poder acceder a este sistema desde otras computadoras usando su dirección IP.

Este tutorial también incluye los pasos para cambiar el puerto SSH predeterminado, deshabilitar el inicio de sesión SSH para el usuario root y configurar firewalld para proteger su servidor SSH.

Para completar esta guía, asegúrese de cumplir con los siguientes requisitos:

  • Un sistema CentOS/RHEL Linux. Puede instalarlo en su máquina física/hardware real, o usar la máquina virtual a través de KVM/VirtualBox, o usar proveedores de nube de terceros como Linode (pero generalmente ya tienen habilitado SSH).
  • Un usuario no root con privilegios sudo/root. Este usuario se utilizará para modificar su sistema. Y al final, este usuario puede usarse para iniciar sesión en su servidor.

Instalación de paquetes OpenSSH

OpenSSH es una de las implementaciones de software más populares del protocolo SSH. Es utilizado por millones de servidores Linux y se convierte en una parte crítica del entorno del servidor. De forma predeterminada, OpenSSH está disponible en la mayoría de los repositorios de distribución de Linux, incluidos los sistemas CentOS y RHEL.

Antes de comenzar, actualice el índice de su paquete usando el administrador de paquetes DNF como se muestra a continuación.

sudo dnf check-update

A continuación, instale los paquetes de OpenSSH en los sistemas CentOS/RHEL con el siguiente comando. Este comando instalará los paquetes del servidor OpenSSH, así como el software del cliente OpenSSH.

sudo dnf install openssh-server openssh-clients -y

Una vez completada la instalación de OpenSSH, ejecute el siguiente comando para iniciar sshd servicio y permitir que se inicie automáticamente en el arranque del sistema.

sudo systemctl enable --now sshd

Ahora, verifica el sshd estado del servicio ejecutando el siguiente comando.

sudo systemctl status sshd

Recibirá una salida como la siguiente captura de pantalla. El sshd el servicio está active (running) .

Configuración del servidor SSH

De forma predeterminada, la configuración de SSH está disponible en /etc/ssh directorio, y el archivo de configuración principal es sshd_config . Este archivo contiene alguna configuración SSH básica, como ListenAddress que determina la dirección IP del servicio SSH en ejecución, Port para configurar el puerto de servicio SSH, métodos de autenticación y mucho más.

En esta sección, modificará la configuración sshd_config , luego cambie el puerto SSH predeterminado y deshabilite el inicio de sesión para el usuario raíz.

Esta configuración se recomienda por razones de seguridad, es para aumentar la seguridad del servidor y reducir el ataque de fuerza bruta contra su servidor.

Ahora, abra el archivo sshd_config usando vi editor o su editor preferido.

sudo vi /etc/ssh/sshd_config

Antes de comenzar a editar el archivo, debe saber que las líneas que comienzan con # y las líneas vacías se interpretan como comentarios.

En la parte superior de la línea, cambie el puerto SSH predeterminado de 22 a su puerto preferido. Este tutorial utiliza el puerto no estándar 2028 para SSH.

Port 2028
⚠️Asegúrese de tener un usuario no root con acceso sudo ya habilitado en este sistema. De lo contrario, si deshabilita el inicio de sesión raíz, es posible que no pueda iniciar sesión en su servidor de forma remota.

A continuación, cambie la opción de PermitRootLogin yes a PermitRootLogin no . Esto deshabilitará el inicio de sesión SSH para el usuario root usuario. Opcionalmente, puede agregar # al comienzo de la línea PermitRootLogin .

PermitRootLogin no

Guarde y cierre el archivo.

Después de realizar cambios, verifique la configuración de SSH, luego reinicie sshd servicio.

sshd -t
sudo systemctl restart sshd

Ahora, puede conectarse a su servidor SSH ejecutando ssh comando a continuación.

ssh [email protected] -p PORT

El -p La opción se utiliza para especificar el puerto de su servidor SSH.

En esta sección, ha completado la configuración básica para proteger el servidor SSH cambiando el puerto SSH predeterminado y deshabilitando el inicio de sesión para root usuario. Además, ha aprendido a conectarse al servidor SSH con un puerto no estándar. A continuación, instalará y configurará firewalld.

Instalar y configurar Firewalld

Si está utilizando el servidor CentOS/RHEL en la Internet pública, como un servidor en la nube, es posible que deba habilitar el firewall. Esto aumentará la seguridad de su servidor, al limitar el acceso solo a servicios específicos como SSH, HTTP y HTTPS. En la distribución basada en CentOS/RHEL, firewalld es el paquete de firewall predeterminado que puede instalar en su sistema.

En esta sección, instalará firewalld y configurará sus puertos abiertos para su servidor SSH.

Para instalar firewalld, ejecute dnf comando a continuación.

sudo dnf install firewalld -y

Una vez completada la instalación de firewalld, inicie y habilite firewalld Servicio. Luego verifique su estado ejecutando el siguiente comando.

sudo systemctl enable --now firewalld
sudo systemctl status firewalld

Recibirá un resultado similar al de la captura de pantalla a continuación. El firewalld el servicio está active (running) .

Para interactuar con firewalld, puede usar el comando firewall-cmd . Es la interfaz de línea de comandos para administrar las reglas de firewalld. Puede usar firewall-cmd para agregar, eliminar y modificar reglas de firewalld. Y hay muchas más que puedes hacer usando el firewall-cmd .

Ahora, para agregar el puerto SSH personalizado a su sistema, ejecute firewall-cmd comando a continuación.

sudo firewall-cmd --add-port=2028/tcp --permanent

Recibirá el resultado success , lo que significa que la operación fue exitosa y completada.

Este ejemplo usa el puerto 2028 como el puerto SSH personalizado. y el servicio SSH se ejecuta en el puerto TCP, por lo que debe especificar el puerto y el protocolo, como 2028/tcp . La opción --permanent hace que esta regla sea permanente.

A continuación, vuelva a cargar las reglas de firewalld para aplicar una nueva configuración con el siguiente comando.

sudo firewall-cmd --reload

Ha agregado el puerto personalizado SSH al firewalld. Ejecute el siguiente comando para enumerar todas las reglas habilitadas.

sudo firewall-cmd --list-all

Ahora verá una lista de reglas habilitadas en firewalld. Los servicios SSH, Cockpit y dhcp están habilitados por defecto.

Para eliminar la regla SSH predeterminada, ejecute firewall-cmd comando a continuación. A continuación, vuelva a cargar las reglas del cortafuegos.

sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload

Ahora, ha completado la instalación y configuración de firewalld para asegurar su servidor SSH.

Conclusión

En esta guía, completó la instalación y configuración de SSH en el sistema CentOS/RHEL. Ha asegurado su servidor SSH cambiando el puerto predeterminado y deshabilitando el inicio de sesión para root usuario. Además, ha completado la instalación y configuración del cortafuegos en el sistema CentOS/RHEL para proteger el servidor SSH.

Háganos saber si tiene preguntas.


Linux
  1. Configurar el servidor DHCP en CentOS 8:¿cómo hacerlo?

  2. Cómo configurar VSFTPD en CentOS 8

  3. Cómo crear un banner SSH en el servidor CentOS/RHEL

  4. CentOS / RHEL 7:cómo establecer el objetivo predeterminado (nivel de ejecución predeterminado)

  5. CentOS / RHEL:Cómo configurar chroot jail SFTP

Cómo configurar un servidor OpenVPN en CentOS 7

Cómo instalar el servidor Redis en CentOS 8 / RHEL 8

Cómo configurar el servidor NFS en CentOS 8 / RHEL 8

Cómo configurar el servidor DHCP en CentOS 8

Cómo configurar un servidor TeamSpeak en CentOS 7

Cómo configurar un servidor de Minecraft en CentOS 7