Fortalecer Secure Shell SSH

Nivel de expertise: Medio

Secure Shell (SSH) es una de las maneras más útiles para conectarse en modo remoto con un servidor de Linux. Con una conexión SSH, usted puede administrar su servidor de manera remota utilizando todo el poder y flexibilidad de la interfaz de la línea de comandos. Como resultado, sin embargo, SSH puede ser vulnerable a ataques de individuos con malas intenciones. Mientras que, de manera predeterminada el protocolo SSH es razonablemente seguro, siempre es posible mejorar la seguridad de su configuración SSH.

iWeb recomienda  el tener un interruptor KVM/IP unido a su servidor antes de modificar su archivo de configuración SSH. Los interruptores KVM/IP pueden ser ordenados de manera gratuita con un aviso de 24 horas de antelación.

Para modificar su configuración SSH, usted deberá editarla como usuario root, ya sea utilizando “su” o “sudo”. Simplemente edite el siguiente archivo, utilizando su editor de texto predilecto:

/etc/ssh/sshd_config

Por favor tenga en cuenta que iWeb no proporciona servicios de seguridad; estas recomendaciones están consideradas como “buenas prácticas” dentro de la industria de las tecnologías de la información, como una guía general, más no pueden ser consideradas para proveer seguridad en un 100%.

En estos comandos, el símbolo “#” es utilizado para marcar como comentario un valor predeterminado. En otras palabras, anteponer la almohadilla (‘#’) al inicio de la línea significa que esa línea de código deberá ser ignorada. Simplemente agregue la nueva línea, aquí mostrada en letras negritas, directamente debajo de la línea original.

Cambiar el puerto predeterminado

De manera predeterminada, SSH utiliza el puerto 22, pero es posible cambiar el número de puerto. Esto hará más difícil el atacar a su servidor utilizando SSH, ya que un atacante debe primero localizar e identificar el puerto. Usted puede escoger cualquier número mayor a 1024 y menor a 65535. (Los puertos del 1 al 1024 están reservados y 65535 es el número de puerto más alto que se puede establecer) Por favor cambie las siguientes líneas:

#Port 22 
Port 5555

Reemplace ‘5555’ con su propio número de puerto. Esta información debe estar disponible solo para su administrador del sistema y el soporte técnico de iWeb.

Promueva la versión más nueva y más segura del protocolo SSH versión 2

Existen dos versiones del protocolo SSH. La versión 2 es la más nueva y ha sido mejorada enormemente para incrementar la seguridad.

#Protocol 2,1
Protocol 2

Al seleccionar solo protocol 2, usted podrá conectarse usando la versión más nueva y más segura del protocolo.

Restringir el acceso a usuarios específicos

Restringir el acceso a una pequeña lista de usuarios le hace mucho más difícil a los hackers el conectarse, ya que primeramente deben descubrir los nombres de usuario antes de intentar conectarse, en lugar de intentar hacerlo con una lista de nombres de usuario comunes.

AllowUsers alice bob charlie

En este caso, los usuarios con nombre alice, bob y charlie serán los únicos que tendrán permitido conectarse. Simplemente reemplácelos con sus propios nombres de usuarios. Tenga en cuenta que Linux es sensible a las letras mayúsculas, así que en este caso alice y Alice serían considerados como dos nombres de usuario diferentes.

Nosotros recomendamos enormemente agregar ‘sshadmin' y 'techiweb', mientras no se agregue 'root'.

Deshabilitar el acceso directo para el usuario root

Mientras que pueda utilizar  "sudo" o "su", no hay necesidad de acceso directo por parte del usuario root. Al deshabilitar el acceso directo como usuario root, les resultará más difícil a los individuos con malas intenciones el conectarse como administrador.

#PermitRootLogin yes
PermitRootLogin no

Al restringir el acceso y deshabilitar al usuario root de manera explícita, solo es posible administrar su servidor si primeramente inicia sesión como otro usuario y luego asume los derechos de administrador. Esto asegura que los individuos con malas intenciones tendrán que comprometer dos cuentas diferentes antes de estar en posibilidad de atacar a su servidor.

Reducir el tiempo de inicio de sesión

De manera predeterminada, SSH permite a un usuario abrir una conexión y mantenerla abierta durante 2 minutos sin tener que iniciar sesión de manera exitosa. Este es un periodo de tiempo muy largo y puede dar la oportunidad a un atacante de ejecutar un gran número de ataques de fuerza bruta en contra de su servidor. Un máximo de 30 segundos es tiempo más que suficiente para que usuarios legítimos inicien sesión.

#LoginGraceTime 2m
LoginGraceTime 30

Después de 30 segundos sin lograr un inicio de sesión exitoso, su servidor cerrará la conexión de forma automática. 

Guardar y reiniciar SSH

Antes de que cualquiera de estas configuraciones pueda ser aplicada, asegúrese de guardar los cambios y luego reiniciar el servicio SSH. Usted puede reiniciar SSH ejecutando el siguiente comando:

/etc/init.d/sshd restart

Después de reiniciar SSH, se recomienda enormemente que intente abrir una segunda conexión simultánea antes de desconectarse. Esto le permitirá probar si la nueva conexión funciona adecuadamente y revertir cualquier cambio en caso de ser necesario.

Otras configuraciones de seguridad

Estos cambios no son realizados en el archivo de configuración SSH, pero pueden mejorar significativamente la seguridad de su instalación SSH.

Promover contraseñas fuertes utilizando PAM

El Pluggable authentication module, o PAM (por sus siglas en inglés) cuenta con herramientas para promover el uso de contraseñas fuertes. Una contraseña fuerte es aquella que no puede ser adivinada fácilmente y la cual contiene una mezcla de letras y números.

En Debian o Ubuntu, abra el siguiente archivo en su editor de textos predilecto:

/etc/pam.d/common-password

En CentOS, Fedora, u otras distribuciones basadas en RedHat, abra este archivo:

/etc/pam.d/system-auth

En el archivo que abrió, agregue esta línea:

password requisite pam_cracklib.so retry=3 minlen=10 difok=3 dcredit=-1 ucredit=-1 lcredit=-1

Después de habilitar estos cambios, los usuarios contarán con tres oportunidades para intentar iniciar sesión de manera correcta, después de las cuales serán desconectados y regresados a su línea de comandos normal. Además, las contraseñas tendrán una longitud mínima de 10 caracteres. Las contraseñas también deberán tener tres caracteres de diferencia con la contraseña previa, deberán de tener un número, una letra mayúscula y una letra minúscula.

Usted puede cambiar esta configuración en cualquier momento, por ejemplo, requerir 12 caracteres en lugar de 10, o promover el uso de un mínimo de dígitos diferente.

¿Tiene más preguntas? Enviar una solicitud

0 Comentarios

El artículo está cerrado para comentarios.
Tecnología de Zendesk