The Rise of Machines: Real World Applications of AI
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.
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_refactoringgrenen när det är möjligt.
Ladda ner nginx_refactoringgrenen 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å sedkommandona 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.3i 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 nginxoch en dedikerad grupp nginxfö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-dataoch 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/*.confraden 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.conffilen: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 grepatt 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.confoch /usr/local/nginx/conf/owasp-modsecurity-crs/crs-setup.conffiler noggrant .
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.
Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.
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.
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