Mod_Evasive und Ausschluss von IPs

freq

New Member
Hallo,

ich habe 2 Fragen zum Thema Sicherheit:

a) ich möchte gern mod_evasive gegen DDoS Attacken verwenden. Nun stellt sich mir die Frage, ob es keine Hohe Last für meinen Server darstellt (1GB Ram und AMD3000+), wenn er da jede IP loggt, da ich schon mal bis zu 20000 Uniques am Tage habe. Desweiteren möchte ich euch gerne fragen, wie ich nun das installiere. Immer hier:
Code:
apxs -i -a -c mod_evasive20.c
kommt
Code:
MNH001:~/mod_evasive/mod_evasive20.c# apxs -i -a -c mod_evasive20.c
gcc -DLINUX=22 -DEAPI -DTARGET="apache" -DHAVE_SET_DUMPABLE -DDB_DBM_HSEARCH=1 -DDEV_RANDOM=/dev/random -DUSE_HSREGEX -O1  -g -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -DSHARED_MODULE -I/usr/include/apache-1.3  -c mod_evasive20.c
mod_evasive20.c:41: error: syntax error before "evasive20_module"
mod_evasive20.c:41: warning: type defaults to `int' in declaration of `evasive20_module'
mod_evasive20.c:41: warning: data definition has no type or storage class
mod_evasive20.c:113: error: syntax error before '*' token
mod_evasive20.c: In function `access_checker':
mod_evasive20.c:212: warning: long int format, __pid_t arg (arg 3)
mod_evasive20.c:248: warning: passing arg 5 of `ap_log_rerror' from incompatible pointer type
mod_evasive20.c: At top level:
mod_evasive20.c:297: error: syntax error before "destroy_hit_list"
mod_evasive20.c:297: warning: return type defaults to `int'
mod_evasive20.c:651: warning: implicit declaration of function `AP_INIT_TAKE1'
mod_evasive20.c:652: warning: missing braces around initializer
mod_evasive20.c:652: warning: (near initialization for `access_cmds[0]')
mod_evasive20.c:652: error: initializer element is not constant
mod_evasive20.c:652: error: (near initialization for `access_cmds[0].name')
mod_evasive20.c:655: error: initializer element is not constant
mod_evasive20.c:655: error: (near initialization for `access_cmds[0].func')
mod_evasive20.c:658: error: initializer element is not constant
mod_evasive20.c:658: error: (near initialization for `access_cmds[0].cmd_data')
mod_evasive20.c:661: error: initializer element is not constant
mod_evasive20.c:661: error: (near initialization for `access_cmds[0].req_override')
mod_evasive20.c:664: error: initializer element is not constant
mod_evasive20.c:664: error: (near initialization for `access_cmds[0].args_how')
mod_evasive20.c:667: error: initializer element is not constant
mod_evasive20.c:667: error: (near initialization for `access_cmds[0].errmsg')
mod_evasive20.c:670: error: initializer element is not constant
mod_evasive20.c:670: error: (near initialization for `access_cmds[0]')
mod_evasive20.c:670: error: initializer element is not constant
mod_evasive20.c:670: error: (near initialization for `access_cmds[1].name')
mod_evasive20.c:673: error: initializer element is not constant
mod_evasive20.c:673: error: (near initialization for `access_cmds[1].func')
mod_evasive20.c:676: error: initializer element is not constant
mod_evasive20.c:676: error: (near initialization for `access_cmds[1].cmd_data')
mod_evasive20.c:678: warning: implicit declaration of function `AP_INIT_ITERATE'
mod_evasive20.c:679: error: initializer element is not constant
mod_evasive20.c:679: error: (near initialization for `access_cmds[1].req_override')
mod_evasive20.c:681: warning: braces around scalar initializer
mod_evasive20.c:681: warning: (near initialization for `access_cmds[1].args_how')
mod_evasive20.c:681: error: incompatible types in initialization
mod_evasive20.c:681: error: initializer element is not constant
mod_evasive20.c:681: error: (near initialization for `access_cmds[1].args_how')
mod_evasive20.c:681: error: initializer element is not constant
mod_evasive20.c:681: error: (near initialization for `access_cmds[1].args_how')
mod_evasive20.c:682: error: initializer element is not constant
mod_evasive20.c:682: error: (near initialization for `access_cmds[1]')
mod_evasive20.c:684: error: syntax error before '*' token
mod_evasive20.c: In function `register_hooks':
mod_evasive20.c:685: warning: implicit declaration of function `ap_hook_access_checker'
mod_evasive20.c:685: error: `APR_HOOK_MIDDLE' undeclared (first use in this function)
mod_evasive20.c:685: error: (Each undeclared identifier is reported only once
mod_evasive20.c:685: error: for each function it appears in.)
mod_evasive20.c:686: warning: implicit declaration of function `apr_pool_cleanup_register'
mod_evasive20.c:686: error: `p' undeclared (first use in this function)
mod_evasive20.c:686: error: `apr_pool_cleanup_null' undeclared (first use in this function)
mod_evasive20.c: At top level:
mod_evasive20.c:689: error: syntax error before "evasive20_module"
mod_evasive20.c:689: warning: type defaults to `int' in declaration of `evasive20_module'
mod_evasive20.c:691: error: `STANDARD20_MODULE_STUFF' undeclared here (not in a function)
mod_evasive20.c:691: error: initializer element is not constant
mod_evasive20.c:691: error: (near initialization for `evasive20_module')
mod_evasive20.c:692: warning: excess elements in scalar initializer
mod_evasive20.c:692: warning: (near initialization for `evasive20_module')
mod_evasive20.c:693: warning: excess elements in scalar initializer
mod_evasive20.c:693: warning: (near initialization for `evasive20_module')
mod_evasive20.c:694: warning: excess elements in scalar initializer
mod_evasive20.c:694: warning: (near initialization for `evasive20_module')
mod_evasive20.c:695: warning: excess elements in scalar initializer
mod_evasive20.c:695: warning: (near initialization for `evasive20_module')
mod_evasive20.c:696: warning: excess elements in scalar initializer
mod_evasive20.c:696: warning: (near initialization for `evasive20_module')
mod_evasive20.c:698: warning: excess elements in scalar initializer
mod_evasive20.c:698: warning: (near initialization for `evasive20_module')
mod_evasive20.c:698: warning: data definition has no type or storage class
apxs:Break: Command failed with rc=1
MNH001:~/mod_evasive/mod_evasive20.c#
daher schaffe ich es nie, das zu installieren?! :(

b) Ich möchte des weiteren fragen, ob es möglich ist, IPs bestimmter Länder irgendwie auszuschließen. So würde ich gerne Loginversuche aus Russland, China, Japan (eigentlich aus dem ganzen Osten), aus Polen & Co, ans USA etc verbieten. Warum? Weil ich eh immer in Deutschland sitzten werde und daher das unterbinden möchte ;)

Danke und Gruß,
Freq
 
Last edited by a moderator:
Hallo freq,

in unserer HowTo Section gibt es bereits ein HowTo zum Thema mod_evasive.

Am Besten liest du dir dies mal durch und guckst, ob du es damit schaffst, solltest du trotzdem Probleme haben, dann melde dich doch einfach nochmal und sag uns wo es hapert.


Lieben Gruß
Free
 
Habe das Zeugs entpackt, und versucht diesen APX befehl aufzurufen:

Code:
MNH001:/usr/local/src/mod_evasive/mod_evasive# /usr/sbin/apxs2-prefork -cia mod_evasive20.c
bash: /usr/sbin/apxs2-prefork: No such file or directory
MNH001:/usr/local/src/mod_evasive/mod_evasive# /usr/sbin/apxs2 -cia mod_evasive20.c
bash: /usr/sbin/apxs2: No such file or directory

Beide gingen nicht. Was nun?
 
Hey Free,

hier mal ein Log:

Code:
MNH001:/# which apxs
/usr/bin/apxs
MNH001:/# /usr/bin/apxs2-prefork -cia mod_evasive20.c
bash: /usr/bin/apxs2-prefork: No such file or directory
MNH001:/# /usr/bin/apxs2 -cia mod_evasive20.c
bash: /usr/bin/apxs2: No such file or directory
MNH001:/# which apcx2
MNH001:/# /usr/bin/apxs -cia mod_evasive20.c
gcc -DLINUX=22 -DEAPI -DTARGET="apache" -DHAVE_SET_DUMPABLE -DDB_DBM_HSEARCH=1 -DDEV_RANDOM=/dev/random -DUSE_HSREGEX -O1  -g -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -DSHARED_MODULE -I/usr/include/apache-1.3  -c mod_evasive20.c
gcc: mod_evasive20.c: No such file or directory
gcc: no input files
apxs:Break: Command failed with rc=1
 
Hallo freq,

du befindest dich nicht in dem richtigen Verzeichnis, deswegen kann die Quelle nicht gefunden werden.

Ein
Code:
cd /usr/local/src/mod_evasive/mod_evasive
sollte Abhilfe schaffen, wenn die Pfade in dem Post davor gestimmt haben.

Oder du gibst den Pfad absolut statt relativ an.

Lieben Gruß
Free
 
Danke free, aber leider immer noch nicht. Habe die Dateien ../ verschoeben. Siehe log:

Code:
MNH001:/usr/local/src/mod_evasive# cd /usr/local/src/mod_evasive/
MNH001:/usr/local/src/mod_evasive# ls
LICENSE        mod_evasive         mov_evasive20.c  mov_evasiveNSAPI.c
Makefile.tmpl  mod_evasive.tar.gz  mov_evasive.c    test.pl
MNH001:/usr/local/src/mod_evasive# /usr/bin/apxs -cia mod_evasive20.c
gcc -DLINUX=22 -DEAPI -DTARGET="apache" -DHAVE_SET_DUMPABLE -DDB_DBM_HSEARCH=1 -DDEV_RANDOM=/dev/random -DUSE_HSREGEX -O1  -g -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -DSHARED_MODULE -I/usr/include/apache-1.3  -c mod_evasive20.c
gcc: mod_evasive20.c: No such file or directory
gcc: no input files
apxs:Break: Command failed with rc=1
MNH001:/usr/local/src/mod_evasive#
 
Hallo freq,

wieso gibst du verschiedene Befehle ein, die je nach System das selbe bewirken?

Du brauchst nicht den apxs UND den prefork.

Du musst zuerst herausfinden, welcher Apache 'Typ' bei dir läuft.

Vielleicht kommst du mal ins IRC zu uns, dann können wir dir direkt und live helfen.

Lieben Gruß
Free
 
Blabla Blupp gib einfach mal
/usr/bin/apxs -cia mov_evasive20.c ein.. thats all! Aber auch wirklich 1:1 machen
 
Grr, dann kommt zwar nicht mehr der Fehler "File not found", aber der Fehler, den ich im 1. Post gepostet habe (mit diesen ganzen Errors beim Compilieren). :(
 
Back
Top