Saltar al contenido

¿Cómo restringir a un usuario de SSH para que solo permita el túnel SSH?

Revisamos exhaustivamente cada tutoriales de nuestro sitio web con la meta de mostrarte siempre información certera y actualizada.

Solución:

En el lado del servidor, puede restringir esto configurando su shell de usuario en /bin/true. Esto les permitirá autenticarse, pero en realidad no ejecutar nada, ya que no obtienen un shell para ejecutarlo. Esto significa que estarán limitados a cualquier subconjunto de cosas que SSH pueda ofrecerles. Si ofrece reenvío de puertos, aún podrán hacerlo.

En el lado del cliente, probablemente querrá conectarse con el -N. Esto evita que el cliente PIDA un comando remoto como un shell, solo se detiene después de que se completa la parte de autenticación. Gracias a los comentaristas por señalar esto.

Lo siguiente tiene la ventaja de que los reenvíos de sockets de agentes X11 y SSH tampoco están permitidos, lo que aún podría estar permitido en la forma de Calebs. Otra ventaja es que si el usuario puede cambiar su shell predeterminado de cualquier otra manera, esto aún restringirá su acceso SSH solo a reenvíos TCP.

Pon lo siguiente en tu /etc/ssh/sshd_config:

Match User that-restricted-guy
  AllowTcpForwarding yes
  X11Forwarding no
  AllowAgentForwarding no
  ForceCommand /bin/false

para permitir al usuario that-restricted-guy para reenviar cualquier conexión TCP a través de su máquina habilitada para SSH (conexión a esta máquina, también a localhost e incluso conexión desde esta máquina a otras máquinas).

Si lo quieres aún más restrictivo (lo cual es una buena idea), también puedes hacer lo siguiente:

Match User even-more-restricted-guy
  PermitOpen 127.0.0.1:12345
  X11Forwarding no
  AllowAgentForwarding no
  ForceCommand /bin/false

Esto permitirá al usuario even-more-restricted-guy para reenviar solo las conexiones al puerto TCP 127.0.0.1 12345 (como se ve a través de su máquina habilitada para SSH).

Cuando el usuario se conecta normalmente, ahora se desconectará instantáneamente porque el /bin/false se activará el comando que no hace nada más que salir instantáneamente con un código de 1. Si desea evitar esto y mantener abierta su conexión de reenvío, agregue el -N bandera a la ssh mando. Esto no intentará ejecutar ningún comando, pero aún permite configurar los reenvíos de TCP.

Un ejemplo de un comando de reenvío que debería funcionar en la última configuración:

ssh -L 12345:127.0.0.1:12345 -N [email protected]

Puede controlar lo que la gente puede hacer en ssh haciendo coincidir grupos, suponiendo que su versión de ssh sea lo suficientemente nueva como para admitirlo (openssh 5.x+).

Básicamente, los tratamos como si fueran usuarios de sftp, pero permitimos el reenvío de tcp y opcionalmente especificar los destinos a los que pueden reenviar. Si les proporciona un directorio de inicio pero no crea ningún directorio debajo de él, no podrán transferir ningún archivo porque no tendrán permiso para hacerlo.

Match Group                     nicepeople
    PubkeyAuthentication        yes
    PasswordAuthentication      yes
    PermitEmptyPasswords        no
    GatewayPorts                no
    ChrootDirectory             /opt/dummy_location/%u
    ForceCommand                internal-sftp
    AllowTcpForwarding          yes
        PermitOpen              192.168.0.8:22
        PermitOpen              192.168.0.5:8080
    # Or leave out the PermitOpen to allow forwarding to anywhere.
    HostbasedAuthentication     no
    RhostsRSAAuthentication     no
    AllowAgentForwarding        no
    Banner                      none

Puedes repetir estos Grupo de partidos Bloques para cada grupo al que desee proporcionar un comportamiento o restricciones diferentes.

Puede controlar aún más a dónde puede ir esta persona en la red usando iptables

/sbin/iptables -I OUTPUT -m owner --gid-owner 500 -j REJECT
/sbin/iptables -I OUTPUT -m owner --gid-owner 500 -m tcp -p tcp -d 192.168.0.0/24 -j ACCEPT

Esto supone que el GID del grupo “buena gente” es 500.

Algunas de las opciones de ssh anteriores están disponibles en las versiones anteriores de openssh, pero no en la sección Match Group. Match Group está muy limitado en OpenSSH 4.x y versiones anteriores.

Sección de Reseñas y Valoraciones

Si conservas algún pregunta y disposición de arreglar nuestro crónica te sugerimos dejar una crónica y con mucho placer lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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