Debian/Ubuntu-da Apache bilen ModSecurity-i nädip sazlamaly


“Apache” web serweri ýokary derejede düzülip bilner we islegleriňize görä birnäçe görnüşde düzülip bilner. “Apache” -ni öz islegiňize görä düzmek üçin ulanyp boljak üçünji tarap modullary köp.

ModSecurity, Apache web serwerinde doglan açyk çeşme WAF (Web Application Firewall). Ilkibaşda diňe Apache modulydy, ýöne ýylyň dowamynda ösüp, doly hukukly web programma gorag diwaryna öwrüldi. Indi Nginx we hatda IIS tarapyndan goldanýar.

ModSecurity web serwerine gelýän talaplary öňünden kesgitlenen düzgünler toplumyna garşy barlaýar. Adatça, web sahypasyny SQL sanjym, XSS we beýleki ekspluatasiýalaryň arasynda seans ogurlamak ýaly web programma hüjümlerinden goraýan CRS (Core Rule Set) diýlip atlandyrylýan düzgünler toplumyny üpjün edýär.

[Şeýle hem halamagyňyz mümkin: Zyýanly programma üpjünçiligi we Rootkits üçin Linux serwerini skanirlemek üçin 5 gural]

ModSecurity amaly gorag diwary, saýtlary daşarky hüjümlerden goramakda PCI DSS talaplarynyň aýrylmaz bölegini emele getirýär. Modul açyk bolanda, web serwerindäki çeşmä girmek üçin ýeterlik rugsatlaryňyzyň ýokdugyny aňladýan 403 Gadagan säwlik ýüze çykýar.

Bu gollanmada, Debian we Ubuntu Linux-da Apache bilen işlemek üçin ModSecurity-i nädip sazlamalydygyny we sazlamalydygyny görkezeris.

1-nji ädim: Ubuntu-da ModSecurity guruň

Birinji ädim ModSecurity gurmak. Ilki bilen, paket sanawlaryny aşakdaky ýaly täzeläris:

$ sudo apt update

Ondan soň, beýleki garaşlylyklar we kitaphanalar bilen birlikde ModSecurity paketini guruň.

$ sudo apt install libapache2-mod-security2

Ondan soň moduly işlediň.

$ sudo a2enmod security2

Soňra üýtgeşmeleri ulanmak üçin Apache web serwerini täzeden açyň.

$ sudo systemctl restart apache2

Bu pursatda ModSecurity üstünlikli guruldy. Geliň indi düzeliň.

2-nji ädim: Ubuntu-da ModSecurity-i sazlaň

Düzgüne görä, ModSecurity diňe şübheli işleri ýüze çykarmak we hasaba almak üçin düzülendir. Goşmaça ädim ätmeli we diňe bir şübheli hereketleri ýüze çykarmak üçin däl-de, eýsem blokirlemeli.

Aşakdaky buýrukda görkezilişi ýaly, adaty ModSecurity konfigurasiýa faýly - modsecurity.conf-maslahat berilýän täze faýla göçüriň.

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

Halaýan tekst redaktoryňyzy ulanyp, faýly açyň

$ sudo nano /etc/modsecurity/modsecurity.conf

Setiri tapyň:

SecRuleEngine DetectionOnly

Ony düzüň:

SecRuleEngine On

Üýtgeşmeleri ýazdyryň we faýldan çykyň.

Apache-de üýtgeşmeleri ulanmak üçin web serwerini täzeden açyň.

$ sudo systemctl restart apache2

3-nji ädim: OWASP ModSecurity Core düzgünini göçürip alyň

Indiki ädim, iň soňky OWASP ModSecurity Core Rule Set (CRS) -ni GitHub sahypasyndan göçürip almak.

OWASP git ammaryny görkezilişi ýaly klonlaň.

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

Kataloga geçiň.

$ cd coreruleset/

Crs-setup.conf.example faýlyny modsecurity katalogyna geçiriň we adyny crs-setup.conf diýip üýtgediň.

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

Mundan başga-da, düzgünler katalogyny modsecurity katalogyna geçiriň.

$ sudo mv rules/ /etc/modsecurity/

Ondan soň, howpsuzlyk2.conf faýlyny redaktirläň.

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

Aşakdaky setirleriň bardygyna göz ýetiriň.

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

Üýtgeşmeleriň dowam etmegi üçin Apache-i täzeden açyň.

$ sudo systemctl restart apache2

Indi ModSecurity konfigurasiýamyzy synap göreliň.

4-nji ädim: Ubuntu-da ModSecurity konfigurasiýasyny barlamak

Netijede, ModSecurity-iň şübheli HTTP traffigini ýüze çykaryp we bloklap biljekdigini barlamaly. Muňa ýetmek üçin deslapky wirtual host faýlyny redaktirlemeli.

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

Ondan soň, web brauzeri gireninde belli bir URL-e girmegi bökdeýän blokirleme düzgünini dörederis.

Bu setirleri ahyrynda “Wirtualhost” ýapylyş belliginden öň goşuň.

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

“Id” we “msg” belliklerini islenýän gymmatlyklara belläp bilersiňiz.

Soňra wirtual host konfigurasiýa faýlynda edilen üýtgeşmeleri ulanmak üçin Apache web serwerini täzeden açyň.

$ sudo systemctl restart apache2

Web brauzeriňizde, ahyrynda ? Testparam=test bilen görkezilen URL-e girmäge synanyşyň.

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

Çeşmä girmegiňiziň öňüni alandygyňyzy görkezýän 403 Gadagan edilen ýalňyşlyk alarsyňyz.

Mundan başga-da, säwlik surnallaryny barlamak arkaly müşderiniň petiklenendigini tassyklap bilersiňiz.

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

[Şeýle hem halap bilersiňiz: Debian/Ubuntu-da Nginx üçin ModSecurity-i nädip gurmaly]

Bu, islenmeýän traffigi ýüze çykarmak we blokirlemek üçin ModSecurity-i üstünlikli gurnandygymyzy tassyklaýar. Bu gollanmada, Debian/Ubuntu ulgamlarynda Apache bilen ModSecurity-i gurmak prosesi bilen tanyşdyk.