Fork me on GitHub

Rapport de message :*
 

Sécuriser son site [Protéger les dossiers et fichiers Xoops]

Titre du sujet : Sécuriser son site [Protéger les dossiers et fichiers Xoops]
par Ash sur 26/12/2006 10:10:13

Sécuriser les dossiers et fichiers xoops sur les serveurs dédiés fonctionnant avec les systèmes GNU/Linux.

(La partie .htaccess peut intéresser les sites sur hébergement mutualisé)

C'est simple, politique par défaut : "TOUT INTERDIRE EN ÉCRITURE EN PASSANT OUTRE LES PERMISSIONS CHMOD" C'est violent...
La commande utilisée est chattr avec les options +i et -i (+i lecture seule) (-i retrait de la protection)

Attention : Bien verifier que vous êtes placé dans le bon repertoire. N'allez pas faire de bêtise et mettre en lecture seul votre serveur tout entier ^^

I) Commandes chattr :

Si la racine de votre espace web sur le serveur dédié est /home/web/example.com voici les commandes à lancer en root pour se placer dans le répertoire parent de l'espace web example.com :

/# cd /home/web


Ensuite :

/home/web# chattr -R +i example.com


et

/home/web# chattr -R +i example.com/*


Oui, les deux commandes ci-dessus sont identiques, mais dans le doute exécutez les quand même. Traduction humaine de ces commandes : Verrouiller en écriture le dossier example.com ainsi que ses sous-dossiers et l'intégralité des fichiers. Du costaud quoi.

Voilà, plus un seul octet ouvert en ecriture ! Root ne peut même plus éditer les fichiers, même en forçant avec des commandes d'édition.

Sauf, que votre site n'est plus utilisable, on va donc déverrouiller uniquement les dossiers nécessaires au fonctionnement de xoops.

On se place dans le dossier example.com :

/# cd /home/web/example.com


On déverrouille les dossiers upload et cache

/home/web/example.com# chattr -i upload

/home/web/example.com# chattr -i upload/*

/home/web/example.com# chattr -i cache

/home/web/example.com# chattr -i cache/*


Pour le dossier templates_c il faut le déverrouiller uniquement quand vous éditez un template, sinon, laissez le verrouillé.

Si vous avez besoin d'écrire dans ce dossier (ce qui est le cas pour la suite de notre exercice) ou de faire une modification sur un de vos templates vous pouvez déverrouiller le dossier templates_c.

Pour déverrouiller le dossier templates_c :

/home/web/example.com# chattr -i templates

/home/web/example.com# chattr -i templates/*


Voilà, Xoops est à nouveau utilisable ^^

II) Sécuriser les dossiers ouvert en ecriture :

Maintenant, il faut sécuriser les dossiers qui sont ouvert en écriture par un dangereux chmod 777.

On crée un fichier .htaccess avec ce code qui va empêcher l'exécution de fichier php ou cgi (Sait-on jamais, si quelqu'un arrive à charger un tel fichier à cause d'un script d'upload troué ou autre, il faut veiller à ce qu'il ne puisse pas l'exécuter). Notez que j'utilise des règles de réécriture, donc le mod rewrite d'apache est obligatoire. Si vous avez d'autres méthodes sans mod rewrite (testées uniquement) merci de les indiquer.

Le fichier .htaccess à créer :

Options +FollowSymlinks
RewriteEngine On
#Empêche l'execution de ces types de fichiers depuis l'exterieur
#Methode testée et opérationnelle. 
#Renvoie une erreur 404 si de tels fichiers sont demandés
RewriteRule ^.*.php$ /foo [F]
RewriteRule ^.*.php3$ /foo [F]
RewriteRule ^.*.cgi$ /foo [F]
RewriteRule ^.*.etc$ /foo [F]


Ce fichier est à placer dans les dossiers cache upload et templates_c ou tout autre dossier ouvert en écriture.

Une fois les fichiers .htaccess placés dans les dossiers on va les verrouiller :

/home/web/example.com# chattr +i upload/.htaccess

/home/web/example.com# chattr +i cache/.htaccess

/home/web/example.com# chattr +i templates_c/.htaccess


Nous n'avons plus besoin du dossier templates_c alors on le verrouille :

(Attention ! Avant de lancer les commandes ci-dessous, pensez à cocher non à l'option Actualisation des thèmes et templates pour voir les modifications, dans le panneau de configuration xoops zone "Préférences principales »» Paramètres généraux")

/home/web/example.com# chattr +i templates

/home/web/example.com# chattr +i templates/*


Maintenant votre xoops est blindé, aucun script ne peut être modifié ou ajouté et les dossiers ouverts en écriture sont protégés. Un peu lourd, car quand vous souhaitez modifier un fichier, ajouter un script ou autre, il faut déverrouiller la zone concernée.

Exemple, je veux modifier mon thème, je dois :

1) Déverrouiller le fichier theme.html :

/home/web/example.com# chattr -i themes/montheme/theme.html


2) Déverrouiller le fichier template du thème :
(si vous ne voulez pas vous embêter à le chercher, déverrouiller tout le dossier templates_c)

/home/web/example.com# chattr -i templates_c

/home/web/example.com# chattr -i templates_c/*


Faire les modifs et mise à jour puis verrouiller le tout.]

3) Verrouiller le fichier theme.html

/home/web/example.com# chattr +i themes/montheme/theme.html


4) Verrouiller le dossier templates_c du thème

/home/web/example.com# chattr +i templates_c

/home/web/example.com# chattr +i templates_c/*


Galère ? Ben, faut savoir ce que l'on veut. Dites vous une chose, si votre site n'a pas encore été défoncé, ce n'est pas seulement grâce à votre sécurité mais à une chose surnaturelle qui se nomme chance.

Cette astuce ne dispense absolument pas de réaliser les mises à jour du CMS. Certes, les fichiers et dossiers sont inviolables, mais la base de données reste tout de même vulnérable si un script est foireux.

Il faut bien sûr avoir un système d'exploitation à jour est interdire l'accès root via ssh depuis internet sur la machine. Avoir des mots de passe bétons éçè545érhdGHwTDxw4oéièhdbx5éc5. ETC...

Ce type de sécurité vous permet de ne faire plus qu'une sauvegarde par jour de votre site contre la casse matériels et de vous concentrer sur le maillon faible "La base de données" Rien ne vous empêche de la sauvegarder plusieurs fois par jour.


A lire également :

Voir la zone chattr <==


Et pour les sites en hébergement mutualisé ?

Voir la protection des dossiers ouvert en écriture via .htaccess. Pour le reste, bien souvent en mutualisé on a pas la possibilité de sécuriser son site comme on veut. Déjà, l'accès FTP est une vraie tuerie quand on y pense.

Citation :
Le protocole FTP est défini pour faire transiter les données en clair sur le réseau et notamment votre identifiant et votre mot de passe.


Rien que ça, ça casse


A lire également :

Sujet indispensable sur la sécurité Xoops <==

Documentation Sécurité Xoops <==
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

133 Personne(s) en ligne (116 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 133 | Plus ...