Para mostrar el uso de ssh, tengo dos máquinas virtuales funcionando, la máquina atacante desde la que me voy a conectar vía ssh a la máquina víctima.
En este articulo voy a hablar sobre:
- Cambiar el número de puerto que viene por defecto
- No permitir conexiones remotas como root
- Crear una lista blanca, para solo permitir a ciertos usuarios
- Crear un par de claves para permitir conectar usando solo el nombre de host
- Crear un túnel ssh para conectar desde la máquina atacante a la máquina víctima.
Cambiar el número de puerto por defecto –>
Estoy en la máquina victima y ejecuto:
ifconfig enp0s3
para ver la ip a la que me voy a conectar
muestro archivo /etc/ssh/sshd_config

Por defecto viene comentado el puerto 22, que es el de ssh. descomento puerto 22, puedo cambiar el numero de puerto, por ejemplo poner 2200

Después de hacer estos cambios tengo que reiniciar el servicio ssh
systemctl restart ssh.service
ahora intento conectarme desde la máquina atacante
ssh usuario@192.168.1.2 -p 2200
No me va a dejar. El motivo de que ocurra esto es que en ambos extremos tiene que estar configurado el mismo puerto, por defecto el puerto al que se conecta el protocolo ssh es el 22, pero si hemos decidido cambiarlo por seguridad en un extremos tendremos que configurarlo igual en ambos y cambiar las reglas de conexión en caso de que tengamos un firewall levantado.
No permitir conexiones remotas como root –>
descomentando o diciendo que se podria permitir descomentando el PermitRootLogin
Esta a prohibit-password, podria cambiarlo a yes y reiniciar el servicio.

sudo sytemctl restart ssh.service
Lo dejo como viene por defecto, ya que es altamente recomendado, si permitiera elacceso remoto como root, estaría creando una agujero de seguridad.
Crear una lista blanca, para solo permitir a ciertos usuarios –>
Entro en el archivo /etc/ssh/sshd_config y añado los usuarios a los que voy apermitir acceso, incluyendo la línea AllowUsers [nombre_de_usuario]

Guardamos los cambios y salimos.
Crear un par de claves para permitir conectar usando solo el nombre de host –>
Creo acceso por ssh sin contraseña
creando un par de claves con keygen
ssh-keygen -t ecdsa

cd .ssh
scp -p 22 -r id_ecdsa.pub h4nna@192.168.1.20:/home/usuario/.ssh/authorized_keys
Copiamos la clave pública de una máquina a otra usando el comando scp

Ahora puedo conectarme por ssh sin poner el nombre de usuario, solo poniendo el host al que me quiero conectar

Crear un túnel ssh para conectar desde la máquina atacante a la máquina víctima.–>
con ssh más el paramero -L el múmero de puerto, dos puntos : la direccion ip dos puntos : número de puerto espacio nombre de usuario arroba nombre de host -p puerto, me creo un túnel usando el protocolo ssh
ssh -L 22:192.168.1.2:22 h4nna@192.168.1.20 -p 22

Ahora puedo copiar archivos, directorios incluso discos entre máquinas que pudieran tener diferentes sistemas operativos o que pudieran estar separadas miles de kilómetros, como si estuviera copiando a una carpeta de mi propio sistema. Me copia el archivo clave.txt


voy a copiar otro archivo, el llamado ssh.txt

