hosts.deny

Aus wiki.archlinux.de
Wechseln zu: Navigation, Suche


Update.png Dieser Artikel behandelt ein Programm oder ein Vorgehen, das durch iptables überholt wurde.


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)