Linux als SOHO-Server
für Linux- und Windows-Clients |
Kapitel:
|
Auf der vorliegenden Seite wird die Installation/Konfiguration von SSH unter Debian GNU/Linux vorgestellt. Wie schon erwähnt, wird unter Debian die Version: 'OpenSSH' verwendet. Weiterhin werden auf dieser Seite unterschiedliche Autorisierungsverfahren vorgestellt. Authentisierung kann entweder über einen Schlüssel oder über normale Benutzer-Passwörter stattfinden. Liegt kein Schlüssel vor, wird nur das Passwort verwendet. Bei der Authentifizierung mittels Schlüssel wird im Folgenden, nicht im einzelnen auf die einzelnen Schlüsselarten und deren Vor- und Nachteile eingegangen, sondern vielmehr auf das Prinzip anhand von Beispielen. In den angeführten Beispielen wird der dsa-Schlüssel verwendet. Installation / KonfigurationUnter Debian GNU/Linux wird standardmäßig bei der Grundinstallation SSH mitinstalliert. Sollte dieses nicht der Fall sein, so kann das Paket: 'ssh' mittels 'apt-get install ssh' nachinstalliert werden. Im SSH-Packet von Debian befindet sich der Server- und Client-Anteil ('sshd' und 'ssh'). Nach der Installation (Basis-Installation) werden folgende Dialoge durchlaufen:
Ein erneuter Durchlauf des Installations-Dialoges kann mit: 'dpkg-reconfigure ssh' wiederholt werden. Als Standartport wird bei SSH der Port: '22' verwendet, es sollte in der Datei: '/etc/services' geprüft werden, ob dieser Port für 'UDP' und 'TCP' frei gegeben ist:
Der SSH-Server: 'sshd' arbeitet in der Regel als eigener Dämon, er kann aber auch vom Super-Dämon: 'inetd' gestartet werden, jedoch ist die Dämon-Methode deutlich schneller. Die entsprechende Startdatei für den SSH-Dämon ist: '/etc/init.d/ssh', sie wird z.B. beim Hochlauf des Systems genutzt und startet den SSH-Server. Die Konfiguration von SSH ist in zwei Dateien aufgeteilt, einer Server- und
einer Client-Konfigurationsdatei ('sshd.config'
und 'ssh.config'). Die Konfigurationsdateien befinden sich im
Verzeichnis: '/etc/ssh/'. Beide Dateien
sind nach der Installation schon sinnvoll vorkonfiguriert, eine separate
Konfiguration ist nur notwendig, falls bestimmet Sicherheits-Mechanismen
gefordert sind. Eine genaue Beschreibung der Konfigurationsdateien sind den
Manualseiten und der Dokumentation zu OpenSSH zu entnehmen. Weiterhin befinden sich im Verzeichnis: '/etc/ssh/' die bei der Installation generierten Schlüsselpaare (Public- und Privat-Key). Die Schlüssel werden vom Server benutzt, um sich gegenüber unterschiedlichen Clients zu authentifizieren. Unter Debian-Sarge wird defaultmäßig SSH2 verwendet, es liegt je ein RSA- und DSA-Schlüsselpaar vor ('ssh_host_rsa_key.pub', 'ssh_host_rsa_key.pub', 'ssh_host_dsa_key.pub' und 'ssh_host_dsa_key.pub'). SSH mit PasswortFür die Nutzung von SSH mittels Passwort brauch eigentlich nichts beachtet oder konfiguriert werden. Ist beim Versuch, einen fremden Rechner zu kontaktieren, keine Schlüsseldateien zur Authentifizierung vorhanden, wird automatisch nach dem Passwort gefragt. Im Folgenden eine solche Beispielsitzung:
Der Benutzer: 'linux' auf dem Rechner: 'experimental' versucht eine SSH-Sitzung auf den entfernten Rechner: 'merlin' aufzubauen. Nach Eingabe des Passworts, wird der Zugang als Benutzer: 'linux' auf dem Rechner: 'merlin' gewährt. Die Übertragung des Passworts und auch der folgenden Daten, findet dabei in verschlüsselter Form statt. SSH ohne PasswortÄhnlich wie die r-Utilities, bietet SSH auch die Möglichkeit, sich ohne Angabe eines Passwortes auf einem entfernten System anzumelden. Um dieses zu realisieren, können z.B. zwei Verfahren angewendet werden. Zum einen kann mit der ~/.shosts-Datei gearbeitet werden, zum anderen kann eine Authentifizierung über Hostschlüssel erfolgen. Authentifizierung mittels ~/.shostsDie Authentifizierung mittes ~/.shosts-Datei ist analog zum alten ~/.rhosts-Dateimechanismus zu sehen (vgl. Kapitel: r-Utilities), jedoch ist die Authentizität des Clients und des Servers gesichert und auch der weitere Datentransfer findet verschlüsselt statt. Authentifizierung mittels HostschlüsselFür die Authentifizierung mittels Hostschlüssel sind zwei Schritte notwendig:
Danach sollte ein passwortfreier Zugang zum entfernten Rechner möglich sein. Erzeugen eines SchlüsselpaarMit dem Tool: 'ssh-keygen' kann jeder Benutzer sich ein Schlüsselpaar erzeugen. Hier ein Beispiel zur Generierung eines 1024-Bit langen dsa-Keys für das SSH-Protokoll der Version 2:
Standardmäßig werden die Schlüssel im Verzeichnis: '~/.ssh' abgelegt, die Frage diesbezüglich brauch nur bestätigt werden. Für einen passwortfreien Zugang, müssen die Fragen bezüglich: 'passphrase' nur bestätigt werden, andernfalls wird bei jeder Verbindung nach der 'passphrase' gefragt. Nach der Generierung, sollten im Verzeichnis: '~/.ssh' die Dateien: 'id_dsa' (Privat-Key) und 'id_dsa.pub' (Public-Key) vorliegen. Bereitstellen des öffentlichen SchlüsselsNach der Erzeugen der Schlüssel, muss der öffentlichen Schlüssel auf dem entfernten Rechner übertragen werden, das Übertragen kann z.B. mit 'scp' oder im primitivsten Fall auch z.B. mittels Diskette erfolgen. Anschließend muss der öffentliche Schlüssel (z.B.: 'id_dsa.pub') am Ende der Datei: '~/.ssh/authorized_keys' angehangen werden. Diese Datei enthält eine Liste sämtlicher öffentlicher Schlüssel von Rechnern, die sich ohne Passwort anmelden dürfen. Im Folgenden ein Bsp. zum Anhängen des öffentlichen Schlüssel:
Falls das Verzeichnis: '~/.ssh' nich vorhanden ist, kann es einfach mit den Rechten: '700' angelegt werden. Die Datei: 'authorized_keys' wird, falls nicht schon vorhanden, durch das Kommando: 'cat' angelegt. Die Datei sollte die Rechte: '600' haben. Viel komfortabler kann unter OpenSSH die Bereitstellung des öffentlichen Schlüssels mit dem Programm: 'ssh-copy-id' erfolgen. Dabei wird der öffentliche Schlüssel übertragen und anschließend in der Datei: '.ssh/authorized_keys' eingekettet. Hierzu ein Beispiel zur Anwendung:
Der Benutzer: 'linux' auf dem Rechner: 'experimental' überträgt seinen öffentlichen Schlüssel auf den entfernten Rechner: 'merlin'. Bevor die Übertragung beginnt, muss noch das Passwort eingegeben werden. Nach der Übertragung wird der öffentliche Schlüssel in der lokalen Datei: '~/.ssh/known_hosts' der des Remote-Systems aufgenommen. AnmerkungenIm Normalfall werden Logging-Ausgaben vom SSH-Dämon über 'syslog' in der Datei: '/var/log/auth.log' geschrieben. Bei Problemen mit SSH-Verbindungen sollte man sich zusätzliche Infos mit der Option '-v' anzeigen lassen (z.B.: 'ssh -v merlin'). Bei der Installation des SSH-Dämons werden normalerweise die nötigen Schlüsselpaare des Systems erzeugt, um diese nachträglich zu erstellen/erneuert, geht man als Benutzer: 'root' wie folgt vor:
Zunächst ist der SSH-Dämon zu stoppen, danach sollten die vorhanden Schlüssel
gelöscht werden. Weitere Infos
letzte Änderung: 13. März 2006 |
Copyright © 2004 Norbert Eusterholz |