GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Nginx avec libmodsecurity et OWASP ModSecurity Core Rule Set sur Ubuntu 16.04

Dans ce tutoriel, je vais vous montrer comment compiler la dernière version de Nginx avec libmodsecurity (Modsecurity 3.x) à NE PAS confondre avec Modsecurity 2.9. Nous intégrerons également l'ensemble de règles de base OWASP ModSecurity Core (CRS).

Libmodsecurity est une réécriture majeure de ModSecurity qui offre des performances et une stabilité améliorées. Même si Modsecurity 2.9.x était proposé pour différentes plates-formes, il favorisait vraiment le déploiement avec Apache et le déploiement avec d'autres plates-formes nécessitait diverses dépendances tierces au détriment des performances. Libmodsecurity change tout cela en étant une réécriture à partir de zéro. Vous trouverez plus d'informations sur Libmodsecurity ici.

Ce guide suppose que vous disposez déjà d'une toute nouvelle instance mise à jour d'Ubuntu 16.04 64 bits.

1. Installer les prérequis

Installer les prérequis

apt-get install apache2-dev autoconf automake build-essential bzip2 checkinstall devscripts flex g++ gcc git graphicsmagick-imagemagick-compat graphicsmagick-libmagick-dev-compat libaio-dev libaio1 libass-dev libatomic-ops-dev libavcodec-dev libavdevice -dev libavfilter-dev libavformat-dev libavutil-dev libbz2-dev libcdio-cdda1 libcdio-paranoia1 libcdio13 libcurl4-openssl-dev libfaac-dev libfreetype6-dev libgd-dev libgeoip-dev libgeoip1 libgif-dev libgpac-dev libgsm1-dev libjack- jackd2-dev libjpeg-dev libjpeg-progs libjpeg8-dev liblmdb-dev libmp3lame-dev libncurses5-dev libopencore-amrnb-dev libopencore-amrwb-dev libpam0g-dev libpcre3 libpcre3-dev libperl-dev libpng12-dev libpng12-0 libpng12-dev libreadline-dev librtmp-dev libsdl1.2-dev libssl-dev libssl1.0.0 libswscale-dev libtheora-dev libtiff5-dev libtool libva-dev libvdpau-dev libvorbis-dev libxml2-dev libxslt-dev libxslt1-dev libxslt1.1 libxvidcore- dev libxvidcore4 libyajl-dev faire openssl perl pkg-config tar texi2html décompresser z ip zlib1g-dev

2. Télécharger ModSecurity

Git clone Modsecurity, contrôle et construit libmodsecurity

cd /opt/ 
git clone https://github.com/SpiderLabs/ModSecurity
cd ModSecurity
git checkout -b v3/master origin/v3/master
sh build.sh
git submodule init
git submodule update
./configure
make
make install

Git clone le connecteur Modsecurity-nginx

cd /opt/ 
clone git https://github.com/SpiderLabs/ModSecurity-nginx.git

Vous devriez maintenant avoir le répertoire suivant qui contient le connecteur Modsecurity-nginx

/opt/ModSecurity-nginx

3. Télécharger Nginx

Télécharger la dernière source stable Nginx

Accédez à http://nginx.org/en/download.html et obtenez le lien vers la dernière version stable de Nginx. Au moment d'écrire ces lignes, la dernière version stable était nginx-1.12.0.tar.gz. Ajustez les instructions ci-dessous pour votre version spécifique. Télécharger et extraire

cd /opt 
wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar -zxf nginx-1.12.0.tar.gz
cd nginx-1.12.0

4. Configurer et installer Nginx

Configurez Nginx avec le connecteur Modsecurity-nginx et installez

./configure --user=www-data --group=www-data --with-pcre-jit --with-debug --with-http_ssl_module --with-http_realip_module --add-module=/opt /ModSecurity-nginx 
make
make install

Le code source de ModSecurity que nous avons téléchargé précédemment inclut un exemple de fichier modsecurity.conf avec quelques paramètres recommandés. Copiez ce fichier dans le dossier avec les fichiers de configuration Nginx

cp /opt/ModSecurity/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf

Créez un lien symbolique de /usr/local/nginx/sbin/nginx vers /bin/nginx

ln -s /usr/local/nginx/sbin/nginx /bin/nginx

Créez les répertoires suivants :

mkdir /usr/local/nginx/conf/sites-available 
mkdir /usr/local/nginx/conf/sites-enabled
mkdir /usr/local/nginx/conf/ssl
mkdir /etc/nginx

Créer un lien symbolique vers /usr/local/nginx/conf/ssl /etc/nginx/ssl

ln -s /usr/local/nginx/conf/ssl /etc/nginx/ssl

Faites une copie de sauvegarde du fichier conf/nginx.conf

cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.bak

Configurez le fichier /usr/local/nginx/conf/nginx.conf

vi /usr/local/nginx/conf/nginx.conf

