So installieren Sie MODX Revolution auf einem CentOS 7 LAMP VPS
Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i
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.
Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i
Vultr bietet Ihnen eine hervorragende Konnektivität für private Netzwerke für Server, die am selben Standort ausgeführt werden. Aber manchmal möchten Sie zwei Server in verschiedenen Ländern
Verwenden Sie ein anderes System? Einführung CyberPanel ist eines der ersten Control Panels auf dem Markt, das sowohl Open Source als auch OpenLiteSpeed verwendet. Was ist das?
Verwenden Sie ein anderes System? ESpeak kann TTS-Audiodateien (Text-to-Speech) generieren. Diese können aus vielen Gründen nützlich sein, z. B. um Ihr eigenes Turin zu erstellen
Verwenden Sie ein anderes System? Thelia ist ein Open-Source-Tool zum Erstellen von E-Business-Websites und zum Verwalten von Online-Inhalten, die in PHP geschrieben wurden. Thelia Quellcode i
Cockpit ist ein kostenloses Open Source-Programm für die Linux-Serververwaltung. Es ist sehr leicht und hat eine schöne, einfach zu bedienende Weboberfläche. Es erlaubt System
Gollum ist die Git-basierte Wiki-Software, die als Backend des GitHub-Wikis verwendet wird. Durch die Bereitstellung von Gollum können Sie ein GitHub-ähnliches Wiki-System auf Ihnen hosten
BBR (Bottleneck Bandwidth and RTT) ist ein neuer Algorithmus zur Überlastungskontrolle, der von Google zum Linux-Kernel-TCP-Stack hinzugefügt wird. Mit BBR an Ort und Stelle,
YOURLS (Your Own URL Shortener) ist eine Open-Source-Anwendung zur URL-Verkürzung und Datenanalyse. In diesem Artikel werden wir den Installationsprozess behandeln
Verwenden Sie ein anderes System? RTMP eignet sich hervorragend für die Bereitstellung von Live-Inhalten. Wenn RTMP mit FFmpeg gekoppelt ist, können Streams in verschiedene Qualitäten konvertiert werden. Vultr i
LimeSurvey ist ein kostenloses und Open-Source-Online-Umfragetool, das häufig zum Veröffentlichen von Online-Umfragen und zum Sammeln von Umfrage-Feedback verwendet wird. In diesem Artikel werde ich
Einführung Java ist eine beliebte Softwareplattform, mit der Sie Java-Anwendungen und -Applets in verschiedenen Hardwareumgebungen entwickeln und ausführen können. Es gibt
Verwenden Sie ein anderes System? Netdata ist ein aufstrebender Stern im Bereich der Echtzeitüberwachung von Systemmetriken. Im Vergleich zu anderen Tools der gleichen Art bietet Netdata:
In diesem Tutorial erfahren Sie, wie Sie einen Just Cause 2-Multiplayer-Server einrichten. Voraussetzungen Bitte stellen Sie sicher, dass das System vollständig aktualisiert ist, bevor Sie beginnen
Verwenden Sie ein anderes System? In diesem Tutorial werde ich erklären, wie ein Starbound-Server unter CentOS 7 eingerichtet wird. Voraussetzungen Sie müssen dieses Spiel besitzen
ZNC ist ein kostenloser Open-Source-IRC-Bouncer, der permanent mit einem Netzwerk verbunden bleibt, sodass Clients Nachrichten empfangen können, die gesendet werden, während sie offline sind. Thi
Django ist ein beliebtes Python-Framework zum Schreiben von Webanwendungen. Mit Django können Sie Anwendungen schneller erstellen, ohne das Rad neu zu erfinden. Wenn du willst
ionCube Loader ist eine PHP-Erweiterung, mit der ein Webserver PHP-Dateien ausführen kann, die mit ionCube Encoder codiert wurden und für deren Ausführung erforderlich sind
Einführung Installieren Sie in diesem Tutorial PufferPanel auf unserem Vultr VPS. PufferPanel ist ein Open Source-Bedienfeld, das Sie kostenlos verwalten können
Verwenden Sie ein anderes System? Einführung BoltWire ist ein kostenloses und leichtes Content-Management-System, das in PHP geschrieben wurde. Im Vergleich zu den meisten anderen Content Managern
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.