Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?
Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist
ModSecurity ist ein Open-Source-Modul für Webanwendungsfirewall (WAF), mit dem Apache, Nginx und IIS vor verschiedenen Cyberangriffen geschützt werden können, die auf potenzielle Schwachstellen in verschiedenen Webanwendungen abzielen
In diesem Artikel werden wir ModSecurity für Nginx unter CentOS 7, Debian 8 und Ubuntu 16.04 installieren und konfigurieren.
root
.Nach diesem Handbuch Aktualisieren Sie Ihre Server-Kernel und Pakete auf die neueste verfügbare Version.
Bevor Sie Nginx und ModSecurity erfolgreich kompilieren können, müssen Sie mehrere Softwarepakete wie folgt installieren.
a) Unter CentOS 7:
yum groupinstall -y "Development Tools"
yum install -y httpd httpd-devel pcre pcre-devel libxml2 libxml2-devel curl curl-devel openssl openssl-devel
shutdown -r now
b) Unter Debian 8 oder Ubuntu 16.04:
apt-get install -y git build-essential libpcre3 libpcre3-dev libssl-dev libtool autoconf apache2-dev libxml2-dev libcurl4-openssl-dev automake pkgconf
Aufgrund mehrerer Instabilitäten, die in ModSecurity für den Nginx-Hauptzweig gemeldet wurden, wird derzeit offiziell empfohlen, nginx_refactoring
wann immer möglich die neueste Version des Zweigs zu verwenden.
Laden Sie den nginx_refactoring
Zweig von ModSecurity für Nginx herunter :
cd /usr/src
git clone -b nginx_refactoring https://github.com/SpiderLabs/ModSecurity.git
Kompilieren Sie ModSecurity:
a) Unter CentOS 7:
cd ModSecurity
sed -i '/AC_PROG_CC/a\AM_PROG_CC_C_O' configure.ac
sed -i '1 i\AUTOMAKE_OPTIONS = subdir-objects' Makefile.am
./autogen.sh
./configure --enable-standalone-module --disable-mlogc
make
Hinweis: Die beiden sed
obigen Befehle werden verwendet, um Warnmeldungen bei Verwendung neuerer Automake-Versionen zu vermeiden.
b) Unter Debian 8 oder Ubuntu 16.04:
cd ModSecurity
./autogen.sh
./configure --enable-standalone-module --disable-mlogc
make
Laden Sie die neueste stabile Version von Nginx herunter und archivieren Sie sie Nginx 1.10.3
zum Zeitpunkt des Schreibens:
cd /usr/src
wget https://nginx.org/download/nginx-1.10.3.tar.gz
tar -zxvf nginx-1.10.3.tar.gz && rm -f nginx-1.10.3.tar.gz
a) Unter CentOS 7:
Zunächst müssen Sie einen dedizierten Benutzer nginx
und eine dedizierte Gruppe nginx
für Nginx erstellen :
groupadd -r nginx
useradd -r -g nginx -s /sbin/nologin -M nginx
Kompilieren Sie dann Nginx, während Sie ModSecurity- und SSL-Module aktivieren:
cd nginx-1.10.3/
./configure --user=nginx --group=nginx --add-module=/usr/src/ModSecurity/nginx/modsecurity --with-http_ssl_module
make
make install
Ändern Sie den Standardbenutzer von Nginx:
sed -i "s/#user nobody;/user nginx nginx;/" /usr/local/nginx/conf/nginx.conf
b) Unter Debian 8 oder Ubuntu 16.04:
Zunächst sollten Sie den vorhandenen Benutzer www-data
und die vorhandene Gruppe verwenden www-data
.
Kompilieren Sie dann Nginx, während Sie ModSecurity- und SSL-Module aktivieren:
cd nginx-1.10.3/
./configure --user=www-data --group=www-data --add-module=/usr/src/ModSecurity/nginx/modsecurity --with-http_ssl_module
make
make install
Ändern Sie den Standardbenutzer von Nginx:
sed -i "s/#user nobody;/user www-data www-data;/" /usr/local/nginx/conf/nginx.conf
Nachdem Nginx erfolgreich installiert wurde, befinden sich verwandte Dateien unter:
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
Sie können die Installation testen mit:
/usr/local/nginx/sbin/nginx -t
Wenn nichts schief geht, sollte die Ausgabe sein:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Für Ihre Bequemlichkeit können Sie eine systemd-Einheitendatei für Nginx einrichten:
cat <<EOF>> /lib/systemd/system/nginx.service
[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
KillStop=/usr/local/nginx/sbin/nginx -s stop
KillMode=process
Restart=on-failure
RestartSec=42s
PrivateTmp=true
LimitNOFILE=200000
[Install]
WantedBy=multi-user.target
EOF
In Zukunft können Sie Nginx wie folgt starten / stoppen / neu starten:
systemctl start nginx.service
systemctl stop nginx.service
systemctl restart nginx.service
vi /usr/local/nginx/conf/nginx.conf
Suchen Sie das folgende Segment innerhalb des http {}
Segments:
location / {
root html;
index index.html index.htm;
}
Fügen Sie die folgenden Zeilen in das location / {}
Segment ein:
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
#proxy_pass http://localhost:8011;
#proxy_read_timeout 180s;
Das Endergebnis sollte sein:
location / {
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
#proxy_pass http://localhost:8011;
#proxy_read_timeout 180s;
root html;
index index.html index.htm;
}
Speichern und Beenden:
:wq!
Hinweis: Die obige Nginx-Konfiguration ist nur eine Beispielkonfiguration für die Verwendung von Nginx als Webserver und nicht als Reverse-Proxy. Wenn Sie Nginx als Reverse-Proxy verwenden, entfernen Sie das #
Zeichen in den letzten beiden Zeilen und nehmen Sie die entsprechenden Änderungen vor.
/usr/local/nginx/conf/modsec_includes.conf
:
cat <<EOF>> /usr/local/nginx/conf/modsec_includes.conf
include modsecurity.conf
include owasp-modsecurity-crs/crs-setup.conf
include owasp-modsecurity-crs/rules/*.conf
EOF
Hinweis: Die obige Konfiguration wendet alle OWASP ModSecurity Core-Regeln im owasp-modsecurity-crs/rules/
Verzeichnis an. Wenn Sie nur selektive Regeln anwenden möchten, sollten Sie die include owasp-modsecurity-crs/rules/*.conf
Zeile entfernen und dann die genauen Regeln angeben, die Sie nach Schritt 4.5 benötigen.
cp /usr/src/ModSecurity/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
cp /usr/src/ModSecurity/unicode.mapping /usr/local/nginx/conf/
/usr/local/nginx/conf/modsecurity.conf
Datei:
sed -i "s/SecRuleEngine DetectionOnly/SecRuleEngine On/" /usr/local/nginx/conf/modsecurity.conf
cd /usr/local/nginx/conf
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
cd owasp-modsecurity-crs
mv crs-setup.conf.example crs-setup.conf
cd rules
mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
mv RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf
Starten Sie Nginx:
systemctl start nginx.service
Öffnen Sie Port 80, um den Zugriff von außen zu ermöglichen:
a) Unter CentOS 7:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload
b) Auf Debian 8:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
touch /etc/iptables
iptables-save > /etc/iptables
c) Unter Ubuntu 16.04:
ufw allow OpenSSH
ufw allow 80
ufw default deny
ufw enable
Zeigen Sie mit Ihrem Webbrowser auf:
http://203.0.113.1/?param="><script>alert(1);</script>
Verwenden Sie grep
diese Option, um Fehlermeldungen wie folgt abzurufen:
grep error /usr/local/nginx/logs/error.log
Die Ausgabe sollte mehrere Fehlermeldungen enthalten, die ähnlich sind wie:
2017/02/15 14:07:54 [error] 10776#0: [client 104.20.23.240] ModSecurity: Warning. detected XSS using libinjection. [file "/usr/local/nginx/conf/owasp-modsecurity-crs/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf"] [line "56"] [id "941100"] [rev "2"] [msg "XSS Attack Detected via libinjection"] [data "Matched Data: found within ARGS:param: \x22><script>alert(1);</script>"] [severity "CRITICAL"] [ver "OWASP_CRS/3.0.0"] [maturity "1"] [accuracy "9"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-xss"] [tag "OWASP_CRS/WEB_ATTACK/XSS"] [tag "WASCTC/WASC-8"] [tag "WASCTC/WASC-22"] [tag "OWASP_TOP_10/A3"] [tag "OWASP_AppSensor/IE1"] [tag "CAPEC-242"] [hostname ""] [uri "/index.html"] [unique_id "ATAcAcAkucAchGAcPLAcAcAY"]
Das ist es. Wie Sie sehen, hat das ModSecurity-Modul diesen Angriff gemäß seiner Standardaktionsrichtlinie erfolgreich protokolliert. Wenn Sie mehr individuelle Einstellungen vornehmen möchten, überprüfen und bearbeiten Sie bitte sorgfältig /usr/local/nginx/conf/modsecurity.conf
und /usr/local/nginx/conf/owasp-modsecurity-crs/crs-setup.conf
Dateien.
Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist
ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.
Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+
Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.
Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren
13 Tools zur kommerziellen Datenextraktion von Big Data
Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true
Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.
Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1
KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.