0 Pluspunkte 0 Minuspunkte
Ich habe mehrere Server hinter einer Firewall und möchte Kunden mit Hilfe eines Jumphost SSH Zugang geben. Gibt es einen Proxy so wie Nginx der SSH Verbindungen basierend auf deren Hostnamen weiterleiten kann?
von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Das funktioniert technisch nicht. SSH verwendet den Hostmanen nur um die IP Adresse aufzulösen, innerhalb des SSH Protokoll spielt der Hostname nicht wirklich eine Rolle. Du kannst aber wie du selbst sagst einen Jumphost einrichten. Dazu stapelst du die Ziele im SSH Befehl  und setzt den Parameter -J davor.

ssh -J <user>@<jumphost> <user>@<internal-host>

so wirst du vom Jumphost an den internen Host weitergeleitet.

Edit: Wenn du möchtest das die Benutzer auf dem Jumphost selbst anmelden dürfen kannst du in die Datei

/etc/ssh/sshd_config

das anhängen

Match User jumpuser
  PermitTTY no
  X11Forwarding no
  PermitTunnel no
  GatewayPorts no
  ForceCommand /usr/sbin/nologin
von  
Ich möchte aber das die Benutzer auf dem Jumphost nichts machen können ausser sich weiter auf den internen Host zu verbinden. Geht das auch?
0 Pluspunkte 0 Minuspunkte

Auf einem BigIP F5 Load Balancer kannst du einen SSH Proxy mit einer iRule erstellen.

when CLIENTSSL_HANDSHAKE {
    set dest_ip "ZIEL_IP"
    set dest_port ZIEL_PORT
    set timeout 30
    set server_ip [IP::local_addr]
    set server_port [IP::local_port]
    TCP::collect
    TCP::release
    TCP::connect $dest_ip $dest_port
}

when SERVERSSL_HANDSHAKE {
    TCP::collect
    TCP::release
    TCP::connect $server_ip $server_port
}

when CLIENTSSL_DATA {
    TCP::collect
    TCP::release
    TCP::send $server_ip $server_port
}

when SERVERSSL_DATA {
    TCP::collect
    TCP::release
    TCP::send $client_ip $client_port
}
von