GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Nginx mit libmodsecurity und OWASP ModSecurity Core Rule Set auf Ubuntu 16.04

In diesem Tutorial zeige ich Ihnen, wie Sie die neueste Version von Nginx mit libmodsecurity (Modsecurity 3.x) kompilieren, NICHT zu verwechseln mit Modsecurity 2.9. Wir werden auch das OWASP ModSecurity Core Rule Set (CRS) integrieren.

Libmodsecurity ist eine umfassende Neufassung von ModSecurity, die eine verbesserte Leistung und Stabilität bietet. Obwohl Modsecurity 2.9.x für verschiedene Plattformen angeboten wurde, bevorzugte es wirklich die Bereitstellung mit Apache, und die Bereitstellung mit anderen Plattformen erforderte verschiedene Abhängigkeiten von Drittanbietern auf Kosten der Leistung. Libmodsecurity ändert all das, indem es von Grund auf neu geschrieben wird. Weitere Informationen zu Libmodsecurity finden Sie hier.

In diesem Handbuch wird davon ausgegangen, dass Sie bereits über eine brandneue aktualisierte Instanz von Ubuntu 16.04 64-Bit verfügen.

1. Installationsvoraussetzungen

Voraussetzungen installieren

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 make openssl perl pkg-config tar texi2html unzip zip zlib1g-dev

2. ModSecurity herunterladen

Klonen Sie Modsecurity mit Git, checken Sie aus und erstellen Sie 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

Klonen Sie den Modsecurity-nginx-Connector mit Git

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

Sie sollten jetzt das folgende Verzeichnis haben, das den Modsecurity-nginx-Connector enthält

/opt/ModSecurity-nginx

3. Nginx herunterladen

Neueste stabile Nginx-Quelle herunterladen

Gehen Sie zu http://nginx.org/en/download.html und rufen Sie den Link zur neuesten stabilen Version von Nginx ab. Zum Zeitpunkt dieses Schreibens war die neueste stabile Version nginx-1.12.0.tar.gz. Passen Sie die Anweisungen unten für Ihre spezifische Version an. Herunterladen und extrahieren

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. Nginx konfigurieren und installieren

Nginx mit dem Modsecurity-nginx-Connector konfigurieren und installieren

./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

Der Quellcode von ModSecurity, den wir zuvor heruntergeladen haben, enthält eine Beispieldatei modsecurity.conf mit einigen empfohlenen Einstellungen. Kopieren Sie diese Datei in den Ordner mit den Nginx-Konfigurationsdateien

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

Erstellen Sie einen Symlink von /usr/local/nginx/sbin/nginx zu /bin/nginx

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

Erstellen Sie die folgenden Verzeichnisse:

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

Erstellen Sie einen Symlink von /usr/local/nginx/conf/ssl /etc/nginx/ssl

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

Erstellen Sie eine Sicherungskopie der Datei conf/nginx.conf

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

Konfigurieren Sie die Datei /usr/local/nginx/conf/nginx.conf

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

Suchen und entfernen Sie alle Einträge, die mit „server {“ beginnen und mit der vorletzten schließenden geschweiften Klammer „}“ enden. Mit anderen Worten, lassen Sie die letzte geschweifte Klammer intakt.

Fügen Sie direkt über der letzten geschweiften Klammer Folgendes ein. Dadurch wird Nginx angewiesen, im Verzeichnis „/usr/local/nginx/conf/sites-enabled“ nach unseren Site-Konfigurationen zu suchen

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

Das Ende der Datei sollte also wie folgt aussehen (stellen Sie sicher, dass das schließende } vorhanden ist):

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

Aktivieren Sie die „user“-Direktive, indem Sie das „#“-Präfix entfernen, falls es deaktiviert ist, und stellen Sie sicher, dass es auf den Benutzer „www-data“ statt auf den Standardwert „nobody“ gesetzt ist, sodass es wie folgt aussieht:

user www-data;

Speichern Sie die Datei.

Laden Sie das Nginx-Init-Skript von Jason Giedymin herunter, um den Nginx-Dienst zu verwalten und als Dienst zu konfigurieren

wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx 
chmod +x /etc/init.d/nginx
update-rc.d nginx defaults

Dieses Skript bietet die folgenden Optionen zum Verwalten des Nginx-Dienstes:

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

5. Installieren Sie das OWASP ModSecurity Core Rule Set

Git klonen und kopieren Sie die aktuelle Version des OWASP-Regelsatzes und der Konfiguration nach Nginx

cd /opt/ 
git clone 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

Konfigurieren Sie Nginx mit dem OWASP ModSecurity Core Rule Set

Bearbeiten Sie /usr/local/nginx/conf/modsecurity.conf

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

Fügen Sie am Ende der Datei Folgendes ein:

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

Geben Sie in Ihrer Nginx-Datei modsecurity.conf oder Ihren individuellen Server-conf-Dateien Folgendes entweder in den Server- oder Standortblöcken ein. Das folgende Beispiel zeigt eine Kombination aus dem Hinzufügen der Einträge in den Server- und Standortblöcken:

server { 
.....
modsecurity on;
location / {
modsecurity_rules_file /usr/local/nginx/conf/modsecurity.conf;
.....
}
}

Testen Sie Ihre Nginx-Konfiguration

service nginx configtest

Wenn keine Fehler auftreten, laden Sie Nginx neu oder starten Sie es neu

service nginx reload

Sie können jetzt /var/log/modsec_audit.log für alle ModSecurity-Ereignisse anzeigen

tail -f /var/log/modsec_audit.log

Wenn Sie zufrieden sind, bearbeiten Sie die Datei /usr/local/nginx/conf/modsecurity.conf und setzen Sie „SecRuleEngine“ von „DetectionOnly“ auf „On“ wie unten

SecRuleEngine On

Damit ist dieser Leitfaden abgeschlossen.

Über den Autor

Dino Edwards ist ein IT-Experte mit mehr als 20 Jahren Erfahrung im Bundes-, Landes- und Privatsektor. Er ist auch dafür bekannt, sich mit Programmieren zu beschäftigen.

Er neigt dazu, Leitfäden oder Anleitungen zu schreiben, nachdem er ein bestimmtes Projekt abgeschlossen hat, hauptsächlich weil sein Gedächtnis schlecht ist und er das Rad nicht neu erfinden möchte, wenn er dasselbe Projekt noch einmal machen muss.

Kontaktieren Sie uns

  Website des Autors   Folgen   E-Mail


Ubuntu
  1. So installieren Sie den HTTP-Git-Server mit Nginx unter Ubuntu 16.04

  2. So installieren Sie den HTTP-Git-Server mit Nginx unter Ubuntu 20.04

  3. So installieren Sie Nginx mit PHP5 und MySQL unter Ubuntu 11.10

  4. So stellen Sie Modsecurity mit Nginx auf Ubuntu 20.04 LTS bereit

  5. So installieren und konfigurieren Sie PHP und Nginx (LEMP) unter Ubuntu 20.04

Installieren von Nginx mit PHP5- und MySQL-Unterstützung auf Ubuntu 8.10

So installieren Sie Nginx mit ModSecurity unter Ubuntu 15.04

So installieren Sie den OWASP-Kernregelsatz auf Modsecurity mit Nginx unter Ubuntu 20.04

So richten Sie ModSecurity mit Nginx unter Debian/Ubuntu ein

So installieren Sie ModSecurity 3 &OWASP Core Rule Set mit Nginx auf Debian 11 Bullseye

Richten Sie Django mit Postgres, Nginx und Gunicorn auf Ubuntu 18.04 ein