
Quiero instalar el servidor OpenSSH en Ubuntu. ¿Cómo hacerlo?
Necesito hacer lo siguiente:
Configurar el servidor OpenSSH
Configurar el par de claves pública-privada ssh para el usuario
Deshabilitar el inicio de sesión con contraseña
Habilitar usuario root
Configurar el par de claves pública-privada ssh para el usuario root
Configurar contraseña
Respuesta1
Vaya a la terminal y escriba:
sudo su
aptitude install openssh-server openssh-client
Pruebe la instalación
ps -A | grep sshd
Si el resultado es algo como esto:
<some number> ? 00:00:00 sshd
Entonces el demonio ssh se está ejecutando.
Nuevamente escriba terminal;
ss -lnp | grep sshd
Si el resultado es algo como esto:
0 128 :::22 :::* users:(("sshd",16893,4))
0 128 *:22 *:* users:(("sshd",16893,3))
Entonces significa que el demonio ssh está escuchando conexiones entrantes.
Ahora editamos el archivo de configuración. Primero hacemos una copia de seguridad del archivo original.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
Ahora abrimos el archivo de configuración para editarlo.
sudo gedit /etc/ssh/sshd_config
Las contraseñas débiles son fáciles de adivinar. La mejor práctica es utilizar claves SSH en lugar de contraseña.
Entonces deshabilitamos la autenticación de contraseña por completo.
ir a la linea
#PasswordAuthentication yes
y reemplazarlo con
PasswordAuthentication no
Habilitar el reenvío brinda más opciones a los atacantes que ya han adivinado las contraseñas.
Entonces lo desactivamos. Nos da un poco de seguridad
ir a las lineas
AllowTcpForwarding yes
X11Forwarding yes
y reemplazarlos con
AllowTcpForwarding no
X11Forwarding no
Podemos permitir explícitamente a ciertos usuarios y negarles el inicio de sesión a ciertos usuarios.
Para eso tenemos que poner las siguientes líneas al final del archivo de configuración.
AllowUsers Fred Wilma
DenyUsers Dino Pebbles
Para un rendimiento óptimo de la computadora portátil, permitimos dos conexiones pendientes. Entre la tercera y la décima conexión, el sistema comenzará a eliminar conexiones aleatoriamente desde el 30% hasta el 100% en la décima conexión simultánea. Esto se puede hacer mediante la siguiente línea.
MaxStartups 2:30:10
Para registrar más errores y otra información útil modificamos la línea
LogLevel INFO
en LogLevel DETALLE
Para ahuyentar a los atacantes novatos podemos mostrar un banner. Eliminamos la etiqueta hash del principio de la línea.
#Banner /etc/issue.net
para hacerlo
Banner /etc/issue.net
Luego vamos a la terminal y escribimos:
sudo gedit /etc/issue.net
***************************************************************************
NOTICE TO USERS
This computer system is the private property of its owner, whether
individual, corporate or government. It is for authorized use only.
Users (authorized or unauthorized) have no explicit or implicit
expectation of privacy.
Any or all uses of this system and all files on this system may be
intercepted, monitored, recorded, copied, audited, inspected, and
disclosed to your employer, to authorized site, government, and law
enforcement personnel, as well as authorized officials of government
agencies, both domestic and foreign.
By using this system, the user consents to such interception, monitoring,
recording, copying, auditing, inspection, and disclosure at the
discretion of such personnel or officials. Unauthorized or improper use
of this system may result in civil and criminal penalties and
administrative or disciplinary action, as appropriate. By continuing to
use this system you indicate your awareness of and consent to these terms
and conditions of use. LOG OFF IMMEDIATELY if you do not agree to the
conditions stated in this warning.
****************************************************************************
Ahora guardamos y cerramos el archivo de configuración y reiniciamos ssh escribiendo en la terminal:
systemctl restart ssh
A continuación configuramos las claves SSH. Hay dos pares de claves SSH públicas y privadas. Las claves públicas están presentes en los servidores y las claves privadas están presentes en los individuos. Si alguien puede hacer coincidir su clave privada con la pública, solo él/ella puede iniciar sesión. Además, opcionalmente, las claves privadas se pueden proteger mediante una frase de contraseña. Además, cuando las claves se generan mediante cifrado de 4096 bits, es casi imposible romperlas por fuerza bruta.
Paso uno: cree el par de claves RSA:
Escriba la terminal
ssh-keygen -t rsa -b 4096
Aquí utilizamos cifrado de 64 bits para mayor seguridad.
Paso dos: guarde las claves y la frase de contraseña:
Siga las instrucciones en pantalla, proporcione la ubicación deseada para almacenar las claves, se recomienda aceptar la predeterminada, opte por una frase de contraseña, proporcione una frase de contraseña segura y recuérdela.
La pantalla es algo como esto:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
| .oo. |
| . o.E |
| + . o |
| . = = . |
| = S = . |
| o + = + |
| . o + o . |
| . o |
| |
+-----------------+
Paso tres: copie la clave pública:
Escriba la terminal
ssh-copy-id [email protected]
Aquí 123.45.56.78 es la dirección IP del servidor
En el caso de localhost es
ssh-copy-id user@localmachinename
La pantalla es algo como esto.
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.
[email protected]'s password:
Now try logging into the machine, with "ssh '[email protected]'", and check in:
~/.ssh/authorized_keys
para asegurarnos de que no hayamos agregado claves adicionales que no esperaba.
Ahora nuestra instalación está completa. Para iniciar sesión debemos escribir en la terminal:
ssh username@servername
Luego, cuando se nos solicite una frase de contraseña, debemos proporcionarla.
Ahora debemos habilitar el inicio de sesión raíz del servidor opessh. Primero tenemos que habilitar la contraseña sudo, ya que está deshabilitada en Ubuntu de forma predeterminada.
Para eso escribimos en la terminal lo siguiente, la pantalla será algo como esta:
sudo passwd
[sudo] password for [username]: [Type your user password and press return]
Type new UNIX password: [Type the root password you want]
Retype new UNIX password: [Retype the root password you chosen before]
passwd: password updated successfully
Ahora tenemos que editar el archivo /etc/sudoers.
Aquí usamos el editor llamado visudo.
Es porque visudo tiene el único propósito de editar el archivo sudoes.
En Ubuntu, de forma predeterminada, los archivos de configuración se abren con el nano editor.
Para cambiarlo escriba en la terminal:
sudo update-alternatives --config editor
La siguiente pantalla aparecerá:
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Escribe 3 y presiona enter
Luego escribe:
sudo visudo
Vaya a la línea que dice
Defaults env_reset
Presione enter
Arriba se crea una nueva línea
Tipo:
rootpw predeterminado
use la barra espaciadora, no TAB
Presione Esc --> :x --> Entrar
En tipo de terminal:
gedit /etc/ssh/sshd_config
Pasar a la línea:
PermitRootLogin password-prohibited
y cambiarlo a
PermitRootLogin yes
Siguiente paso a la línea:
PasswordAuthentication no
y cambiarlo a
PasswordAuthentication yes
Guardar y cerrar
Luego reinicie SSH
service ssh restart
Ahora es el momento de generar nuevamente el par de claves pública-privada ssh para el usuario raíz.
Escriba la terminal
ssh-keygen -t rsa -b 4096
Paso dos: guarde las claves y la frase de contraseña:
Siga las instrucciones en pantalla, proporcione la ubicación deseada para el almacenamiento de claves, NO acepte la contraseña predeterminada ya que esta vez debe crear un nuevo par, la predeterminada ya se ha creado, opte por una frase de contraseña, proporcione una frase de contraseña segura, recuérdela.
La pantalla es algo como esto:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa): u-root-id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/demo/.ssh/u-root-id_rsa.
Your public key has been saved in /home/demo/.ssh/u-root-id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
| .oo. |
| . o.E |
| + . o |
| . = = . |
| = S = . |
| o + = + |
| . o + o . |
| . o |
| |
+-----------------+
Luego escribe en la terminal:
ssh-copy-id -i u-root-id_rsa.pub root@localmachinename
La pantalla de salida puede mostrar:
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.
[email protected]'s password:
Ahora intenta iniciar sesión en la máquina, con "ssh '[correo electrónico protegido]'", y regístrese:
~/.ssh/authorized_keys
para asegurarnos de que no hayamos agregado claves adicionales que no esperaba.
Ahora hemos otorgado acceso de clave privada a root para iniciar sesión
Para probar escriba:
ssh root@localmachine
De nuevo en tipo de terminal:
gedit /etc/ssh/sshd_config
pasar a la línea:
PasswordAuthentication yes
y cambiarlo a
PasswordAuthentication no
Guardar y cerrar
Luego reinicie SSH
service ssh restart
Le pedirá una frase de contraseña. La frase de contraseña sigue siendo la misma. Darle.
Ahora el root podrá iniciar sesión correctamente.
Ahora para mayor seguridad tenemos que agregar firewall.
Tipo:
apt install ufw
ahora empiezalo
enable ufw
Obtenga una lista de los procesos actualmente en ejecución
ufw app list
OpenSSH aparecerá allí.
ALow it through firewall
ufw allow OpenSSH
Reiniciar el cortafuegos
systemctl restart ufw
Nuestra instalación está completa.