This page in: English - Deutsch - Español - Français - Italiano - Lietuvių - Nederlands - Norsk - Polski - Русский - Svenska - Tiếng Việt - عربي - 日本語 简体中文
How to Tutorials
Contents |
A traduire complètement en conformité avec la version En.
Here's the place for tutorials. If you have created such one please post it here or a link or ask in forum for uploading to main server.
Petite compilaton de sécurisation de CMSms (Note : Voir la version english)
Ce guide est un condensé des astuces de sécurité glanées sur le forum, le wiki et ailleurs. Il n'est pas exhaustif, il est grand ouvert aux contributions et il peut contenir des erreurs. Vos relectures et vos retours seront donc précieux. (NdT : si vous êtes anglophone, merci de poster vos retours/contributions dans le fil en VO pour faciliter la diffusion dans toutes les traductions)
Paramètres système (sauce unix)
- Gardez votre système toujours à jour (utilisez cron pour vous notifier par email de la disponibilité de mises à jour).
- Confinez le sous ensemble Apache en chroot/jail mode.
- Choisissez un mot de passe robuste pour root. Ne vous loguez jamais en root, utilisez sudo à la place.
- Pour les accès distants utilisez un tunnel sécurisé (SSH).
- Protéger votre serveur par firewall/DMZ et surveillez tous les accès avec SNORT.
- N'installez que le strict minimum nécessaire et désinstallez les services/logiciels/démons inutiles.
- N'ouvrez que les ports nécessaires (80, 443), et aucun autre.
- Si vous installez un gestionnaire de base de donnée comme phpmyadmin, renommez son dossier d'installation avec un nom bidon (ex: "/pma39xRlklkLK3d") et protégez ce dossier avec .htaccess et .htpassword (voyez pour cela le site d'Apache et cet autre site).
- Vérifiez souvent les logS Apache (access.log and error.log) et les logS du système.
Paramétrage PHP
Employez a minima ces paramétrages de sécurisation dans php.ini
disable_functions = exec, show_source, shell_exec, system, popen, proc_open, proc_nice, ini_restore, passthru,dl expose_php = Off display_errors = Off log_errors = On register_globals = Off allow_url_fopen = Off allow_url_include = Off
Note: La première ligne pourra être mise en commentaire exceptionellement le temps d'utilisation rare d'un module requérant l'une de ces fonctions.
Paramétrage Apache
A la racine de votre installation CMSms, créez un fichier .htaccess contenant :
RewriteEngine On #option excluant de lister le contenu des dossiers (évite de diffuser des informations sensibles) Options -Indexes # Filtrage d'URL pour empêcher certains piratages #IF the URI contains a "http:" RewriteCond %{QUERY_STRING} http\: [OR] #OR if the URI contains a "[" RewriteCond %{QUERY_STRING} \[ [OR] #OR if the URI contains a "]" RewriteCond %{QUERY_STRING} \] [OR] #OR if the URI contains a "<script>" RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] #OR script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] #OR any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR] #OR if the URI contains UNION RewriteCond %{QUERY_STRING} UNION [OR] #OR if the URI contains a * RewriteCond %{QUERY_STRING} \* #then deny the request (403) On rejette la demande avant qu'elle n'atteigne PHP donc CMSms RewriteRule ^.*$ - [F,L]
Paramétrage de CMSms
- Choisissez un bon mot de passe pour l'administrateur.
- Ne choisissez pas "admin" ou "administrator" comme login d'administrateur. Utilsez autre chose de moins courant. Attention à ne pas révéler ce nom en postant un article avec le compte d'administrateur.
- Renommez le dossier /admin en un nom bidon (ex: "admin39xRlklkLK3d") difficile à deviner. Changez /config.php en conséquence : $config['admin_dir'] ="admin39xRlklkLK3d"
- Protégez l'accès http à ce dossier par mot de passe.
Bien des fournisseurs d'hébergement offrent une interface pour ce faire. Sinon, voici un exemple à la main :
<Directory /var/www/admin39xRlklkLK3d> AuthName "Zone Protegee" AuthType Basic AuthUserFile /var/www/admin39xRlklkLK3d/.htpasswd require valid-user </Directory>
Contenu de /admin39xRlklkLK3d/.htpassword
youruser:yourencryptedpassword
(voyez la documentation d'Apache, chapitre Auth).
- Forcez les entrées vers l'admin en SSL
Pour ce faire, dans le dossier d'admin, créez ce fichier : /admin39xRlklkLK3d/.htaccess avec ce contenu :
- Vérifiez les permissions de config.php
Pendant l'installation ou la mise à jour, il faut 777. Cependant, dès que c'est terminé, abaissez ces permissions à 444, voire 440 si ça fonctionne. Si vous n'avez pas d'accès SSH, utilisez votre outil FTP pour ce faire ou un outil de votre fournisseur d'hébergement (ex: Plesk).
- Vérifiez les permissions du dossier /tmp
Tentez d'abaisser au maximum les permissions sur ce dossier et ses sous dossiers. Graduellement, essayez 775 puis 755 puis 750 si ça passe encore.
- Vérifiez les permissions du dossier /uploads
Comme ci-dessus. Voyez si votre site fonctionne en chargeant quelques images et en essayant de les afficher par http://www.example-site.com/uploads/images/images.jpg Dans les Préférences Globales de CMSms, utilisez 002 comme umask pour créer des miniatures.
- N'exhibez pas votre version de CMSms !
(NdT : comme on le voit si souvent dans le pied de page d'accueil) Editez le bloc de contenu fautif. Sinon tout le monde saura que vous aurez oublié de mettre à jour CMSms et quelles failles de sécurité connues peuvent être utilisées contre votre site. (le tout indexé par Google)
- Protégez votre dossier /lib
Créez un fichier /lib/.htaccess file contenant
order deny,allow deny from all allow from 192.168.0.0/24 #votre réseau d'administration # allow files .js in /lib avoiding errors related to js calling e.g. tag {startExpandCollapse} #exception : on autorise les appels vers les scripts (.js) nécessaires <Files ~ ".*\.js$"> Order deny,allow Allow from all </Files>
This page in:
English -
Deutsch -
Español -
Français -
Italiano -
Lietuvių -
Nederlands -
Norsk -
Polski -
Česky -
Русский -
Svenska -
Tiếng Việt -
عربي -
日本語
简体中文