2016-11-17 1 views
4

Nous exécutons deux instances gitlab derrière AWS classic ELB. Pour activer git SSH pousse et équilibrer la charge des demandes SSH via git, nous avons ajouté l'écouteur de port TCP SSH dans AWS ELB. Dans les journaux SSH, nous voyons des ips d'ELB et non des adresses IP réelles d'utilisateurs git. J'ai essayé d'activer le protocole de proxy pour l'écouteur SSH à ELB mais il brise le serveur SSH. Y at-il un moyen de voir de vrais ips de client?Comment voir les adresses IP réelles des clients SSH des serveurs SSH exécutés derrière AWS ELB

Nov 16 08:38:41 gitlab-1-1b sshd[14760]: Bad protocol version identification 'PROXY TCP4 x.y.z.a 0.0.0.0 61533 22' from x.y.z.a port 9407 
Nov 16 08:39:08 gitlab-1-1b sshd[14825]: Bad protocol version identification 'PROXY TCP4 x.y.z.a 0.0.0.0 61554 22' from x.y.z.a port 9417 

Répondre

3

Comme mentioned here, un ELB (Elastic équilibrage de la charge, ce qui fait support multiple listener protocols):

agit comme un proxy de transfert (à savoir l'adresse IP source ne sont pas conservées)

Tout ce qui vous reste est le ELB Access Logs (comme mentioned there), puisque X-Forwarded-For, qui est un protocole "au niveau de l'application", n'est pas disponible pour s sh nativement.

Donc pas facilement possible avec ssh.


Activation du même service par un auditeur gitlab ce https serait au moins vous permettre de mettre l'utilisateur IP dans X-Forwarded-For par le support SSL approximé, comme discussed in this GitLab thread ou this one.
Notez que recent GitLab (8.10 or more) would then require

proxy_set_header X-Forwarded-Proto https; 
proxy_set_header X-Forwarded-Ssl on; 
proxy_set_header X-Forwarded-Port 443;