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