Cómo autenticar y reenviar el tráfico SSH

1

Estoy ejecutando GitLab y sirviendo los repositorios de git a través de SSH desde el servidor SSH interno de GitLab. Funciona igual que Github: los usuarios agregan su clave pública en una página web y pueden usar SSH después de eso.

Quiero restringir el acceso a este servidor desde Internet mientras lo tengo completamente abierto en nuestra red local. ¿Hay alguna manera de configurar un servidor SSH frente a GitLab que

  1. Autorizar usuarios contra una lista blanca (por ejemplo, ~/.ssh/authorized_keys )
  2. Reenvía el tráfico autorizado a mi servidor GitLab

Esto es bastante fácil de hacer con el tráfico HTTPS y los certificados de cliente que usan HAProxy, pero no puedo encontrar la manera de lograr lo mismo con SSH y las claves públicas.

    
pregunta gogstad 28.01.2017 - 17:40
fuente

3 respuestas

0

Creo que el concepto que está buscando aquí es ssh bastion .

usuario- > ssh-bastion - > gitlab

La implementación de claves públicas de usuario desde su servidor gitlab a su bastión será una especie de truco. Tal vez un trabajo cron y rsync? Nota: habrá alguna configuración de cliente, pero creo que son 3 líneas en el lado del cliente ~ / .ssh / config

Otro enfoque es crear reglas de firewall (o grupo de seguridad si se implementara en la nube) para incluir en la lista blanca las IP públicas de sus usuarios. Esto supone que sus usuarios tienen IP estáticas. Esto agrega una tarea de mantenimiento para mantener esa lista blanca.

Un tercer enfoque es instalar un servidor openvpn simple y agregar otro paso para usuarios remotos con IP dinámicas. Esto agrega otra capa de seguridad al requerir credenciales vpn + claves git. Pero ahora admite un servidor vpn y clientes vpn en cada nodo final.

    
respondido por el jorfus 24.04.2018 - 20:47
fuente
3

Su caso de uso de proteger su servidor GitLab del tráfico externo generalmente se resuelve con un firewall. Se puede instalar fácilmente un servidor de seguridad local en el GitLab que bloqueará todo el tráfico entrante, excepto el tráfico de la red local. También se puede instalar un firewall delante del servidor GitLab.

Este tráfico aún debe autenticarse utilizando las claves ssh normales utilizadas por GitLab.

    
respondido por el snorberhuis 09.03.2017 - 14:33
fuente
0

La lista blanca que describió se puede hacer con la directiva AllowUsers en sshd_config . No hay necesidad de un firewall, agrega una complejidad innecesaria.

    
respondido por el Rápli András 09.03.2017 - 14:59
fuente

Lea otras preguntas en las etiquetas