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

Stellen Sie Modsecurity mit Nginx auf Ubuntu 20.04 LTS bereit

ModSecurity ist eine kostenlose Open-Source-Firewall für Webanwendungen, die von verschiedenen Webservern wie Apache, IIS und Nginx unterstützt wird. Es wird als externe Sicherheitsschicht zum Schutz von Webservern eingesetzt.

Hier bei LinuxAPT werden wir untersuchen, wie die ModSecurity-Firewall mit vorinstalliertem Nginx auf einem Ubuntu 20.04-Server installiert wird.


Schritte zum Bereitstellen von Modsecurity mit Nginx auf Ubuntu 20

1. Nginx auf dem System installieren

Wenn Sie Nginx nicht auf Ihrem Server installiert haben, befolgen Sie diese Anleitung, um die Modsecurity-Installationsvoraussetzung zu erfüllen:https://linuxapt.com/blog/1276-install-nginx-on-ubuntu-20-04-lts-using- Quellcode


2. Installieren Sie libmodsecurity3

Installieren Sie jetzt git auf Ihrem Computer, damit Sie das ModSecurity-Git-Repository klonen können. Wir können dies tun, indem wir diesen Befehl ausführen:

$ sudo apt install git -y

Nachdem Git installiert ist, klonen Sie das Repository, indem Sie diesen Befehl ausführen:

$ git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/


3. Wechseln Sie in das Modsecurity-Verzeichnis

Nachdem Sie das modsecurity-Git-Repository geklont haben, wechseln Sie in das modsecurity-Verzeichnis und folgen Sie dabei dem folgenden Pfad:

$ cd /usr/local/src/ModSecurity/


4. Installieren Sie libmodsecurity3-Abhängigkeiten

Da wir uns nun im Modsecurity-Verzeichnis befinden, werden wir in diesem Schritt libmodsecurity3-Abhängigkeiten installieren. Führen Sie diesen Befehl aus:

$ sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen -y


5. Git-Module installieren

Installieren Sie nun Git-Submodule mit Hilfe dieses Befehls:

$ git submodule init

Als nächstes werden wir die Submodule aktualisieren:

$ git submodule update


6. Erstellen Sie die Modsecurity-Umgebung

Es ist an der Zeit, die Modsecurity-Umgebung aufzubauen. Führen Sie dazu den folgenden Befehl aus:

$ ./build.sh

Konfigurieren Sie nun mit diesem Befehl:

$ ./configure

Danach erhalten Sie diesen Fehler:

fatal: No names found, cannot describe anything.


7. Kompilieren Sie den Modsecurity-Quellcode

Jetzt kompilieren wir die Umgebung für libmodsecurity3 mit diesem Befehl:

$ make

Wenn Sie die Kompilierungsgeschwindigkeit erhöhen möchten, können Sie -j angeben. Ich habe 4 CPUs und werde alle 4 verwenden, um wie unten gezeigt zu kompilieren:

$ make -j 4

Als nächstes führen wir den Installationsbefehl aus:

$ sudo make install

Die Installation erfolgt im Verzeichnis /usr/local/modsecurity/.


8. Installieren Sie den modsecurity-nginx-Connector

Hier werden wir den Modsecurity-nginx-Connector installieren. Es ist der Verbindungs- und Kommunikationspunkt zwischen Nginx und ModSecurity.

Zunächst müssen wir das Connector-Repository klonen. Führen Sie dazu diesen Befehl aus:

$ sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git /usr/local/src/ModSecurity-nginx/


9. Installieren Sie modsecurity-nginx-Abhängigkeiten

Gehen Sie zuerst wie folgt in das Nginx-Quellverzeichnis:

$ cd /usr/local/src/nginx/nginx-1.21.1

Stellen Sie sicher, dass Sie die Nginx-Version im Befehl durch Ihre aktuelle Nginx-Version ersetzen, andernfalls erhalten Sie eine Fehlermeldung.

Führen Sie diesen Befehl aus, um die erforderlichen Abhängigkeiten zu installieren:

$ sudo apt build-dep nginx && sudo apt install uuid-dev -y

