¿Cuáles son las mejores prácticas para acceder a mi instancia EC2 de Linux de forma segura mediante SSH y, al mismo tiempo, evitar el acceso no autorizado?
Quiero acceder a mi instancia de Amazon Elastic Compute Cloud (Amazon EC2) mediante SSH. ¿Cuáles son las mejores prácticas para mantener mi instancia segura y evitar el acceso no autorizado al usar SSH?
Resolución
Realice las siguientes prácticas recomendadas para proteger sus instancias cuando utilice SSH. Para los pasos que impliquen comandos, asegúrese de ejecutar los comandos con privilegios de raíz. Ejecute el comando sudo -i para convertirse en el usuario raíz.
Utilice el Administrador de sesiones de AWS Systems Manager para obtener información para acceder mediante shell a las instancias de EC2
El administrador de sesiones permite a los usuarios de AWS Identity and Access Management (IAM) iniciar sesión en sus instancias con funciones de cifrado y registro. El tráfico de Systems Manager pasa por el punto de conexión de Systems Manager, lo que permite un acceso fácil y seguro a las instancias privadas sin abrir los puertos de entrada. Para obtener más información sobre el administrador de sesiones, consulte AWS Systems Manager Session Manager for shell access to EC2 instances.
Utilice EC2 Instance Connect para acceder mediante shell a las instancias de EC2
Amazon EC2 Instance Connect le permite conectarse a sus instancias de Linux mediante Secure Shell (SSH) a través de roles y políticas de IAM. Para obtener más información sobre EC2 Instance Connect, consulte Conectarse a la instancia de Linux con EC2 Instance Connect.
Nota: Las siguientes distribuciones admiten EC2 Instance Connect:
- Amazon Linux 2 (cualquier versión)
- Ubuntu 16.04 o posterior
No permita que el usuario raíz utilice un terminal SSH
De forma predeterminada, las AMI proporcionadas por Amazon y la mayoría de los proveedores de AWS Marketplace no permiten que el usuario raíz inicie sesión desde un terminal SSH. Si su instancia permite que el usuario raíz inicie sesión, siga los pasos que se indican a continuación para denegar el acceso.
1. Añada un***** (asterisco) al campo de contraseña del archivo /etc/shadow para invalidar la contraseña del usuario raíz:
Edite el archivo con vipw -s.
La primera línea suele ser la línea del usuario raíz. Cambie la línea del usuario raíz de la siguiente manera:
root:*LOCK*:14600::::::
2. Edite el archivo de configuración del daemon SSH mediante un editor como el editor vi:
vi /etc/ssh/sshd_config
Asegúrese de que la siguiente línea esté presente y sin comentarios. Esta línea deniega el permiso de inicio de sesión al usuario raíz.
PermitRootLogin no
3. Reinicie el daemon SSH:
systemctl restart sshd
Para obtener información sobre otros parámetros de la opción PermitRootLogin, consulte sshd_config en OpenBSD.
Asegúrese de que todos los usuarios inicien sesión con un par de claves SSH y, a continuación, desactive la autenticación con contraseña
La configuración predeterminada para las AMI proporcionadas por Amazon es iniciar sesión con un par de claves SSH con la autenticación por contraseña desactivada. Esto se debe a que el uso de una contraseña expone la instancia a riesgos de seguridad, como los ataques de fuerza bruta. Las contraseñas débiles se pueden descifrar para acceder.
Por lo tanto, si ha modificado su instancia para usar una contraseña, vuelva a la configuración predeterminada con los siguientes comandos:
1. Utilice el editor vi, o el editor de su elección, para acceder al archivo sshd_config:
vi /etc/ssh/sshd_config
2. Compruebe que la siguiente línea esté presente y sin comentarios:
PasswordAuthentication no
3. Reinicie el daemon SSH:
systemctl restart sshd
Nota: Asegúrese de tener instalados los pares de claves antes de desactivar la autenticación con contraseña. Esto evita que pierda el acceso SSH a la instancia de EC2. Cada usuario tiene que insertar sus claves públicas en la ruta ~/.ssh/authorized_keys. Para obtener más información sobre los inicios de sesión basados en claves, consulte Pares de claves de Amazon EC2 e instancias de Linux.
Restrinja el acceso desde fuentes desconocidas
Para las instancias públicas, dejar el puerto SSH abierto y sin restricciones podría permitir intrusiones si existen errores de configuración o si hay vulnerabilidades de software inesperadas. Para ayudar a prevenir las intrusiones, siga estas prácticas recomendadas:
1. Mantenga el daemon SSH actualizado a la última versión suministrada por el responsable de la distribución de Linux. A menudo, el daemon SSH recibe actualizaciones de backport de versiones posteriores del proveedor original. Para obtener más información sobre el backport, consulte Backporting Security Fixes en el sitio web del Portal de clientes de Red Hat.
yum -y install openssh-server # for Amazon Linux, RHEL, Centos apt update && apt install openssh-server # For Ubuntu, Debian
2. Restrinja su grupo de seguridad para permitir las conexiones entrantes al puerto 22 únicamente desde IP de confianza, como las IP de redes corporativas. Para obtener más información, consulte Autorizar tráfico entrante para las instancias de Linux.
3. Algunos intrusos podrían intentar adivinar nombres de usuario y contraseñas, o podrían intentar desbordar su daemon SSH si el puerto 22 es accesible para todos. La utilidad fail2ban supervisa los archivos de registro para detectar intentos constantes de iniciar sesión en la instancia y, a continuación, bloquea los intentos después de algunos intentos fallidos. Para instalar fail2ban**:**
Ubuntu:
apt -y install fail2ban
Amazon Linux, CentOS, RHEL:
Ejecute los siguientes comandos:
yum -y install fail2ban systemctl enable fail2ban systemctl start fail2ban
Para obtener más información sobre cómo configurar fail2ban, consulte Linux security: Protect your systems with fail2ban en el sitio web de Red Hat.
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 10 meses