Este post se adapta a cualquier sistema operativo, aunque algunos comandos pueden variar.
Acceso al servidor (Las cosas por defecto, caca)
Usuarios
Cambiamos la contraseña de root:
passwd
Y las de cualquier usuario que nos hayan dado por defecto o, directamente, los eliminamos y creamos uno nuevo que será con el que trabajemos:
userdel usuariopordefecto
useradd miusuario
passwd miusuario
Posteriormente vamos a deshabilitar el acceso como root por ssh al servidor y accederemos como miusuario, así que, para evitarnos trabajo, vamos a dejar que miusuario tenga privilegios para hacer lo que le plazca:
nano /etc/sudoers
Buscamos root ALL=(ALL:ALL) ALL y añadimos debajo:
miusuario ALL=(ALL:ALL) ALL
Credenciales
Por muy larga y compleja que sea nuestra contraseña, siempre es más fácil, rápido y seguro tener un par de claves para acceder, así que vamos a generarlas. Suponiendo que tenemos Linux como sistema operativo en nuestro PC, el procedimiento es el siguiente:
Una vez generadas, tendremos un fichero con la clave privada, por defecto ~/.ssh/id_rsa y otro con la clave pública, que por defecto es ~/.ssh/id_rsa.pub.
Pasamos la clave pública al servidor:
En el caso de estar en Windows, podemos utilizar PuTTYgen, que nos creará una pareja de claves, la privada nos la quedamos nosotros y la pública la pasamos al servidor copiándola en el fichero /home/miusuario/.ssh/authorized_keys.
ssh-keygen
Una vez generadas, tendremos un fichero con la clave privada, por defecto ~/.ssh/id_rsa y otro con la clave pública, que por defecto es ~/.ssh/id_rsa.pub.
Pasamos la clave pública al servidor:
ssh-copy-id miusuario@miserver
En el caso de estar en Windows, podemos utilizar PuTTYgen, que nos creará una pareja de claves, la privada nos la quedamos nosotros y la pública la pasamos al servidor copiándola en el fichero /home/miusuario/.ssh/authorized_keys.
SSH
Vamos a:
- Cambiar el puerto de conexión del 22 a uno cualquiera no utilizado(Por ejemplo: 597).
- Deshabilitar el acceso root.
- Deshabilitar el acceso por contraseñas.
nano /etc/ssh/sshd_config
Port 597 PermitRootLogin no PasswordAuthentication no
Reiniciamos el servicio:
systemctl restart sshd
Ahora, antes de nada, es importante comprobar que todo funciona como debiera para no llevarnos sustos. Intentamos conectarnos al servidor iniciando otra conexión (SIN CERRAR la actual) y comprobamos que todo vaya bien. Qué tiene que pasar:
- No nos dejará conectarnos por el puerto 22.
- Se establece la conexión por el puerto 597.
- Una vez introducido el usuario, entramos directamente sin necesidad de introducir contraseña.
- Al mover nuestra clave privada de lugar e intentar conectarnos, no nos deja.
Firewall
En este apartado hay varias alternativas que se pueden tomar, pero en mi caso recomiendo utilizar APF(Advanced Policy Firewall) ya que tiene una enorme cantidad de opciones que puede que lleguemos a utilizar algún día.
1. Instalamos APF:
cd /usr/local/src
wget http://www.rfxn.com/downloads/apf-current.tar.gz
tar -xzvf apf-current.tar.gz
cd apf-*
./install.sh
2. Una vez la instalación se haya completado, tenemos que editar el fichero de configuración de APF para abrir los puertos que necesitamos (pongamos que necesitamos abrir, además del 597 para ssh, el 80 para una web):
nano /etc/apf/conf.apf
DEVEL_MODE="0" IG_TCP_CPORTS="80,597"
3. Iniciamos el firewall:
apf -s
Además de esto, APF cuenta también con unos ficheros en los que podemos añadir IPs o rangos de IPs denegadas/permitidas. Estos ficheros son /etc/apf/allow_hosts.rules y /etc/apf/deny_hosts.rules.
No hay comentarios:
Publicar un comentario