HTTP Apache

Comment sécuriser votre serveur Apache

Comment sécuriser votre serveur Apache
Apache est un serveur Web open source populaire disponible pour les systèmes Linux et Windows. Il permet la configuration pour un large éventail de cas d'utilisation, des pages Web HTML au contenu d'application Web dynamique du préprocesseur hypertexte (PHP).Apache fournit une plate-forme sécurisée et robuste pour déployer vos applications Web. Cependant, il est toujours important d'installer les derniers correctifs de sécurité et de configurer correctement le serveur pour établir un environnement sécurisé pour vos applications Web.
Dans cet article, vous trouverez quelques trucs et astuces pour renforcer vos configurations Apache Web Server et améliorer la sécurité générale.

Compte d'utilisateur non privilégié

Le but d'un compte d'utilisateur non root ou non privilégié est d'empêcher l'utilisateur d'accéder inutilement à certaines tâches au sein d'un système. Dans le contexte d'un serveur Web Apache, cela signifie qu'il doit fonctionner dans un environnement restreint avec uniquement les autorisations nécessaires. Par défaut, Apache s'exécute avec les privilèges du compte démon. Vous pouvez créer un compte utilisateur non root séparé pour éviter les menaces en cas de failles de sécurité.

De plus, si apache2 et MySQL sont sous les mêmes identifiants d'utilisateur, tout problème dans le processus d'une fois le service aura un impact sur l'autre. Pour modifier les privilèges d'utilisateur et de groupe pour le serveur Web, accédez à /etc/apache2, ouvrez le fichier envvars et définissez l'utilisateur et le groupe sur un nouvel utilisateur de compte non privilégié, disons « apache », et enregistrez le fichier.

ubuntu@ubuntu~:$ sudo vim /etc/apache2/envvars
… couper…
exporter APACHE_RUN_USER= apache
exporter APACHE_RUN_GROUP= apache
… couper…

Vous pouvez également utiliser la commande suivante pour remplacer la propriété du répertoire d'installation par le nouvel utilisateur non root.

ubuntu@ubuntu~:$ sudo chown -R apache:apache /etc/apache2
Exécutez la commande suivante pour enregistrer les modifications :
ubuntu@ubuntu~:$ sudo service apache2 redémarrer

Gardez Apache à jour

Apache est réputé pour fournir une plate-forme sécurisée avec une communauté de développeurs très concernée qui fait rarement face à des bogues de sécurité. Néanmoins, il est normal de découvrir des problèmes une fois le logiciel sorti. Par conséquent, il est essentiel de maintenir le serveur Web à jour pour bénéficier des dernières fonctionnalités de sécurité. Il est également conseillé de suivre les listes d'annonces du serveur Apache pour vous tenir au courant des nouvelles annonces, versions et mises à jour de sécurité de la communauté de développement Apache.

Pour mettre à jour votre apache à l'aide d'apt, tapez ce qui suit :

ubuntu@ubuntu~:$ sudo apt-get update
ubuntu@ubuntu~:$ sudo apt-get upgrade

Désactiver la signature du serveur

La configuration par défaut d'un serveur Apache expose beaucoup de détails sur le serveur et ses paramètres. Par exemple, les directives ServerSignature et ServerTokens activées dans le fichier /etc/apache2/apache2.conf ajoute un en-tête supplémentaire à la réponse HTTP qui expose des informations potentiellement sensibles. Ces informations incluent les détails des paramètres du serveur, tels que la version du serveur et le système d'exploitation d'hébergement, qui peuvent aider l'attaquant dans le processus de reconnaissance. Vous pouvez désactiver ces directives en éditant le fichier apache2.conf via vim/nano et ajoutez la directive suivante :

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
… couper…
Signature du serveur désactivée
… couper…
ServerTokens Prod
… couper…

Redémarrez Apache pour mettre à jour les modifications.

Désactiver les listes de répertoires de serveurs

Les listes de répertoires affichent tout le contenu enregistré dans le dossier racine ou les sous-répertoires. Les fichiers de répertoire peuvent inclure des informations sensibles non destinées à un affichage public, telles que des scripts PHP, des fichiers de configuration, des fichiers contenant des mots de passe, des journaux, etc.
Pour interdire les listes de répertoires, modifiez le fichier de configuration du serveur Apache en modifiant le fichier apache2.conf en tant que :

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
… couper…

Options -Index

… couper…

OU ALORS

… couper…

Options -Index

… couper…

Vous pouvez également ajouter cette directive dans le .htaccess du répertoire principal de votre site Web.

Protéger les paramètres système

le .htaccess est une fonctionnalité pratique et puissante qui permet une configuration en dehors du principal apache2.fichier de configuration. Cependant, dans les cas où un utilisateur peut télécharger des fichiers sur le serveur, cela peut être exploité par un attaquant pour télécharger son propre ".htaccess" avec des configurations malveillantes. Donc, si vous n'utilisez pas cette fonctionnalité, vous pouvez désactiver le .directive htaccess, je.e.:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
… couper…
#AccessFileName .htaccess
… couper…

