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 :)

QR code
Send to friend

Commentaires

1 avr. 2007 03:49

je ne suis pas très fan de mon côté d apache2 , prefere apache 1.3 :)

karmatronic
7 juin 2007 14:00

Pour 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.

benpaspeur
8 janv. 2009 16:45

Je dirai même plus : http://wiki.goldzoneweb.info/evasiv... :)

goldyfruit

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

URL de rétrolien : https://e.garluche.fr/trackback/270