IT-MÜCKE

Linux: mittels hosts.allow und hosts.deny IP-Adressen sperren

Beitragsdatum 15.11.2016
Letzte Aktualisierung
Betrifft Linux allgemein

Aufgabe/Problem

  • Sollen bestimmte IP-Adressen oder Netzbereiche für den Zugriff auf einen Server gesperrt werden, so gibt es mehrere Möglichkeiten:
    • iptables ist eine komplexe Firewall
    • Über die .htaccess IPs für den Zugriff auf den Webserver sperren
    • Über die Dateien /etc/hosts.allow und /etc/hosts.deny IPs für einige Dienste sperren
  • In diesem Beitrag spreche ich die letztgenannte Möglichkeit an

Hintergrund

  • Mit den Dateien /etc/hosts.allow und /etc/hosts.deny steuert man den Zugriff von anderen Servern auf den eigenen Server
  • Dabei können Hostnamen oder IP-Adressen gesperrt werden
  • Auch Netzbereiche lassen sich sperren
  • Details dazu finden Sie u.a. in der man-page zu hosts.deny
    man hosts.deny
  • Allerdings funktioniert das nur mit bestimmten Diensten, die diese Methode unterstützen - Apache von sich aus kann damit nicht arbeiten. Die Folge: über diese Methode gesperrte IPs können dennoch ungehindert auf den Webserver zugreifen!

Praktische Beispiele

  • Als erstes sollte der localhost in /etc/hosts.allow eingetragen werden, damit der sich nicht selbst aussperren kann:
    ALL: 127.0.0.1,localhost
  • Hier gehören zusätzlich weitere IPs/Full Qualified Domain Names hinein, die immer Zugriff erhalten sollen
  • Folgende Einträge sind in der /etc/hosts.deny möglich und dienen zum Sperren von IP-Adressen oder Netzbereichen:
    # IP 1.2.3.4 komplett sperren:
    ALL: 1.2.3.4
    
    # Alle Adressen im Netz 4.5.6.x sperren (Netzmaske 4.5.6.0/24)
    # Jede der Zeilen ist eine mögliche Eingabeform und bewirken das gleiche:
    ALL: 4.5.6.
    ALL: 4.5.6.0/24
    ALL: 4.5.6.0/255.255.255.0
  • Es besteht die Möglichkeit die Sperren einzuschränken - in diesen Beispielen sperre ich alles aus (erkennbar am ALL). Für Details siehe man-Page zu hosts.deny.
  • Seien Sie aber vorsichtig: Sie können sich versehentlich selbst aussperren! Schalten Sie daher Ihre eigene IP vorher in /etc/hosts.allow frei.

Aber Achtung:

Die hosts.deny funktioniert als TCP-Wrapper und erfasst nur bestimmte Dienste. Der Apache (Webserver) wird nicht darüber gesteuert und somit können mit dieser Lösung keine IPs auf dem Webserver gesperrt werden.


Quellen:


Ähnliche Themen im blog:
iptables, sperren


zurück