Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Dec 2019 20:12:21 +0000 (UTC)
From:      Bjoern Heidotting <bhd@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org
Subject:   svn commit: r53689 - head/de_DE.ISO8859-1/books/handbook/firewalls
Message-ID:  <201912142012.xBEKCLAB046908@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;&nbsp;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>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201912142012.xBEKCLAB046908>