svn commit: r53689 - head/de_DE.ISO8859-1/books/handbook/firewalls
Bjoern Heidotting
bhd at FreeBSD.org
Sat Dec 14 20:12:21 UTC 2019
Author: bhd
Date: Sat Dec 14 20:12:21 2019
New Revision: 53689
URL: https://svnweb.freebsd.org/changeset/doc/53689
Log:
Translate Blacklistd chapter into german
Reviewed by: bcr
Differential Revision: https://reviews.freebsd.org/D22816
Modified:
head/de_DE.ISO8859-1/books/handbook/firewalls/chapter.xml
Modified: head/de_DE.ISO8859-1/books/handbook/firewalls/chapter.xml
==============================================================================
--- head/de_DE.ISO8859-1/books/handbook/firewalls/chapter.xml Fri Dec 13 21:07:06 2019 (r53688)
+++ head/de_DE.ISO8859-1/books/handbook/firewalls/chapter.xml Sat Dec 14 20:12:21 2019 (r53689)
@@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/firewalls/chapter.xml,v 1.53 2012/04/30 16:15:52 bcr Exp $
- basiert auf: r52944
+ basiert auf: r53425
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
@@ -3885,6 +3885,348 @@ LOG_ERR - packets which have been logged and which can
getrennt durch einen Schrägstrich. Beispielswiese
<literal>icmp 3/3</literal> für die Nachricht
<foreignphrase>Port unreachable</foreignphrase>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 xml:id="firewalls-blacklistd">
+ <title>Blacklistd</title>
+
+ <para>Blacklistd ist ein Daemon der auf Sockets lauscht, um
+ Benachrichtigungen von anderen Daemons über fehlgeschlagene
+ oder erfolgreiche Verbindungsversuche zu erhalten. Dieser
+ Daemon wird häufig verwendet, um zu viele Verbindungsversuche
+ auf offenen Ports zu blockieren. Ein Beispiel ist
+ <application>SSH</application>, das viele Anfragen von Bots oder
+ Skripten erhält, die versuchen, Passwörter zu erraten und
+ Zugriff zu erhalten. Mit Hilfe von
+ <application>blacklistd</application> kann der Daemon
+ die Firewall benachrichtigen, eine Filterregel zu erstellen, um
+ übermäßige Verbindungsversuche einer einzigen Quelle nach einer
+ Reihe von Versuchen zu blockieren. Blacklistd wurde
+ ursprünglich auf NetBSD entwickelt und erschien dort in der
+ Version 7. &os; 11 hat blacklistd von NetBSD
+ importiert.</para>
+
+ <para>In diesem Kapitel wird die Einrichtung und Konfiguration
+ von blacklistd besprochen. Sie finden aber auch Beispiele für
+ die Verwendung von blacklistd. Sie sollten allerdings mit
+ grundlegenden Firewall-Konzepten wie Filterregeln vertraut sein.
+ Weitere Informationen finden Sie im Kapitel Firewalls. In
+ diesen Beispielen wird PF benutzt, aber auch andere unter &os;
+ verfügbare Firewalls sollten in der Lage sein mit blacklistd
+ zusammen zu arbeiten.</para>
+
+ <sect2>
+ <title>Blacklistd aktivieren</title>
+
+ <para>Die Konfiguration für blacklistd wird in
+ &man.blacklistd.conf.5; gespeichert. Um das Laufzeitverhalten
+ von blacklistd zu beeinflussen, sind verschiedene
+ Kommandozeilenoptionen verfügbar. Die permanente
+ Konfiguration über Neustarts hinweg sollte in
+ <filename>/etc/blacklistd.conf</filename> gespeichert
+ werden. Um den Daemon während des Systemstarts zu aktivieren,
+ fügen Sie eine Zeile <literal>blacklistd_enable</literal> in
+ <filename>/etc/rc.conf</filename> hinzu:</para>
+
+ <screen>&prompt.root; <userinput>sysrc blacklistd_enable=yes</userinput></screen>
+
+ <para>Sie können den Daemon auch manuell starten:</para>
+
+ <screen>&prompt.root; <userinput>service blacklistd start</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Erstellen von Blacklistd-Regeln</title>
+
+ <para>Die Regeln für blacklistd werden in
+ &man.blacklistd.conf.5; mit einem Eintrag pro Zeile
+ konfiguriert. Jede Regel enthält ein Tupel, das durch
+ Leerzeichen oder Tabulator getrennt ist. Eine Regel gilt
+ entweder für einen lokalen oder einen
+ entfernten Rechner.</para>
+
+ <sect3>
+ <title>Lokale Regeln</title>
+
+ <para>Ein typischer Eintrag für eine lokale Regel in
+ <filename>/etc/blacklistd.conf</filename> sieht wie
+ folgt aus:</para>
+
+ <programlisting>[local]
+ssh stream * * * 3 24h</programlisting>
+
+ <para>Alle Regeln, die dem Abschnitt
+ <literal>[local]</literal> folgen, werden als lokale Regeln
+ behandelt, die für den lokalen Rechner gelten. In einem
+ <literal>[remote]</literal>-Abschnitt gelten alle Regeln für
+ entfernte Maschinen.</para>
+
+ <para>Die sieben Felder einer Regel werden entweder durch
+ Tabulator oder Leerzeichen getrennt. Die ersten vier Felder
+ identifizieren den Netzwerkverkehr, welcher geblockt werden
+ soll. Die drei folgenden Felder definieren das Verhalten
+ von blacklistd. Wildcards werden mit einem Sternchen
+ (<literal>*</literal>) gekennzeichnet und stimmen mit allen
+ anderen in diesem Feld überein. Das erste Feld definiert
+ den Standort. In den lokalen Regeln sind dies die Ports.
+ Die Syntax ist wie folgt:</para>
+
+ <programlisting>[<replaceable>address</replaceable>|<replaceable>interface</replaceable>][/<replaceable>mask</replaceable>][:<replaceable>port</replaceable>]</programlisting>
+
+ <para>Adressen können als IPv4 im numerischen Format oder IPv6
+ in eckigen Klammern angegeben werden. Ebenfalls kann der
+ Name der Schnittstelle wie
+ <literal><replaceable>em0</replaceable></literal> verwendet
+ werden.</para>
+
+ <para>Im zweiten Feld wird der Socket-Typ definiert.
+ TCP-Sockets sind vom Typ <literal>stream</literal>,
+ wohingegen UDP als <literal>dgram</literal> bezeichnet wird.
+ Das obige Beispiel verwendet TCP, weil SSH dieses Protokoll
+ benutzt.</para>
+
+ <para>Im dritten Feld kann ein Protokoll definiert werden.
+ Die folgenden Protokolle können verwendet werden:
+ <literal>tcp</literal>, <literal>udp</literal>,
+ <literal>tcp6</literal>, <literal>udp6</literal> oder
+ numerisch. Eine Wildcard, wie im Beispiel, wird
+ typischerweise verwendet, um alle Protokolle abzubilden, es
+ sei denn, es gibt einen Grund, den Verkehr nach einem
+ bestimmten Protokoll zu differenzieren.</para>
+
+ <para>Im vierten Feld wird der effektive Benutzer oder
+ Eigentümer des Daemon-Prozesses definiert, welcher das
+ Ereignis meldet. Hier kann der Benutzer oder die
+ <acronym>UID</acronym> sowie eine Wildcard verwendet
+ werden (siehe Beispiel oben).</para>
+
+ <para>Der Name der Firewallregel wird im fünften Feld
+ definiert. In der Voreinstellung setzt blacklistd
+ alle geblockten Pakete unter einen pf-Anker namens
+ <literal>blacklistd</literal> in
+ <filename>pf.conf</filename> wie folgt:</para>
+
+ <programlisting>anchor "blacklistd/*" in on $ext_if
+block in
+pass out</programlisting>
+
+ <para>Für separate Blacklists kann in diesem Feld ein
+ Ankername benutzt werden. In anderen Fällen genügt eine
+ Wildcard. Ein Name mit vorangestelltem Bindestrich
+ (<literal>-</literal>) bedeutet, das ein Anker mit dem
+ voreingestellten Regelnamen verwendet werden sollte. Ein
+ modifiziertes Beispiel von oben mit dem Bindestrich würde
+ so aussehen:</para>
+
+ <programlisting>ssh stream * * -ssh 3 24h</programlisting>
+
+ <para>Mit einer solchen Regel werden alle neuen
+ Blacklistregeln zu einem Anker namens
+ <literal>blacklistd-ssh</literal> hinzugefügt.</para>
+
+ <para>Um ganze Subnetze für eine einzelne Regelverletzung zu
+ blockieren, kann ein <literal>/</literal> im Regelnamen
+ benutzt werden. Dadurch wird der verbleibende Teil des
+ Namens als Maske interpretiert, die auf die in der Regel
+ angegebene Adresse angewendet wird. Diese Regel würde
+ beispielsweise jede Adresse blockieren, die an
+ <literal>/24</literal> angrenzt:</para>
+
+ <programlisting>22 stream tcp * */24 3 24h</programlisting>
+
+ <note>
+ <para>Es ist wichtig, hier das richtige Protokoll anzugeben.
+ IPv4 und IPv6 behandeln <literal>/24</literal>
+ unterschiedlich, deshalb kann <literal>*</literal> im
+ dritten Feld für diese Regel nicht benutzt werden.</para>
+ </note>
+
+ <para>Diese Regel bewirkt, dass, wenn ein Rechner in
+ diesem Netzwerk wegen seines Verhaltens blockiert wird,
+ auch alle anderen Rechner aus diesem Netzwerk blockiert
+ werden.</para>
+
+ <para>Das sechste Feld, genannt <literal>nfail</literal>, legt
+ die Anzahl der Anmeldeversuche fest, die erforderlich sind,
+ um die betreffende IP auf die Blacklist zu setzen. Eine
+ Wildcard an dieser Stelle bedeutet, dass niemals geblockt
+ wird. Im obigen Beispiel ist eine Anzahl von 3 definiert,
+ was bedeutet, dass die IP nach drei fehlgeschlagenen
+ Anmeldeversuchen über <application>SSH</application>
+ gesperrt wird.</para>
+
+ <para>Das letzte Feld in der Regel gibt an, wie lange ein
+ Rechner auf der Blacklist steht. Die Standardeinheit ist
+ Sekunden, aber Suffixe wie <literal>m</literal> (Minuten),
+ <literal>h</literal> (Stunden) und <literal>d</literal>
+ (Tage) können auch angegeben werden.</para>
+
+ <para>Die Regel im Beispiel besagt, dass nach dreimaliger
+ Authentifizierung über <application>SSH</application> eine
+ neue PF-Regel für diesen Rechner angelegt wird. Beim
+ Überprüfen der Regeln werden zuerst lokale Regeln, von sehr
+ spezifisch bis am wenigsten spezifisch, geprüft. Wenn eine
+ Übereinstimmung auftritt, werden die
+ <literal>remote</literal>-Regeln angewendet und die Felder
+ <literal>name</literal>, <literal>nfail</literal> und
+ <literal>disable</literal> werden durch die entsprechende
+ <literal>remote</literal>-Regel geändert.</para>
+
+ </sect3>
+
+ <sect3>
+ <title>Remote-Regeln</title>
+
+ <para>Mit Remote-Regeln wird das Verhalten von blacklistd, in
+ Abhängigkeit vom aktuell ausgewerteten Remote-Rechner,
+ festgelegt. Die einzelnen Felder einer Remote-Regel sind
+ identisch mit den Feldern einer lokalen Regel. Der einzige
+ Unterschied besteht darin, wie blacklistd sie verwendet.
+ Zur besseren Verständlichkeit wird folgende Regel
+ benutzt:</para>
+
+ <programlisting>[remote]
+203.0.113.128/25 * * * =/25 = 48h</programlisting>
+
+ <para>Das Adressfeld kann eine IP-Adresse (entweder v4 oder
+ v6), einen Port oder beides beinhalten. Dies ermöglicht es,
+ wie in diesem Beispiel, spezielle Regeln für einen
+ bestimmten entfernten Adressbereich festzulegen. Die Felder
+ für den Socket-Typ, Protokoll und Besitzer werden genauso
+ wie in den lokalen Regeln interpretiert.</para>
+
+ <para>Die Felder für den Namen sind jedoch unterschiedlich.
+ Das Gleichheitszeichen (<literal>=</literal>) in einer
+ Remote-Regel weist blacklistd an, den Wert aus der
+ entsprechenden lokalen Regel zu verwenden. Das bedeutet,
+ dass der Eintrag der Firewall-Regel übernommen und das
+ Präfix <systemitem class="netmask">/25</systemitem> (eine
+ Netzmaske von <systemitem
+ class="netmask">255.255.255.128</systemitem>) hinzugefügt
+ wird. Wenn eine Verbindung aus diesem Adressbereich
+ geblockt wird, ist das gesamte Subnetz betroffen. Ein
+ PF-Ankername kann auch hier verwendet werden. In diesem
+ Fall fügt blacklistd Regeln für diesen Adressbereich dem
+ Namen des Ankers hinzu. Die Standardtabelle wird verwendet,
+ wenn eine Wildcard angegeben wird.</para>
+
+ <para>Für eine Adresse kann im Feld <literal>nfail</literal>
+ die Anzahl von Fehlversuchen definiert werden. Dies ist
+ nützlich für Ausnahmen, um weniger strenge Anwendungen zu
+ ermöglichen, oder um Anmeldeversuche ein wenig nachsichtiger
+ zu gestalten. Die Sperrung wird aufgehoben, wenn im
+ sechsten Feld eine Wildcard benutzt wird.</para>
+
+ <para>Remote-Regeln ermöglichen eine strengere Durchsetzung
+ der Beschränkungen bei Anmeldeversuchen im Vergleich zu
+ Anmeldeversuchen die aus dem lokalen Netzwerk kommen.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Blacklistd Client Konfiguration</title>
+
+ <para>Es gibt einige Softwarepakete in &os;, die die
+ Funktionalität von blacklistd nutzen können. Die beiden
+ bekanntesten sind &man.ftpd.8; und &man.sshd.8;. Beide
+ Programme nutzen blacklistd, um übermäßige Verbindungsversuche
+ zu unterbinden. Um blacklistd im SSH-Daemon zu aktivieren,
+ muss folgend Zeile in
+ <filename>/etc/ssh/sshd_config</filename> hinzugefügt
+ werden:</para>
+
+ <programlisting>UseBlacklist yes</programlisting>
+
+ <para>Damit die Änderungen wirksam werden, muss sshd im
+ Anschluss neu gestartet werden.</para>
+
+ <para>Für &man.ftpd.8; wird blacklistd mit dem Schalter
+ <literal>-B</literal> aktiviert. Entweder in
+ <filename>/etc/inetd.conf</filename> oder in
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>ftpd_flags="-B"</programlisting>
+
+ <para>Das ist alles, was benötigt wird, damit diese Programme
+ mit blacklist kommunizieren.</para>
+ </sect2>
+
+ <sect2>
+ <title>Blacklistd Verwaltung</title>
+
+ <para>Blacklistd stellt dem Benutzer das Verwaltungswerkzeug
+ &man.blacklistctl.8; zur Verfügung. Es zeigt blockierte
+ Adressen und Netzwerke an, die nach den in
+ &man.blacklistd.conf.5; definierten Regeln auf der Blacklist
+ stehen. Um die Liste der aktuell blockierten Rechner
+ anzuzeigen, benutzen Sie <command>dump</command> zusammen mit
+ der Option <option>-b</option>:</para>
+
+ <screen>&prompt.root; <userinput>blacklistctl dump -b</userinput>
+ address/ma:port id nfail last access
+213.0.123.128/25:22 OK 6/3 2019/06/08 14:30:19</screen>
+
+ <para>Dieses Beispiel zeigt, dass es sechs von drei erlaubten
+ Anmeldeversuchen auf Port 22 aus dem Adressbereich <systemitem
+ class="netmask">213.0.123.128/25</systemitem> gab. Es sind
+ mehr Versuche aufgelistet, als erlaubt sind, da SSH es einem
+ Client erlaubt, mehrere Anmeldungen über eine einzige
+ TCP-Verbindung zu tätigen. Eine derzeit laufende Verbindung
+ wird nicht von blacklistd unterbunden. Der letzte
+ Verbindungsversuch ist in der letzten Spalte der Ausgabe
+ aufgeführt.</para>
+
+ <para>Um die verbleibende Zeit zu sehen, die sich dieser Rechner
+ auf der Blacklist befindet, fügen Sie <option>-r</option> zum
+ vorherigen Befehl hinzu:</para>
+
+ <screen>&prompt.root; <userinput>blacklistctl dump -br</userinput>
+ address/ma:port id nfail remaining time
+213.0.123.128/25:22 OK 6/3 36s</screen>
+
+ <para>In diesem Beispiel bleiben noch 36 Sekunden, bis dieser
+ Rechner nicht mehr blockiert wird.</para>
+ </sect2>
+
+ <sect2>
+ <title>Rechner aus der Blocklist entfernen</title>
+
+ <para>Manchmal ist es notwendig, einen Rechner aus der Blocklist
+ zu entfernen, bevor die verbleibende Zeit abgelaufen ist.
+ Leider bietet blacklistd keine Möglichkeit dies zu tun. Es
+ ist jedoch möglich, die Adresse mit <command>pfctl</command>
+ aus der PF-Tabelle zu entfernen. Für den blockierten Port
+ gibt es einen untergeordneten Anker innerhalb des definierten
+ blacklistd-Ankers in <filename>/etc/pf.conf</filename>. Wenn
+ es beispielsweise einen untergeordneten Anker zum Blockieren
+ von Port 22 gibt, wird dieser als
+ <literal>blacklistd/22</literal> bezeichnet. In diesem
+ untergeordneten Anker befindet sich eine Tabelle, die die
+ blockierten Adressen enthält. Diese Tabelle wird Port
+ genannt, gefolgt von der Portnummer. In diesem Beispiel würde
+ es <literal>port22</literal> heißen. Mit diesen Informationen
+ und &man.pfctl.8; ist es nun möglich, alle geblockten Adressen
+ anzuzeigen:</para>
+
+ <screen>&prompt.root; <userinput>pfctl -a <replaceable>blacklistd/22</replaceable> -t <replaceable>port22</replaceable> -T show</userinput>
+...
+213.0.123.128/25
+...</screen>
+
+ <para>Nachdem Sie die entsprechende Adresse ermittelt wurde,
+ kann sie mit folgendem Befehl aus der Liste entfernt
+ werden:</para>
+
+ <screen>&prompt.root; <userinput>pfctl -a <replaceable>blacklistd/22</replaceable> -T delete <replaceable>213.0.123.128/25</replaceable></userinput></screen>
+
+ <para>Die Adresse ist nun aus PF entfernt, erscheint aber immer
+ noch in der Liste von <command>blacklistctl</command>, da
+ dieser keine Kenntnis von Änderungen an PF hat. Der Eintrag
+ in blacklist's Datenbank wird irgendwann ablaufen und dann aus
+ der Ausgabe entfernt werden. Der Eintrag wird wieder
+ hinzugefügt, falls der Rechner erneut gegen eine der Regeln
+ von blacklistd verstößt.</para>
</sect2>
</sect1>
</chapter>
More information about the svn-doc-all
mailing list