| Auf jedem Standard Linux Server läuft u.a. auch ein SSH-Server. Damit kann man den Server von jedem beliebigen PC des lokalen Netzwerks fernsteuern. |
|
Auf dieser Seite werden einige Tipps als Ergänzung (!) zum Manual des
meist verwendeten OpenSSH
Servers vorgestellt. Die Angaben orientieren sich vorwiegend an
SuSE-Linux Systemen.
Der Kugelfisch ist das Wappentier des OpenSSH Projekts. |
SSH
|
Konsolen-Fernsteuerung mit dem Secure Shell Protokoll |
| OpenSSH | Das meist-verwendete SSH Server-Programm |
| Start | Installation und Start des SSH-Server-Programms |
| Konfiguration | Konfiguration des SSH-Servers |
| Kontrolle | Status, Start und Stop des SSH-Servers |
OpenSSH |
|
|
|
|
|
Hier finden sie Informationen zum OpenSSH Server: ► OpenSSH Home, Manual, FAQ, man-Page, ► OpenSuSE - OpenSSH ► Wikipedia - SSH und OpenSSH ► Nach Installation in diesem Verzeichnis ihres Linux-PC: /usr/share/doc/packages/openssh
|
Auf dieser Seite werden einige Tipps zur Konfiguration des SSH-Servers vorgestellt. Alle Informationen erfolgen nach bestem Wissen - Die Anwendung erfolgt auf eigenes Risiko ! |
| Auch für Windows-Systeme gibt es einige kostenfreie SSH-Server Programme, z.B. WinSSHD. Hier wird jedoch vorläufig nur OpenSSH vorgestellt. | |
Installation und Start |
|
Downloaderübrigt sich meist, da das OpenSSH Software Paket in allen gängigen Installations-CD/DVD enthalten ist. Falls nicht, laden sie es mit den integrierten Online-Installer-Programmen, z.B. auf SuSE: In diesem Fall wird das Server-Programm sshd auch gleich installiert, normalerweise jedoch nicht gestartet. |
Wenn ihr Linux-Distributor OpenSSH nicht anbietet, oder wenn sie selbst die neueste Version compilieren/installieren wollen, laden sie den Quelltext oder ein RPM-Paket aus dem Internet: HTTP, FTP |
KonfigurationSuSE bietet derzeit kein YAST-Modul zur Konfiguration des SSH-Servers an. Wenn das nachgeholt werden sollte, findet man es hier: |
Auto-StartDer automatische Start muss man nach Installation einmalig einrichten: Markieren sie sshd und klicken sie .Kontrollieren sie an einer Shell-Konsole: $ ps -A | grep sshd
Das laufende SSH Server-Programm muss mit seiner Process-ID-Nummer angezeigt werden.
$ /etc/init.d/sshd status
Der Status "running" (grün) muss angezeigt werden.
|
Konfiguration |
|
etcWie auf Linux üblich, erfolgt die gesamte Konfiguration mit Text-Dateien im Verzeichnis /etcKontrollieren sie zuerst die übergeordnete Steuerung in dieser Datei: /etc/sysconfig/ssh
Diese Datei enthält normalerweise keine Konfigurations-Daten sondern
nur Kommentare (Zeilen beginnen mit einem # Zeichen).
|
Die eigentliche Konfiguration erfolgt durch die Dateien in diesem Verzeichnis: /etc/ssh
♣
Legen sie in jedem Fall eine Sicherungs-Kopie der Original-Datei
sshd_conf an - Auch dann, wenn sie diese Datei nicht ändern:
$ cp /etc/ssh/sshd_conf /etc/ssh/sshd.bak
♣
Ändern sie keinesfalls die Zugangs-Rechte zu diesem Verzeichnis oder einer
darin enthaltenen Datei. Der SSH-Server interpretiert das als feindlichen Angriff
und stellt seine Dienste ein !
|
sshd_confIn dieser Text-Datei sind alle Anweisungen zur Konfiguration des SSH-Servers enthalten und gut kommentiert.In den weiteren Absätzen werden ausgewählte Konfigurations-Variable vorgestellt. Jede Änderung erfolgt auf eigenes Risiko !
|
♣ Tipp: Dokumentieren sie jede einzelne manuell vorgenommene Änderung mit einem Kommentar und legen sie eine zusätzliche Sicherungs-Kopie der Datei an, wenn der SSH-Server zufriedenstellend läuft. ♣ Alle Zeilen mit vorangestelltem # Zeichen wrden als Kommentare behandelt und bei der Konfiguration nicht berücksichtigt. Das trifft auch auf alle Variablen zu, deren Standard-Wert (default value) verwendet wird. |
|
# Port 22
Dies ist der Standard-Port des SSH-Servers laut
IANA.
Wenn sie einen anderen Port wählen, dann muss dieser jedem SSH-Client
bekannt sein.
|
Protocol 2
Das SSH-Protokoll ('Grammatik' der zur Verbindung erforderlichen Maßnahmen)
gibt es in mehrenen Versionen. Sie muss den Clients nicht bekannt sein,
da diese die Protokoll-Version normalerweise selbst herausfinden.
|
|
# ListenAddress 0.0.0.0
In der Standard-Einstellung lauscht der SSH-Server an allen
IP-Adressen des Server-PC. Durch Angabe einer bestimmten Adresse können sie
den SSH-Server auf diese einschränken.♣ Wenn die Adresse des Server-PC variabel ist (→ DHCP), dann darf man ListenAddress nicht ändern ! ♣ Wenn hier eine falsche Adresse eingetragen wird, dann ist der SSH-Server nicht mehr erreichbar ! |
# AddressFamily any
Normalerweise akzeptiert der SSHD sowohl Verbindungen mit
→ IPv4 als auch
mit → IPv6.
Das kann zu langen Wartezeiten beim Login führen. Wenn man IPv6 nicht verwendet,
dann kann man das Protokoll auf IPv4 einschränken:
AddressFamily inet
|
|
# KeyRegenerationInterval 3600
Gibt die Zeit in Sekunden an, nach deren Ablauf der Schlüssel erneuert werden
muss.Kann man bei einem normal laufenden Server auf 600 reduzieren, da einfache Wartungs-Arbeiten nur selten länger dauern. |
# ServerKeyBits 768
Länge des Schlüssels in Bit.Kann man auf 1024 erhöhen - Gegen Geheimdienste schützt das jedoch auch nicht. |
|
# PermitRootLogin yes
Gestattet die Anmeldung als Administrator root • Besser ist ein Verbot mit no In diesem Fall muss man sich als normaler Linux-User anmelden und kann danach mit der Anweisung su die Identität wechseln, was jedoch die zusätzliche Angabe des root-Passworts erfordert. |
# AllowUsers xyz
Durch Aktivierung dieser Variablen kann man begrenzen, welche(r) Linux-User
sich über SSH anmelden dürfen.• Das ist sinnvoll und empfehlenswert, und in kleinen lokalen Netzwerken immer möglich. Die Namen mehrerer User werden mit Leerzeichen getrennt, z.B. AllowUsers anna bert christa dieter
|
|
# UseDNS yes
Der Server versucht, die IP-Adresse des Clients mit Reverse IP-Lookup zu
kontrollieren. Das ist im eigenen lokalen Netzwerk sinnlos und kann zu langen
Wartezeiten beim Login führen. In diesem Fall
UseDNS no
|
# LoginGraceTime 120
Zeit in Sekunden, innerhalb derer eine Anmeldung fertig gestellt werden muss.
Kann und soll man im eigenen lokalen Netzwerk auf 30 verkürzen.
|
|
# MaxAuthTries 6
Maximale Anzahl von Anmelde-Versuchen.Kann meist auf 3 reduziert werden. |
PrintMotd no
Der Wert verhindert die Anzeige täglich neuer Sprüche bei der Anmeldung.
|
|
# PrintLastLog yes
Zeigt Datum und Zeit der letzten Anmeldung an. Gibt aufmerksamen Usern die
Möglichkeit, unbefugte Zugriffe zu erkennen.
|
# LogLevel INFO
Steuert das Ausmaß der in der Log-Datei dokumentierten Ereignisse.Bei Verdacht auf einen Angriff verwendet man temporär den Wert DEBUG. Eine 'fascist' Konfiguration dokumentiert alle transportierten Daten, erzeugt jedoch riesige Log-Dateien und verlangsamt den Server. |
|
# X11Forwarding no
Erlaubt den Transport von X11-Daten, d.h. von grafischen Fenstern über
die SSH-Verbindung.Für eine einfache Text-Konsole genügt no, für die bequeme Anwedung des grafischen User-Interface wird yes eingetragen. Um diese Möglichkeit zu nutzen, muss man sich am Client mit Option -X anmelden, z.B. # ssh -X root@192.168.0.1
Danach kann man an der Konsole jedes Programm starten, auch in mehreren Fenstern, z.B.
# konqueror&
# yast2& # firefox& |
●
Entfernte Server sind oft nur mit großem Aufwand zugänglich.
In diesem Fall ist SSH der wichtigste Dienst zur Steuerung des Servers und sollte
niemals ausfallen. Änderungen der SSH Konfiguration sind daher besonders heikel
und sehr sorgfältig zu kontrollieren. ● Jede Änderung wird erst durch einen Neustart des SSHD Servers in Betrieb gesetzt. Führen sie einen Restart nur dann durch, wenn sie eine garantiert funktionsfähige Sicherung der Konfigurations-Datei angelegt haben und diese notfalls mit einem anderen Dienst (FTP, Samba) austauschen können. ● Unmittelbar nach dem Neustart testet man die Funktion des SSHD-Servers, insbesondere die geƤnderten Funktionen. |