GNU/Linux >> Tutoriels Linux >  >> Linux

Meilleures pratiques pour sécuriser votre serveur Web Apache

Présentation

Apache est le serveur Web le plus utilisé sur Internet. Et il est idéal pour la plupart des situations et permet une flexibilité pour les environnements partagés. Dans ce tutoriel, nous allons voir comment sécuriser un Apache serveur Web. Pour ce tutoriel, nous utiliserons Centos 8. vous pouvez trouver le tutoriel d'installation apache ici. Nous allons voir comment modifier Apache configuration sur le système Ubuntu/Debian également.

1. Tenir à jour Apache

Connectez-vous au système à l'aide d'un compte d'utilisateur privilégié root ou sudo. vérifiez Apache version en exécutant la commande suivante.
httpd -v

2. Masquer les informations sur la version d'Apache et le système d'exploitation du serveur .

La première chose que nous devons considérer, car nous ne voulons pas exposer la version du serveur Web que nous utilisons dans notre système. L'exposition des informations sur la version et le système d'exploitation signifie que nous aidons les pirates à être rapides dans le processus d'attaque. Dans l'image ci-dessous, nous pouvons voir que Apache affiche sa version avec le OS installé sur notre serveur.

Pour empêcher Apache d'exposer sa version et les informations du système d'exploitation, nous devons changer Apache fichier de configuration principal. ouvrez le fichier de configuration en exécutant la commande suivante-

nano /etc/httpd/conf/httpd.conf
nano /etc/apache2/apache.conf (Ubuntu / Debian)

Ajoutez maintenant les deux directives ci-dessous au fichier de configuration principal et enregistrez-le.

ServerTokens Prod
ServerSignature Off

Et redémarrez Apache serveur en exécutant la commande suivante-

systemctl restart httpd.service

Comme nous pouvons le voir dans l'image ci-dessous, le Apache la version n'est pas exposée et les informations d'exploitation ne sont pas non plus visibles.

3. Désactiver l'indexation des répertoires

Par défaut, Apache affiche tout le contenu du répertoire Webroot en l'absence d'un fichier d'index. Comme l'image ci-dessous,

pour empêcher l'indexation des répertoires dans un navigateur, nous devons modifier la directive options dans Apache fichier de configuration. Ouvrez la configuration et modifiez l'entrée comme ci-dessous.

<Directory /var/www/html>
    Options -Indexes
</Directory>

Ouvrez maintenant le navigateur et tapez IP ou URL dans la barre d'adresse. Et nous verrons une image comme ci-dessous

4. Désactiver ETag

Étiquette est utilisé dans les en-têtes HTTP pour gérer le comportement de la mise en cache Web. Cependant, Etag peut causer des problèmes de sécurité. Il permet aux attaquants distants d'obtenir des informations sensibles telles que le numéro d'inode, le type mime et le processus via ETag entête. Pour éviter les attaques et les fuites d'informations, ajoutez la directive suivante à Apache configuration.

pour y parvenir, ajoutez simplement la ligne suivante à Apache fichier de configuration et redémarrez Apache .

FileEtag None

5. Désactiver CGI et SSI

Les SSI (inclus côté serveur) sont des directives utilisées pour écrire une page HTML avec un contenu dynamique et CGI est utilisé pour injecter des scripts malveillants dans votre code Web. Restreignez CGI et SSI en ajoutant les directives d'option suivantes à la configuration d'Apache :

Options -Includes -ExecCGI

6. Restreindre l'accès au répertoire

C'est une bonne pratique de sécurité de restreindre l'accès au répertoire Webroot en utilisant le "Autoriser et Refuser" syntaxe. Pour ce faire, apportez les modifications suivantes dans apache fichier de configuration. Ouvrez le fichier de configuration et le serveur pour Répertoire bloquez et écrivez la directive de répertoire comme suit et enregistrez-la. maintenant redémarrez Apache pour modifier les effets

<Directory />
   Options None
   Order deny,allow
   Deny from all
</Directory>

Le paramètre ci-dessus refusera les demandes de quiconque au répertoire racine. Personne ne peut accéder au répertoire racine.

7. Sécurisez Apache avec Mod_Security

Mod_security est un outil de sécurité, fonctionne comme un pare-feu pour les sites Web ou les applications. Il aide à protéger les sites Web ou les applications contre les accès autorisés par l'ONU et également contre les attaques par force brute. Installez mod_security en exécutant la commande suivante et redémarrez Apache pour travailler avec mod_security.

dnf -y install mod_security

