Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Über die Autoren
Über dieses Buch
Linux vs. BSD
1 Der Kernel
2 Die Grundlagen aus Anwendersicht
3 Die Shell
4 Reguläre Ausdrücke
5 Tools zur Dateibearbeitung
6 Die Editoren
7 Shellskriptprogrammierung
8 Benutzerverwaltung
9 Grundlegende Verwaltungsaufgaben
10 Netzwerk-Grundlagen
11 Anwendersoftware für das Netzwerk
12 Netzwerkdienste
13 Mailserver unter Linux
14 LAMP
15 DNS-Server
16 Secure Shell
17 Die grafische Oberfläche
18 Window-Manager und Desktops
19 X11-Programme
20 Multimedia und Spiele
21 Softwareentwicklung
22 Crashkurs in C und Perl
23 Sicherheit
24 Prozesse und IPC
25 Bootstrap und Shutdown
26 Dateisysteme
27 Virtualisierung und Emulatoren
A Die Installation
B Lösungen zu den einzelnen Aufgaben
C Kommandoreferenz
D X11-InputDevices
E MBR
F Die Buch-DVDs
G Glossar
H Literatur

Download:
- ZIP, ca. 6,3 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Plötner, Steffen Wendzel
Das distributionsunabhängige Handbuch
Buch: Linux

Linux
2., aktualisierte und erweiterte Auflage
1119 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1090-4
gp 16 Secure Shell
  gp 16.1 Das Protokoll
    gp 16.1.1 SSH-Protokoll 1
    gp 16.1.2 SSH-Protokoll 2
  gp 16.2 Konfiguration eines OpenSSH-Servers
    gp 16.2.1 Die /etc/ssh/sshd_config
  gp 16.3 SSH nutzen
    gp 16.3.1 Remote-Login
    gp 16.3.2 Secure Copy
    gp 16.3.3 Authentifizierung über Public-Key-Verfahren
    gp 16.3.4 Secure File Transfer
    gp 16.3.5 X11 Forwarding
    gp 16.3.6 SSH-Port-Forwarding
  gp 16.4 Zusammenfassung
  gp 16.5 Aufgaben


Galileo Computing

16.2 Konfiguration eines OpenSSH-Servers  downtop

Viele Unix-Systeme haben bereits einen SSH-Server vorinstalliert, und bei den weit verbreiteten Unix-Derivaten Linux, Free-, Net- und OpenBSD handelt es sich dabei meist um OpenSSH. Aus diesem Grund wollen wir im Folgenden eine meist in /etc/ssh/sshd_config gespeicherte typische Konfigurationsdatei auszugsweise behandeln und danach entsprechend kommentieren.


Galileo Computing

16.2.1 Die /etc/ssh/sshd_config  toptop

Schauen wir uns also den ersten Teil der Konfiguration an:

# Package generated configuration file 
# See the sshd(8) manpage for defails 
 
# What ports, IPs and protocols we listen for 
Port 22 
# Use these options to restrict which interfaces/ 
# protocols sshd will bind to 
#ListenAddress :: 
#ListenAddress 0.0.0.0

Listing 16.1    Netzwerkeinstellungen

Hier legt man fest, auf welchem Port und gegebenenfalls auf welcher Adresse der SSH-Server Verbindungen entgegennehmen soll. Laut IANA ist Port 22 für SSH reserviert, manchmal macht es jedoch Sinn, einen anderen Port für den Dienst zu wählen.

Security by Obscurity

Die meisten Portscanner suchen nämlich alle (privilegierten) Ports unterhalb von 1024 sowie eben die durch die IANA festgelegten »Known Ports« ab. Wählt man beispielsweise einen entsprechend »hoch« gelegenen Port, der auch nicht in der /etc/services auftaucht, hat man relativ gute Chancen, unentdeckt zu bleiben.

Das ist natürlich keine Sicherheit im eigentlichen Sinne, aber man muss Hacker ja nicht mutwillig provozieren, wenn man diesen Dienst schon nach außen anbieten will oder muss.

Protocol 2 
# HostKeys for protocol version 2 
HostKey /etc/ssh/ssh_host_rsa_key 
HostKey /etc/ssh/ssh_host_dsa_key

Listing 16.2    Protokolleinstellungen

Unterstützte Protokollversionen

Im Folgenden kann man festlegen, welche Protokollversionen unterstützt werden sollen.

Das Beispiel aus dem vorhergehenden Listing beschränkt sich auf Version 2, aber theoretisch könnte man über die Direktive »1,2« auch beide Versionen unterstützen. Außerdem können hier die Dateien für die Ablage der privaten Schlüssel des Systems angegeben werden.

#Privilege Separation is turned on for security 
UsePrivilegeSeparation yes 
 
# ...but breaks Pam auth via kbdint, so we have to 
# turn it off Use PAM authentication via keyboard- 
# interactive so PAM modules can properly interface 
# with the user (off due to PrivSep) 
#PAMAuthenticationViaKbdInt no 
# Lifetime and size of ephemeral version 1 server key 
KeyRegenerationInterval 3600 
ServerKeyBits 768 
 
