2 mois de vie commune avec mod_security
Ça fait maintenant deux mois que j'essaye de vivre avec mod_security. Oui c'est un collocataire sympa, à l'origine je cherchais un remplaçant à mod_tsunami qui m'a quitté lorsque je suis passé à apache2 ... vous suivez ? non c'est normal c'est un informaticien qui parle à des informaticiens
mod_tsunami
Était le module installé sur mon serveur web (apache) et qui permet d'éviter les DDos et autres idiots qui aspirent mon site et plantent mon petit serveur qui se trouve rapidement à cours de ressources.
Je l'aime bien moi mod_tsunami mais il n'existe pas pour apache2. Il y a deux mois j'ai eu la mauvaise surprise de devoir faire face à un idiot qui s'amusait à aspirer mon blog 30 ou 40 fois par jours ... ma connexion internet devient lente, mon serveur ne réponds plus, les visiteurs normaux sont malheureux de ne plus pouvoir consulter le contenu de ce site incontournable de la toile (oui, t'a vu comme je suis modeste ... et oui ce soit je te tuttoie).
Bref, j'ai cherché un nouveau colloc qui ferait le videur à l'entrée de la boite de nuit ... et j'ai trouvé un peu de doc sur mod_security, je me suis un peu amusé avec et là ce soir, 2 mois après c'est un peu l'heure du bilan.
mod_security
apache2.conf
<IfModule mod_security.c> SecFilterEngine On SecFilterCheckURLEncoding On SecFilterCheckUnicodeEncoding Off SecFilterScanPOST On SecFilterForceByteRange 1 255 SecAuditEngine RelevantOnly SecAuditLog /var/log/apache2/mod-security_log SecFilterDebugLog /var/log/apache2/mod-security_debug_log SecFilterDebugLevel 0 SecFilterDefaultAction "deny,log,status:500" include /etc/apache2/mod_security.conf <Location /cgi-bin/printenv> SecFilterInheritance Off SecFilterSelective POST_PAYLOAD "!^login=a-zA-Z{8}&password=0-9{1,8}$" </Location> <Location /cgi-bin/FormMail> SecFilterSelective "ARG_recipient" "!@webkreator.com$" </Location> </IfModule>
mod_security.conf
SecFilter "/usr/local/apache" SecFilter "/usr/local/mysql" SecFilter "/usr/X11R6/bin/xterm" SecFilter "/etc/inetd\.conf" log,pass SecFilter "/etc/shadow" log,pass SecFilter "visualcoders\.net/spy\.gif\?\&cmd" SecFilter "conf/httpd\.conf" log,pass SecFilter "HTTP/1\.1 403" SecFilter "cmd32\.exe" SecFilter "cmd\.exe" SecFilter "\.cmd\?&" SecFilter "document\.domain\(" SecFilter "javascript\://" SecFilter "img src=javascript" SecFilterSelective ARG_PHPSESSID "!^0-9a-z*$" SecFilterSelective ARG_highlight %27 SecFilterSelective ARG_highlight %2527 SecFilterSelective OUTPUT "Fatal error:" SecFilterSelective OUTPUT "Volume Serial Number" SecFilterSelective OUTPUT "Command completed" SecFilterSelective OUTPUT "Bad command or filename" SecFilterSelective OUTPUT "file(s) copied" SecFilterSelective OUTPUT "Index of /cgi-bin/" SecFilterSelective OUTPUT ".*uid\=\(" SecFilterSelective OUTPUT ".*gid\=\(" SecFilterSelective THE_REQUEST "/cgi-bin/ls" log,pass SecFilterSelective THE_REQUEST "/\.bash_history" SecFilterSelective THE_REQUEST "/_vti_bin/" log,pass SecFilterSelective THE_REQUEST "/~root" SecFilterSelective THE_REQUEST "/~ftp" SecFilterSelective THE_REQUEST "/~backup" SecFilterSelective THE_REQUEST "/~nobody" SecFilterSelective THE_REQUEST "/bin/ps" SecFilterSelective THE_REQUEST "/usr/bin/id" SecFilterSelective THE_REQUEST "/bin/kill" SecFilterSelective THE_REQUEST "/usr/bin/chsh" SecFilterSelective THE_REQUEST "/usr/bin/gcc" SecFilterSelective THE_REQUEST "/usr/bin/cc" SecFilterSelective THE_REQUEST "/usr/bin/cpp" SecFilterSelective THE_REQUEST "/usr/bin/g\+\+" SecFilterSelective THE_REQUEST "/bin/python"
etc. Le soucis c'est qu'au début j'avais les lignes suivantes dans ce dernier fichier de configuration
SecFilter "/etc" SecFilter "/initrd" SecFilter "/lost+found" SecFilter "/mnt" SecFilter "/proc" SecFilter "/root" SecFilter "/sbin" SecFilter "/var"
Et ça captait des commentaires ou même le contenu de certains billets du blog comme étant des tentatives d'intrusion : Par exemple un simple "/var" dans un commentaire du blog et hop mod_security capte ça !
En bref
Je n'ai pas remplacé mod_tsunami par mod_security ces deux modules servent à deux choses différentes et je cherche donc toujours un mod_tsunami pour apache2 mais à part ça le geek que je suis (encore un peu) a trouvé un truc sympa qui m'a fait perdre du temps (trèèèèèèèèèès important ça), a capté une bonne trentaine de tentatives d'intrusion en 2 mois et ... a amélioré ma culture "générale".
La solution ?
La solution à mon problème de départ semble être disponible via le module cband ... j'installe et vous tiens au courant
Commentaires
je ne suis pas très fan de mon côté d apache2 , prefere apache 1.3
karmatronicPour apache2, tu peux aussi utiliser le mod_evasive qui fait juste ce qu'il faut pour le DDoS sur apache.
Le lien : http://www.zdziarski.com/projects/m...
@ plus.
benpaspeurJe dirai même plus : http://wiki.goldzoneweb.info/evasiv...
goldyfruit