Introducción
Linux se considera un sistema seguro, sin embargo es recomendable realizar configuraciones específicas para aumentar el nivel de seguridad de su sistema.
A continuación, se incluyen algunos consejos para proteger Ubuntu.
Esta es una guía para mejorar la seguridad del servidor Ubuntu 20.04 LTS Focal Fossa.
Cree una copia de las claves RSA
Las claves SSH son una implementación de la criptografía de clave pública. Resuelven el problema de los ataques de fuerza bruta a las contraseñas haciéndolas poco prácticas. Las claves SSH proporcionan una forma sencilla y segura de iniciar sesión en su servidor y se recomiendan para todos los usuarios.
Cree una copia de las claves en su computadora, desde la cual se conectará al servidor a través de SSH.
Desde la terminal da el siguiente comando:
ssh-keygen
Debería recibir un mensaje de salida similar al siguiente:
Generating public/private rsa key pair.
Enter file in which to save the key (/tua_home/.ssh/id_rsa):
Presione Entrar para guardar el par de claves en la carpeta.ssh /, o especifique una ruta alternativa.
Si las claves ya se generaron, debería recibir un mensaje de salida similar al siguiente:
/home/tua_home/.ssh/id_rsa already exists.
Overwrite (y/n)?
ATENCIÓN Si opta por sobrescribir la clave del disco, ya no podrá autenticarse con la clave anterior.
Después de eso, debería recibir un mensaje de salida similar al siguiente:
Enter passphrase (empty for no passphrase):
Para mayor seguridad, puede ingresar una frase de contraseña segura, que es muy recomendable. Una frase de contraseña agrega una capa adicional de seguridad para evitar que usuarios no autorizados inicien sesión.
Después de eso, debería recibir un mensaje de salida similar al siguiente:
Your identification has been saved in /tua_home/.ssh/id_rsa.
Your public key has been saved in /tua_home/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:3g8Vbc+Bb0Tb1Txb1Fh8dRQzehOkddxBqwVOdMnYC2g user@host
The key's randomart image is:
+---[RSA 2048]----+
| o+*^^|
| Eo+X=^|
|..=+OB|
| o*=o|
| S.. oo|
|.... |
|. o |
| o |
|. |
+----[SHA256]-----+
Copie la clave pública al servidor Ubuntu
La forma más rápida de copiar su clave pública al host de Ubuntu es usar ssh-copy-id. Si no tiene ssh-copy-id en la computadora cliente, puede usar uno de los dos métodos alternativos que se explican a continuación.
Para usar ssh-copy-id, simplemente especifique el host remoto al que desea conectarse y la cuenta de usuario a la que tiene acceso a través de la contraseña SSH:
ssh-copy-id user@ip_del_server_ubuntu
Puede recibir un mensaje de salida similar al siguiente:
The authenticity of host 'INDIRIZZO_IP (INDIRIZZO_IP)' can't be established.
ECDSA key fingerprint is SHA256:E3NlUzqo/QZm8PF1QD9grtkPm8NIzyp0wHfMZGB/t6M.
Are you sure you want to continue connecting (yes/no)? yes
Significa que su computadora local no reconoce el host remoto. Esto sucederá la primera vez que se conecte a un nuevo host. Escriba "sí" y presione ENTER para continuar.
A continuación, la utilidad escaneará su cuenta local en busca de la clave id_rsa.pub que creamos anteriormente. Cuando encuentre la clave, le pedirá la contraseña de la cuenta del usuario remoto.
Debería recibir un mensaje de salida similar al siguiente:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@INDIRIZZO_IP's password:
Escriba la contraseña y presione ENTER. El contenido de su clave ~ /.ssh /id_rsa.pub se copiará en un archivo en el directorio ~ /.ssh de los authorized_keys cuenta remota con nombre.
Debería recibir un mensaje de salida similar al siguiente:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'user@INDIRIZZO_IP'"
and check to make sure that only the key(s) you wanted were added.
Para obtener más información, consulte el artículo dedicado: Cómo configurar claves SSH en Ubuntu 20.04 LTS
Instale el cortafuegos UFW
UFW (firewall sin complicaciones) es la aplicación predeterminada en Ubuntu para configurar el firewall.
UFW está instalado por defecto en Ubuntu, si por alguna razón fue desinstalado, puedes reinstalarlo con el siguiente comando, desde la terminal:
sudo apt update
sudo apt install ufw
Habilite los puertos necesarios para usar la conexión a través de SSH:
sudo ufw allow ssh
sudo ufw allow http
Habilite el firewall:
sudo ufw enable
Verifique el estado del firewall.
sudo ufw status verbose
Para obtener más información, consulte el artículo dedicado: Cómo configurar UFW Firewall en Ubuntu 20.04 LTS
Configurar el acceso SSH
La mejor manera de proteger SSH es utilizar un inicio de sesión basado en clave pública /privada. (Ver el primer paso de este artículo)
Si necesita usar la autenticación de contraseña, la forma más fácil de asegurar SSH es deshabilitar el acceso de root y cambiar el puerto SSH a otro que no sea el puerto 22 estándar.
Antes de deshabilitar el inicio de sesión de root, cree un nuevo usuario SSH y asegúrese de que el usuario pertenece al grupo sudo.
Crea un nuevo usuario:
adduser nuovoutente
De forma predeterminada, un nuevo usuario está solo en su propio grupo, que se crea cuando se crea la cuenta. Para agregar el usuario a un nuevo grupo, podemos usar el comando usermod:
usermod -aG sudo nuovoutente
La opción -aG se usa para agregar el usuario al grupo declarado antes del nombre de usuario, en este caso el grupo es sudo.
Si cambia el puerto SSH, mantenga el número de puerto por debajo de 1024, ya que estos son puertos privilegiados que solo pueden ser abiertos por root o por procesos que se ejecutan como root.
Si cambia el puerto SSH, abra también el nuevo puerto que eligió en el firewall y cierre el puerto 22.
Desde el terminal, abra el archivo de configuración SSH:
sudo vi /etc/ssh/sshd_config
Agregue o edite las siguientes líneas:
Port <INSERISCI LA PORTA CHE PREFERISCI>
Protocol 2
PermitRootLogin no
DebianBanner no
Guarde y cierre el archivo.
Reinicie el servicio SSH:
sudo service ssh restart
Instalar Fail2ban
Fail2ban extiende la supervisión de registros a otros servicios, incluidos SSH, Apache, Courier, FTP y más. Fail2ban escanea los archivos de registro y bloquea automáticamente las direcciones IP que realizan operaciones inesperadas, como: demasiados errores de contraseña.
Para obtener más información, consulte el artículo dedicado: Cómo configurar Fail2ban en Ubuntu 20.04 LTS.
La configuración de Ubuntu 20.04 LTS Focal Fossa está lista.