Como deshabilitar la autenticacion de contrasena y acceso root por SSH, y como establecer tuneles SSH

Deshabilitar la autenticación de contraseña y acceso root por SSH

  1. Inicie sesión en su servidor a través de SSH como usuario root.
  2. Abra el archivo de configuración de SSH con un editor de texto. Utilizaremos nano en este ejemplo:
    • nano /etc/ssh/sshd_config
  3. Busque la línea que contiene PasswordAuthentication y cambie su valor a no. Si la línea está comentada (comienza con un #), elimine el # para descomentarla.De la misma manera, busque la línea que contiene PermitRootLogin y cambie su valor a no.

Puede utilizar sed para hacer modificaciones anteriores de la siguiente manera:

sed -i ‘s/#PasswordAuthentication yes/PasswordAuthentication no/g’ /etc/ssh/sshd_config
sed -i ‘s/#PermitRootLogin yes/PermitRootLogin no/g’ /etc/ssh/sshd_config

4. Guarde y cierre el archivo.

5. Reiniciar el servicio SSH para que los cambios surtan efecto:

service ssh restart

Para verificar que todo está bien, intente iniciar sesión con una contraseña o como root. No debería ser posible.

Copiando la clave pública del cliente al servidor

Existen dos métodos principales para copiar la clave pública del cliente al servidor: utilizando haciendo una copia de la clave pública del cliente al servidor para después meter la clave dentro del authorization ssh cat y ssh-copy-id.

Método 1: Usando cat y SSH

En el cliente, use el siguiente comando para copiar la clave pública al servidor (reemplace user y host con su nombre de usuario y dirección del servidor respectivamente):

cat ~/.ssh/id_rsa.pub | ssh user@host «mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys»

Este comando hace lo siguiente:

  • cat ~/.ssh/id_rsa.pub: lee el contenido de la clave pública del cliente.
  • El operador | pasa la salida del comando anterior como entrada al siguiente comando.
  • ssh user@host: inicia una sesión SSH en el servidor.
  • "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys": en el servidor, este comando crea el directorio ~/.ssh si no existe y luego agrega la clave pública a ~/.ssh/authorized_keys.

Método 2: Usando ssh-copy-ID

En el cliente, use el siguiente comando para copiar la clave pública al servidor (reemplace user y host con su nombre de usuario y dirección del servidor respectivamente):

ssh-copy-id user@host

Cuando se le solicite, ingrese la contraseña del usuario en el servidor.

Como realizar túneles SSH

Los túneles SSH son útiles para encriptar el tráfico de red para aplicaciones que no lo hacen por sí mismas. Por ejemplo, puede usar un túnel SSH para navegar de forma segura en una red pública. Aquí le mostramos cómo:

En el cliente, use el siguiente comando para establecer un túnel SSH (reemplace user y host con sus respectivos valores):

ssh -D 8080 user@host

Configure su navegador u otra aplicación para usar localhost como su servidor proxy SOCKS y 8080 como el puerto.

Túneles SSH Inversos

Los túneles SSH inversos son útiles cuando necesita acceder a una máquina detrás de una NAT o un firewall. Aquí se explica cómo configurarlo:

En el servidor detrás de la NAT o el firewall, use el siguiente comando para establecer un túnel SSH inverso (reemplace user, host y port con sus respectivos valores):

ssh -R 8080:localhost:port user@host

Ahora puede acceder a la máquina detrás de la NAT o el firewall en el port desde el host en el puerto 8080.

VPN inversa usando SSH

Una VPN inversa es útil cuando necesita crear una red privada entre dos máquinas que no están en la misma red local. Aquí se explica cómo configurar una VPN inversa usando SSH:

En el cliente, use el siguiente comando para establecer una VPN inversa (reemplace tun0, user, host, 10.0.0.1 y 10.0.0.2 con sus respectivos valores):

ssh -o Tunnel=ethernet -w 0:0 user@host «ip link set tun0 up && ip addr add 10.0.0.2 peer 10.0.0.1 dev tun0»

En el servidor, configure la interfaz tun0:

ip link set tun0 up
ip addr add 10.0.0.1 peer 10.0.0.2 dev tun0

Ahora puede acceder al servidor desde el cliente como si estuvieran en la misma red local. En que tengas problemas con el comando ip tienes el mismo resultado utilizando ifconfig en el cliente ssh -o Tunnel=ethernet -w 0:0 user@host «ifconfig tun0 10.0.0.2 pointopoint 10.0.0.1 en el servidor ifconfig tun0 10.0.0.1 pointopoint 10.0.0.2

Recuerde, la seguridad es crucial en cualquier implementación de red. Siempre asegúrese de que sus configuraciones de seguridad estén actualizadas y sean adecuadas para su entorno.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *