Recherche de site Web

Comment configurer ModSecurity avec Apache sur Debian/Ubuntu


Le serveur Web Apache est hautement personnalisable et peut être configuré de plusieurs manières pour répondre à vos besoins. Il existe de nombreux modules tiers que vous pouvez utiliser pour configurer Apache selon vos préférences.

ModSecurity est un WAF (Web Application Firewall) open source natif du serveur Web Apache. Il s'agissait initialement d'un module Apache uniquement, mais il s'est développé au fil de l'année pour devenir un pare-feu d'application Web à part entière. Il est désormais pris en charge par Nginx et même IIS.

ModSecurity inspecte les requêtes entrantes adressées au serveur Web par rapport à un ensemble de règles prédéfinies. Généralement, il fournit un ensemble de règles appelées CRS (Core Rule Set) qui protègent un site Web contre un éventail d'attaques d'applications Web telles que l'injection SQL, XSS et les attaques de session. détournement entre autres exploits.

Le pare-feu applicatif ModSecurity fait partie intégrante de la conformité PCI DSS pour protéger les sites contre les attaques externes. Lorsque le module est activé, il déclenche une « erreur interdite 403 » qui implique simplement que vous disposez des autorisations insuffisantes pour accéder à la ressource sur le serveur Web.

Dans ce guide, nous allons vous montrer comment installer et configurer ModSecurity pour fonctionner avec Apache sur Debian et Ubuntu . Linux.

Étape 1 : Installer ModSecurity sur Ubuntu

La première étape consiste à installer ModSecurity. Nous commencerons par actualiser les listes de packages comme suit :

sudo apt update

Ensuite, installez le package ModSecurity avec d'autres dépendances et bibliothèques.

sudo apt install libapache2-mod-security2

Ensuite, activez le module.

sudo a2enmod security2

Redémarrez ensuite le serveur Web Apache pour appliquer les modifications.

sudo systemctl restart apache2

À ce stade, ModSecurity est installé avec succès. Configurons-le maintenant.

Étape 2 : configurer ModSecurity dans Ubuntu

Par défaut, ModSecurity est uniquement configuré pour détecter et enregistrer les activités suspectes. Nous devons franchir une étape supplémentaire et le configurer non seulement pour détecter mais également bloquer les activités suspectes.

Copiez le fichier de configuration ModSecurity par défaut – modsecurity.conf-recommended – dans un nouveau fichier comme indiqué dans la commande ci-dessous.

sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

À l'aide de votre éditeur de texte préféré, ouvrez le fichier

sudo nano /etc/modsecurity/modsecurity.conf

Localisez la ligne :

SecRuleEngine DetectionOnly

Réglez-le sur :

SecRuleEngine On

Enregistrez les modifications et quittez le fichier.

Pour appliquer les modifications dans Apache, redémarrez le serveur Web.

sudo systemctl restart apache2

Étape 3 : Téléchargez l'ensemble de règles de base OWASP ModSecurity

L'étape suivante consiste à télécharger le dernier ensemble de règles de base (CRS) OWASP ModSecurity à partir de la page GitHub.

Clonez le référentiel git OWASP comme indiqué.

git clone https://github.com/coreruleset/coreruleset.git

Accédez au répertoire.

cd coreruleset/

Assurez-vous de déplacer le fichier crs-setup.conf.example vers le répertoire modsecurity et de le renommer crs-setup.conf.

sudo mv crs-setup.conf.example /etc/modsecurity/crs-setup.conf

De plus, déplacez également le répertoire rules vers le répertoire modsecurity.

sudo mv rules/ /etc/modsecurity/

Ensuite, modifiez le fichier security2.conf.

sudo nano /etc/apache2/mods-enabled/security2.conf

Assurez-vous qu'il contient les lignes suivantes.

IncludeOptional /etc/modsecurity/*.conf
Include /etc/modsecurity/rules/*.conf

Redémarrez ensuite Apache pour que les modifications soient conservées.

sudo systemctl restart apache2

Testons maintenant notre configuration ModSecurity.

Étape 4 : tester la configuration ModSecurity sur Ubuntu

Enfin, nous devons tester que ModSecurity peut détecter et bloquer le trafic HTTP suspect. Pour y parvenir, nous devons modifier le fichier d'hôte virtuel par défaut.

sudo nano /etc/apache2/sites-available/000-default.conf

Ensuite, nous allons créer une règle de blocage qui bloquera l'accès à une certaine URL lors de l'accès par un navigateur Web.

Ajoutez ces lignes à la fin avant la balise de fermeture « Virtualhost ».

SecRuleEngine On
SecRule ARGS:testparam "@contains test" "id:254,deny,status:403,msg:'Test Successful'"

N'hésitez pas à définir les balises « id » et « msg » sur les valeurs souhaitées.

Redémarrez ensuite le serveur Web Apache pour appliquer les modifications apportées au fichier de configuration de l'hôte virtuel.

sudo systemctl restart apache2

Sur votre navigateur Web, essayez de visiter l'URL affichée avec ?testparam=test à la fin.

http://server-ip/?testparam=test

Vous obtenez une « Erreur 403 Forbidden » indiquant que vous n’avez pas accès à la ressource.

Vous pouvez en outre confirmer que le client a été bloqué en vérifiant les journaux d'erreurs comme suit.

cat /var/log/apache2/error.log | grep “Test Successful”

Ceci est la confirmation que nous avons configuré avec succès ModSecurity pour détecter et bloquer le trafic indésirable. Dans ce guide, nous vous avons guidé tout au long du processus de configuration de ModSecurity avec Apache sur les systèmes Debian/Ubuntu.