Jinsi ya Kusanidi ModSecurity na Apache kwenye Debian/Ubuntu


Seva ya wavuti ya Apache inaweza kubinafsishwa sana na inaweza kusanidiwa kwa njia nyingi ili kukidhi mahitaji yako. Kuna moduli nyingi za wahusika wengine ambazo unaweza kutumia kusanidi Apache upendavyo.

ModSecurity ni WAF ya chanzo huria (Firewall ya Maombi ya Wavuti) ambayo asili yake ni Apache webserver. Hapo awali ilikuwa moduli ya Apache pekee lakini imekua kwa mwaka mzima na kuwa ngome ya programu ya wavuti inayotekelezwa kikamilifu. Sasa inaungwa mkono na Nginx na hata IIS.

ModSecurity hukagua maombi yanayoingia kwa seva ya wavuti dhidi ya seti iliyoainishwa ya sheria. Kwa kawaida, hutoa seti ya sheria zinazojulikana kama CRS (Core Rule Set) ambazo hulinda tovuti dhidi ya safu ya mashambulizi ya programu za wavuti kama vile sindano ya SQL, XSS, na utekaji nyara wa kipindi kati ya ushujaa mwingine.

[ Unaweza pia kupenda: Zana 5 za Kuchanganua Seva ya Linux kwa Malware na Rootkits ]

Ngome ya programu ya ModSecurity inaunda sehemu muhimu ya utiifu wa PCI DSS katika kulinda tovuti dhidi ya mashambulizi ya nje. Wakati moduli imewashwa inasababisha 'Hitilafu 403 Iliyokatazwa' ambayo inamaanisha kuwa huna ruhusa za kutosha kufikia rasilimali kwenye seva ya wavuti.

Katika mwongozo huu, tutakuonyesha jinsi ya kusanidi na kusanidi ModSecurity kufanya kazi na Apache kwenye Debian na Ubuntu Linux.

Hatua ya 1: Weka ModSecurity kwenye Ubuntu

Hatua ya kwanza ni kufunga ModSecurity. Tutaanza kwa, kwanza, kuonyesha upya orodha za vifurushi kama ifuatavyo:

$ sudo apt update

Ifuatayo, sakinisha kifurushi cha ModSecurity kando ya vitegemezi vingine na maktaba.

$ sudo apt install libapache2-mod-security2

Baadaye, wezesha moduli.

$ sudo a2enmod security2

Kisha anzisha tena seva ya wavuti ya Apache ili kutumia mabadiliko.

$ sudo systemctl restart apache2

Katika hatua hii, ModSecurity imesakinishwa kwa ufanisi. Hebu sasa tuisanidi.

Hatua ya 2: Sanidi ModSecurity katika Ubuntu

Kwa chaguo-msingi, ModSecurity imesanidiwa tu kugundua na kuweka shughuli za kutiliwa shaka. Tunahitaji kuchukua hatua ya ziada na kuisanidi ili sio tu kugundua lakini pia kuzuia shughuli za kutiliwa shaka.

Nakili, faili chaguo-msingi ya usanidi wa ModSecurity - modsecurity.conf-iliyopendekezwa - kwa faili mpya kama inavyotolewa katika amri iliyo hapa chini.

$ sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

Kwa kutumia kihariri cha maandishi unachopendelea, fungua faili

$ sudo nano /etc/modsecurity/modsecurity.conf

Tafuta mstari:

SecRuleEngine DetectionOnly

Weka kwa:

SecRuleEngine On

Hifadhi mabadiliko na uondoke kwenye faili.

Ili kutumia mabadiliko katika Apache, anzisha tena seva ya wavuti.

$ sudo systemctl restart apache2

Hatua ya 3: Pakua OWASP ModSecurity Core Ruleset

Hatua inayofuata ni kupakua Seti ya Kanuni ya Msingi ya OWASP ModSecurity Core (CRS) kutoka kwa ukurasa wa GitHub.

Funga hazina ya git ya OWASP kama inavyoonyeshwa.

$ git clone https://github.com/coreruleset/coreruleset.git

Nenda kwenye saraka.

$ cd coreruleset/

Hakikisha umehamisha faili ya crs-setup.conf.example hadi saraka ya usalama na uipe jina jipya crs-setup.conf.

$ sudo mv crs-setup.conf.example /etc/modsecurity/crs-setup.conf

Kwa kuongezea, sogeza saraka ya sheria kwenye saraka ya usalama vile vile.

$ sudo mv rules/ /etc/modsecurity/

Kisha, hariri faili security2.conf.

$ sudo nano /etc/apache2/mods-enabled/security2.conf

Hakikisha kuwa ina mistari ifuatayo.

IncludeOptional /etc/modsecurity/*.conf
Include /etc/modsecurity/rules/*.conf

Kisha anzisha tena Apache ili mabadiliko yaendelee.

$ sudo systemctl restart apache2

Wacha sasa tujaribu usanidi wetu wa ModSecurity.

Hatua ya 4: Kujaribu Usanidi wa ModSecurity kwenye Ubuntu

Mwishowe, tunahitaji kujaribu kuwa ModSecurity inaweza kugundua na kuzuia trafiki ya HTTP inayoshukiwa. Ili kufikia hili, tunahitaji kuhariri faili chaguo-msingi ya mwenyeji.

$ sudo nano /etc/apache2/sites-available/000-default.conf

Ifuatayo, tutaunda sheria ya kuzuia ambayo itazuia ufikiaji wa URL fulani inapofikiwa na kivinjari.

Ongeza mistari hii mwishoni kabla ya lebo ya kufunga ya 'Virtualhost'.

SecRuleEngine On
SecRule ARGS:testparam "@contains test" "id:254,deny,status:403,msg:'Test Successful'"

Jisikie huru kuweka vitambulisho vya 'id' na 'msg' kwa maadili yoyote yanayofaa.

Kisha anzisha tena seva ya wavuti ya Apache ili kutumia mabadiliko yaliyofanywa kwa faili ya usanidi wa mwenyeji wa kawaida.

$ sudo systemctl restart apache2

Kwenye kivinjari chako cha wavuti, jaribu kutembelea URL iliyoonyeshwa na ?testparam=test mwishoni.

http://server-ip/?testparam=test

Unapata 'hitilafu 403 Iliyokatazwa' inayoonyesha kuwa umezuiwa kufikia rasilimali.

Unaweza kuthibitisha zaidi kuwa mteja alizuiwa kwa kuangalia kumbukumbu za makosa kama ifuatavyo.

$ cat /var/log/apache2/error.log | grep “Test Successful”

[Unaweza pia kupenda: Jinsi ya Kufunga ModSecurity kwa Nginx kwenye Debian/Ubuntu]

Huu ni uthibitisho kwamba tumefaulu kusanidi ModSecurity ili kugundua na kuzuia trafiki isiyotakikana. Katika mwongozo huu, tumekutembeza kupitia mchakato wa kusanidi ModSecurity na Apache kwenye mifumo ya Debian/Ubuntu.