SSH
Inhaltsverzeichnis |
SSH Server
Gute Info's findet man wie üblich im FreeBSD-Handbook oder in den entsprechenden man-pages.
Die Konfiguration des Servers liegt im Verzeichnis /etc/ssh/ und die wichtigste Datei für den Daemon ist /etc/ssh/sshd_config. Daraus einige Hinweise:
Um direkten Zugang als root zu gewähren (nicht empfohlen!), trägt man ein:
PermitRootLogin yes
Sollte der Server mehrere IP Adressen haben und man möchte, dass der Daemon auf einer bestimmten IP Adresse gebunden ist, so ändert man:
ListenAddress 10.10.1.25
Will man einen anderen Port, als den standardmässigen 22:
Port 2222
Damit der SSH Dienst gestartet wird, muss folgender Eintrag im /etc/rc.conf gemacht werden:
sshd_enable="YES"
Sobald dies eingetragen ist, kann man den Dienst jederzeit starten/stoppen/neustarten:
-su-2.05b# /etc/rc.d/sshd {start stop restart}
Will man den Zugriff per ssh von bestimmten IP Adressen (z.B. 11.1.1.0/24 und 192.168.1.25) einschränken, so kann man die Datei /etc/hosts.allow modifizieren:
# Block SSH from outside sshd : 10.10.1.0/255.255.255.0 : allow sshd : 11.1.1.0/255.255.255.0 : allow sshd : 192.168.1.25 : allow sshd : ALL : deny
Tip: Eigenes Subnetz nicht vergessen, falls mehrere Server vorhanden sind.
Arbeiten mit SSH
SSH kann natürlich mehr, als nur als Server zu agieren.
Einloggen auf anderen Servern
Man kann auf verschiedene Arten auf andere Server einloggen:
-su-2.05b# ssh steven@test.glogger.ch
oder
-su-2.05b# ssh test.glogger.ch -l steven
Dateien sicher kopieren
mit scp kann man einfach und sicher (da verschlüsselt) Dateien auf andere Server übertragen:
-su-2.05b# scp user@example.com:/README README user@example.com's password: README 100% |*****************************| 4735 00:00
Mit Tunneln arbeiten
Man kennt das, da hockt man irgendwo in einem fremden Lan und traut den ganzen Paketsniffern nicht, die irgendwo installiert sein könnten. Nun kann es sein, dass der heimische Mailserver keine SSL-Verbindung kennt und man also das Passwort plaintext übermitteln müsste. Ergo baut man sich einen per SSH verschlüsselten Tunnel. Benötigt wird ein Server, dem man vertrauen kann, und einen SSH-Client, der SSH-Tunnel ermöglichen kann. Man kann so auch strenge Firewall-Regeln umgehen - aber denkt an eurem Job, wenn ihr das macht! :-) Wir möchten einen lokalen Port (z.b. Port 5000) auf den Mailserver (Port 25) tunneln lassen. Das geht wie folgt:
-su-2.05b# ssh -2 -N -f -L 5000:mail.example.com:25 steven@test.glogger.ch Password:
Und testen kann man dies so:
-su-2.05b# telnet localhost 5000 Trying 127.0.0.1... Connected to localhost.mrmouse.ch. Escape character is '^]'. 220 mail.example.com ESMTP Sendmail 8.13.1/8.13.1; Thu, 12 May 2005 23:04:25 +0200 (CEST)
Noch kurz ein paar Worte zu der Syntax:
- -2: Erzwingt Version 2 des SSH-Protokolls
- -N: Sagt dem Programm, dass man einen Tunnel erstellen möchte
- -f: schickt das Programm in den Hintergrund
- -L port:host:hostport : Benutzt den lokalen port und leitet diesen am entfernten host zum hostport um
- steven@test.glogger.ch: Meldet sich mit dem Benutzernamen 'Steven' am Server test.glogger.ch an