Logging in mod_evasive will nicht

marneus

Registered User
Servus!

Google und mein Hirn wollen wir nicht mehr weiterhelfen, also rein hier mit dem Supportrequest...

Vorweg meine Sys-Config:
  • SuSe 9.3
  • Apache 2.x

Ich möchte mod_evasive in meinen Indianer integrieren; hat auch alles soweit geklappt --> Modul wird erfolgreich geladen und der Apache spuckt keine Fehlermeldung aus.

Hier die modevasive.conf lokalisiert in /etc/apache2/conf.d/:
Code:
<IfModule mod_evasive20.c>
  DOSHashTableSize 3097
  DOSPageCount 5
  DOSSiteCount 100
  DOSPageInterval 2
  DOSSiteInterval 2
  DOSBlockingPeriod 600
  DOSEmailNotify xxx@yyy.zzz
  DOSSystemCommand "logger Apache-DOS-Attack"
  DOSLogDir "/var/log/apache2/mod_evasive"
</IfModule>
Aus lauter Verzweiflung habe ich schon den CHMOD auf 777 gesetzt. Hier ein ls -la Auszug aus /var/log/apache2/:
Code:
drwxrwxrwx  2 wwwrun www     4096 2006-07-13 12:12 mod_evasive
Hier nun einer der Auszüge aus /var/log/messages:
Code:
Jul 13 12:20:34 hxxxxxx mod_evasive[743]: Couldn't open logfile /var/log/apache2/mod_evasive/dos-127.0.0.1: Keine Berechtigung
Bin mit meinem Latein ehrlich gesagt am Ende. Weiß jemand einen Rat?
 
marneus said:
DOSLogDir "/var/log/apache2/mod_evasive"
Leider ist hier der Begriff LogDir schlecht gewählt. Es sollte eher LockDir heißen. Denn es wird lediglich gebraucht um Lock-Files anzulegen und nicht um ein Logfile zu beschreiben.

Laß den Teil doch einfach weg. Dann nimmt er automatisch /tmp/ als "LockDir".

huschi.
 
@marneus
Kannste kurz beschreiben wie du das Module installiert hast?

Oder reicht es auch nach der README zu arbeiten?

Code:
APACHE v2.0
-----------

1. Extract this archive

2. Run $APACHE_ROOT/bin/apxs -i -a -c mod_evasive20.c

3. The module will be built and installed into $APACHE_ROOT/modules, and loaded into your httpd.conf

4. Restart Apache
 
Last edited by a moderator:
Dieses HowTo ist nur für Apache2 geeignet!
Eine aktuelle Version dieses HowTos findet ihr diesem Thread


Getestet wurde dieses HowTo auf folgendem System:
  • SuSe 9.3
  • Apache 2.x - Prefork

  1. Aktuelles Paket runterladen
  2. In /usr/local/src/mod_evasive entpacken
  3. In das Verzeichnis mod_evasive wechseln
  4. Mit dem Editor Deiner Wahl mod_evasive20.c öffnen
  5. Die Zeile 45 umändern in
    Code:
    #define MAILER  "/bin/mail -t %s"
  6. Je nachdem, welchen Apache Du wie einsetzt, folgenden APXS ausführen, um das Modul zu kompilieren.
    Apache2:
    Code:
    /usr/sbin/apxs2 -cia mod_evasive20.c
    Apache2-Prefork:
    Code:
    /usr/sbin/apxs2-prefork -cia mod_evasive20.c
  7. Eine eigene Conf-Datei für mod_evasive anlegen
    Code:
    touch /etc/apache2/conf.d/mod_evasive.conf
  8. Mit dem Editor Deiner Wahl folgenden Inhalt (je nachdem ob Prefork oder nicht) in die eben erstellte mod_evasive.conf
    Apache2:
    Code:
    LoadModule evasive20_module     /usr/lib/apache2/mod_evasive20.so
    Apache2-Prefork:
    Code:
    LoadModule evasive20_module     /usr/lib/apache2-prefork/mod_evasive20.so
    und danach dann danach bei beiden folgendes in die gleiche Datei:
    Code:
    <IfModule mod_evasive20.c>
      DOSHashTableSize 3097
      DOSPageCount 5
      DOSSiteCount 100
      DOSPageInterval 2
      DOSSiteInterval 2
      DOSBlockingPeriod 600
      DOSEmailNotify deine@email-adresse.de
    </IfModule>
  9. rcapache2 stop
  10. rcapache2 start