Als Nächstes kompilieren wir das Modsecurity-nginx-Connector-Modul mit dem Flag –with-compat, indem wir diesen Befehl ausführen:

$ sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx

Führen Sie nun diesen Befehl aus, um die dynamischen Module zu erstellen:

$ sudo make modules

Kopieren Sie nun das dynamische Modul, das Sie gerade in objs/ngx_http_modsecurity_module.so erstellt haben, mit Hilfe dieses Befehls nach /usr/share/nginx/modules:

$ sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/


10. Aktivieren Sie Modsecurity in der Nginx-Konfigurationsdatei

Um Modsecurity in Nginx zu aktivieren, müssen Sie zuerst das Lademodul und den Pfad zu Ihrem Modsecurity-Modul in der Konfiguration angeben.

Öffnen Sie die Nginx-Konfigurationsdatei mit dem Nano-Editor wie folgt:

$ sudo nano /etc/nginx/nginx.conf

Fügen Sie in der Datei oben diese Zeile hinzu:

load_module modules/ngx_http_modsecurity_module.so;

Fügen Sie im Abschnitt HTTP {} die folgenden Codezeilen hinzu:

modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/modsec-config.conf;


11. Verzeichnis und Dateien für modsecurity konfigurieren

Erstellen Sie ein Verzeichnis mit dem Namen modsec. Der Pfad des Verzeichnisses wird im Befehl angegeben:

$ sudo mkdir /etc/nginx/modsec/

Sie werden dieses Verzeichnis in Zukunft benötigen, um Konfigurationsdateien und Regeln zu speichern.

Kopieren Sie nun die Beispiel-Modsecurity-Konfigurationsdatei aus dem geklonten Git-Verzeichnis mit diesem Befehl:

$ sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf

Öffnen Sie nun die modsecurity Konfigurationsdatei:

$ sudo nano /etc/nginx/modsec/modsecurity.conf

Suchen Sie die SecRuleEngine-Direktive in der Datei in Zeile 7 und ändern Sie sie wie folgt in DetectionOnly:

secruleEngine DetectionOnly

Um Modsecurity zu aktivieren, ändern Sie die folgende Direktive wie folgt in On:

secRuleEngine on

Suchen Sie nun die folgende Direktive in Zeile 224:

secAuditLogParts ABIJDEFHZ

Ändern Sie es in:

secAuditLogParts ABCDEFHJKZ

Erstellen Sie nun die Datei modsec-config.conf. Hier fügen Sie modsecurity.conf und andere Regeln für modsecurity hinzu:

$ sudo nano /etc/nginx/modsec/modsec-config.conf

Fügen Sie in der gerade erstellten Datei diese Zeile hinzu:

Include /etc/nginx/modsec/modsecurity.conf

Speichern Sie die Datei und beenden Sie sie.


12. Kopieren Sie die unicode.mapping-Datei

Kopieren Sie abschließend die unicode.mapping-Datei von Modsecurity wie folgt:

$ sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/


13. Überprüfen Sie die Nginx-Konfiguration

Überprüfen Sie vor dem Neustart von Nginx, ob die Konfiguration in Ordnung ist, indem Sie diesen Befehl ausführen:

$ sudo nginx -t


14. Nginx neu laden

Starten Sie nun Nginx mit diesem Befehl neu:

$ sudo systemctl restart nginx



Ubuntu
  1. So installieren Sie Nextcloud mit Nginx auf Ubuntu 18.04 LTS

  2. So installieren Sie Seafile mit Nginx unter Ubuntu 20.04 LTS

  3. So installieren Sie Varnish Reverse Proxy mit Nginx unter Ubuntu 16.04 LTS

  4. So installieren Sie Seafile mit Nginx unter Ubuntu 18.04 LTS

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

So installieren Sie phpMyAdmin mit Nginx (LEMP) unter Ubuntu 18.04 LTS

So installieren Sie Nginx mit dem Ngx_Pagespeed-Modul unter Ubuntu 16.04 LTS

So installieren Sie Joomla mit Nginx unter Ubuntu 18.04 LTS

So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 18.04 LTS

So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 20.04 LTS

Wie stellt man die Laravel-Anwendung mit Nginx auf Ubuntu bereit?