SSH Tunnel trotz /bin/false

Ein interessantes Feature von SSH ist das man trotz einer Shell wie /bin/false oder /bin/nologin einen SSH Tunnel aufbauen kann. Normalerweise setzt man einer der genannten Shells gerade für (s)/FTP Benutzer ein, damit sich diese nicht auf dem Server mit einer Shell einloggen dürfen. Leider interessiert dieses SSH absolut gar nicht und für einen Tunnel braucht man eben keine Shell (channel!).

Viele Anbieter bieten FTP für ihre Dienste an und falls dann noch SSH läuft wäre es somit möglich die Firewalls zu umgehen und einen direkten Zugang auf das System und den dahinterliegenden zu erhaschen. Das ganze funktioniert leider auch wenn man den Benutzer in einer Match Gruppe nur SFTP erlaubt hat.

Ein SSH Tunnel ist schnell aufgebaut und schon kann man loslegen:

# ssh -N -L 1337:localhost:80 $ftpuser@$server

Viel mehr Spaß macht es dann eigentlich nur noch die File Descriptor auf dem Server bequem und schnell zu verbrauchen:

# ssh -N -L 1337:localhost:80 $ftpuser@$server
# ssh -N -R 1337:localhost:80 $ftpuser@$server
# telnet localhost 1337

Das einzige was man dagegen machen kann ist den Zugriff auf SSH nur für bestimmte Benutzer zu erlauben (AllowUsers, AllowGroups) und Tunnel, Forwarding zu verbieten (AllowTcpForwarding, X11Forwarding, PermitTunnel)

Wunderbar beschrieben im Jahr 2005 auf semicomplete.com und immer noch möglich.

One thought on “SSH Tunnel trotz /bin/false

  1. Aus der manapage zur sshd Konfiguration:
    ” Only a subset of keywords may be used on the lines following a Match keyword. Available keywords are AllowAgentForwarding, AllowTcpForwarding …. [and a lot more]”

    D.h. wenn ich Usern heutzutage ein /sbin/nologin oder /bin/false als shell verpasse kann ich auch gleich noch den Match group Eintrag machen.

    Andererseits FTP macht ja eh keiner seitdem es chroot und sftp-internal in openssh macht. Und dann hab ich die Match Group Sache in der sshd_config eh schon drin und muss dann nur noch forwarding verbieten. Soweit mein Weltbild.

    Man kann es also tatsaechlich zusammen fassen mit ‘wenn du ein Match Group machst (oder Match irgendwas anderes) verbiete gleich explizit alles was zu verbieten ist.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.