Telepítse a Plesket a CentOS 7 rendszeren
Más rendszert használ? A Plesk egy szabadalmaztatott webtárhely-vezérlőpult, amely lehetővé teszi a felhasználók számára, hogy adminisztrálják személyes és/vagy ügyfeleik webhelyeit, adatbázisait
A ModSecurity egy nyílt forráskódú webalkalmazás-tűzfal (WAF) modul, amely kiválóan alkalmas az Apache, Nginx és IIS védelmére a különféle internetes alkalmazások potenciális sebezhetőségeit célzó kibertámadásokkal szemben.
Ebben a cikkben telepítjük és konfiguráljuk a ModSecurity for Nginx szolgáltatást CentOS 7, Debian 8 és Ubuntu 16.04 rendszeren.
root
.Ezt az útmutatót követve frissítse a szerver kernelt és csomagjait a legújabb elérhető verzióra.
Az Nginx és a ModSecurity sikeres fordítása előtt több szoftvercsomagot kell telepítenie az alábbiak szerint.
a) CentOS 7 rendszeren:
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) Debian 8 vagy Ubuntu 16.04 esetén:
apt-get install -y git build-essential libpcre3 libpcre3-dev libssl-dev libtool autoconf apache2-dev libxml2-dev libcurl4-openssl-dev automake pkgconf
A ModSecurity for Nginx fő ágában jelentett számos instabilitás miatt egyelőre hivatalosan javasolt az nginx_refactoring
ág legújabb verziójának használata, amikor csak lehetséges.
Töltse le a nginx_refactoring
ModSecurity ágát az Nginx számára:
cd /usr/src
git clone -b nginx_refactoring https://github.com/SpiderLabs/ModSecurity.git
Fordítsa le a ModSecurity-t:
a) CentOS 7 rendszeren:
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
Megjegyzés: a sed
fenti két parancs a figyelmeztető üzenetek elkerülésére szolgál újabb automake verziók használatakor.
b) Debian 8 vagy Ubuntu 16.04 esetén:
cd ModSecurity
./autogen.sh
./configure --enable-standalone-module --disable-mlogc
make
Töltse le és távolítsa el az Nginx legújabb stabil kiadását, amely Nginx 1.10.3
a cikk írásakor van:
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) CentOS 7 rendszeren:
Először is létre kell hoznia egy dedikált felhasználót nginx
és egy dedikált csoportot nginx
az Nginx számára:
groupadd -r nginx
useradd -r -g nginx -s /sbin/nologin -M nginx
Ezután fordítsa le az Nginxet, miközben engedélyezi a ModSecurity és SSL modulokat:
cd nginx-1.10.3/
./configure --user=nginx --group=nginx --add-module=/usr/src/ModSecurity/nginx/modsecurity --with-http_ssl_module
make
make install
Módosítsa az Nginx alapértelmezett felhasználóját:
sed -i "s/#user nobody;/user nginx nginx;/" /usr/local/nginx/conf/nginx.conf
b) Debian 8 vagy Ubuntu 16.04 esetén:
Először a meglévő felhasználót www-data
és a meglévő csoportot kell használnia www-data
.
Ezután fordítsa le az Nginxet, miközben engedélyezi a ModSecurity és SSL modulokat:
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
Módosítsa az Nginx alapértelmezett felhasználóját:
sed -i "s/#user nobody;/user www-data www-data;/" /usr/local/nginx/conf/nginx.conf
Az Nginx sikeres telepítése után a kapcsolódó fájlok a következő címen találhatók:
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"
a telepítést a következőkkel tesztelheti:
/usr/local/nginx/sbin/nginx -t
Ha nem történik semmi, a kimenetnek a következőnek kell lennie:
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
Az Ön kényelme érdekében beállíthat egy systemd unit fájlt az Nginx számára:
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
Továbblépve elindíthatja/leállíthatja/újraindíthatja az Nginxet az alábbiak szerint:
systemctl start nginx.service
systemctl stop nginx.service
systemctl restart nginx.service
vi /usr/local/nginx/conf/nginx.conf
Keresse meg a következő szegmenst a http {}
szegmensen belül :
location / {
root html;
index index.html index.htm;
}
Illessze be az alábbi sorokat a location / {}
szegmensbe:
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
#proxy_pass http://localhost:8011;
#proxy_read_timeout 180s;
A végeredmény a következő legyen:
location / {
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
#proxy_pass http://localhost:8011;
#proxy_read_timeout 180s;
root html;
index index.html index.htm;
}
Mentés és kilépés:
:wq!
Megjegyzés: A fenti Nginx-konfiguráció csak egy mintakonfiguráció az Nginx webszerverként való használatához, nem pedig fordított proxyhoz. Ha az Nginx-et fordított proxyként használja, távolítsa el a #
karaktert az utolsó két sorban, és végezze el a megfelelő módosításokat.
/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
Megjegyzés: A fenti konfiguráció az összes OWASP ModSecurity alapszabályt alkalmazni fogja a owasp-modsecurity-crs/rules/
könyvtárban. Ha csak szelektív szabályokat szeretne alkalmazni, távolítsa el a include owasp-modsecurity-crs/rules/*.conf
sort, majd a 4.5 lépés után adja meg a szükséges szabályokat.
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
Fájl módosítása :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
Indítsa el az Nginxet:
systemctl start nginx.service
Nyissa meg a 80-as portot a külső hozzáférés engedélyezéséhez:
a) CentOS 7 rendszeren:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload
b) Debian 8-on:
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) Ubuntu 16.04 esetén:
ufw allow OpenSSH
ufw allow 80
ufw default deny
ufw enable
Irányítsa a böngészőjét erre:
http://203.0.113.1/?param="><script>alert(1);</script>
Használja grep
a hibaüzenetek lekéréséhez az alábbiak szerint:
grep error /usr/local/nginx/logs/error.log
A kimenetnek több hibaüzenetet kell tartalmaznia, amelyek hasonlóak a következőkhöz:
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"]
Ez az. Amint látja, a ModSecurity modul sikeresen naplózta ezt a támadást az alapértelmezett műveleti szabályzatának megfelelően. Ha azt szeretnénk, hogy több egyéni beállítások, kérjük, alaposan olvassa és szerkeszthet /usr/local/nginx/conf/modsecurity.conf
és /usr/local/nginx/conf/owasp-modsecurity-crs/crs-setup.conf
fájlokat.
Más rendszert használ? A Plesk egy szabadalmaztatott webtárhely-vezérlőpult, amely lehetővé teszi a felhasználók számára, hogy adminisztrálják személyes és/vagy ügyfeleik webhelyeit, adatbázisait
A Squid egy népszerű, ingyenes Linux-program, amely lehetővé teszi továbbítási webproxy létrehozását. Ebben az útmutatóban megtudhatja, hogyan telepítheti a Squid-et a CentOS rendszerre, hogy megfordítsa
Bevezetés A Lighttpd az Apache forkja, amely sokkal kevésbé erőforrás-igényes. Könnyű, innen kapta a nevét, és meglehetősen egyszerű a használata. Telepítés
A VULTR a közelmúltban változtatásokat hajtott végre a saját oldalukon, és most már mindennek jól kell működnie, ha a NetworkManager engedélyezve van. Ha szeretné letiltani
Az Icinga2 egy hatékony felügyeleti rendszer, és mester-kliens modellben használva helyettesítheti az NRPE-alapú felügyeleti ellenőrzések szükségességét. A mester-kliens
Más rendszert használ? Az Apache Cassandra egy ingyenes és nyílt forráskódú NoSQL adatbázis-kezelő rendszer, amelyet úgy terveztek, hogy biztosítsa a méretezhetőséget,
Más rendszert használ? A Microweber egy nyílt forráskódú drag and drop CMS és online bolt. A Microweber forráskódja a GitHubon található. Ez az útmutató megmutatja neked
Más rendszert használ? A Vanilla forum egy nyílt forráskódú, PHP-ben írt fórumalkalmazás. Ez egy teljesen testreszabható, könnyen használható, és támogatja a külsőt
Más rendszert használ? A Mattermost egy nyílt forráskódú, saját üzemeltetésű alternatívája a Slack SAAS üzenetküldő szolgáltatásnak. Más szóval, a Mattermost segítségével kb
Mire lesz szüksége Egy Vultr VPS legalább 1 GB RAM-mal. SSH hozzáférés (root/adminisztrátori jogosultságokkal). 1. lépés: A BungeeCord telepítése Először is
A Plesk vezérlőpult nagyon szép integrációt kínál a Lets Encrypt számára. A Lets Encrypt egyike az egyetlen SSL-szolgáltatónak, amely teljes tanúsítványt ad ki
A Lets Encrypt egy tanúsító hatóság, amely ingyenes SSL-tanúsítványokat biztosít. A cPanel ügyes integrációt épített ki, így Ön és ügyfele
Más rendszert használ? A Concrete5 egy nyílt forráskódú CMS, amely számos megkülönböztető és hasznos funkciót kínál, hogy segítse a szerkesztőket a tartalom egyszerű létrehozásában.
Más rendszert használ? A Review Board egy ingyenes és nyílt forráskódú eszköz a forráskód, a dokumentáció, a képek és még sok más áttekintésére. Ez egy web alapú szoftver
Ebből az útmutatóból megtudhatja, hogyan állíthat be HTTP-hitelesítést egy CentOS 7 rendszeren futó Nginx webszerverhez. Követelmények A kezdéshez szüksége lesz a következőre:
Más rendszert használ? A GoAccess egy nyílt forráskódú webnapló-elemző. Használhatja naplók valós idejű elemzésére akár a terminálon, akár a
A YOURLS (Your Own URL Shortener) egy nyílt forráskódú URL-rövidítő és adatelemző alkalmazás. Ebben a cikkben a telepítés folyamatával foglalkozunk
Más rendszert használ? Bevezetés Az ArangoDB egy nyílt forráskódú NoSQL adatbázis, amely rugalmas adatmodellt kínál dokumentumokhoz, grafikonokhoz és kulcsértékekhez. Ez
Bevezetés Az /etc/ könyvtár kritikus szerepet játszik a Linux rendszer működésében. Ennek az az oka, hogy szinte minden rendszerkonfiguráció
Sok rendszergazda nagy mennyiségű kiszolgálót kezel. Ha a fájlokhoz különböző szervereken keresztül kell hozzáférni, mindegyikbe külön-külön kell bejelentkezni kb
A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.
Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.
Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.
Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.
Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…
Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.
Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.
Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.
Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.
Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket