Hosts.deny: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Wechseln zu: Navigation, Suche
(dep warn)
(7 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
{{SEITENTITEL:hosts.deny}}
 +
{{Warnung|Die Unterstützung des seit 1997 nicht mehr weiterentwickelten Systemprogramms <code>tcp_wrappers</code> wurde eingestellt. <code>hosts.deny</code> (sowie als auch <code>hosts.allow</code>) werden nicht mehr Unterstützt. Es wird empfohlen, stattdessen [[iptables]] zu verwenden.}}
 +
 +
 
Durch die Datei /etc/hosts.deny werden Zugriffe auf den eigenen Rechner gesperrt, sofern sie nicht durch /etc/hosts.allow erlaubt werden. Zuerst wird also überprüft, ob der Zugriff durch /etc/hosts.deny verboten ist, wenn ja, wird danach die Datei /etc/hosts.allow ausgewertet, ansonsten, wenn der Zugriff nicht verboten ist, wird er durchgelassen.
 
Durch die Datei /etc/hosts.deny werden Zugriffe auf den eigenen Rechner gesperrt, sofern sie nicht durch /etc/hosts.allow erlaubt werden. Zuerst wird also überprüft, ob der Zugriff durch /etc/hosts.deny verboten ist, wenn ja, wird danach die Datei /etc/hosts.allow ausgewertet, ansonsten, wenn der Zugriff nicht verboten ist, wird er durchgelassen.
  
 
Zuständig für die Auswertung der Dateien hosts.deny und hosts.allow ist der sogenannte TCP-Wrapper, der die Schnittstelle zu den einzelnen Anwendungen ist.  
 
Zuständig für die Auswertung der Dateien hosts.deny und hosts.allow ist der sogenannte TCP-Wrapper, der die Schnittstelle zu den einzelnen Anwendungen ist.  
  
Wie sieht nun eine hosts.deny aus, dazu mehrere Beispiele:
+
== Grundlegende Regelsyntax ==
  ALL: 192.168.12.3
+
Die Grundlegende Syntax lautet
 +
  daemon_list : client_list
 +
das heißt: eine Regel wird für eine Liste von Clients definiert, und gilt für eine Liste (oder auch nur einen Daemon). Statt alle Daemonen und Clients einzeln aufzulisten, kann auch ein Wildcard verwendet werden, das Wichtigste ist ALL, welches immer zutrifft.
  
bedeutet, dass von der IP: 192.168.12.3 überhaupt kein Zugriff mehr auf diesen Server erfolgen darf, es sei denn, es wird wieder durch die hosts.allow explizit erlaubt. ALL steht dabei für alle Protokolle!
+
== Globale Regeln ==
 +
Die restriktivste hosts.deny sieht folgendermaßen aus:
 +
ALL: ALL
  
Beispiel 2:
+
Dies würde jeglichen Zugriff sperren.
SSHD: ALL
+
  
bedeuted, dass Secured-Shell grundsätzlich von keinem Rechner mehr erreicht werden kann, es sei denn, es befindet sich in der hosts.allow z.B. folgender Eintrag:
+
Der erste Teil der Definition stellt den Dienst dar, für den der Zugriff geregelt wird. Der zweite Teil (also nach dem Doppelpunkt) beinhaltet die eigentlich Regel, also für welche Hosts diese Regel gilt.
 
+
  ALL: 192.168.12.3
  SSHD: 192.168.12.3 192.168.12.4
+
Dies würde den Zugriff von 192.168.12.3 auf alle Protokolle verweigern. Es können auch mehrere IPs angegeben werden, sowie Addressbereiche:
 
+
  ALL: 192.168.12.0/255.255.255.0 192.168.13.14
Zusammengefasst, werden nun alle Computer oder Server, abgewiesen, die über die Secured-Shell sich auf den Server einloggen wollen, außer den Computern mit der IP: 192.168.12.3 und 192.168.12.4
+
Somit würde der der Zugriff für das Subnetz 192.168.12. und den Host 192.168.13.14 verboten werden.
 
+
Um den Zugriff nur von der Domain domain.example zu erlauben, allen sonstigen Zugriff jedoch zu verweigern, müsste die Anweisung wie folgt aussehen:
Beispiel 3:
+
ALL: ALL EXCEPT .domain.example
hosts.deny:
+
Wie in diesem Beispiel zu sehen, können statt IPs auch Hostnamen und DNS-Netzwerke verwendet werden.
  SSHD: ALL
+
 
+
hosts.allow
+
SSHD: 88.31.0.0/255.255.0.0 88.32.0.0/255.255.0.0 192.168.12.3
+
 
+
Jetzt wirds kompliziert. Aufgrund der hosts.deny, werden zuerst mal alle Computer abgewiesen. Aufgrund der hosts.allow, werden alle Computer aus dem Segment 88.31.xxx.xxx sowie 88.32.xxx.xxx zugelassen! Dies eignet sich besonders für die Administration von außen, wenn der Admin aber eine Leitung benutzt, bei der er jeweils dynamische IPs zugewiesen bekommen hat. Außerdem wurde für den Notfall z.B. der interne Computer mit der IP 192.168.12.3 ebenfalls frei gegeben.
+
 
+
Innerhalb von kleineren Netzwerken, die nicht von Außen konsultiert werden, ist die manuelle  Pflege recht einfach. Wird jedoch ein Server auch für die Kommunikation nach außen bereit gestellt, ist zu beachten, dass leider nicht alle Abrufer auch wirklich kundenfreundlich sind! Da gibts Hacker, Faker usw. Also in diesem Fall, ist die Wartung dieser beiden Dateien extrem wichtig und auch sehr aufwendig. Und da sind folgende Komponenten wirklich zu empfehlen:
+
 
+
a) Snort als Intruder-Detection-System (erkennt und protokolliert die Einbrecher)
+
b) hosts-deny sperrt die in Snort erkannten Einbrecher für gewisse Zeitperioden aus
+
  
Sie finden das Produkt snort unter [http://www.snort.org] und hosts-deny finden Sie unter [http://www.hosts-deny.eu]
+
== Dienstspezifische Regeln ==
 +
Statt den Zugriff für alle Protokolle zu verbieten, kann eine Regel auch nur für einen einzelnen Dienst gültig sein:
 +
SSHD: ALL EXCEPT .domain.example
 +
würde den Zugriff auf den Secure Shell Daemon nur für Hosts der Domain domain.example erlauben; der Dienstname entspricht hierbei dem Dateinamen des Dienstes, also argv[0].
  
Snort®, Sourcefire™, the Snort logo and the Sourcefire logo are trademarks of Sourcefire. All other product names, company names, marks, logos, and symbols may be the trademarks of their respective owners.
+
== Siehe auch ==
hosts-deny ist ein Produkt von 1awww.com
+
* hosts_access(5)
  
[[Kategorie:Unvollständig]]
+
[[Kategorie:Sicherheit]]
 +
[[Kategorie:Netzwerk]]

Version vom 25. August 2012, 18:05 Uhr

Vorlage:Warnung


Durch die Datei /etc/hosts.deny werden Zugriffe auf den eigenen Rechner gesperrt, sofern sie nicht durch /etc/hosts.allow erlaubt werden. Zuerst wird also überprüft, ob der Zugriff durch /etc/hosts.deny verboten ist, wenn ja, wird danach die Datei /etc/hosts.allow ausgewertet, ansonsten, wenn der Zugriff nicht verboten ist, wird er durchgelassen.

Zuständig für die Auswertung der Dateien hosts.deny und hosts.allow ist der sogenannte TCP-Wrapper, der die Schnittstelle zu den einzelnen Anwendungen ist.

Grundlegende Regelsyntax

Die Grundlegende Syntax lautet

daemon_list : client_list

das heißt: eine Regel wird für eine Liste von Clients definiert, und gilt für eine Liste (oder auch nur einen Daemon). Statt alle Daemonen und Clients einzeln aufzulisten, kann auch ein Wildcard verwendet werden, das Wichtigste ist ALL, welches immer zutrifft.

Globale Regeln

Die restriktivste hosts.deny sieht folgendermaßen aus:

ALL: ALL

Dies würde jeglichen Zugriff sperren.

Der erste Teil der Definition stellt den Dienst dar, für den der Zugriff geregelt wird. Der zweite Teil (also nach dem Doppelpunkt) beinhaltet die eigentlich Regel, also für welche Hosts diese Regel gilt.

ALL: 192.168.12.3

Dies würde den Zugriff von 192.168.12.3 auf alle Protokolle verweigern. Es können auch mehrere IPs angegeben werden, sowie Addressbereiche:

ALL: 192.168.12.0/255.255.255.0 192.168.13.14

Somit würde der der Zugriff für das Subnetz 192.168.12. und den Host 192.168.13.14 verboten werden. Um den Zugriff nur von der Domain domain.example zu erlauben, allen sonstigen Zugriff jedoch zu verweigern, müsste die Anweisung wie folgt aussehen:

ALL: ALL EXCEPT .domain.example

Wie in diesem Beispiel zu sehen, können statt IPs auch Hostnamen und DNS-Netzwerke verwendet werden.

Dienstspezifische Regeln

Statt den Zugriff für alle Protokolle zu verbieten, kann eine Regel auch nur für einen einzelnen Dienst gültig sein:

SSHD: ALL EXCEPT .domain.example

würde den Zugriff auf den Secure Shell Daemon nur für Hosts der Domain domain.example erlauben; der Dienstname entspricht hierbei dem Dateinamen des Dienstes, also argv[0].

Siehe auch

  • hosts_access(5)