Come autenticare e inoltrare il traffico SSH

1

Sto eseguendo GitLab e sto servendo repository git su SSH dal server SSH interno di GitLab. Funziona proprio come Github: gli utenti aggiungono la loro chiave pubblica in una pagina web e sono in grado di usare SSH dopo.

Voglio limitare l'accesso a questo server da Internet mentre è completamente aperto sulla nostra rete locale. C'è un modo in cui posso configurare un server SSH davanti a GitLab che

  1. Autorizza gli utenti contro una lista bianca (ad esempio ~/.ssh/authorized_keys )
  2. inoltra il traffico autorizzato al mio server GitLab

Questo è abbastanza facile da fare con traffico HTTPS e certificati client usando HAProxy, ma non riesco a trovare alcun modo per ottenere lo stesso risultato con SSH e chiavi pubbliche.

    
posta gogstad 28.01.2017 - 17:40
fonte

3 risposte

0

Penso che il concetto che stai cercando sia ssh bastion .

dall'utente > ssh-bastion - > gitlab

Distribuire le chiavi pubbliche dell'utente dal tuo server gitlab al tuo bastione sarà un trucco. Forse un cron job e rsync? Nota: ci sarà qualche impostazione del client, ma penso che siano 3 righe nel lato client ~ / .ssh / config

Un altro approccio consiste nel creare regole firewall (o gruppo di sicurezza se si dovessero distribuire nel cloud) per autorizzare gli IP pubblici dei propri utenti. Ciò presuppone che gli utenti abbiano IP statici. Ciò aggiunge un'attività di manutenzione per mantenere tale lista bianca.

Un terzo approccio consiste nel mettere in piedi un semplice server openvpn e aggiungere un altro passaggio per gli utenti remoti con IP dinamici. Questo aggiunge un altro livello di sicurezza richiedendo credenziali vpn + chiavi git. Ma ora stai supportando un server VPN e client VPN su ciascun nodo finale.

    
risposta data 24.04.2018 - 20:47
fonte
3

Il tuo caso d'uso di schermare il tuo server GitLab dal traffico esterno è comunemente risolto con un firewall. Un firewall può essere facilmente installato localmente su GitLab che bloccherà tutto il traffico in entrata ad eccezione del traffico proveniente dalla rete locale. È inoltre possibile installare un firewall davanti al server GitLab.

Questo traffico dovrebbe essere ancora autenticato usando le normali chiavi SSH usate da GitLab.

    
risposta data 09.03.2017 - 14:33
fonte
0

La whitelist che hai descritto può essere eseguita con la direttiva AllowUsers in sshd_config . Non c'è bisogno di un firewall, aggiunge complessità inutile.

    
risposta data 09.03.2017 - 14:59
fonte

Leggi altre domande sui tag