b4rt
Configurando el servidor SSH (ssh-parte 3)
- marzo 13, 2019
- , 8:52 am
- , Hacking, Linux, Servidores
Como habrás notado, ssh se puede utilizar tanto como cliente y servidor, primero vamos a configuar el servidor.
Para esto, vamos a modificar el achivo sshd_config, normalmente se encuentra en /etc/ssh/sshd_config
root@b4rt$ vim /etc/ssh/sshd_config

Al abrir el fichero, notamos una inmensa cantidad de lineas, llenas de parametros, , cada uno con opciones.
las lineas que tengan el simbolo "#", son comentarios, así que, como en cualquier script, debemos descomentar las lineas que querramos usar.
SSH por defecto, va a tener varias opciones activadas, asi que debemos tener cuidado de nunca dejar este achivo con las configuraciones por defecto.
Bien, manos a la obra.
Port
SSH por defecto usa el puerto 22, pero podemos usar cualquier puerto disponible del servidor,
Recomendacion: Utilizar algun puerto no conocido, pues la mayoría de ataques autimatizados, toman el puerto 22 como punto de partida.
PubkeyAuthentication yes AdressFamily
Podemos seleccionar entre: Any, inet (IPv4), inet6 (IPv6).
Recomendación: En la mayorìa de configuraciones que hagamos, procuremos ser restrictivos, al mayor nivel que podamos. Por ejemplo, si no está en tus planes utilizar IPv6, sólo debemos permitir IPv4.
AddressFamily inet4 UsePrivilegeSeparation
Al momento de iniciar una sesi’on, se inicia un hilo en paralelo, que divide los procesos del servidor, limitando ciertos comandos de root, es muy util al momento de evitar una escalada de privilegios.
UsePrivilegeSeparation yes
HostKey
La ruta en donde se almacena la clave privada de nuestro servidor
HostKey [ruta]
PermitRootLogin
Es vital prohibir el acceso al servidor, utilizando root.
PermitRootLogin no PubkeyAuthentication
Para permitir la autenticación de usuarios mediante llaves.
PubkeyAuthentication yes AuthorizedKeysFile
La ruta en la que se almacenan las llaves públicas de los usuarios a quienes vamos a permitirles establecer alguna conexión.
AuthorizedKeysFile[ruta]
PasswordAuthentication
Como usaremos llaves para conectarnos, esta opción debe estar denegada
PasswordAuthenticationno
AuthorizedKeysFile
La ruta en la que se almacenan las llaves públicas de los usuarios a quienes vamos a permitirles establecer alguna conexión.
AuthorizedKeysFile[ruta]
AllowUsers
Aquí debemos especificar qué usuarios son los autorizados a conectarse.
AllowUsers TuUsuario PermitEmptyPasswords
No debemos permitir passwords vacias.
PermitEmptyPasswords no AllowUsers
Aquí debemos especificar qué usuarios son los autorizados a conectarse.
AllowUsers TuUsuario AllowGroups
Aquí agregamos los grupos.
AllowGroups TuGrupo UsePAM
Como usaremos llaves publicas y privadas, esta opcion debería esta en NO
UsePAM no X11Forwarding
Si estamos en un VPS, no necesitamos un módulo para ejecutar aplicaciones en modo grafico.
X11Forwarding no ListenAddress
Si queremos especificar desde que IP permitiremos la conexión.
ListenAddress [IP] Banner
Un texto de bienvenida al momento de conectarnos.
Banner [ruta] KexAlgorithms
Los algoritmos que utilizaran las llaves publicas y privadas.
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256 inet4 Ciphers
Los algoritmos de cirado para nuestra conexión.
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctAddressFamily inet4 MaxAuthTries
El máximo de intentos permitidos por login.
MaxAuthTries 3