AWS

HVM versus PV

SECURIZAR LA INSTANCIA

En AWS las instancias de ubuntu se crean con un usuario ubuntu por defecto. Para hacer la máquina algo más segura, vamos a crear un usuario nuevo y eliminar el usuario por defecto. Para ello nos conectamos a la nueva instancia por SSH y vamos desarrollando los siguientes pasos.

Crear nuevo usuario

Inicialmente creamos el nuevo usuario con el comando adduser (al hacerlo se nos preguntaran algunas opciones). Con el usuario creado, lo añadiremos al grupo de usuarios ‘sudo’ que será lo que permitirá que dicho usuario pueda hacer sudo (básicamente tener un rol de administrador o root y hacer determinadas operaciones que solo estos perfiles pueden hacer).

adduser nuevousuario
sudo adduser nuevousuario sudo

Darle acceso remoto (SSH)

De nada nos sirve el nuevo usuario si no puede conectarse via SSH (y ademas con clave, no con contraseña).

Añadir la clave publica al nuevo usuario

Para poder conectarnos remotamente necesitaremos una pareja de clave privada y clave pública. La clave privada es la que nosotros debemos tener (y no deberiamos compartir) mientras que la clave publica debe estar en el servidor; en una ubicación determinada que tenemos que crear de la siguiente forma:

sudo su <nuevousuario>
sudo mkdir /home/<nuevousuario>/.ssh
sudo chmod 700 /home/<nuevousuario>/.ssh

Poner la clave pública básicamente podemos hacerlo de dos maneras, dependiendo de si ya tenemos la clave pública en la máquina remota o no:

Opcion 1 - Ya tenemos la clave pública en otro usuario

Entonces copiaremos el fichero con la clave del otro usuario (llamemosle ) a la carpeta del nuevo usuario, cambiaremos el propietario del fichero (usuario y grupo) y revisaremos los permisos.

sudo cp /home/<viejousuario>/.ssh/authorized_keys /home/<nuevousuario>/.ssh/authorized_keys
sudo chown <nuevousuario>:<nuevousuario> /home/<nuevousuario>/.ssh/authorized_keys
sudo chmod 600 /home/<nuevousuario>/.ssh/authorized_keys

El último comando, que cambia el permiso a authorized_keys, probablemente no haga falta porque el fichero copiado ya tenga esos permisos, pero en cualquier caso hay que comprobarlo (por ejemplo con li -l donde la linea correspondiente a authorized_keys deberia empezar con -rw——- y que indica que solo el usuario propietario del fichero puede leerlo o escribirlo)

Opcion 2 - Generamos una clave privada nueva

Crear el fichero a mano, copiarle la clave publica, guardarlo y dar permisos

sudo ....
sudo nano /home/<nuevousuario>/.ssh/authorized_keys

sudo chmod 600 /home/<nuevousuario>/.ssh/authorized_keys

Editar sshd_config

sudo nano /etc/ssh/sshd_config

En el fichero hay que buscar la directiva PermitRootLogin y cambiar el valor a no

PermitRootLogin no

Al final del fichero, podemos añadir la directiva de usuarios a los que permitir la conexión remota.

AllowUsers <nuevousuario>
Finalmente, debemos reiniciar el daemon ssh (en sshd, la d significa daemon). Esto no nos va a cerrar la conexión actual.

sudo service ssh restart

Probar nuevo usuario

Borrar viejo usuario