Ich habe auf meinem Gateway einen SSH-Tunnel wie folgt geöffnet:
autossh -M 30000 -f -N example.com -L \*:20022:192.168.1.40:22
Wie kann ich einen Benutzer, beispielsweise John, dazu bringen, nur diesen SSH-Tunnel zu verwenden und alle anderen Benutzer, die ich habe, so einzuschränken, dass kein Benutzer außer John über Port 20022 SSH verwenden kann? Bitte beachten Sie, dass der Benutzer John auf meinem Gateway nicht existiert, weder als lokaler Benutzer noch im LDAP.
Antwort1
Wenn der Client ein Linux-Host ist, können Sie dies tun mitiptables:
iptables -A OUTPUT --dest 192.168.1.40 --dport 22 -m owner --uid-owner john -j ACCEPT
iptables -A OUTPUT --dest 192.168.1.40 --dport 22 -j REJECT
Beachten Sie, dass dies von der Zieladresse und dem Zielport abhängt, nicht vom Quellport 20022. Wenn Sie den Zugriff wirklich nur auf diesen einen Quellport beschränken möchten, können Sie --sport 20022
anstelle von --dest
und verwenden --dport
. Das hindert einen anderen Benutzer natürlich nicht daran, einen ähnlichen Tunnel auf einem anderen Port zu öffnen.
Antwort2
Veröffentlichen Sie nur Johns öffentlichen Schlüssel in der Datei authorized_keys auf dem Gateway. Deaktivieren Sie die PW-Authentifizierung.