Accesos, cuentas shell y configuración del servidor SSH

[Extraido de mi libro] En este artículo vamos a ver como gestionar un servidor de forma segura si almacena muchas cuentas con acceso a shell, gestión de rotación de contraseñas, privilegios de super usuario (root) y configurar un poco más seguro nuestro servidor SSH.

Si tenemos un servidor en el que hay muchos usuarios con cuenta shell es importante tener una política estricta de cambio de contraseñas, por ejemplo, cambio obligado de contraseña cada mes o dos meses y además evitar que se reutilicen contraseñas antiguas.

Forzar cambio de contraseñas cada 60 días al usuario admin.:
[root@amanita ~]# chage -M 60 admin

Este comando hace el siguiente cambio en el archivo /etc/shadow:
admin:$1$GTVraqdL$NLbybWTOVuLzxiTm1WWm9.:13501:0:60:7:::

Para evitar que se utilicen, al menos las seis últimas contraseñas:
[root@amanita ~]# vi /etc/pam.d/system-auth
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=6

También es recomendable controlar los usuarios que pueden obtener privilegios de root, es decir, que pueden hacer “su – root”. En sistemas BSD como FreeBSD esta característica está definida por defecto, es decir, sólo ciertos usuarios puede hacerse root y esos usuarios son los que pertenecen al grupo “wheel”. Como se hace esto en Linux? Pasen y vean. Editamos el archivo /etc/pam.d/su y descomentamos la linea que se cita a continuación, no confundir con la linea “auth sufficient […]” que permitiríamos hacer root a cualquier usuario sin necesidad de escribir la contraseña:
[root@amanita ~]# vi /etc/pam.d/su
auth            required        pam_wheel.so use_uid

Ahora solo los usuarios que pertenezcan al grupo “wheel” podrán pasar a ser root. Para añadir a un usuario en el grupo “Wheel” podemos usar el siguiente comando, por ejemplo para el usuario admin.:
[root@amanita ~]# usermod -G wheel admin

El comando anterior lo que hace es modificar el archivo /etc/group de la siguiente forma:
wheel:x:10:root,admin

SSH es el protocolo que ha venido sustituyendo a Telnet, protocolo de acceso shell remoto a una máquina. A diferencia de Telnet el SSH usa un canal segúro, cifrado. El acceso shell a nuestro servidor es muy importante tanto para la seguridad de nuestra máquina como para nosotros. Por ello debemos configurar nuestro servidor SSH de la forma más segura posible dentro de los límites de la comodidad. Para ello vamos a crear un usuario que será el encargado de acceder a la máquina por ssh y posteriormente nos haremos root (su -) si necesitamos hacer tareas como root.

[root@amanita ~]# adduser admin; passwd admin
Changing password for user admin.
New UNIX password: C0ntraseÑafuert3..*
Retype new UNIX password:
C0ntraseÑafuert3..*
passwd: all authentication tokens updated successfully.

Ahora vamos a configurar el servidor ssh para evitar que se pueda acceder como root y para solamente permitir el acceso ssh al usuario admin:
[root@amanita ~]# vi /etc/ssh/sshd_config
PermitRootLogin no
AllowUsers admin

Otras recomendaciones: Cambiar también el puerto por defecto, directiva “Port”. Si tienes varias IP en el servidor, una de administración y otra de servicio, configura el servidor para que escuche sólo por la IP de administración, directiva “ListenAddress”.

Mostrar un aviso en cada intento de acceso por SSH:
[root@amanita ~]# vi /etc/issue.net
———————————————————————–
Your access time, hostname and IP address has been logged.
The Systems Administrator has been notified.

Su hora de acceso, nombre de máquina e IP está siendo registrada.
El Administrador de Sistemas está siendo notificado.

YOU ARE BEING MONITORED
SESION MONITORIZADA

Nombre de empresa

:: Departamento de Sistemas ::
———————————————————————–

En el archivo de configuración añadimos la línea:
Banner /etc/issue.net

El mensaje anterior aparecerá entre la inserción de usuario y contraseña como aviso.

Recuerda reiniciar el servicio para que estos cambios tengan efecto.

Más cosas con ssh. Si cuando accedes a tu servidor por SSH notas cierta lentitud cuando insertas el usuario y la contraseña es porque no tienes resolución inversa configurada en el DNS de tu red local. Para evitar esta lentitud haz lo siguiente:

1º Backup del archivo de configuración del servidor SSH. Procura hacer esto siempre que modifiques archivos de configuración, así tendrás un repositorio de todos los cambios que has hecho en archivos de configuración, tanto del sistema como de aplicaciones.

[root@amanita ~]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config_DDMMAAAA

2º Editamos el archivo /etc/ssh/sshd_config y localizamos la línea #UseDNS yes y la cambiamos por UseDNS no. Es decir, quitamos el comentario # y ponemos no.

3º Reiniciamos el servidor SSH para que tenga efecto los cambios:

[root@amanita ~]# /etc/init.d/sshd restart
Parando sshd:                                            [  OK  ]
Iniciando sshd:                                          [  OK  ]

A partir de ahora deberemos acceder a nuestro servidor como usuario admin. Y cuando lo necesitemos, haremos su a root.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.