Zitat von g0db0x Beitrag anzeigen
kann ich dies auch auf einen 64Bit System installieren ?
Woher weißt du, das es auch für n 64-Bit works ?
Ich (so scheint es) habe damit Probleme.
--------------------------------
yast -i apache2-devel
cd /usr/local/src/
wget
http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz
tar xfvz mod_evasive_1.10.1.tar.gz
cd mod_evasive/
apxs2 -iac mod_evasive20.c
/usr/lib64/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -fPIC -Wall -fno-strict-aliasing -DLDAP_DEPRECATED -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -c -o mod_evasive20.lo mod_evasive20.c && touch mod_evasive20.slo
mod_evasive20.c: In function 'access_checker':
mod_evasive20.c:212: warning: implicit declaration of function 'getpid'
mod_evasive20.c:212: warning: format '%ld' expects type 'long int', but argument 3 has type 'int'
mod_evasive20.c:229: warning: ignoring return value of 'system', declared with attribute warn_unused_result
mod_evasive20.c: In function 'destroy_hit_list':
mod_evasive20.c:301: warning: control reaches end of non-void function
mod_evasive20.c: In function 'create_hit_list':
mod_evasive20.c:118: warning: control reaches end of non-void function
/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -o mod_evasive20.la -rpath /usr/lib64/apache2 -module -avoid-version mod_evasive20.lo
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/lib64/apr-1/build/libtool' mod_evasive20.la /usr/lib64/apache2
/usr/lib64/apr-1/build/libtool --mode=install cp mod_evasive20.la /usr/lib64/apache2/
cp .libs/mod_evasive20.so /usr/lib64/apache2/mod_evasive20.so
cp .libs/mod_evasive20.lai /usr/lib64/apache2/mod_evasive20.la
PATH="$PATH:/sbin" ldconfig -n /usr/lib64/apache2
----------------------------------------------------------------------
Libraries have been installed in:
/usr/lib64/apache2
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/lib64/apache2/mod_evasive20.so
activating evasive20
Die Module selbst wurden schon vom Install-Prozess hinzugefügt:
#vi /etc/sysconfig/apache2
APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php5 rewrite vhost_alias mod_status evasive20"
#vi /etc/apache2/sysconfig.d/loadmodule.conf
LoadModule evasive20_module /usr/lib64/apache2/mod_evasive20.so
Fehlt also nur noch die config für dieses Modul. Und hier scheint es zu hängen. (aber erstmal von vorn)
#vi /etc/httpd/conf.d/mod_evasive.conf
<IfModule mod_evasive20.so>
#DOSHashTableSize gibt die Größe der Hashtabelle in Bytes an
DOSHashTableSize 3097
#DOSPageCount gibt die Anzahl der Seitenaufrufe eines Clients pro DOSPageInterval-Zeitintervall
DOSPageCount 5
#DOSSiteCount gibt die Anzahl der Seitenaufrufe auf einen Child-Prozess pro DOSSiteInterval-Zeitintervall
DOSSiteCount 50
#DOSPageIntervall und DOSSiteInterval werden in Sekunden angegeben
DOSPageInterval 1
DOSSiteInterval 1
#DOSBlockingPeriod gibt die Sperrzeit in Sekunden an
DOSBlockingPeriod 60
#DOSEmailNotify gibts die eMail Adresse an, an welche eine Warnmail geschickt wird
DOSEmailNotify
info@<domain>.de
#DOSSystemCommand führt bei einem Angriff weitere Programme/Scripte aus wenn gewünscht
#DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
#DOSWhitelist beinhaltet eine Aufzählung aller IP-Adressen für die mod_evasive NICHT gilt
DOSWhitelist 127.0.0.1
</IfModule>
Damit diese *conf auch inkludiert wird, folgendes noch in die:
#vi /etc/apache2/httpd.conf
Include /etc/apache2/conf.d/*.conf
Apache restart und perl test.pl durchgeführt.
Laut Config + Whitelist SOLLTE ich ohne Probleme durchkommen. Aber leider nur 403.
#grep Blacklisting /var/log/messages
Feb 22 12:04:25 System mod_evasive[14780]: Blacklisting address 127.0.0.1: possible DoS attack.
SCHEINT also soweit zu funktonieren. Auch wenn ich über n Browser eine Seite öfters ausführe, scheint mod_evasive meine Dyn. IP zu erkennen und trägt diese in die message ein.
Ein
#dir /tmp
-rw-r--r-- 1 wwwrun www 6 22. Feb 12:04 dos-127.0.0.1
-rw-r--r-- 1 wwwrun www 6 22. Feb 12:12 dos-84.175.18.108
zeigt, das anscheind alles o.k. ist.
ABER: Ich habe im Browser niemals ein 403 bekommen. Ebendfalls ist nie eine Mail gekommen. Auch wenn die das ganze umstelle (laut Huschi's Howto) erhalte ich nichts.
Meine Verdacht lagerte sich erst auf die mod_evasive.conf. Denn anscheind wird diese nicht inkludiert. Packe ich dort aber
LoadModule evasive20_module /usr/lib64/apache2/mod_evasive20.so
in den Kopf rein, sagt mir der Apache, das dieses Modul schon geladen worden ist. Was ja dafür spricht, das diese Datei selbst schon mal gegriffen wird.
Ergo bleibt nur noch der Verdacht, das die Zeile:
<IfModule mod_evasive20.so>
nicht das Modul anspricht. Aber so wird es doch geladen bzw. so heißt es doch.
Ändere ich es auf <IfModule mod_evasive20.c> scheint es gleich garnicht zu gehen. Selbst 127.0.0.1 wird nicht in /tmp eingetragen und die messages sagt auch nichts