Entwicklungsumgebung/SSH Server
Diese Seite ist momentan eine Baustelle im Zustand: 1
-
0
-
1
-
2
-
3
-
4
SSH-Server
Installation von SSH
Haben Sie später einmal keinen ständigen direkten Zugang zu Ihrem Server, müssen Sie diesen sinnvoller Weise fernwarten können. Solche Verbindungen aus der Ferne sollten aber grundsätzlich verschlüsselt werden. SSH - die Secure SHell - ist das Mittel dafür. Wir werden den freien OpenSSH installieren und verwenden.
Installieren Sie das Metapakt, bestehend aus openssh-server, openssh-client und openssh-blacklist mit dem Befehl:
aptitude install ssh
Testen Sie nun, indem Sie sich als Nutzer direkt am SSH-Server anmelden.
Die ssh-Anmeldung passiert als Nutzer "sysadm" direkt am eigenen Rechner "localhost" mittels:
ssh sysadm@localhost
wobei Sie bei der allerersten Anmeldung gefragt werden, ob der key akzeptiert werden soll. Beantworten Sie diese Frage mit "yes" (ausgeschrieben) und dem vergebenen Passwort. Abmelden können Sie sich mittels "exit" später wieder.
Ist diese Anmeldung erfolgreich verlaufen, arbeiten sowohl ssh-client als auch ssh-Server wie gewünscht.
Oft finden Sie noch 3-DES als Standardalgorithmus vor, der zwar sicher aber auch sehr langsam ist. Schnellere Algorithmen, wie AES oder Blowfish sind daher vorzuziehen.
Von DES ist abzuraten, weil er inzwischen innerhalb weniger Sekunden geknackt werden kann. Unser SSH muss also noch konfiguriert werden.
Konfiguration von SSH
Es gibt mehrere Dateien zur Konfiguration von SSH:
- /etc/ssh/sshd_config - die Konfiguration des SSH-Servers
- /etc/ssh/ssh_config - die globale Konfiguration des SSH-Clients
- ~/.ssh/config - die lokale Konfiguration des SSH-Clients
- ~/.ssh/known_hosts - die akzeptierten public-Keys des SSH-Clients
SSH-Client
Das Verzeichnis ".ssh" wird durch den ssh-Client automatisch bei der ersten Anmeldung mittels ssh erstellt. Darin befindet sich die Datei "known_hosts", in die auch automatisch alle von Ihnen akzeptierten public-Keys gespeichert werden.
Solange keine Datei "config" im Verzeichnis ".ssh" eines Nutzers existiert, wird automatisch die globale Konfiguration verwendet. Eine angepasste eigene Konfiguration für einen Nutzer können Sie ganz einfach durch kopieren der Datei "/etc/ssh/ssh_config" als "~/.ssh/config" erzeugen und diese dann nach eigenen Wünschen verändern.
Hinweis: Diese Clienteinstellungen werden Sie später brauchen, um sich vom delixs-Server aus auf anderen Server anmelden zu können.
SSH-Server
Die Einstellungen für den SSH-Server finden Sie in der Datei "/etc/ssh/sshd_config". Einige ausgewählte Einstellungen für den SSH-Server sind:
- Port 22 - der Port, auf dem der Server hört,
- Protocol 2 - Das Protokoll SSH-Version-2 kurz SSHv2, nutzen Sie keinesfalls mehr SSHv1,
- LoginGraceTime 30 - Die Zeit in Sekunden, in der ein Anmeldeversuch abgeschlossen werden muss,
- PermitRootLogin no - der Nutzer root darf sich nicht direkt anmelden,
- PermitEmptyPasswords no - Nutzer ohne Passwort dürfen sich nicht anmelden
- UsePAM yes - Die Authentifizierung erfolgt über PAM
Vor der Veränderung einer Datei sollte immer eine Sicherheitskopie angelegt werden
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
damit eventuell später der originale Zustand wieder hergestellt werden kann.
In die Datei "/etc/ssh/sshd_config" müssen zum Sperren von massenhaften Anmeldeversuchen und dem Verbot einer direkten "root"-Anmeldung noch ein Eintrag hinzugefügt (MaxAuthTries) bzw. verändert werden:
MaxAuthTries 4 LoginGraceTime 30 PermitRootLogin no
Um dennoch als "root" aus der Ferne arbeiten zu können, melden Sie sich künftig immer mit einer anderen Nutzerkennung an und werden danach erst mittels Befehl su -
zum root.
Damit alle geänderten Einstellungen übernommen werden, starten Sie noch den SSH-Server neu:
/etc/init.d/ssh restart
Zusatz: Den Anmeldetext für eine SSH-Anmeldung können Sie auch frei verändern. Er ist in der Datei "/etc/motd" abgelegt. Auch hier gilt es, vorher eine Sicherheitskopie anzulegen.
mv /etc/motd /etc/motd.orig touch /etc/motd mcedit /etc/motd
Und nun können Sie den Text anpassen:
delixs-Schulserver alix 2.6.26-2-686
Diese eine Zeile sollte völlig ausreichend sein.
SSH als Nutzer root
Damit ein ssh-login funktioniert muss root der Zugang erlaubt werden:
sed -i '/^PermitRoot/{s#no#yes#}' /etc/ssh/sshd_config service ssh restart
Achtung: Dieser "root"-Zugang sollte nur in einer nicht produktiven Entwicklungsumgebung freigegeben werden.
Weblinks
- http://www.debian.de
- http://debiananwenderhandbuch.de
- http://wiki.debianforum.de/
- http://www.debianforum.de/forum/
- http://wiki.debianforum.de/SSH_mit_Key
- http://wiki.debianforum.de/SshLoginInKaefig
- http://wiki.debianforum.de/SSH_absichern
Uwe Schoffer 2009