Entwicklungsumgebung/SSH Server: Unterschied zwischen den Versionen

Aus Delixs
Zur Navigation springen Zur Suche springen
(fertig)
 
(15 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
__NOTOC__
__NOTOC__
{{zumTest}}
{{EditStatus|1|Schoffer}}  




Zeile 14: Zeile 14:


Testen Sie nun, indem Sie sich als Nutzer direkt am SSH-Server anmelden.
Testen Sie nun, indem Sie sich als Nutzer direkt am SSH-Server anmelden.


:[[Bild:SSH-client1.PNG|ssh-Anmeldung]]
:[[Bild:SSH-client1.PNG|ssh-Anmeldung]]
Zeile 40: Zeile 41:
* '''~/.ssh/config''' - die lokale Konfiguration des SSH-Clients
* '''~/.ssh/config''' - die lokale Konfiguration des SSH-Clients
* '''~/.ssh/known_hosts''' - die akzeptierten public-Keys des SSH-Clients
* '''~/.ssh/known_hosts''' - die akzeptierten public-Keys des SSH-Clients


=== SSH-Client ===
=== SSH-Client ===
Zeile 45: Zeile 47:
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.
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.
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 "'''[[Entwicklungsumgebung/Dateiliste/ssh config|/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.
'''Hinweis:''' Diese Clienteinstellungen werden Sie später brauchen, um sich vom delixs-Server aus auf anderen Server anmelden zu können.


=== SSH-Server ===
=== 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:
Die Einstellungen für den SSH-Server finden Sie in der Datei "'''[[Entwicklungsumgebung/Dateiliste/sshd config|/etc/ssh/sshd_config]]'''". Einige ausgewählte Einstellungen für den SSH-Server sind:


* Port 22 - der Port, auf dem der Server hört,
* Port 22 - der Port, auf dem der Server hört,
Zeile 60: Zeile 63:
* UsePAM yes - Die Authentifizierung erfolgt über PAM
* UsePAM yes - Die Authentifizierung erfolgt über PAM


In die Datei "/etc/ssh/sshd_config" kommen noch 2 Einträge zum sperren von massenhaften Anmeldeversuchen und das Verbot einer direkten "root"-Anmeldung:
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 "'''[[Entwicklungsumgebung/Dateiliste/sshd config|/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
   MaxAuthTries 4
Zeile 66: Zeile 75:
   PermitRootLogin no
   PermitRootLogin no


Um dennoch als "root" aus der Ferne arbeiten zu können, melden Sie sich mit einer anderen Nutzerkennung an und werden danach mittels Befehl <code>su -</code> zum root.
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 <code>su -</code> zum root.




Zeile 73: Zeile 82:
   /etc/init.d/ssh restart
   /etc/init.d/ssh restart


'''Zusatz:''' Den Anmeldetext können Sie auch frei verändern. Er ist in der Datei "/etc/motd" abgelegt.
'''Zusatz:''' Den Anmeldetext für eine SSH-Anmeldung können Sie auch frei verändern. Er ist in der Datei "'''[[Entwicklungsumgebung/Dateiliste/motd|/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.




Zeile 88: Zeile 116:


----
----
<div align="right">[[Delixs:Entwicklungsumgebung|zurück]] | [[Hauptseite]]</div>
<div align="right">[[Installation:Entwicklungsumgebung|zurück]] | [[Hauptseite]]</div>
 
Uwe Schoffer 2009
 
[[Kategorie:DebianSqueeze]]

Aktuelle Version vom 28. März 2011, 19:39 Uhr


Diese Seite ist momentan eine Baustelle im Zustand: 1

Wird bearbeitet von: Schoffer
Hilfe zum Bearbeitungsstatus: Hilfe:Status eines Artikels


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.


ssh-Anmeldung
Abbildung: ssh-Anmeldung


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



zurück | Hauptseite

Uwe Schoffer 2009