Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
apache:securisation [2011/08/27 02:10] – Anael MOBILIA | apache:securisation [2014/05/27 03:32] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | <style float-right> | + | <style float-right> |
- | <style float-left> | + | <style float-left> |
- | ====== | + | ====== |
// | // | ||
- | <note tip>Présentation rapide.</ | + | <note tip>Ensemble de configurations faciles qui permettent d' |
< | < | ||
- | * Aucun prérequis pour ce tutoriel. | + | * [[apache: |
</ | </ | ||
\\ | \\ | ||
- | ===== grand1 | + | ===== Propriétaire des fichiers |
- | lorem ipsum | + | ==== Création d'un utilisateur propriétaire du site ==== |
+ | Nous allons créer un nouvel utilisateur système qui sera le propriétaire des fichiers du site. | ||
\\ | \\ | ||
- | ===== Liens ===== | + | Cet utilisateur fera partie du groupe www-data // |
- | * [[.:|Retour à la liste des tutoriels XXX]] | + | <code bash> |
- | * [[:|Retour à la liste des tutoriels]] | + | |
+ | ==== Attribution des fichiers à l' | ||
+ | <code bash> | ||
+ | On définit comme propriétaire des fichiers des sites web l' | ||
+ | |||
+ | ==== Droits sur le contenu du site ===== | ||
+ | Le système de droits de linux peut s' | ||
+ | * les droits du propriétaire du fichier (moi) | ||
+ | * les droits | ||
+ | * et les droits | ||
- | ++__But : [Sécurisation|tag: | ||
- | %%%'' | ||
- | %%% | ||
- | !!!! I) Propriétaire des fichiers | ||
- | !!! 1) Création d'un utilisateur propriétaire du site | ||
- | Nous allons ajouter un utilisateur système qui sera le propriétaire des fichiers du site. | ||
- | %%%Maj : Nous attribuons le groupe www-data à cet utilisateur (simplifiera la mise en ligne de nouveaux fichiers) | ||
- | ///[bash] | ||
- | adduser user-web --ingroup www-data | ||
- | /// | ||
- | !!! 2) Attribution des fichiers à l' | ||
- | ///[bash] | ||
- | chown -R user-web: | ||
- | /// | ||
- | !!! 3) Droits sur le contenu du site | ||
- | En résumé, le système de droits de linux peut s' | ||
- | %%% | ||
Chacun de ces chiffres est compris entre 0 et 7, décomposable ainsi : | Chacun de ces chiffres est compris entre 0 et 7, décomposable ainsi : | ||
- | * Droit de lecture sur le fichier : 4 points | + | |
- | * Droit d' | + | * Droit d' |
- | * Droits d' | + | * Droits d' |
- | * Aucun droit : 0 point | + | * Aucun droit : 0 point |
Le chiffre correspond à la somme des valeurs assignées aux droits. | Le chiffre correspond à la somme des valeurs assignées aux droits. | ||
- | %%%[Doc. Ubuntu|http:// | + | \\ |
- | %%% | + | [[http:// |
- | %%% | + | |
- | !! A) Dossiers | + | |
+ | === Dossiers | ||
L' | L' | ||
- | ///[bash] | + | < |
- | find /var/www/ -type d -exec chmod 750 {} \; | + | //Je trouve tous les répertoires (directory) et leur applique un chmod de 750.// |
- | /// | + | |
- | Pour éditer les fichiers du site, il faudra donc se connecter avec cet utilisateur en sftp (ftp over ssh) -> sftp:// | + | < |
- | !! B) Fichiers | + | |
+ | === Fichiers | ||
L' | L' | ||
- | ///[bash] | + | < |
- | find /var/www/ -type f -exec chmod 640 {} \; | + | |
- | /// | + | === Ecriture par le biais d'un script du site === |
- | !! C) Ecriture par le biais d'un script du site | + | |
Les configurations proposées ci dessus ont un avantage important : si un pirate réussi à prendre le contrôle de votre site par une quelconque faille, il sera bloqué dans ses écritures et / ou modifications de fichiers ! | Les configurations proposées ci dessus ont un avantage important : si un pirate réussi à prendre le contrôle de votre site par une quelconque faille, il sera bloqué dans ses écritures et / ou modifications de fichiers ! | ||
- | %%% | + | |
Toutefois, nous avons parfois besoin d' | Toutefois, nous avons parfois besoin d' | ||
- | %%% | + | |
- | Si vous devez écrire dans un dossier au travers du site, donnez un chmod 770 uniquement au __dossier__ | + | Si vous devez écrire dans un dossier au travers du site, donnez un chmod 770 uniquement au **dossier** |
- | %%% | + | \\ |
- | Si vous devez écrire dans un fichier au travers du site, donnez un chmod 660 uniquement au __fichier__ | + | Si vous devez écrire dans un fichier au travers du site, donnez un chmod 660 uniquement au **fichier** |
- | %%%[Doc. chmod|http:// | + | \\ |
- | %%% | + | [[http:// |
- | %%% | + | ===== Configuration de la sécurité basique |
- | !!!! IV) Configuration de la sécurité basique | + | |
Actuellement notre serveur Apache envoi beaucoup trop d' | Actuellement notre serveur Apache envoi beaucoup trop d' | ||
- | %%%Pour résoudre cela, éditons le fichier | + | \\ |
- | !!! 1) Directory / | + | Pour résoudre cela, éditons le fichier |
+ | |||
+ | ==== Directory / ==== | ||
L' | L' | ||
- | %%%Cette option n'est pas encore | + | \\ |
- | !!! 2) ServerTokens | + | Cette option n'est pas activée par défaut. Je l' |
+ | |||
+ | ==== ServerTokens | ||
Configure les informations délivrées par Apache sur sa configuration au client. | Configure les informations délivrées par Apache sur sa configuration au client. | ||
- | %%%Cette option est bien évidement | + | <note tip>Les différentes valeurs possibles sont : |
- | %%%[Doc. Apache|http:// | + | * **Full** : Apache/ |
- | !!! 3) ServerSignature | + | * **OS** : Apache/ |
- | Configure l' | + | * **Minimal** : Apache/ |
- | %%%Je trouve visuellement plus propre de ne pas afficher cette information, | + | * **Minor** : Apache/2.2 Server at anael.eu Port 80 |
- | %%%Les informations délivrées sur Apache sont contrôlées par l' | + | * **Major** : Apache/2 Server at anael.eu Port 80 |
- | %%% | + | * **Prod** : Apache Server at anael.eu Port 80 |
- | %%%Ce qui donne : | + | </ |
- | ///[apache] | + | Je définit la valeur |
- | # commentaires.... | + | \\ |
+ | Ceci permet d'éviter les attaques ciblées qui sont effectuées lorsqu'un vulnérabilité est découverte sur une version | ||
+ | \\ | ||
+ | [[http:// | ||
+ | |||
+ | ==== ServerSignature | ||
+ | Affiche les informations configurée par ServerTokens | ||
+ | \\ | ||
+ | <note tip>Les différentes valeurs possibles sont : | ||
+ | * **Email** : Apache Server at anael.eu Port 80 //avec un lien vers admin@an*el.eu si l'on clique sur " | ||
+ | * **On** : Apache Server at anael.eu Port 80 | ||
+ | * **Off** : //rien n'est affiché// | ||
+ | </ | ||
+ | Je ne trouve | ||
+ | |||
+ | |||
+ | ===== Fichier | ||
+ | < | ||
< | < | ||
AllowOverride None | AllowOverride None | ||
Ligne 95: | Ligne 110: | ||
ServerTokens Prod | ServerTokens Prod | ||
# commentaires.... | # commentaires.... | ||
- | ServerSignature Off | + | ServerSignature Off</file> |
- | /// | + | |
- | %%% | + | |
- | !!!! V) Relancer Apache | + | |
- | Voila, notre serveur web est un minima adapté à nos besoins en performance & en sécurité. | + | |
- | %%%Afin que notre nouvelle conf soit prise en considération, | + | |
- | ///[bash] | + | |
- | service apache2 reload | + | |
- | /// | + | |
- | Le reload permet de faire relire le fichier de configuration à Apache une fois que chaque process fils à finit son travail. | + | |
- | %%%Le restart stoppe immédiatement le process fils pour relancer le serveur (interruption du service pour le client) | + | |
- | !!!! V) Groupe par défaut de user-web | ||
- | Un utilisateur user-web a été créé il y a quelques billets de cela pour gérer tous les sites web. | ||
- | %%%Seulement par défaut son groupe primaire était user-web (user-web: | ||
- | %%%Ce qui signifie que pour tout fichier qu'il crée, apache (www-data: | ||
- | %%%J' | ||
- | %%%Le plus simple à été de supprimer l' | ||
- | ///[bash] | ||
- | deluser user-web | ||
- | adduser user-web --ingroup www-data | ||
- | /// | ||
- | Et pour bien faire, on redonne le répertoire / | ||
- | ///[bash] | ||
- | chown -R user-web: | ||
- | /// | ||
- | [Doc.|http:// | ||
- | %%% | ||
- | %%% | ||
- | %%%Voila quelques modifications de faites qui me faciliteront la tâche pour la suite ! | ||
+ | ===== Relancer Apache ===== | ||
+ | La protection du serveur web a été renforcée. Afin que notre nouvelle conf soit prise en considération, | ||
+ | <code bash> | ||
+ | L' | ||
+ | \\ | ||
+ | L' | ||
+ | |||
+ | \\ | ||
+ | ===== Liens ===== | ||
+ | * [[.:|Retour à la liste des tutoriels Apache]] | ||
+ | * [[:|Retour à la liste des tutoriels]] |