Durcir la configuration de son serveur Apache2
Hello đ Dans cet article nous allons aborder la sĂ©curitĂ© de Apache2, par l’intermĂ©diaire de son fichier de configuration apache2.conf , et des fichiers spĂ©ciaux que nous allons dĂ©couvrir plus bas.
Fichier de configuration apache2
Commençons par « les bases » : Pour des raisons de sĂ©curitĂ©s Ă©videntes , il est nĂ©cessaire de masquer la version d’Apache.
Ăditez le fichier suivant /etc/apache2/apache2.conf
, et ajoutez les deux instances suivantes :
ServerTokens Prod
ServerSignature Off
Il est possible de tenter de limiter la portée des attaques de type DOS/DDOS (limiter le nombre de connexions simultanées) avec les instances MaxClients
et MaxKeepAliveRequests
(nb de connexions persistantes)
Voici un exemple pour « un petit serveur » (à placer à la fin de votre fichier apache2.conf
)
MaxClients 200
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 10
Timeout 30
Une fois que vous avez effectué ces modifications, il faut relancer apache2.
systemctl restart apache2
Les fichiers .htaccess et .htpasswd
Apache permet la gestion dĂ©centralisĂ©e de la configuration via des fichiers spĂ©ciaux placĂ©s dans l’arborescence du site web. Ces fichiers spĂ©ciaux se nomment en gĂ©nĂ©ral .htaccess / .htpasswd.
Les directives placĂ©es dans les fichiers .htaccess s’appliquent au rĂ©pertoires et sous-rĂ©pertoires dans lequel vous avez placĂ© ce fichier. Il donne donc la possibilitĂ© de personnaliser la configuration d’apache2 « à la carte » en fonction des sous rĂ©pertoires.
La syntaxe des fichiers .htaccess est la mĂȘme que celle des fichiers de configuration principaux. Comme les fichiers .htaccess sont lus Ă chaque requĂȘte, les modifications de ces fichiers prennent effet immĂ©diatement. (Pas besoin de relancer le service apache2 !)
Apache dĂ©sactive par dĂ©faut, la prise en charge des fichiers .htaccess / htpasswd, pour rĂ©activer cette option, localisez les lignes suivantes et remplacer l’instance AllowOverride None
, par AllowOverride All
Une fois que cela est fait, redĂ©marrez le service apache2 đ
systemctl restart apache2
Comme exemple, je vais créer ce fichier à la racine de mon serveur WEB : /var/www/html
nano /var/www/html/.htaccess
# DĂ©sactiver le listage des dossiers / sous dossiers / fichiers ( # "index of x")
options -indexes
Nous obtenons une erreur 403 forbidden, et c’est normal, car nous n’avons plus le droit de lister les fichiers dossiers du serveur web. Pour me faciliter la vie, la suite du tutoriel ne prendra plus en compte l’interdiction du listage des dossiers / fichiers. J’ai donc enlever la directive option -indexes
de mon fichier .htaccess. Si votre serveur est exposĂ© sur internet ou accessible Ă un grand nombre d’utilisateurs, je vous recommande fortement d’activer cette option.
Interdire l’accĂšs direct via URL (« hotlink ») aux types de fichiers suivants :
RewriteEngine on
RewriteRule .*\.(rar|exe|mp3|swf|psd|txt|tgz|csv|zip)$ http://votredomain.com [R,NC]
# si on tente d'y accĂ©der, apache2 redirigera la requĂȘte vers la racine de votre Serveur WEB : http://votredomain.com
# L'instruction doit ĂȘtre sur une ligne
Utiliser une page dĂ©diĂ©e, et non l’erreur par dĂ©faut 404 / 403 âŠ
# Dans ce cas prĂ©cis, il faudra upluader vos "pages dâerreurs, Ă la racine de votre serveur WEB
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
Rediriger un dossier vers un autre dossier / serveur web
# Rediriger une req http de http://domain.com/private vers http://domain.com/
RedirectMatch 301 ^/private/.* http://domain.com
Protéger un répertoire spécifique !
Supposons que vous ayez crĂ©Ă© un dossier « administrator » dans lequel il y a tous les fichiers d’administration de votre site. Comment empĂȘcher que n’importe qui accĂšde Ă ces pages ?
C’est lĂ que .htaccess
/ .htpasswd
vont bien nous aider : on peut trĂšs facilement crĂ©er une protection par login/mot de passe qui empĂȘche l’accĂšs Ă tous les fichiers du dossier.
Il va falloir créer deux fichiers dans /var/www/html/administrator
:
.htaccess
(Et oui un nouveau !)? Il contiendra l’adresse du.htpasswd
et quelques autres options que vous pourrez définir.htpasswd
contiendra une liste de logins/mots de passe, pour chaque personne autorisée à accéder aux pages !
Pour cet exemple, les deux fichiers vont ĂȘtre crĂ©er dans le dossier /administrator du site web.
touch .htaccess .htpasswd
nano .htaccess
AuthName "Access is restricted !"
AuthType Basic
AuthUserFile "/var/www/html/administrator/.htpasswd"
Require valid-user
nano .htpasswd
Pour crypter votre mot de passe, utiliser la fonction PHP crypt() ou bien alors vous pouvez utiliser le site suivant qui permet de vous faciliter la tĂąche… : https://www.web2generators.com/apache-tools/htpasswd-generator
admin:$apr1$oey1g5xd$7SqZBVFfhjWmU41JImoYW0
# admin, représente un utilisateur quelconque
Essayer d’accĂ©der Ă votre dossier administrator :
Si le couple login/mdp est correct, vous allez pouvoir visualiser le contenu du dossier administrator (Ă condition d’avoir desactiver l’option options -indexes
dans le premier fichier .htaccess đ )
En revanche, voici lâerreur obtenu dans le cas contraire !
VoilĂ , cet article est finit ! Bien sur, ce que je vous ai prĂ©sentĂ© ne reprĂ©sente pas la totalitĂ© des fonctionnalitĂ©s, Il y en a plein d’autres, mais celle-ci sont les plus connus.
Ă bientĂŽt đ
Brlndtech
En savoir plus sur Le Guide Du SecOps
Subscribe to get the latest posts sent to your email.