apachtop

Hallo Leute,

wenn ihr nach einer detalierten Übersicht von eurem Apache Server sucht, kann ich euch “apachetop” empfehlen.

Installiert wird es mit

apt-get install apachetop

Danach könnt ihr euch mit

apachetop

eine Übersicht eurer Verbindungen anzeigen lassen.

“apachetop” verwendet dazu das Standard Apache Log File.

Falls ihr für verschiedene virtuelle Hosts seperate Apache Log Files angelegt habt, könnt ihr auch diese ansteuern. Zum Beispiel mit

apachetop -f /var/log/apache2/vhosts/custom_client.access.log

man kann natürlich auch mehrere Log Files gleichzeitig betrachten mit dieser Option.

mehr Informationen gibt es wie immer in der man Page

man apachetop

peace
LEWIS

Flattr this!

Apache “internal dummy connection” Spam stoppen

Hallo Leute,

falls euer Apache “access.log” auch mit folgenden Einträgen

::1 - - [22/Mar/2013:10:34:05 +0100] "OPTIONS * HTTP/1.0" 200 110 "-" "Apache (internal dummy connection)"

zugespamt werden, könnt ihr dies ganz einfach unterbinden.

In meinem Fall hat jeder vhost ein eigenes Log File, deshlab stehen in dem “access.log” nur mehr dieses Einträge, was ziemlich nervig ist und nicht sein muss.

Zum ändern müssen wir foglende Datei bearbeiten:

vim /etc/apache2/sites-available/default

Hier ersetzten wir folgenden Eintrag

CustomLog ${APACHE_LOG_DIR}/access.log combined

mit diesen Zeilen:

#Prevent logging for local requests
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog 
SetEnvIf Remote_Addr "::1" dontlog

CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog

danach müssen wir Apache nur noch neu starten und der Log Spam hat ein Ende!

service apache2 restart

peace
LEWIS

Flattr this!

Apache2 absichern

Hallo Leute,

um Apache besser gegen DDoS Attacken zu sichern, bzw. die Allgemeine Sicherheit etwas anzuheben könnt ihr folgende Einstellungen vornehmen:

Apache Version und Server Informationen verstecken

Normal werden bei Apache unten auf der Seite die Version und Serverinformationen angezeigt (auf 403 Seiten und co.), um dies zu verhindern fügen wir in die apache2.conf folgende Optionen hinzu:

vim /etc/apache2/apache2.conf
ServerSignature Off
ServerTokens Prod

Danach wird diese Information nicht mehr angezeigt.

Timeout Wert verringern

Apache kommt mit einem sehr hohen Timeout Wert, diesen kann man runtersetzten und das Risiko einer DDoS Attacke etwas zu minimieren

vim /etc/apache2/apache2.conf
Timeout 45

danach könnt ihr die Datei speichern und Apache neu laden:

service apache2 reload

Unnötige Mods deaktivieren

Um eine Übersicht aller aktivierten Mods zu bekommen könnt ihr euch diese mit

apache2ctl -M

anzeigen lassen. Unnötige Mods wie “mod_imap”, “mod_info” und “mod_status” sollten deaktiviert werden und zwar zum Beispiel mit

a2dismod status

danach muss Apache neu gestartet werden

service apache2 restart

Directory Listing deaktivieren

Dieser Punkt ist in diesem Artikel von mir genauer erklärt.

mod_evasive einrichten

Der Beste Schutz gegen DDoS Attacken ist der “evasive” Mod. Um diesen zu installieren und einzurichten geht man wie folgt vor:

apt-get install libapache2-mod-evasive

danach einen Log Ordner erstellen

mkdir /var/log/apache2/mod_evasive

und eine Konfigurationsdatei anlegen

touch /etc/apache2/conf.d/mod_evasive.conf

Danach fügen wir folgende Optionen hinzu

vim /etc/apache2/conf.d/mod_evasive.conf
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSLogDir /var/log/apache2/mod_evasive
DOSWhitelist 127.0.0.1

Zur Erkärung der einzelnen Punkte:

  • DOSHashTableSize: Größe der Hash Table für die IP-Adressen Überwachung
  • DOSPageCount: Anzahl der Seiten die gleichzeitig von einer IP geladen werden dürfen bevor die IP geblockt wird
  • DOSSiteCount: Anzahl von Objekten die pro Sekunden geladen werden dürfen (css, js, Bilder usw.)
  • DOSPageInterval: Interval in Sekunden für DOSPageCount
  • DOSSiteInterval: Interval in Sekunden für DOSSiteCount
  • DOSBlockingPeriod: Interval in Sekunden wie lange eine IP geblockt wird wenn sie auffällig ist
  • DOSLogDir: Pfad zum Logverzeichnis
  • DOSWhitelist: Whitelist Option

danach aktivieren wir noch den mod und starten Apache neu:

a2enmod mod-evasive
service apache2 restart

Um die Einstellungen zu testen gibt es ein Script unter “/usr/share/doc/libapache2-mod-evasive/examples”. Einfach mit

perl test.pl

ausführen. Seht ihr “403” Antworten funktioniert alles einwandfrei.

Achtung, nicht vergessen vorher die “127.0.0.1” IP von der Whitelist zu nehmen, sonst funktioniert es natürlich nicht (:

peace
LEWIS

Flattr this!