![Kuidas salvestada suumikoosolekuid heliga](/f/6f53f887c70a1a3731191810531b4b8a.png?width=100&height=100)
Iga arendaja soov on juurutada turvalisi veebirakendusi, mis on ohtude eest kaitstud. Enamikul juhtudel on see pingutuseta öeldud kui tehtud. Veebisaitide häkkimise sagedus kasvab pidevalt, kuna häkkerid jätkavad kõigi nende käsutuses olevate rünnakuvektorite ärakasutamist.
WebAppi turvalisus võib olla suur väljakutse, eriti kui on levinud pahatahtlikud tööriistad, nagu juurkomplektid, skannerid, robotid ja muu pahavara. Kuigi rikkumine võib tunduda küsimus, millal, kui mitte, on mõistlik oma veebirakenduste kaitsmiseks rakendada korralikke turvameetmeid.
[Sulle võib meeldida ka: 5 tööriistad Linuxi serveri pahavara ja juurkomplektide kontrollimiseks ]
Üks tööriistu, mis suudab pakkuda korralikku turvalisust rünnakute vastu, on nn ModSecurity. See on tasuta ja avatud lähtekoodiga programm Veebirakenduste tulemüür (WAF), mis kaitseb teie veebirakendusi suure hulga 7. kihi rünnakute eest, nagu saidiülene skriptimine (XSS), SQL süstimine, seansi kaaperdamine ja palju muud.
Selles juhendis näitame teile, kuidas installida ja konfigureerida
ModSecurity koos töötada Nginx peal Debianil põhinevad Linuxi distributsioonid nagu näiteks Ubuntu.Installimise alustamiseks on installimise õnnestumiseks vaja mitmeid tarkvarasõltuvusi. Kuid esmalt värskendage pakettide loendeid ja värskendage hoidlaid järgmiselt.
$ sudo apt värskendus.
Järgmisena installige sõltuvused järgmiselt.
$ sudo apt install make gcc build-essential autoconf automake libtool libfuzzy-dev ssdeep gettext pkg-config libcurl4-openssl-dev liblua5.3-dev libpcre3 libpcre3-dev libxml2 libxml2-dev libyajl-dev doxygen libcurl4 libgeoip-dev libssl-dev zlib1g-dev libxslt-dev liblmdb-dev libpcre++-dev libgd-dev.
Järgmine samm on installida Nginx veebibrauseris. Uusima versiooni installimiseks installime selle saidilt ondrej/nginx-mainline PPA w, mida praegu hooldab Debiani arendaja alates 2000. aastast.
PPA lisamiseks oma kohalikku Ubuntu süsteem käivitab käsu:
$ sudo add-apt-hoidla ppa: ondrej/nginx-mainline -y.
Järgmisena värskendage pakettide loendeid ja installige uusim versioon Nginx järgnevalt
$ sudo apt värskendus. $ sudo apt installige nginx-core nginx-common nginx nginx-full.
Tavaliselt on lubatud ainult vaikehoidla. Mõistlik on lubada lähtekoodi hoidla, et saaksite selle hiljem alla laadida Nginx lähtekood järgmises etapis.
Selle saavutamiseks muutke Nginx hoidla fail.
$ sudo vim /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list.
Lähtekoodi hoidla lubamiseks leidke see rida ja eemaldage kommentaarid:
# deb-src http://ppa.launchpad.net/ondrej/nginx-mainline/ubuntu/ fookuspea.
Fail peaks nüüd ilmuma nii, nagu näidatud.
Salvestage muudatused ja väljuge.
Seejärel värskendage paketiindeksit.
$ sudo apt värskendus.
Koostamiseks ModSecurity dünaamilise mooduli jaoks peame alla laadima Nginx lähtekoodi pakett. Selleks loome esmalt an Nginx kataloogis /usr/local/src/ tee Nginxi lähtekoodi paketifaili mahutamiseks.
$ sudo mkdir -p /usr/local/src/nginx
Järgmisena määrake kataloogi õigused, nagu näidatud. Asendage kasutajanimi kindlasti oma tegeliku sudo kasutajanimega.
$ sudo chown kasutajanimi: kasutajanimi -R /usr/local/src/
Seejärel navigeerige jaotisesse Nginx lähtekataloog:
$ cd /usr/local/src/nginx
Jätkake ja laadige alla Nginx lähtefailide paketid:
$ sudo apt allikas nginx.
Tõenäoliselt tekib järgmine tõrge:
W: allalaadimine toimub liivakastita, kuna failile 'nginx_1.19.5.orig.tar.gz' ei pääsenud kasutaja '_apt' juurde. - pkgAcquire:: Käivita (13: luba keelatud)
See pole midagi, mis sind üles ajab. Seega lihtsalt ignoreerige viga.
Saate piiluda lähtefaili, kasutades ls käsk.
$ ls -l.
Veenduge, et lähtekoodi versioon ühtiks versiooniga Nginx paigaldatud.
$ nginx -v.
Libmodecurity on Modturvalisus raamatukogu, mis tegeleb HTTP teie rakenduste filtreerimine. Selle installimiseks on kaks võimalust. Saate kasutada apt paketihaldur nagu näidatud
$ sudo apt install libmodsecurity3.
Teine võimalus on installida see allikast, mis on eelistatav, kuna see pakub teile uusimat versiooni. Libmodsecurity installimise alustamiseks allikast kloonige git-hoidla, nagu näidatud:
$ git kloon --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/
Liikuge kloonitud kataloogi:
$ cd /usr/local/src/ModSecurity/
Pöörake tähelepanu alammoodulite paigaldamisele
$ sudo git alammooduli init. $ sudo git alammooduli värskendus.
Seejärel looge keskkond allolevate käskude abil.
$ sudo ./build.sh $ sudo ./configure.
Jällegi ignoreerige allpool kuvatud viga.
saatuslik: nimesid ei leitud, ei oska midagi kirjeldada.
Seejärel kompileerige lähtekood ja installige järgmised utiliidid, kasutades järgmist käsku make. See võtab aega umbes 25 minutit ja vaja on kannatlikkust.
$ sudo make -j4.
Kui olete lõpetanud, installige teegid.
$ sudo make install.
Järgmine samm on alla laadida ja kompileerida ModSecurity Nginx pistik. Pistik ühendab, nagu nimigi ütleb Libmod-turvalisus raamatukogu Nginxi veebiserverisse. Modsecurity konnektori allalaadimiseks kloonige see GitHubi hoidlast järgmiselt.
$ git kloon -- sügavus 1 https://github.com/SpiderLabs/ModSecurity-nginx.git /usr/local/src/ModSecurity-nginx/
Liikuge kloonitud kataloogi.
$ cd /usr/local/src/nginx/nginx-1.21.3/
Jätkake ja installige järgu sõltuvused
$ sudo apt build-dep nginx. $ sudo apt install uuid-dev.
Järgmisena koostage ModSecurity Nginxi pistik moodul koos --compatiga
lipp. The --compatiga
valik muudab ModSecurity Nginx Connectori mooduli binaarselt ühilduvaks praeguse Nginxi teegiga.
$ sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx.
Kui see on tehtud, looge käsu make abil ModSecurity Nginx Connectori moodul.
$ sudo teha mooduleid.
Moodul salvestatakse kui objs/ngx_http_modsecurity_module.so. Peate selle mooduli kopeerima /usr/share/nginx/modules/ kataloog järgmiselt.
$ sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/
Et laadida Nginx konnektorimoodul, esmalt avage Nginxi põhikonfiguratsioonifail.
$ sudo vim /etc/nginx/nginx.conf.
Lisage järgmine rida esimeste ridade alla
load_module modules/ngx_http_modsecurity_module.so;
Lisaks lisage jaotisesse järgmised read http {...}
osa. See lubab ModSecurity kõigi Nginxi virtuaalsete hostide jaoks.
modsecurity sees; modsecurity_rules_file /etc/nginx/modsec/main.conf;
Salvestage muudatused ja väljuge failist.
Järgmisena looge /etc/nginx/modsec/ kataloog, mis salvestab ModSecurity konfiguratsiooni.
$ sudo mkdir /etc/nginx/modsec/
Järgmisena kopeerige ModSecurity konfiguratsioonifail järgmiselt.
$ sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf.
Seejärel avage konfiguratsioonifail.
$ sudo vim /etc/nginx/modsec/modsecurity.conf.
Otsige üles rida, mis algab tähega SecRuleEngine direktiiv.
Ainult SecRuleEngine'i tuvastamine.
See rida juhendab ModSecurity logida ainult HTTP-tehinguid, kuid ei võta veebirakenduse rünnaku korral midagi ette. Peate seda muutma, et Modsecurity mitte ainult ei tuvastaks, vaid ka blokeeriks veebirünnakuid.
Muutke rida allolevaks reale
SecRuleEngine sees.
Salvestage muudatused ja väljuge failist.
Järgmisena looge /etc/nginx/modsec/main.conf faili.
$ sudo vim /etc/nginx/modsec/main.conf.
Lisage see rida, et viidata /etc/nginx/modsec/modsecurity.conf konfiguratsioonifail.
Kaasake /etc/nginx/modsec/modsecurity.conf.
Salvestage muudatused ja väljuge failist.
Lisaks kopeerige Unicode'i vastendusfail.
$ sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/
Seejärel testige Nginxi konfiguratsiooni.
$ sudo nginx -t.
Test peaks olema edukas. Kui ei, minge tagasi ja kontrollige, kas kõik tehtud muudatused on õiged.
Seejärel taaskäivitage Nginx kõigi tehtud muudatuste rakendamiseks.
$ sudo systemctl taaskäivitage nginx.
Ja veenduge, et Nginx töötab ootuspäraselt.
$ sudo systemctl olek nginx.
Sest ModSecurity oma veebirakenduste kaitsmiseks peate määrama reeglid, mis tuvastavad kahtlased tegevused ja blokeerivad need. Alustuseks on parem installida olemasolevad reeglistikud, mis aitavad teil köied õppida.
The OWASP põhireeglite komplekt (CRS) on tasuta, avatud lähtekoodiga ja kogukonna hooldatav reeglistik, mis pakub reegleid tavaliste rünnakuvektorite (nt SQL-i süstimine, saidiülene skriptimine (XSS)) tõrjumiseks.
Laadige Githubist alla OWASP põhireeglite komplekt, nagu on näidatud kasutades wget käsk.
$ wget https://github.com/coreruleset/coreruleset/archive/v3.3.0.tar.gz.
Ekstraktige tihendatud fail.
$ tar xvf v3.3.0.tar.gz.
Liigutage tihendamata kataloog kindlasti kataloogi /etc/nginx/modsec/ tee.
$ sudo mv coreruleset-3.3.0/ /etc/nginx/modsec/
Seejärel nimetage ümber crs-setup.conf.example faili crs-setup.conf.
$ sudo mv /etc/nginx/modsec/coreruleset-3.3.0/crs-setup.conf.example /etc/nginx/modsec/coreruleset-3.3.0/crs-setup.conf.
Jällegi minge tagasi ModSecurity konfiguratsioonifail.
$ sudo vim /etc/nginx/modsec/main.conf.
Ja lisage järgmised read.
Kaasake /etc/nginx/modsec/coreruleset-3.3.0/crs-setup.conf. Kaasake /etc/nginx/modsec/coreruleset-3.3.0/rules/*.conf.
Failis peaks nüüd olema 3 rida:
Salvestage fail ja taaskäivitage Nginx.
$ sudo systemctl taaskäivitage nginx.
Lõpuks viime läbi testi ModSecurity ja veenduge, et see suudab tuvastada ja blokeerida kahtlase HTTP-liikluse.
Redigeerime ModSecurity konfiguratsioonifaili ja loome blokeerimisreegli, mis blokeerib juurdepääsu teatud URL-ile, kui sellele pääseb juurde veebibrauser.
$ sudo vim /etc/nginx/modsec/modsecurity.conf.
Lisage see rida otse all SecRuleEngine sees direktiiv
SecRule ARGS: testparam "@contains test" "id: 254,keela, olek: 403,msg:'Test õnnestus""
Saate määrata 'id' ja "sõnum" sildid teie eelistatud väärtustele.
Salvestage muudatused ja taaskäivitage Nginx.
$ sudo systemctl taaskäivitage nginx.
Nüüd käivitage oma brauser ja külastage allolevat URL-i koos ?testparam=test
järelliide
http://server-ip/?testparam=test.
Sa peaksid saama a 403 "Keelatud" viga. See näitab, et proovite pääseda juurde veebiserveris keelatud ressursile.
Lisaks saate kontrollida Nginxi tõrkeloge, et veenduda, et klient on blokeeritud
$ cat /var/log/nginx/error.log | grep "Test õnnestus"
[Sulle võib meeldida ka: Kuidas seadistada ModSecurity Apache'iga Debianis/Ubuntus ]
See oli ülevaade sellest, kuidas saate seadistada Modturvalisus koos Nginx peal Debian ja Ubuntu. Loodame, et sellest on kasu olnud.