Update to r44524:

Finish editorial review of OpenSSH chapter.

Reviewed by:	bcr
Differential Revision:	https://reviews.freebsd.org/D6441
This commit is contained in:
Bjoern Heidotting 2016-05-18 19:57:52 +00:00
parent aea8b161eb
commit ca13a6bc6e
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48831

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/security/chapter.xml,v 1.178 2012/04/30 17:07:41 bcr Exp $
basiert auf: r44520
basiert auf: r44524
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="security">
<info><title>Sicherheit</title>
@ -2687,6 +2687,11 @@ COPYRIGHT 100% |*****************************| 4735
<option>user@host:&lt;path_to_remote_file&gt;</option>
besitzen.</para>
<para>Mit <command>sftp</command> können Dateien über eine
interaktive Sitzung kopiert werden. &man.sftp.1; beschreibt
die verfügbaren Befehle, die während einer
<command>sftp</command>-Sitzung zur Verfügung stehen.</para>
<sect3 xml:id="security-ssh-keygen">
<title>Schlüsselbasierte Authentifizierung</title>
@ -2808,8 +2813,8 @@ Identity added: /usr/home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
einen Tunnel zu erstellen, in dem ein anderes Protokoll
verschlüsselt übertragen wird.</para>
<para>Das folgende Kommando erzeugt einen Tunnel für
&man.telnet.1;:</para>
<para>Im folgenden Kommando erzeugt <command>ssh</command> einen
Tunnel für <command>telnet</command>:</para>
<screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>5023:localhost:23 user@foo.example.com</replaceable></userinput>
&prompt.user;</screen>
@ -2821,8 +2826,8 @@ Identity added: /usr/home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
<term><option>-2</option></term>
<listitem>
<para>Zwingt &man.ssh.1; dazu, die Version 2 des
Protokolls zu verwenden, um sich mit dem Server zu
<para>Zwingt <command>ssh</command> dazu, die Version 2
des Protokolls zu verwenden, um sich mit dem Server zu
verbinden.</para>
</listitem>
</varlistentry>
@ -2832,8 +2837,8 @@ Identity added: /usr/home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
<listitem>
<para>Zeigt an, dass ein Tunnel erstellt werden soll.
Ohne diese Option würde &man.ssh.1; eine normale Sitzung
öffnen.</para>
Ohne diese Option würde <command>ssh</command> eine
normale Sitzung öffnen.</para>
</listitem>
</varlistentry>
@ -2841,7 +2846,8 @@ Identity added: /usr/home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
<term><option>-f</option></term>
<listitem>
<para>Zwingt &man.ssh.1; im Hintergrund zu laufen.</para>
<para>Zwingt <command>ssh</command> im Hintergrund zu
laufen.</para>
</listitem>
</varlistentry>
@ -2869,26 +2875,24 @@ Identity added: /usr/home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
<para>Ein <acronym>SSH</acronym>-Tunnel erzeugt einen Socket
auf <systemitem>localhost</systemitem> und dem angegebenen
Port. Jede Verbindung, die auf dem angegebenen Socket
aufgemacht wird, wird dann auf den spezifizierten entfernten
Rechner und Port weitergeleitet.</para>
<para>Im Beispiel wird der Port <replaceable>5023</replaceable>
auf die entfernte Maschine und dort auf
<systemitem>localhost</systemitem> Port
<replaceable>23</replaceable> weitergeleitet. Da der Port
<replaceable>23</replaceable> für &man.telnet.1; reserviert
ist, erzeugt das eine sichere &man.telnet.1;-Verbindung durch
lokalen Port. Jede Verbindung, die auf dem angegebenen
Socket aufgemacht wird, wird dann auf den spezifizierten
entfernten Rechner und Port weitergeleitet. Im Beispiel wird
der lokale Port <literal>5023</literal> an die entfernte
Maschine auf Port <literal>23</literal> weitergeleitet. Da
der Port 23 für <command>telnet</command> reserviert ist,
erzeugt das eine sichere &man.telnet.1;-Verbindung durch
einen <acronym>SSH</acronym>-Tunnel.</para>
<para>Diese Vorgehensweise kann genutzt werden, um jedes
unsichere <acronym>TCP</acronym>-Protokoll wie
<para>Wie in den folgenden Beispielen zu sehen ist, kann diese
Vorgehensweise genutzt werden, um jedes unsichere
<acronym>TCP</acronym>-Protokoll, wie
<acronym>SMTP</acronym>, <acronym>POP3</acronym> und
<acronym>FTP</acronym> weiterzuleiten.</para>
<acronym>FTP</acronym>, weiterzuleiten.</para>
<example>
<title>Mit &man.ssh.1; einen sicheren Tunnel für
<acronym>SMTP</acronym> erstellen</title>
<title>Einen sicheren Tunnel für <acronym>SMTP</acronym>
erstellen</title>
<screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>5025:localhost:25 user@mailserver.example.com</replaceable></userinput>
user@mailserver.example.com's password: <userinput>*****</userinput>
@ -2898,11 +2902,11 @@ Connected to localhost.
Escape character is '^]'.
220 mailserver.example.com ESMTP</screen>
<para>Zusammen mit &man.ssh-keygen.1; und zusätzlichen
Benutzer-Accounts können leicht benutzbare SSH-Tunnel
aufgebaut werden. Anstelle von Passwörtern können
Schlüssel benutzt werden und jeder Tunnel kann unter einem
eigenen Benutzer laufen.</para>
<para>Zusammen mit <command>ssh-keygen</command> und
zusätzlichen Benutzer-Accounts können leicht benutzbare
<acronym>SSH</acronym>-Tunnel aufgebaut werden. Anstelle
von Passwörtern können Schlüssel benutzt werden und jeder
Tunnel kann unter einem eigenen Benutzer laufen.</para>
</example>
<example>
@ -2931,18 +2935,20 @@ user@ssh-server.example.com's password: <userinput>******</userinput></screen>
</example>
<example>
<title>Umgehen einer strengen Firewall</title>
<title>Umgehen einer Firewall</title>
<para>Einige Netzwerkadministratoren stellen sehr
drakonische Firewall-Regeln auf, die nicht nur einkommende
Verbindungen filtern, sondern auch ausgehende. Es kann
sein, dass Sie externe Maschinen nur über die Ports 22 und
80 (<acronym>SSH</acronym> und Web) erreichen.</para>
<para>Einige Firewalls filtern sowohl eingehende als auch
ausgehende Verbindungen. Zum Beispiel könnte eine
Firewall den Zugriff auf entfernte Rechner auf die Ports
22 und 80 beschränken, um lediglich <acronym>SSH</acronym>
und Web-Inhalte zu erlauben. Dies würde den Zugriff auf
Dienste verhindern, die nicht die Ports 22 oder 80
benutzen.</para>
<para>Die Lösung hier ist es, eine
<acronym>SSH</acronym>-Verbindung zu einer Maschine
außerhalb der Firewall aufzumachen und durch diese zum
gewünschten Dienst zu tunneln.</para>
gewünschten Dienst zu tunneln:</para>
<screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>8888:music.example.com:8000 user@unfirewalled-system.example.org</replaceable></userinput>
user@unfirewalled-system.example.org's password: <userinput>*******</userinput></screen>
@ -2965,20 +2971,42 @@ user@unfirewalled-system.example.org's password: <userinput>*******</userinput><
<secondary>aktivieren</secondary>
</indexterm>
<para>Um zu überprüfen, ob &man.sshd.8; auf dem System aktiviert
ist, suchen Sie in <filename>rc.conf</filename> nach der
folgenden Zeile:</para>
<para>Neben den integrierten
<acronym>SSH</acronym> Client-Werkzeugen, die zur Verfügung
stehen, kann ein &os;-System auch als
<acronym>SSH</acronym>-Server konfiguriert werden, um
Verbindungen von anderen <acronym>SSH</acronym>-Clients zu
akzeptieren.</para>
<para>Benutzen Sie den Kommando &man.service.8;, um zu prüfen
ob der <application>sshd</application> ausgeführt wird:</para>
<screen>&prompt.root; <userinput>service sshd status</userinput></screen>
<para>Wenn der Dienst nicht ausgeführt wird, fügen Sie folgende
Zeile in <filename>/etc/rc.conf</filename> ein:</para>
<programlisting>sshd_enable="YES"</programlisting>
<para>Ist diese Zeile vorhanden, wird &man.sshd.8;, der
<application>OpenSSH</application>-Daemon, beim
Systemstart automatisch aktiviert. Alternativ kann
<application>OpenSSH</application> auch über &man.service.8;
gestartet werden:</para>
<para>Diese Zeile startet <command>sshd</command>, den
<application>OpenSSH</application>-Daemon, beim nächsten
Systemstart. Geben Sie folgendes ein, um den Dienst jetzt
zu starten:</para>
<screen>&prompt.root; <userinput>service sshd start</userinput></screen>
<para>Wenn <command>sshd</command> erstmalig gestartet wird,
werden die Host-Schlüssel des Systems erzeugt und der
Fingerabdruck wird auf der Konsole angezeigt. Stellen Sie den
Fingerabdruck den Benutzern zur Verfügung, sodass sie ihn
überprüfen können, wenn sie das erste Mal eine Verbindung mit
dem Server herstellen.</para>
<para>&man.sshd.8; enthält die verfügbaren Optionen für den
Start von <command>sshd</command> und weitere Informationen
zur Authentifizierung, den Anmeldeprozess und die
verschiedenen Konfigurationsdateien.</para>
<para>Es ist in der Regel ein gute Idee, festzulegen, welche
Benutzer sich von welchem Rechner aus anmelden können.
Dies lässt sich beispielsweise über die Option
@ -3002,49 +3030,36 @@ user@unfirewalled-system.example.org's password: <userinput>*******</userinput><
<programlisting>AllowUsers root@192.168.1.32 admin</programlisting>
<note>
<para>Nur Benutzer, die in dieser Liste aufgeführt ist,
dürfen sich auf diesem Rechner anmelden.</para>
</note>
<para>Nachdem Sie <filename>/etc/ssh/sshd_config</filename>
angepasst haben, muss &man.sshd.8; seine Konfigurationsdateien
neu einlesen. Dazu geben Sie Folgendes ein:</para>
angepasst haben, muss <command>sshd</command> seine
Konfigurationsdateien neu einlesen. Dazu geben Sie Folgendes
ein:</para>
<screen>&prompt.root; <userinput>/etc/rc.d/sshd reload</userinput></screen>
</sect2>
<sect2>
<title>Konfiguration</title>
<note>
<para>Wenn die Option <literal>AllowUsers</literal> verwendet
wird, ist es wichtig, jeden Benutzer aufzulisten, der sich
an diesem Rechner anmelden muss. Benutzer, die nicht in
dieser Liste aufgeführt sind, dürfen sich nicht anmelden.
Die Optionen für die Konfigurationsdatei von
<application>OpenSSH</application> unterscheiden zwischen
Groß- und Kleinschreibung. Wenn Sie eine Option falsch
schreiben, so wird sie ingnoriert. Testen Sie immer
die Änderungen, um sicherzustellen, dass sie wie erwartet
funktionieren. Weitere Informationen zu den verfügbaren
Optionen finden Sie in &man.sshd.config.5;.</para>
</note>
<indexterm>
<primary>OpenSSH</primary>
<secondary>Konfiguration</secondary>
</indexterm>
<para>Die für das ganze System gültigen Konfigurationsdateien
des <application>OpenSSH</application>-Daemons und des
Clients befinden sich in <filename>/etc/ssh</filename>.</para>
<para>Die Client-Konfiguration befindet sich in
<filename>ssh_config</filename>, die des Servers befindet sich
in <filename>sshd_config</filename>. Für beide Dateien
existieren Manualpages, welche die einzelnen
Konfigurationsoptionen beschreiben.</para>
</sect2>
<sect2>
<title>Weiterführende Informationen</title>
<para><link
xlink:href="http://www.openssh.com/">OpenSSH</link></para>
<para>&man.ssh.1; &man.scp.1; &man.ssh-keygen.1;
&man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5; für
Client Optionen.</para>
<para>&man.sshd.8; &man.sftp-server.8; &man.sshd.config.5; für
Server Optionen.</para>
<tip>
<para>Verwechseln Sie nicht
<filename>/etc/ssh/sshd_config</filename> mit
<filename>/etc/ssh/ssh_config</filename> (beachten Sie das
zusätzliche <literal>d</literal> im ersten Dateinamen). Die
erste Datei konfiguriert den Server und die zweite Datei
konfiguriert den Client. &man.ssh.config.5; enthält eine
Auflistung der verfügbaren Client-Einstellungen.</para>
</tip>
</sect2>
</sect1>