Schlagwort-Archive: Apache

htaccess und Dynamische IP Adressen

Der Apache Webserver ermöglicht die Zugriffsteuerung über htaccess, auch um Autorisierten Zugang auf Webseiten zu ermöglichen. Mit der Apache direktive Allow from ist es möglich eine bestimmte IP von der Anmeldeaufforderung auszuschliessen. Dabei ist die Übergabe von Hostnamen und FQDN leider nicht möglich. Anhand des folgenden Scriptes wird die Dynamische IP eines Hostname ausgelesen und in die htaccess-Datei eingetragen.

Der Shell Script zur Auflösung der IP Adresse und schreiben in die htaccess-Datei. Die folgenden Zeilen in der Konsole mit copy & paste einfügen, dies erzeugt den Shell Script.

 Copy Paste

Der Script schreibt hier auf einem CentOS Host die htaccess-Datei um. Bei Zeile Allow from mit der Marke #DDNS wird der Hostname ausgelesen, auf der nächsten Zeile mit der Marke #DDNS-IP wird die aufgelöste IP des Host geschrieben. Die Pfad Variable htpath kann DocumentRoot oder ein Unterverzeichnis sein, dabei bearbeitet der Script alle vorkommenden .htaccess-Dateien rekursive ab htpath.

Die htaccess-Datei wird im Webverzeichnis gespeichert dieses geschützt werden soll. Mit cd in das gewünschten Verzeichnis wechseln und die folgenden Zeilen mit copy & paste in der Konsole einfügen, dies erzeugt die .htaccess-Datei.

 Copy Paste

Die Zeilen mit #DDNS und #DDNS-IP (mit #) dienen zur Markierung.

Der Script muss noch  ausführbar gemacht werden.

Damit die Auflösung der Dynamischen IP laufend aktualisiert wird, kann mit crontab -e ein Cron job erstellt werden.

Nach restart des Cron Daemon ist der job aktive.

Hinweis:
Ab Apache 2.4 lautet die direktive von zuvor Allow from nun Require.
Apache 2.x mod_access_compat

Apache 2.4 mod_authz_host

Die von mod_access_compat bereitgestellten Allow-, Deny- und Order-Direktiven sind veraltet und werden in den zukünftigen Version nicht mehr unterstützt. Es wird empfohlen die neuen Direktiven zu verwenden.

Installation fail2ban

fail2ban
fail2ban

Fail2ban scannt Log-Dateien (zB. /var/log/apache/error_log) und verbietet IPs, die verwundbare anfragen enthalten und verhindert die suche nach Exploits, um Systeme zu infizieren und zu kompromittieren versuchen. Im Allgemeinen wird fail2ban verwendet um Firewall-Regeln zu aktualisieren, um die Herkunfts IP-Adressen für eine bestimmte Zeitdauer abzulehnen, wobei andere Dienste ihre Funktion wie zB. der Mail Transport Agent weiterhin Emails verarbeiten können.

Fail2Ban ist freie Software unter GNU General Public License Version 2 und kommt Out-of-the-Box, der Filter ist für verschiedene Dienste wie Apache, Bind, Postfix, SSH etc. einsetzbar. fail2ban ist in der Lage, die Rate der falsch-Authentifizierungen zu reduzieren, versucht aber nicht das Risiko schwacher Authentifizierung zu beseitigen.

Als erstes wird das Packet aus dem Fedora repo installiert und gleich gestartet, hier auf einem CentOS 5.

Falls nicht schon vorhanden die Log-Datei erstellen:

Nun editieren wir die fail2ban Konfiguration:

Hier in diesem Beispiel der Bind Daemon:

service named restart

Im  security-Log von named werden nun ggf. abgelehnte anfragen protokolliert.

Die durch fail2ban eingefügten iptables ketten ausgeben.