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

Inhaltsverzeichnis
Vorwort
1 Einleitung
2 Die Installation
3 Erste Schritte
4 Linux als Workstation für Einsteiger
5 Der Kernel
6 Die Grundlagen aus Anwendersicht
7 Die Shell
8 Reguläre Ausdrücke
9 Konsolentools
10 Die Editoren
11 Shellskriptprogrammierung mit der bash
12 Die C-Shell
13 Benutzerverwaltung
14 Grundlegende Verwaltungsaufgaben
15 Netzwerkgrundlagen
16 Anwendersoftware für das Netzwerk
17 Netzwerkdienste
18 Mailserver unter Linux
19 LAMP
20 DNS-Server
21 Secure Shell
22 Die grafische Oberfläche
23 Window-Manager und Desktops
24 X11-Programme
25 Multimedia und Spiele
26 Prozesse und IPC
27 Bootstrap und Shutdown
28 Dateisysteme
29 Virtualisierung und Emulatoren
30 Softwareentwicklung
31 Crashkurs in C und Perl
32 Einführung in die Sicherheit
33 Netzwerksicherheit überwachen
A Lösungen zu den einzelnen Aufgaben
B Kommandoreferenz
C X11-InputDevices
D MBR
E Die Buch-DVDs
F Glossar
G Literatur
Stichwort

Download:
- ZIP, ca. 15,7 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Pl&ouml;tner, Steffen Wendzel
Das umfassende Handbuch
Buch: Linux

Linux
geb., mit 2 DVDs
1302 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1704-0
Pfeil 21 Secure Shell
  Pfeil 21.1 Das Protokoll
    Pfeil 21.1.1 SSH-Protokoll 1
    Pfeil 21.1.2 SSH-Protokoll 2
  Pfeil 21.2 Konfiguration eines OpenSSH-Servers
    Pfeil 21.2.1 Die /etc/ssh/sshd_config
  Pfeil 21.3 SSH nutzen
    Pfeil 21.3.1 Remote-Login
    Pfeil 21.3.2 Secure Copy
    Pfeil 21.3.3 Authentifizierung über Public-Key-Verfahren
    Pfeil 21.3.4 Secure File Transfer
    Pfeil 21.3.5 X11 Forwarding
    Pfeil 21.3.6 SSH Port Forwarding
  Pfeil 21.4 Zusammenfassung
  Pfeil 21.5 Aufgaben


Galileo Computing - Zum Seitenanfang

21.2 Konfiguration eines OpenSSH-Servers  Zur nächsten ÜberschriftZur vorigen Überschrift

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


Galileo Computing - Zum Seitenanfang

21.2.1 Die /etc/ssh/sshd_config  topZur vorigen Überschrift

Schauen wir uns also den ersten Teil der Konfiguration an:

# 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 21.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 ist es jedoch svinvoll, einen anderen Port für den Dienst zu wählen.

Security by Obscurity

Die meisten Port-Scanner 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 21.2  Protokolleinstellungen

Unterstützte Protokoll- versionen

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 21.3  Sicherheitseinstellungen

Eine recht wichtige Option ist UsePrivilegeSeparation, die nach dem erfolgreichen Einloggen die Kommunikation über einen Kindprozess 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 21.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 ein- 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 21.5  Rhosts

In diesen Zeilen wird unter anderem festgelegt, dass die .rhosts und .shosts im Home-Verzeichnis 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 21.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 21.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.


Des Weiteren 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. Sämtliche 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, Ausgabe 2011






Linux, Ausgabe 2011
Jetzt bestellen


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

 Buchempfehlungen
Zum Katalog: Linux-Server






 Linux-Server


Zum Katalog: Linux Hochverfügbarkeit






 Linux Hoch-
 verfügbarkeit


Zum Katalog: LPIC-1






 LPIC-1


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: openSUSE 11.2






 openSUSE 11.2


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2011
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