# Logging 
SyslogFacility AUTH 
LogLevel INFO

Listing 16.3    Sicherheitseinstellungen

Eine recht wichtige Option ist »UsePrivilegeSeparation«, die nach dem erfolgreichen Einloggen die Kommunikation über einen Kindprozesses des Servers laufen lässt, der mit den Rechten des eingeloggten Users gestartet wird. Außerdem können die Anzahl der Bits des Serverschlüssels sowie die Einstellungen für den syslogd vorgenommen werden.

# Authentication: 
LoginGraceTime 600 
PermitRootLogin yes 
StrictModes yes 
 
RSAAuthentication yes 
PubkeyAuthentication yes 
#AuthorizedKeysFile     %h/.ssh/authorized_keys

Listing 16.4    Authentifizierung

Methoden der Authentifizierung

Die Zahl nach LoginGraceTime gibt an, nach wie vielen Sekunden die Verbindung vom Server getrennt wird, falls sich der Benutzer nicht korrekt einloggen konnte. In der nächsten Zeile erlaubt man dann per PermitRootLogin das Login des Superusers über SSH.

Bis auf einige Ausnahmefälle ist es nämlich unnötig und damit ein potenzielles Sicherheitsrisiko, wenn sich root remote einloggen kann. Schließlich kann sich ein Administrator als ganz normaler Benutzer einloggen und dann per su oder sudo seine Aufgaben erledigen.

Über die Direktiven RSAAuthentication und PubkeyAuthentication lässt sich jeweils die Möglichkeit des Einloggens über ein asymmetrisches Schlüsselpaar für SSH-Protokoll 1 beziehungsweise SSH-Protokoll 2 an- und ausschalten.

#rhosts authentication should not be used 
#RhostsAuthentication no 
#Don't read the user's ~/.rhosts and ~/.shosts files 
IgnoreRhosts yes 
#For this to work you will also need host keys in 
#/etc/ssh_known_hosts 
RhostsRSAAuthentication no 
#similar for protocol version 2 
HostbasedAuthentication no 
#Uncomment if you don't trust ~/.ssh/known_hosts for 
#RhostsRSAAuthentication 
#IgnoreUserKnownHosts yes

Listing 16.5    Rhosts

In diesen Zeilen wird unter anderem festgelegt, dass die .rhosts und .shosts im Homeverzeichnis der Benutzer nicht für eine eventuell mögliche hostbasierte Authentifizierung verwendet werden. Da diese Authentifizierung an sich schon problematisch ist, sollte man diese Optionen, wie schon per Default festgelegt, besser nicht nutzen.

#To enable empty passwords, change to yes (NOT 
#RECOMMENDED) 
PermitEmptyPasswords no 
 
#Uncomment to disable s/key passwords 
#ChallengeResponseAuthentication no 
 
#To disable tunneled clear text passwords, change to 
#no here! 
PasswordAuthentication yes

Listing 16.6    Passwörter

Im ersten Abschnitt aus dem obigen Listing verbieten wir nun leere Passwörter und schalten gleichzeitig die Möglichkeit ein, sich mit einem Passwort einzuloggen. Würde man dagegen PasswordAuthentication auf no setzen, könnte man sich immer noch über Public-Key-Verfahren einloggen.

X11Forwarding no 
X11DisplayOffset 10 
PrintMotd no 
#PrintLastLog no 
KeepAlive yes 
#UseLogin no 
 
#MaxStartups 10:30:60 
#Banner /etc/issue.net 
#ReverseMappingCheck yes 
 
Subsystem       sftp    /usr/lib/sftp-server 
 
UsePAM yes

Listing 16.7    ... und der Rest

X11 Forwarding

Im letzten Teil der Konfigurationsdatei können wir einstellen, ob der SSH-Server X11Forwarding unterstützen soll. Haben der Server und der Client <Um das X11Forwarding beim Client zu aktivieren, muss entweder in dessen Konfigurationsdatei die Option ebenfalls aktiviert oder alternativ das ssh-Kommandozeilenprogramm mit dem Parameter -X gestartet werden.> beide dieses Feature aktiviert, so kann man per ssh auf dem Server ausgeführte X11-Anwendungen auf dem Client als Fenster darstellen und bedienen.

Mit anderen Worten: So ist durch das mögliche Tunneln grafischer Anwendungen über den verschlüsselten SSH-Zugang eine komplette und vor allem auch sichere Remote-Administration von Unix-Servern möglich.

Weiterhin wird auch das bereits erwähnte sftp-Subsystem aktiviert und die Nutzung des PAM-Systems zur Verifikation des Logins erlaubt.

Ein SSH-Server bietet also vor allem sicherheitsrelevante Einstellungen, auf die wir uns im letzten Abschnitt konzentriert haben. Wirklich alle Informationen (auch zu den von uns ausgeklammerten Direktiven) finden Sie auf der Manpage von sshd_config(5).



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Linux






 Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Einstieg in Linux






 Einstieg in Linux


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-
 Programmierung


Zum Katalog: Praxisbuch Netzwerk-Sicherheit






 Praxisbuch
 Netzwerk-Sicherheit


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de