8. Définir les méthodes de requête HTTP

Dans le HTTP actuel protocole, de nombreuses requêtes ne sont pas nécessaires et certaines présentent un risque de sécurité. Cependant, il est assez joli pour une application Web d'autoriser GET , TÊTE , et PUBLIER méthodes de demande. Nous pouvons configurer ce paramètre en ajoutant la directive Directory respective. pour y parvenir, ouvrez le Apache fichier de configuration, recherchez Directory et ajoutez la directive interne suivante et redémarrez Apache

<LimitExcept GET POST HEAD>
deny from all
</LimitExcept>

9. Activer l'en-tête de protection XSS

Le script intersite est connu sous le nom de (XSS) et il s'agit d'une vulnérabilité courante dans les applications Web. La protection Cross-Site Scripting (XSS) peut être ignorée dans de nombreux navigateurs. Cependant, nous pouvons empêcher certaines attaques XSS en ajoutant l'entrée suivante à notre Apache fichier de configuration et l'enregistrer. Et redémarrez Apache serveur.

Header set X-XSS-Protection "1; mode=block"

Vérifiez maintenant l'en-tête de la demande dans l'outil de développement du navigateur, nous pouvons dans l'image ci-dessous, cet en-tête est implémenté avec succès.

10. Désactiver la requête HTTP TRACE

Par défaut, Trace HTTP Request s'ouvre dans Apache à permettre le traçage intersite. Cette option permet à un pirate informatique de voler facilement des informations sur les cookies. pour éviter cela, ajoutez les paramètres suivants à Apache fichier de configuration. Et redémarrez Apache .

TraceEnable off

11. Empêcher les attaques de détournement de clic

Clickjacking , également connue sous le nom d'"attaque de réparation de l'interface utilisateur", est une technique malveillante permettant de collecter les clics d'un utilisateur infecté. Clickjacking incite la victime (visiteur) à cliquer sur un site infecté. Pour éviter cet incident, nous devons utiliser "X-FRAME-OPTION" dans Apache fichier de configuration. Pour cela, ajoutez la ligne suivante dans le fichier de configuration.

Header set X-FRAME-OPTIONS "SAMEORIGIN"

Vérifiez maintenant l'en-tête de la requête dans l'outil de développement du navigateur, car nous pouvons voir que nous avons ajouté avec succès X-FRAME-OPTIONS sur Apache fichier de configuration.

13. Cookie sécurisé avec indicateur HTTPOnly

Sans avoir HttpOnly et Secure, il est possible de voler ou de manipuler des sessions d'applications Web et des cookies, et c'est dangereux. Pour atténuer cela, nous devons nous assurer que le mod_header module s'exécute côté serveur.

apachectl -M | grep header

Dans l'image ci-dessus, nous pouvons voir que le module mod_header est chargé et activé dans Apache . Ajoutez maintenant la ligne suivante dans le fichier de configuration principal d'Apache et redémarrez Apache serveur.

Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

14. Limiter la taille de la demande

Par défaut, la requête HTTP dans Apache est illimité ; par conséquent, le serveur Web est sensible aux attaques DoS en le gardant ouvert pour le nombre élevé de demandes. Ensuite, il est important de définir la limite de demande de fichier. Cela peut être fait en ajoutant le LimitRequestBody directive dans Apache fichier de configuration.

Par exemple, unixcop est un répertoire qui contient des fichiers téléchargés par les utilisateurs. Maintenant, nous limitons la taille de téléchargement à 2K afin que l'utilisateur ne puisse pas télécharger plus de fichiers que cela.

<Directory "/var/www/html/unixcop">
LimitRequestBody 20000
</Directory

Conclusion

À partir de ce didacticiel, nous avons appris comment protéger notre serveur Apache contre les attaquants. J'espère que notre article vous aidera à protéger votre serveur. vous pouvez également suivre mes autres articles.


Linux
  1. Comment configurer un serveur Web Apache

  2. Trouver les 10 principales adresses IP accédant à votre serveur Web Apache

  3. Réglage du serveur Web Apache Keepalive

  4. Installer le serveur Web Apache sur openSUSE 12

  5. Installer le serveur Web Apache sur Ubuntu 12.10

Comment installer le serveur Web Apache sur Linux

11 meilleures façons de sécuriser votre serveur SSH

Comment héberger un site Web sur un serveur Web Apache

Comment installer le serveur Web Apache sur Debian 11

Apache vs Nginx :quel serveur Web vous convient le mieux ?

Sécuriser votre serveur Web Apache avec Mod Security