Installation d'un serveur dédié Debian Wheezy - Sécurisation
Apache
Protection d'accès
La protection la plus simple s'appuie sur l'utilisation des fichiers .htaccess.
Elle est affaiblie par le fait que les mots de passe y sont échangés en
clair, il est donc important d'en limiter l'usage aux connexions https.Il convient au préalable de vérifier que dans les fichiers des virtualhosts (default et default-ssl) du dossier /etc/apache2/sites-available, la directive AllowOverride soit fixée à All pour le dossier /var/www. De même, vérifier que le module rewrite est bien activé (a2enmod rewrite).
On commence par créer un dossier pour y stocker le fichier des mots de passe (ce n'est pas impératif, mais il faut veiller à ce que ce fichier ne soit pas directement accessible...). On crée ensuite un utilisateur.
mkdir /home/mespasswd
cd /home/mespasswd
htpasswd -c .htpasswd nomUtilisateur
chmod 444 .htpasswd
Si on veut ajouter d'autres utilisateurs, on n'utilisera plus le paramètres -c.
On crée ensuite dans le dossier que l'on veut protéger le fichier
.htaccess qui peut avoir la
forme suivante (veiller à bien mettre le
chemin réel complet dans AuthUserFile) :
AuthName "Page d'administration protégée, veuillez vous
identifier"
AuthType Basic
AuthUserFile "/home/mespasswd/.htpasswd"
Require valid-user
Comme pour .htpasswd, on
met .htaccess en lecture
seule :
chmod 444 .htaccess
De manière générale, il faut éviter de conserver les noms par
défaut, puisqu'ils sont systématiquement ciblés par les facheux. On
pourra renommer le .htpasswd
en .mesMotsDePasse, il faudra
alors naturellement mettre à jour la variable AuthUserFile.
(...)
<Directory /var/www/siteAProteger/>
AuthType Basic
AuthName "Page d'administration protégée, veuillez
vous identifier"
AuthUserFile /home/mespasswd/.htpasswd
Require valid-user
</Directory>
(...)
Quelques configurations complémentaires
- Les fichiers robots.txt peuvent fournir des indications précieuses sur l'arborescence de vos sites. Sauf à ce que vous en ayez besoin, créer dans /var/www un fichier robots.txt qui contient seulement :
User-agent: *
Disallow: /
- Pour éviter de diffuser des informations de version, dans le fichier de configuration /etc/apache2/conf.d/security, mettre à jour les paramètres suivants :
ServerSignature Off
ServerTokens Prod
- Pour garantir que l'accès à la racine soit bloqué et interdire que l'on modifie les .htaccess, ajouter dans les fichiers des virtualhosts (default et default-ssl) les données suivantes :
<Directory />
Order Deny,Allow
Deny from all
Options None
AllowOverride None
</Directory>
AccessFileName .httpdoverride
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
- Pour éviter l'utilisation d'un cryptage https trop limité, dans /etc/apache2/mods-avalable/ssl.conf, modifier les lignes suivantes :
SSLProtocol -ALL +SSLv3 +TLSv1
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:!LOW:!SSLv2:!EXPORT