Installera Plesk på CentOS 7
Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser
ModSecurity är en modul för webbapplikationsbrandvägg (WAF) med öppen källkod som är utmärkt för att skydda Apache, Nginx och IIS från olika cyberattacker som riktar sig mot potentiella sårbarheter i olika webbapplikationer
I den här artikeln kommer vi att installera och konfigurera ModSecurity för Nginx på CentOS 7, Debian 8 och Ubuntu 16.04.
root
.Följ den här guiden och uppdatera din servers kärna och paket till den senaste tillgängliga versionen.
Innan du kan kompilera Nginx och ModSecurity framgångsrikt måste du installera flera mjukvarupaket enligt följande.
a) På 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) På Debian 8 eller 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
På grund av flera instabiliteter som rapporterats på ModSecurity för Nginx huvudgren rekommenderas det för närvarande officiellt att använda den senaste versionen av nginx_refactoring
grenen när det är möjligt.
Ladda ner nginx_refactoring
grenen av ModSecurity för Nginx:
cd /usr/src
git clone -b nginx_refactoring https://github.com/SpiderLabs/ModSecurity.git
Kompilera ModSecurity:
a) På 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
Obs: de två sed
kommandona ovan används för att förhindra varningsmeddelanden när du använder nyare biltillverkare.
b) På Debian 8 eller Ubuntu 16.04:
cd ModSecurity
./autogen.sh
./configure --enable-standalone-module --disable-mlogc
make
Ladda ner och avarkivera den senaste stabila versionen av Nginx som är Nginx 1.10.3
i skrivande stund:
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) På CentOS 7:
Först måste du skapa en dedikerad användare nginx
och en dedikerad grupp nginx
för Nginx:
groupadd -r nginx
useradd -r -g nginx -s /sbin/nologin -M nginx
Kompilera sedan Nginx samtidigt som du aktiverar ModSecurity- och SSL-moduler:
cd nginx-1.10.3/
./configure --user=nginx --group=nginx --add-module=/usr/src/ModSecurity/nginx/modsecurity --with-http_ssl_module
make
make install
Ändra standardanvändaren för Nginx:
sed -i "s/#user nobody;/user nginx nginx;/" /usr/local/nginx/conf/nginx.conf
b) På Debian 8 eller Ubuntu 16.04:
Först bör du använda den befintliga användaren www-data
och den befintliga gruppen www-data
.
Kompilera sedan Nginx samtidigt som du aktiverar ModSecurity- och SSL-moduler:
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
Ändra standardanvändaren för Nginx:
sed -i "s/#user nobody;/user www-data www-data;/" /usr/local/nginx/conf/nginx.conf
När Nginx har installerats kommer relaterade filer att finnas på:
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"
du kan testa installationen med:
/usr/local/nginx/sbin/nginx -t
Om inget går fel bör utdata vara:
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 din bekvämlighet kan du ställa in en systemd enhetsfil för Nginx:
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
När du går framåt kan du starta/stoppa/starta om Nginx enligt följande:
systemctl start nginx.service
systemctl stop nginx.service
systemctl restart nginx.service
vi /usr/local/nginx/conf/nginx.conf
Hitta följande segment inom http {}
segmentet:
location / {
root html;
index index.html index.htm;
}
Infoga nedanstående rader i location / {}
segmentet:
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
#proxy_pass http://localhost:8011;
#proxy_read_timeout 180s;
Slutresultatet bör vara:
location / {
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
#proxy_pass http://localhost:8011;
#proxy_read_timeout 180s;
root html;
index index.html index.htm;
}
Spara och avsluta:
:wq!
Obs: Nginx-konfigurationen ovan är bara en exempelkonfiguration för att använda Nginx som en webbserver snarare än en omvänd proxy. Om du använder Nginx som en omvänd proxy, ta bort #
tecknet på de två sista raderna och gör lämpliga ändringar av dem.
/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
Obs: Konfigurationen ovan kommer att tillämpa alla OWASP ModSecurity Core Rules i owasp-modsecurity-crs/rules/
katalogen. Om du bara vill tillämpa selektiva regler bör du ta bort include owasp-modsecurity-crs/rules/*.conf
raden och sedan ange exakta regler du behöver efter steg 4.5.
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
filen: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
Starta Nginx:
systemctl start nginx.service
Öppna port 80 för att tillåta extern åtkomst:
a) På CentOS 7:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload
b) På 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) På Ubuntu 16.04:
ufw allow OpenSSH
ufw allow 80
ufw default deny
ufw enable
Peka din webbläsare till:
http://203.0.113.1/?param="><script>alert(1);</script>
Använd för grep
att hämta felmeddelanden enligt följande:
grep error /usr/local/nginx/logs/error.log
Utdata bör innehålla flera felmeddelanden som liknar:
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"]
Det är allt. Som du ser har ModSecurity-modulen lyckats logga denna attack i enlighet med dess standardåtgärdspolicy. Om du vill göra fler anpassade inställningar, vänligen granska och redigera /usr/local/nginx/conf/modsecurity.conf
och /usr/local/nginx/conf/owasp-modsecurity-crs/crs-setup.conf
filer noggrant .
Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser
Squid är ett populärt, gratis Linux-program som låter dig skapa en webbproxy för vidarebefordran. I den här guiden ser du hur du installerar Squid på CentOS för att förvandla dig
Inledning Lighttpd är en apachegaffel som syftar till att vara mycket mindre resurskrävande. Den är lätt, därav namnet, och är ganska enkel att använda. Installera
VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera
Icinga2 är ett kraftfullt övervakningssystem, och när det används i en master-klient-modell kan det ersätta behovet av NRPE-baserade övervakningskontroller. Master-klienten
Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög
Använder du ett annat system? Microweber är en öppen källkod för dra och släpp CMS och onlinebutik. Microweber källkod finns på GitHub. Denna guide kommer att visa dig
Använder du ett annat system? Vanilla forum är en open source forumapplikation skriven i PHP. Det är en helt anpassningsbar, enkel att använda och stöder externa
Använder du ett annat system? Mattermost är ett alternativ med öppen källkod, självvärd till meddelandetjänsten Slack SAAS. Med andra ord, med Mattermost, du ca
Vad du behöver En Vultr VPS med minst 1 GB RAM. SSH-åtkomst (med root-/administrativa privilegier). Steg 1: Installera BungeeCord Först till kvarn
Plesks kontrollpanel har en mycket trevlig integration för Lets Encrypt. Lets Encrypt är en av de enda SSL-leverantörerna som ger ut certifikat fullständigt
Lets Encrypt är en certifikatmyndighet dedikerad till att tillhandahålla SSL-certifikat gratis. cPanel har byggt en snygg integration så att du och din klient
Använder du ett annat system? Concrete5 är ett CMS med öppen källkod som erbjuder många distinkta och användbara funktioner för att hjälpa redaktörer att producera innehåll enkelt och
Använder du ett annat system? Review Board är ett gratis och öppen källkodsverktyg för att granska källkod, dokumentation, bilder och många fler. Det är webbaserad mjukvara
I den här guiden lär du dig hur du ställer in HTTP-autentisering för en Nginx-webbserver som körs på CentOS 7. Krav För att komma igång behöver du
YOURLS (Your Own URL Shortener) är ett webbadressförkortnings- och dataanalysprogram med öppen källkod. I den här artikeln kommer vi att täcka installationsprocessen
Använder du ett annat system? Inledning ArangoDB är en NoSQL-databas med öppen källkod med en flexibel datamodell för dokument, grafer och nyckel-värden. Det är
Inledning Katalogen /etc/ spelar en avgörande roll för hur ett Linux-system fungerar. Anledningen till detta är att nästan varje systemkonfiguration
Många systemadministratörer hanterar stora mängder servrar. När filer behöver nås över olika servrar, logga in på var och en individuellt ca
Denna handledning kommer att täcka processen att installera en Half Life 2-spelserver på CentOS 6 System. Steg 1: Installera förutsättningarna För att ställa in ou
Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.
Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.
Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.
Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.
Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...
När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.
Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.
Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.
I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.
Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer