Vzpon strojev: aplikacije AI v resničnem svetu
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
ModSecurity je odprtokodni modul požarnega zidu spletnih aplikacij (WAF), ki je odličen za zaščito Apache, Nginx in IIS pred različnimi kibernetskimi napadi, ki ciljajo na morebitne ranljivosti v različnih spletnih aplikacijah.
V tem članku bomo namestili in konfigurirali ModSecurity za Nginx na CentOS 7, Debian 8 in Ubuntu 16.04.
root.Po tem priročniku posodobite jedro in pakete vašega strežnika na najnovejšo razpoložljivo različico.
Preden lahko uspešno prevedete Nginx in ModSecurity, morate namestiti več programskih paketov, kot sledi.
a) Na 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) V Debianu 8 ali 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
Zaradi več nestabilnosti, o katerih so poročali na ModSecurity za glavno vejo Nginx, je za zdaj uradno priporočljiva uporaba najnovejše različice nginx_refactoringveje, kadar koli je to mogoče.
Prenesite nginx_refactoringvejo ModSecurity za Nginx:
cd /usr/src
git clone -b nginx_refactoring https://github.com/SpiderLabs/ModSecurity.git
Prevedi ModSecurity:
a) Na 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
Opomba: sedzgornja dva ukaza se uporabljata za preprečevanje opozorilnih sporočil pri uporabi novejših različic automake.
b) V Debianu 8 ali Ubuntu 16.04:
cd ModSecurity
./autogen.sh
./configure --enable-standalone-module --disable-mlogc
make
Prenesite in odstranite arhiv najnovejše stabilne izdaje Nginxa, ki je Nginx 1.10.3v času pisanja:
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) Na CentOS 7:
Najprej morate ustvariti namenskega uporabnika nginxin namensko skupino nginxza Nginx:
groupadd -r nginx
useradd -r -g nginx -s /sbin/nologin -M nginx
Nato prevedite Nginx in hkrati omogočite modula ModSecurity in SSL:
cd nginx-1.10.3/
./configure --user=nginx --group=nginx --add-module=/usr/src/ModSecurity/nginx/modsecurity --with-http_ssl_module
make
make install
Spremenite privzetega uporabnika Nginxa:
sed -i "s/#user nobody;/user nginx nginx;/" /usr/local/nginx/conf/nginx.conf
b) V Debianu 8 ali Ubuntu 16.04:
Najprej morate uporabiti obstoječega uporabnika www-datain obstoječo skupino www-data.
Nato prevedite Nginx in hkrati omogočite modula ModSecurity in SSL:
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
Spremenite privzetega uporabnika Nginxa:
sed -i "s/#user nobody;/user www-data www-data;/" /usr/local/nginx/conf/nginx.conf
Ko je Nginx uspešno nameščen, se bodo povezane datoteke nahajale na:
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"
namestitev lahko preizkusite z:
/usr/local/nginx/sbin/nginx -t
Če ne gre nič narobe, mora biti rezultat:
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
Za vaše udobje lahko nastavite datoteko sistemske enote za 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
Če se premikate naprej, lahko zaženete/ustavite/ponovno zaženete Nginx na naslednji način:
systemctl start nginx.service
systemctl stop nginx.service
systemctl restart nginx.service
vi /usr/local/nginx/conf/nginx.conf
Poiščite naslednji segment znotraj http {}segmenta:
location / {
root html;
index index.html index.htm;
}
V location / {}segment vstavite spodnje vrstice :
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
#proxy_pass http://localhost:8011;
#proxy_read_timeout 180s;
Končni rezultat bi moral biti:
location / {
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
#proxy_pass http://localhost:8011;
#proxy_read_timeout 180s;
root html;
index index.html index.htm;
}
Shrani in zapusti:
:wq!
Opomba: Zgornja konfiguracija Nginxa je le vzorčna konfiguracija za uporabo Nginxa kot spletnega strežnika in ne povratnega proxyja. Če uporabljate Nginx kot povratni proxy, odstranite #znak v zadnjih dveh vrsticah in ju ustrezno spremenite.
/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
Opomba: Zgornja konfiguracija bo uporabila vsa osnovna pravila OWASP ModSecurity v owasp-modsecurity-crs/rules/imeniku. Če želite uporabiti samo selektivna pravila, odstranite include owasp-modsecurity-crs/rules/*.confvrstico in nato po koraku 4.5 določite natančna pravila, ki jih potrebujete.
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.confdatoteko: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
Zaženite Nginx:
systemctl start nginx.service
Odprite vrata 80, da omogočite zunanji dostop:
a) Na CentOS 7:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload
b) V Debianu 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) V Ubuntu 16.04:
ufw allow OpenSSH
ufw allow 80
ufw default deny
ufw enable
Usmerite svoj spletni brskalnik na:
http://203.0.113.1/?param="><script>alert(1);</script>
Uporabite grepza pridobivanje sporočil o napakah, kot sledi:
grep error /usr/local/nginx/logs/error.log
Izhod mora vključevati več sporočil o napakah, ki so podobna:
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"]
To je to. Kot vidite, je modul ModSecurity uspešno zabeležil ta napad v skladu s svojo privzeto politiko dejanj. Če želite več nastavitev po meri, pozorno preberite in urejanje /usr/local/nginx/conf/modsecurity.confin /usr/local/nginx/conf/owasp-modsecurity-crs/crs-setup.confdatotek.
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.
Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.
Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.
Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…
Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.
Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.
Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.
V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.
Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več