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
PasswordAuthentication
no
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