Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
howtos:sshfreak [2017/12/02 16:37] – angelegt morquai | howtos:sshfreak [2022/02/18 08:09] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 8: | Zeile 8: | ||
Ein kleiner SSH Tunnel schafft hier Abhilfe: | Ein kleiner SSH Tunnel schafft hier Abhilfe: | ||
ssh -L 8080: | ssh -L 8080: | ||
- | Das war das ganze Geheimnis. | + | Das war das ganze Geheimnis. |
+ | Geht das auch andersherum? | ||
+ | ssh -R 8443: | ||
+ | Problem gelöst. Auf dem Server " | ||
+ | Das erscheint nicht praktikabel, | ||
+ | ssh -D 3128 user@sshserver.firma.de | ||
+ | startet einen Socks Proxy auf meinem PC, der auf Port 3128 lauscht. Dort eingehender Traffic wird über die SSH Verbindung zu " | ||
+ | Wenn der " | ||
+ | - einen SSH Server, der uneingeschränkten Zugang zum Internet hat | ||
+ | - einen SSH Zugang aus der Firma zu diesem Server | ||
+ | Der SSH Server ist das geringste Problem, ich starte einfach den Dienst auf meinem heimischen PC. Den Zugang aus der Firma zu diesem SSH Server ist mit einem Tunnel einfach herzustellen | ||
+ | ssh -R 2222: | ||
+ | und nun auf dem " | ||
+ | ssh -D 3292 -p 2222 heimuser@localhost | ||
+ | Ein wenig aufwendiger, | ||
+ | ===== geschachtelte Tunnel ===== | ||
+ | Selbstverständlich kann man auch einen bestehenden Tunnel nutzen um darin einen weiteren Tunnel anzulegen. Die mehrfache Schachtelung macht es fast unmöglich | ||
+ | ====== Und jetzt? Absichern eines SSH Servers ====== | ||
+ | Stellt man sich nun einmal auf die andere Seite, also nicht die des SSH Clients sondern auf die des SSH Server Administrators, | ||
+ | SSH bietet nicht nur die clientseitigen Möglichkeiten, | ||
+ | ===== Authentifizierung ===== | ||
+ | Für die Anmeldung an einem SSH-Server stehen unterschiedliche Möglichkeiten zur Verfügung: | ||
+ | * Password | ||
+ | * SSH Keys | ||
+ | * PAM (einschließlich LDAP oder OATH (One Time Authorization Token) ) | ||
+ | * Kerberos | ||
+ | * u.v.a. | ||
+ | Der Konfigurationsparameter " | ||
+ | Die Verwendung von Puclic Keys kann geregelt werden, indem man es dem Administrator statt jedem User überlässt, | ||
+ | AuthorizedKeysFile / | ||
+ | an einen Ort an dem der User keinen Schreibzugriff hat, kann nur noch der Administrator Public Keys dort eintragen. Im Zusammenspiel mit signierten Public Keys (siehe TrustedUserCAKeys) kann man den Einsatz nicht signierter Public Keys unterbinden. \\ | ||
+ | Es gibt also auf der Ebene Authentifizierung eine Reihe von Möglichkeiten nur vertrauenswürdigen Benutzern Zugriff zu gewähren. | ||
+ | ===== Tunnel ===== | ||
+ | Der Einsatz von Tunneln sollte reglementiert werden. Zwei Paramter erlauben ein solche Einschränkung: | ||
+ | AllowTcpForwarding no | ||
+ | PermitOpen none | ||
+ | Ist der Einsatz eines Tunnels gewünscht, oder unerlässlich, | ||
+ | Match Group tunnel | ||
+ | AllowTcpForwarding yes | ||
+ | PermitOpen dbserver: | ||
+ | Auch die Beschränkung zum Öffnen eines Ports auf bestimmte, geprüfte und somit als sicher geltende Scripts kann helfen. Der entsprechende Paramter ist " | ||
+ | ===== VPNs verhindern ===== | ||
+ | Die Angabe von " | ||
+ | ===== Ports absichern, die von einem Client geöffnet werden ===== | ||
+ | Ist es einem Client erlaubt einen Port zu öffnen, muss man sich entscheiden ob der Port nur von dem Rechner benutzt werden kann, auf dem er geöffnet wurde, oder ob er auch von anderen Rechner angesprochen werden darf. Der Parameter " | ||
+ | ===== Fremden Zugriff gewähren ===== | ||
+ | Muss man Fremden Zugang gewähren muss man deren Möglichkeiten soweit wie möglich einschränken. Die Einrichtung einer CHROOT Umgebung sperrt solche Benutzer ein einen " | ||
+ | ChrootDirectory / | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||