Serie RHCSA: protección de SSH, configuración del nombre de host y habilitación de servicios de red - Parte 8


Como administrador del sistema, a menudo tendrá que iniciar sesión en sistemas remotos para realizar una variedad de tareas de administración utilizando un emulador de terminal. Rara vez se sentará frente a una terminal real (física), por lo que debe configurar una forma de iniciar sesión de forma remota en las máquinas que se le pedirá que administre.

De hecho, eso puede ser lo último que tendrás que hacer frente a un terminal físico. Por razones de seguridad, utilizar Telnet para este propósito no es una buena idea, ya que todo el tráfico pasa por el cable en texto sin cifrar y sin cifrar.

Además, en este artículo también revisaremos cómo configurar los servicios de red para que se inicien automáticamente en el arranque y aprenderemos cómo configurar la red y la resolución del nombre de host de forma estática o dinámica.

Instalación y protección de la comunicación SSH

Para que pueda iniciar sesión de forma remota en una caja RHEL 7 utilizando SSH, deberá instalar los paquetes openssh, openssh-clients y openssh-servers. El siguiente comando no solo instalará el programa de inicio de sesión remoto, sino también la herramienta de transferencia segura de archivos, así como la utilidad de copia remota de archivos:

# yum update && yum install openssh openssh-clients openssh-servers

Tenga en cuenta que es una buena idea instalar las contrapartes del servidor, ya que es posible que desee utilizar la misma máquina como cliente y servidor en algún momento.

Después de la instalación, hay un par de cosas básicas que debe tener en cuenta si desea asegurar el acceso remoto a su servidor SSH. La siguiente configuración debe estar presente en el archivo /etc/ssh/sshd_config .

1. Cambie el puerto donde escuchará el demonio sshd de 22 (el valor predeterminado) a un puerto alto (2000 o mayor), pero primero asegúrese de que el puerto elegido no se esté utilizando.

Por ejemplo, supongamos que elige el puerto 2500. Utilice netstat para comprobar si el puerto elegido se está utilizando o no:

# netstat -npltu | grep 2500

Si netstat no devuelve nada, puede usar con seguridad el puerto 2500 para sshd, y debe cambiar la configuración del puerto en el archivo de configuración de la siguiente manera:

Port 2500

2. Permitir solo el protocolo 2:

Protocol 2

3. Configure el tiempo de espera de autenticación en 2 minutos, no permita inicios de sesión de root y restrinja al mínimo la lista de usuarios que pueden iniciar sesión mediante ssh:

LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. Si es posible, utilice autenticación basada en claves en lugar de contraseña:

PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

Esto supone que ya ha creado un par de claves con su nombre de usuario en su máquina cliente y lo ha copiado en su servidor como se explica aquí.

  1. Enable SSH Passwordless Login

Configuración de redes y resolución de nombres

1. Todo administrador del sistema debe estar familiarizado con los siguientes archivos de configuración de todo el sistema:

  1. /etc/hosts is used to resolve names <---> IPs in small networks.

Cada línea del archivo /etc/hosts tiene la siguiente estructura:

IP address - Hostname - FQDN

Por ejemplo,

192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf especifica las direcciones IP de los servidores DNS y el dominio de búsqueda, que se utiliza para completar un nombre de consulta dado a un nombre de dominio completo cuando no se proporciona ningún sufijo de dominio.

En circunstancias normales, no es necesario editar este archivo, ya que lo administra el sistema. Sin embargo, si desea cambiar los servidores DNS, tenga en cuenta que debe ceñirse a la siguiente estructura en cada línea:

nameserver - IP address

Por ejemplo,

nameserver 8.8.8.8

3. 3. /etc/host.conf especifica los métodos y el orden en que se resuelven los nombres de host dentro de una red. En otras palabras, le dice al solucionador de nombres qué servicios usar y en qué orden.

Aunque este archivo tiene varias opciones, la configuración más común y básica incluye una línea de la siguiente manera:

order bind,hosts

Lo que indica que el resolutor debe buscar primero en los servidores de nombres especificados en resolv.conf y luego en el archivo /etc/hosts para la resolución de nombres.

4. /etc/sysconfig/network contiene información de enrutamiento y host global para todas las interfaces de red. Se pueden utilizar los siguientes valores:

NETWORKING=yes|no
HOSTNAME=value

Donde el valor debe ser el nombre de dominio completo (FQDN).

GATEWAY=XXX.XXX.XXX.XXX

Donde XXX.XXX.XXX.XXX es la dirección IP de la puerta de enlace de la red.

GATEWAYDEV=value

En una máquina con varias NIC, el valor es el dispositivo de puerta de enlace, como enp0s3.

5. Archivos dentro de /etc/sysconfig/network-scripts (archivos de configuración de adaptadores de red).

Dentro del directorio mencionado anteriormente, encontrará varios archivos de texto sin formato con el nombre.

ifcfg-name

Donde nombre es el nombre de la NIC como lo devuelve ip link show:

Por ejemplo:

Aparte de la interfaz de bucle invertido, puede esperar una configuración similar para sus NIC. Tenga en cuenta que algunas variables, si se establecen, anularán las presentes en /etc/sysconfig/network para esta interfaz en particular. Cada línea se comenta para aclarar en este artículo, pero en el archivo real debe evitar los comentarios:

HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC
TYPE=Ethernet # Type of connection
BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case.
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file.
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes # The operating system should bring up this NIC during boot

Configuración de nombres de host

En Red Hat Enterprise Linux 7, el comando hostnamectl se usa tanto para consultar como para establecer el nombre de host del sistema.

Para mostrar el nombre de host actual, escriba:

# hostnamectl status

Para cambiar el nombre de host, use

# hostnamectl set-hostname [new hostname]

Por ejemplo,

# hostnamectl set-hostname cinderella

Para que los cambios surtan efecto, deberá reiniciar el demonio con nombre de host (de esa forma no tendrá que cerrar sesión y volver a iniciar sesión para aplicar el cambio):

# systemctl restart systemd-hostnamed

Además, RHEL 7 también incluye la utilidad nmcli que se puede utilizar para el mismo propósito. Para mostrar el nombre de host, ejecute:

# nmcli general hostname

y para cambiarlo:

# nmcli general hostname [new hostname]

Por ejemplo,

# nmcli general hostname rhel7

Inicio de servicios de red en el arranque

Para terminar, veamos cómo podemos asegurarnos de que los servicios de red se inicien automáticamente al arrancar. En términos simples, esto se hace creando enlaces simbólicos a ciertos archivos especificados en la sección [Instalar] de los archivos de configuración del servicio.

En el caso de firewalld (/usr/lib/systemd/system/firewalld.service):

[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service

Para habilitar el servicio:

# systemctl enable firewalld

Por otro lado, deshabilitar firewalld da derecho a eliminar los enlaces simbólicos:

# systemctl disable firewalld

Conclusión

En este artículo, hemos resumido cómo instalar y asegurar las conexiones a través de SSH a un servidor RHEL, cómo cambiar su nombre y, finalmente, cómo garantizar que los servicios de red se inicien en el arranque. Si nota que un determinado servicio no se ha iniciado correctamente, puede utilizar systemctl status -l [servicio] y journalctl -xn para solucionarlo.

No dude en hacernos saber lo que piensa sobre este artículo utilizando el formulario de comentarios a continuación. Las preguntas también son bienvenidas. ¡Esperamos con interés escuchar de usted!