OU ALORS
Désactivez le .htaccess à l'exception des répertoires spécifiquement activés en éditant apache2.conf et en définissant la directive AllowOverRide sur None ;

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
… couper…

AllowOverride Aucun

… couper…

Répertoires sécurisés avec authentification

Vous pouvez créer des informations d'identification utilisateur pour protéger tout ou partie des répertoires à l'aide de l'utilitaire htpasswd. Accédez au dossier de votre serveur et utilisez la commande suivante pour créer un .htpasswd pour stocker les hachages de mot de passe pour les informations d'identification attribuées, par exemple, à un utilisateur nommé dev.

[email protégé]~:$ sudo htpasswd -c /etc/apache2/-htpasswd dev

La commande ci-dessus demandera le nouveau mot de passe et la confirmation du mot de passe. Vous pouvez voir le chat ./htpasswd pour vérifier le hachage des informations d'identification de l'utilisateur stockées.

Maintenant, vous pouvez définir automatiquement le fichier de configuration dans le répertoire your_website que vous devez protéger en modifiant le .fichier htaccess. Utilisez la commande et les directives suivantes pour activer l'authentification :

ubuntu@ubuntu~:$ sudo nano /var/www/votre_site/.htaccess
… couper…
Type d'authentification de base
AuthName "Ajouter l'invite de dialogue"
AuthUserFile /etc/apache2/user_name/domain_name/.htpasswd
Exiger un utilisateur valide
… couper…

N'oubliez pas d'ajouter le chemin selon le vôtre.

Exécuter les modules nécessaires

La configuration par défaut d'Apache comprend des modules activés dont vous n'avez peut-être même pas besoin. Ces modules préinstallés ouvrent la porte aux problèmes de sécurité Apache qui existent déjà ou peuvent exister à l'avenir. Pour désactiver tous ces modules, vous devez d'abord comprendre quels modules sont nécessaires au bon fonctionnement de votre serveur web. Pour cela, consultez la documentation du module apache qui couvre tous les modules disponibles.

Ensuite, utilisez la commande suivante pour déterminer quels modules s'exécutent sur votre serveur.

[email protected]~:$ sudo ls /etc/apache2/mods-enabled

Apache est livré avec la puissante commande a2dismod pour désactiver le module. Il empêche le chargement du module et vous avertit lors de la désactivation du module que l'action peut avoir un impact négatif sur votre serveur.

[email protected]~:$ sudo a2dismod module_name

Vous pouvez également désactiver le module en commentant dans la ligne LoadModule.

Empêchez les Loris lents et les attaques DoS

L'installation par défaut d'un serveur Apache l'oblige à attendre trop longtemps les requêtes des clients, ce qui soumet le serveur à des attaques Slow Loris et DoS. L'apache2.conf fichier de configuration fournit une directive que vous pouvez utiliser pour réduire la valeur du délai d'attente à quelques secondes pour empêcher ces types d'attaques, je.e.:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
Délai d'attente 60

En outre, le nouveau serveur Apache est livré avec un module pratique mod_reqtimeout qui fournit une directive RequestReadTimeout pour sécuriser le serveur contre les requêtes illégitimes. Cette directive est livrée avec quelques configurations délicates, vous pouvez donc lire les informations connexes disponibles sur la page de documentation.

Désactiver les requêtes HTTP inutiles

Les requêtes HTTP/HTTPS illimitées peuvent également entraîner de faibles performances du serveur ou une attaque DoS. Vous pouvez limiter la réception de requêtes HTTP par répertoire en utilisant LimitRequestBody à moins de 100K. Par exemple, pour créer une directive pour le dossier /var/www/votre_site Web, vous pouvez ajouter la directive LimitRequestBody sous AllowOverride All, i.e.:

… couper…

Options -Index
AutoriserTout remplacer
Limiter le corps de la demande 995367

… couper…

Remarque : N'oubliez pas de redémarrer Apache après les modifications appliquées pour le mettre à jour en conséquence.

Conclusion

L'installation par défaut du serveur Apache peut fournir de nombreuses informations sensibles pour aider les attaquants lors d'une attaque. En attendant, il existe de nombreuses autres façons (non répertoriées ci-dessus) de sécuriser le serveur Web Apache, ainsi. Continuez à rechercher et à vous tenir au courant des nouvelles directives et modules pour sécuriser davantage votre serveur.

Comment afficher la superposition OSD dans les applications et jeux Linux en plein écran
Jouer à des jeux en plein écran ou utiliser des applications en mode plein écran sans distraction peut vous couper des informations système pertinente...
Top 5 des cartes de capture de jeu
Nous avons tous vu et aimé des gameplays en streaming sur YouTube. PewDiePie, Jakesepticye et Markiplier ne sont que quelques-uns des meilleurs joueur...
Comment développer un jeu sur Linux
Il y a dix ans, peu d'utilisateurs de Linux prédisaient que leur système d'exploitation préféré serait un jour une plate-forme de jeu populaire pour l...