Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual Funcionamiento SSH
Manual Funcionamiento SSH
Un cliente de SSH es
utilizado, generalmente, para establecer conexiones a un servidor sshd que acepta
conexiones remotas. Ambos se encuentran comúnmente en los sistemas
operativos más modernos, incluyendo Mac, Linux, Solaris y OpenVMS.
El soporte para windows de su versión Servidor se espera sea liberada este año
de manera oficial mientras que a nivel de clientes ofrece una gran variedad de
opciones destacando a PuTTY sobre los demás.
OpenSSH
OpenSSH (Open Secure Shell) es un conjunto de aplicaciones que permiten
realizar comunicaciones cifradas a través de una red, usando el protocolo SSH.
Fue creado como una alternativa libre y abierta al protocolo SSH, es el más usado
bajo Linux y será el que utilizaremos a los largo de las entradas.
1
Instalar Secure Shell SSH
En casi todas las distribuciones su versión cliente viene preinstalada mientras que
su versión server está disponible por repositorio su instalación debería ser muy
sencilla.
curl localhost:22
[color=#696969]
Conectándonos al Servidor
ssh usuario@direcciondelhost
En caso de conectarnos internamente sería:
ssh usuario@localhost
man ssh
Como vemos es una herramienta extensa pero muy completa que merece más
entradas para poder abarcar sus funciones necesarias para cualquier Sysadmin
de nivel intermedio o Profesional.
2
Securizar servidor SSH
Modificar sshd_config
Modificar Puerto 22
Es esencial cambiar el puerto por defecto a uno aleatorio muchos scripts están
configurados a atacar este puerto, lo recomendable es cambiarlo en el rango de
1000 a 23000 procurando que el puerto no este usado por otro servicio.
Tampoco debemos usar puertos como el 2222, 8022 o 1022 son igual de comunes
que el 22 y muchos scripts están configurados para atacarlos.
port 2345
Protocol 2
De esta forma evitamos ciertos scripts que se aprovechan de ese tiempo. El valor
típico en términos de seguridad es 30, aunque puede ser incluso menos.
LoginGraceTime 30
Si nos deshabilitamos el root ya tienen una al ser root un usuario común en todos
los sistemas. Adicional a esto, este usuario puede causar estragos al tener todos
los permisos habilitados.
PermitRootLogin no
Podemos controlar que usuario puede hacer login por medio de SSH e incluso
colocar una cláusula para que se conecte solo desde cierta IP. Esto es similar a lo
que ofrece AWS para conectarnos a sus instancias.
AllowUsers fulanito@83.45.258.21
MaxAuthTries 2
Esto puede variar dependiendo del uso que le des al servidor, pero lo ideal es
tenerlo controlado, basta con añadir el total de usuarios permitidos por SSH.
MaxStartups X
SystemD
Upstart/Sysinit
Ante todo asegurarse de tener OpenSSH instalado no hace falta, el servidor solo
el cliente.
Empezamos por Generar una llave del Tipo DSA con una seguridad 1024 bits,
más que suficiente aunque puedes ir más allá y generar una llave del tipo RSA
con un tope de 4096.
Nos pedirá la ubicación donde guardará las llaves por defecto ~/.ssh
Luego preguntará por una frase por ahora no usaremos ninguna y la dejaremos en
blanco y nos dirá que la llave se ha creado y nos refleja.
more id_dsa.pub
ssh-dss
AAAAB3NzaC1kc3MAAACBAN6SEI4Qqzb23pJYRXIAtPmGJHln5hFdthFq43ef+if
R29v2IknXCFwefKK8jorSDiUEY/1F/yp0xao
mjhFQu1jNXOgF0PAZTfivRVFn6Q9FRsyXU9s+fx+xQiW3mf3y4IX654O82SLGl7V
hh5UsvG8r8d8pV6R+L22sV7GkCHPxAAAAFQCyF1Gdh3
Cap4xr/0gFArHmFwAxfQAAAIEAmVYjPYAdQ9DCNWP+J44xDDn+03anWgyoZq
SPPs23djyVQ756U4VitM0GiIQQ89HCdvTFFpSagnfdVpWh4
Hxo4Y5skKihnPMtB+bFNbP/2SmGdPz1AOmb7tvRrTkj5VLtXeDeB3ulowUKarwiB
VVvAvxtxmozoZHOADWqrEPizxIAAACAU2DF1ZGTiJMP
1oXguj+OhVB7mlsVhhkq53OxKKJbZqsl9hkOiSxaLUfQBNu6Ae441ekIObqolWNC
BIvCO3uQYOozyzNGBhqHE7FVq+UGNkee96D2by+2GAQ
S7daieIKNmFer2hO/SBxzepMrWAiIUnUsP5irmYspkjGlQxP+hxw= test@solvetic
ssh-copy-id user@remote-server-ip
ssh user@remote-server-ip \
A partir de ahora las llaves están conectadas y solo necesitar ingresar al host.
Esta vez no pedirá ninguna contraseña y podemos usar scripts sin interacción.
La seguridad de las Llaves SSH se basa en nuestra llave privada que funciona
como una tarjeta de acceso, pero en caso de que alguien robe nuestra llave podrá
acceder a todos los lugares donde tengamos acceso. Pero al generar una
passphrase podemos tener un nivel extra, no solo es necesario la llave si no
introducir nuestra frase.
Esta vez crearemos una llave rsa con mayor seguridad configurando una frase.
# -C Añadir un comentario.
ssh-agent
ssh-add
Ahora podemos conectarnos a cualquier servidor que use nuestra llave sin
necesidad de ingresar nuestra passphrase.e