Um den Zugriff für einzelne IP-Adressen oder Bereiche serverseitig zu sperren, gibt es verschiedene Möglichkeiten:
-
- Iptables (Standard Modul unter Linux zur Verwaltung von IP-Adressen und Netzwerkpaketen, sehr detailliert)
- /etc/hosts.deny und /etc/hosts.allow (einfaches eintragen der IP-Adressen in diese Dateien erlaubt ( allow) oder sperrt ( deny) den Zugriff
- .htaccess Datein (funktioniert nur bei Webservern wie apache oder ngnix)
Die /etc/hosts.allow und /etc/hosts.deny Datein
Bevor Änderungen an o.g. Dateien gemacht werden sollte als erstes der localhost in /etc/hosts.allow eingetragen werden, um sich nicht selbst aus auszusperren.
Hier sollten ebenfalls IP-Adressen, IP Bereiche oder Hostnamen eingetragen werden, die immer Zugriff auf den Server benötigen.
1 |
echo "ALL: 127.0.0.1,localhost" >> /etc/hosts.allow |
In der /etc/hosts.deny werden alle zu sperrenden IP-Adressen, IP Bereiche oder Hostnamen eingetragen.
1 2 3 4 5 6 7 8 |
# 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 |
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.
by Speefak