Serie RHCSA: Asegurar SSH, configurar el nombre del host y habilitar servicios de red – Parte 8

Como administrador de sistemas, 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 estarás frente a un terminal real (físico), por lo que necesitas configurar una forma de iniciar sesión de forma remota en las máquinas que te pidan que administres.

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

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

RHCSA: Secure SSH and Enable Network Services – Part 8

Instalación y Seguridad de Comunicación SSH

Para que puedas iniciar sesión de forma remota en una RHEL 7 usando SSH, tendrás que instalar los paquetes openssh, openssh-clientes y openssh-servidores. El siguiente comando no solo instalará el programa de inicio de sesión remoto, sino también la herramienta de transferencia de archivos segura, así como la utilidad de copia de archivos remotos:

# 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 usar 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 debes tener en cuenta si deseas asegurar el acceso remoto a tu servidor SSH. Las siguientes configuraciones deben estar presentes en el archivo /etc/ssh/sshd_config.

1. Cambie el puerto en el que el demonio sshd escuchará de 22 (el valor predeterminado) a un puerto alto (2000 o superior), pero primero asegúrese de que el puerto elegido no esté siendo utilizado.

Por ejemplo, supongamos que elige el puerto 2500. Utilice netstat para verificar si el puerto elegido está siendo utilizado o no:

# netstat -npltu | grep 2500

Si netstat no devuelve nada, puede usar de forma segura el puerto 2500 para sshd, y debe cambiar el ajuste de Puerto en el archivo de configuración de la siguiente manera:

Port 2500

2. Solo permita protocolo 2:

Protocol 2

3. Configure el tiempo de espera de autenticación a 2 minutos, no permita accesos de root y restrinja al mínimo la lista de usuarios que pueden iniciar sesión a través de ssh:

LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

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

PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

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

  1. Habilitar inicio de sesión sin contraseña SSH

Configuración de Redes y Resolución de Nombres

1. Todo administrador de sistemas debe estar bien familiarizado con los siguientes archivos de configuración a nivel de sistema:

  1. /etc/hosts se utiliza para resolver nombres <—> IPs en redes pequeñas.

Cada línea en el 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 completamente calificado cuando no se proporciona un sufijo de dominio.

En circunstancias normales, no es necesario editar este archivo ya que es administrado por el sistema. Sin embargo, si desea cambiar los servidores DNS, tenga en cuenta que debe seguir 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 por el cual se resuelven los nombres de host dentro de una red. En otras palabras, le dice al resolutor de nombres qué servicios utilizar y en qué orden.

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

order bind,hosts

Lo que indica que el resolutor primero debe buscar 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 de 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 Completamente Calificado (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 múltiples NIC, 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ás varios archivos de texto sin formato nombrados.

ifcfg-name

Donde name es el nombre de la NIC como se muestra en ip link show:

Check Network Link Status

Por ejemplo:

Network Files

Salvo para la interfaz loopback, puedes esperar una configuración similar para tus NIC. Ten en cuenta que algunas variables, si se establecen, anularán las presentes en /etc/sysconfig/network para esta interfaz en particular. Cada línea está comentada para aclaración en este artículo pero en el archivo real debes evitar 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 Hostnames

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

Para mostrar el nombre de host actual, escribe:

# hostnamectl status
Check System Hostname

Para cambiar el nombre de host, utiliza

# hostnamectl set-hostname [new hostname]

Por ejemplo,

# hostnamectl set-hostname cinderella

Para que los cambios surtan efecto, deberás reiniciar el demonio hostnamed (de esta manera no tendrás que cerrar sesión y volver a iniciarla para aplicar el cambio):

# systemctl restart systemd-hostnamed
Set System Hostname

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, ejecuta:

# nmcli general hostname

y para cambiarlo:

# nmcli general hostname [new hostname]

Por ejemplo,

# nmcli general hostname rhel7
Set Hostname Using nmcli Command

Inicio de Servicios de Red al Iniciar

Para resumir, veamos cómo podemos asegurar que los servicios de red se inicien automáticamente al arrancar. En términos simples, esto se logra creando enlaces simbólicos a ciertos archivos especificados en la sección [Install] 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 implica eliminar los enlaces simbólicos:

# systemctl disable firewalld
Enable Service at System Boot

Conclusión

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

No dudes en hacernos saber tu opinión sobre este artículo utilizando el formulario de comentarios a continuación. También son bienvenidas las preguntas. ¡Esperamos saber de ti!

Source:
https://www.tecmint.com/rhcsa-series-secure-ssh-set-hostname-enable-network-services-in-rhel-7/