Recherchez et supprimez toutes les entrées commençant par "serveur {" et se terminant par l'avant-dernière accolade fermante "}". En d'autres termes, laissez la dernière accolade intacte.

Juste au-dessus de la dernière accolade, insérez ce qui suit. Cela demandera à Nginx de rechercher nos configurations de site dans le répertoire "/usr/local/nginx/conf/sites-enabled"

include /usr/local/nginx/conf/sites-enabled/*;

Ainsi, la fin du fichier devrait ressembler à celle ci-dessous (assurez-vous que le } de fermeture est présent) :

include /usr/local/nginx/conf/sites-enabled/* ; 
}

Activez la directive "user" en supprimant le préfixe "#" s'il est désactivé et assurez-vous qu'il est défini sur l'utilisateur "www-data" au lieu de "nobody" par défaut afin qu'il ressemble à ci-dessous :

utilisateur www-données ;

Enregistrez le fichier.

Téléchargez le script d'initialisation Nginx de Jason Giedymin pour gérer le service nginx et configurez-le en tant que service

wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx 
chmod +x /etc/init.d/nginx
valeurs par défaut de mise à jour-rc.d nginx

Ce script fournit les options suivantes pour gérer le service Nginx :

# service nginx start|stop|restart|force-reload|reload|status|configtest|quietupgrade|terminate|destroy

5. Installer l'ensemble de règles de base OWASP ModSecuirty

Git cloner et copier la version actuelle de l'ensemble de règles et de la configuration OWASP dans Nginx

cd /opt/ 
clone git https://github.com/SpiderLabs/owasp-modsecurity-crs.git
cd owasp-modsecurity-crs/
cp -R rules/ /usr/local/nginx/conf/
cp /opt/owasp-modsecurity-crs/crs-setup.conf.example /usr/local/nginx/conf/crs-setup.conf

Configurer Nginx avec l'ensemble de règles de base OWASP ModSecuirty

Modifier /usr/local/nginx/conf/modsecurity.conf

vi /usr/local/nginx/conf/modsecurity.conf

À la fin du fichier, collez ce qui suit :

#Load OWASP Config 
Include crs-setup.conf
#Load all other Rules
Include rules/*.conf
#Disable rule by ID from error message
#SecRuleRemoveById 920350

Dans votre fichier Nginx modsecurity.conf ou vos fichiers de configuration de serveur individuels, entrez ce qui suit dans les blocs de serveur ou d'emplacement. L'exemple ci-dessous montre une combinaison d'ajout d'entrées dans les blocs de serveur et d'emplacement :

serveur { 
.....
modsecurity activé ;
emplacement / {
modsecurity_rules_file /usr/local/nginx/conf/modsecurity.conf;
.....
}
}

Testez votre configuration Nginx

test de configuration du service nginx

S'il n'y a pas d'erreurs, rechargez ou redémarrez votre Nginx

rechargement du service nginx

Vous pouvez maintenant afficher le /var/log/modsec_audit.log pour tous les événements ModSecurity

tail -f /var/log/modsec_audit.log

Si vous êtes satisfait, modifiez le fichier /usr/local/nginx/conf/modsecurity.conf et définissez "SecRuleEngine" de "DetectionOnly" sur "On" comme ci-dessous

SecRuleEngine activé

Ceci conclut ce guide.

À propos de l'auteur

Dino Edwards est un professionnel de l'informatique avec plus de 20 ans d'expérience dans les secteurs fédéral, étatique et privé. Il est également connu pour se lancer dans la programmation.

Il a tendance à écrire des guides ou des tutoriels après avoir terminé un projet particulier, principalement parce que sa mémoire est mauvaise et qu'il ne veut pas réinventer la roue s'il doit refaire le même projet.

Contactez-nous

  Site Web de l'auteur   Suivre   E-mail


Ubuntu
  1. Comment installer Nginx avec PHP5 et MySQL sur Ubuntu 11.10

  2. Comment déployer Modsecurity avec Nginx sur Ubuntu 20.04 LTS

  3. Déployer Modsecurity avec Nginx sur Ubuntu 20.04 LTS

  4. Comment installer et configurer PHP et Nginx (LEMP) sur Ubuntu 20.04

  5. Comment installer et configurer Git sur Ubuntu ?

Installation de Nginx avec prise en charge de PHP5 et MySQL sur Ubuntu 8.10

Comment installer Nginx avec ModSecurity sur Ubuntu 15.04

Comment installer l'ensemble de règles de base OWASP sur Modsecurity avec Nginx sur Ubuntu 20.04

Comment configurer ModSecurity avec Nginx sur Debian/Ubuntu

Comment installer ModSecurity 3 &OWASP Core Rule Set avec Nginx sur Debian 11 Bullseye

Configurer Django avec Postgres, Nginx et Gunicorn sur Ubuntu 18.04