Das war's dann auch schon. Nun einfach mal mit der mitgelieferten test.pl den Server versuchen zu "nuken":
Code:
cd /usr/src/mod_evasive
perl test.pl
Am Anfang kommen HTTP OK und dann sollte es sich auf 403 Forbidden Antworten ändern. Geschieht dies, ist alles glatt gelaufen!

Schritt 4 & 5 mit Dank an Freel@ncer14! Bei Fragen, einfach posten!

Edit: Juhu, mein erstes Linux Mini-HowTo :)
 
Last edited by a moderator:
Hey! VIELEN DANK!

Also wenn ich unter "apache2handler" -> "Loaded Modules": "core prefork " stehen hab muß ich NUR:

Code:
/usr/sbin/apxs2-prefork -cia mod_evasive20.c

ausführen oder?
 
Spontan würde ich ja sagen. Schau einfach mal mit
Code:
ps afx
ob Dein Apache2 dort ungefähr so auftaucht:
Code:
11254 ?        Ss     0:02 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
11260 ?        S      0:00  \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
 7407 ?        S      0:04  \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
 9465 ?        S      0:00  \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf

Wenn ja, dann ja! ;)
 
Muß erstmal nach Hause kommen ;) Hier inner Arbeit sind leider die ssh-ports gesperrt :rolleyes:

Aber du hast ja auch ICQ ;)
 
hmmm, ich hab "apxs2" nicht, im Yast wenn ich da suche finde ich auch kein "apache2-dev" wo es mit drin sein sollte ...

Ich hab Apache/2.0.53, einer ne Idee?
 
Folgender Fehler tritt nun auf, wenn ich axps kompilieren lasse:

Code:
mod_evasive20.c:45: error: syntax error before "MAILER"

oder muß anstatt

Code:
define MAILER  "/bin/mail -t %s"

bei sendmail/qmail was anderes stehen?
 
Hast du wirklich:

Code:
define MAILER  "/bin/mail -t %s"
geschrieben?

Es muss
Code:
#define MAILER	"/bin/mail -t %s"
lauten!

Lieben Gruß
Freel@ncer14

PS:
Ja es ist auch möglich es über sendmail/qmail laufen zu lassen, aber sehe keinen wirklichen Sinn in diesem Fall!
 
:rolleyes:

Ok, das passiert wenn man ZU GENAU an die ANLEITUNG hält und einfach noch immer copy&paste macht...

Allerdings mußte ich noch folgendes tun:
Code:
cp /etc/apache2/sysconfig.d/loadmodule.conf /etc/apache2/httpd2-prefork.conf

dann das apxs2 ...

und danach
Code:
cp /etc/apache2/httpd2-prefork.conf /etc/apache2/sysconfig.d/loadmodule.conf
machen...

dann halt nen rcapache2 restart und nun geht es! Juhuu!
 
Last edited by a moderator:
marneus said:
Code:
<IfModule mod_evasive20.c>
  DOSHashTableSize 3097
  DOSPageCount 5
  DOSSiteCount 100
  DOSPageInterval 2
  DOSSiteInterval 2
  DOSBlockingPeriod 600
  DOSEmailNotify deine@email-adresse.de
</IfModule>

Mal ne Frage dazu: Warum weichst Du hier von den Standard-Einstellungen ab? Welchen Vorteil hat z.B. "DOSPageInterval 2"?
 
Prinzipiell erstmal gar nicht, aber Du könntest die mod_evasive20.c Datei anschauen und den entsprechenden Eventhandler modifizieren. Sollte nicht das große Drama sein.
 
Back
Top