Cara Memasang ModSecurity untuk Nginx di Debian/Ubuntu
- 1583
- 484
- Mr. Ramon Runolfsson
Ia adalah keinginan setiap pemaju untuk menggunakan aplikasi web yang selamat yang selamat dari ancaman. Pada kebanyakan kesempatan, ini tidak dapat dikatakan daripada dilakukan. Kekerapan laman web yang digodam terus meningkat apabila penggodam terus mengeksploitasi semua vektor serangan yang mereka miliki.
Keselamatan WebApp boleh menjadi cabaran besar terutama dengan kelaziman alat berniat jahat seperti rootkit, pengimbas, bot, dan perisian hasad lain. Walaupun mendapat pelanggaran mungkin kelihatan seperti jika tidak jika, adalah berhemat untuk melaksanakan beberapa langkah keselamatan yang baik untuk melindungi aplikasi web anda.
[Anda mungkin juga suka: 5 alat untuk mengimbas pelayan Linux untuk malware dan rootkits]
Salah satu alat yang dapat memberikan tahap keselamatan yang baik terhadap serangan dipanggil ModSecurity. Ini adalah sumber percuma dan terbuka Aplikasi Web Firewall (Waf) yang melindungi aplikasi web anda dari pelbagai serangan Layer 7 seperti skrip lintas tapak (XSS), SQL suntikan, merampas sesi, dan banyak lagi.
Dalam panduan ini, kami akan menunjukkan kepada anda cara memasang dan mengkonfigurasi ModSecurity untuk bekerja dengan Nginx mengenai pengagihan Linux yang berpangkalan di Debian seperti Ubuntu.
Langkah 1: Pasang kebergantungan
Untuk memulakan pemasangan, beberapa kebergantungan perisian diperlukan untuk pemasangan untuk berjaya. Tetapi pertama, kemas kini senarai pakej dan muat semula repositori seperti berikut.
kemas kini $ sudo apt
Seterusnya, pasang kebergantungan seperti berikut.
$ sudo apt install membuat gcc-essential autoconf automake libtool libfuzzy-dev ssdeep gettext pkg-config libcurl4-openssl-dev liblua5.3-DEV LIBPCRE3
Langkah 2: Pasang versi nginx terkini
Langkah seterusnya adalah memasang Nginx pelayar web. Untuk memasang versi terkini, kami akan memasangnya dari Ondrej/nginx-Mainline PPA W yang kini dikekalkan oleh pemaju Debian sejak tahun 2000.
Untuk menambah PPA ke tempatan anda Ubuntu sistem melaksanakan arahan:
$ sudo add-apt-repository PPA: ondrej/nginx-mainline -y
Seterusnya, kemas kini senarai pakej dan pasang versi terkini Nginx seperti berikut
$ sudo apt update $ sudo apt pemasangan nginx-core nginx-nginx nginx-full
Biasanya, hanya repositori lalai diaktifkan. Berhemat untuk membolehkan repositori kod sumber supaya anda boleh, kemudian, muat turun Nginx kod sumber dalam langkah seterusnya.
Untuk mencapai ini, ubah suai Nginx fail repositori.
$ sudo vim/etc/apt/sumber.senarai.D/Ondrej-Ubuntu-Nginx-Mainline-*.senarai
Cari dan uncomment baris ini untuk membolehkan repositori kod sumber:
# deb-src http: // ppa.PAD pelancaran.bersih/ondrej/nginx-mainline/ubuntu/focal utama
Fail sekarang harus muncul seperti yang ditunjukkan.
Dayakan Ondřej PPASimpan perubahan dan keluar.
Kemudian kemas kini indeks pakej.
kemas kini $ sudo apt
Langkah 3: Muat turun pakej sumber nginx
Untuk menyusun ModSecurity modul dinamik, kita perlu memuat turun Nginx pakej kod sumber. Untuk melakukan ini, kami akan, pertama, buat Nginx Direktori dalam /usr/local/src/ jalan untuk menampung fail pakej kod sumber nginx.
$ sudo mkdir -p/usr/local/src/nginx
Seterusnya, berikan kebenaran direktori seperti yang ditunjukkan. Pastikan untuk mengganti nama pengguna dengan nama pengguna sudo sebenar anda.
$ sudo chown nama pengguna: nama pengguna -r/usr/local/src/
Selepas itu, menavigasi ke Nginx Direktori Sumber:
$ cd/usr/local/src/nginx
Teruskan dan muat turun Nginx Pakej Fail Sumber:
$ sudo apt sumber nginxMuat turun sumber nginx
Anda kemungkinan besar akan masuk ke dalam kesilapan berikut:
W: muat turun dilakukan tanpa kotak yang disandarkan sebagai root sebagai fail 'nginx_1.19.5.Orig.tar.gz 'tidak dapat diakses oleh pengguna' _apt '. - pkgacquire :: run (13: kebenaran ditolak)
Ini tidak ada yang membuat anda bekerja. Jadi, abaikan ralat.
Anda boleh mengintip fail sumber menggunakan arahan LS.
$ ls -lSenaraikan fail sumber nginx
Pastikan versi kod sumber bertepatan dengan versi Nginx dipasang.
$ nginx -vSemak versi Nginx
Langkah 4: Pasang perpustakaan libmodsecurity3
Libmodesecurity ialah ModSecurity Perpustakaan yang mengendalikan Http Penapisan untuk aplikasi anda. Terdapat dua cara memasangnya. Anda boleh menggunakan Pengurus Pakej APT seperti yang ditunjukkan
$ sudo apt memasang libmodsecurity3
Pendekatan yang lain adalah memasangnya dari sumber yang lebih baik kerana ia memberikan anda versi terkini. Untuk memulakan pemasangan LibModSecurity dari sumber, klon repositori git seperti yang ditunjukkan:
$ git clone -depth 1 -b v3/master - -single -branch https: // github.com/spiderlabs/modsurity/usr/local/src/modsecurity/
Navigasi ke direktori klon:
$ cd/usr/local/src/modsecurity/
Membuat titik untuk memasang submodul
$ sudo git submodule init $ sudo git submodule updatePasang LibModSecurity3 di Ubuntu
Selepas itu, bina persekitaran menggunakan arahan di bawah.
$ sudo ./membina.SH $ SUDO ./konfigurasikan
Sekali lagi, abaikan ralat yang dipaparkan di bawah.
Fatal: Tiada nama yang dijumpai, tidak dapat menggambarkan apa -apa.
Kemudian menyusun kod sumber dan memasang utiliti lain menggunakan arahan membuat berikut. Ini mengambil masa kira -kira 25 minit, dan kesabaran diperlukan.
$ sudo make -j4
Setelah selesai, pasang perpustakaan.
$ sudo membuat pemasangan
Langkah 5: Muat turun dan menyusun penyambung modSecurity v3 nginx
Langkah seterusnya ialah memuat turun dan menyusun ModSecurity nginx penyambung. Penyambung, seperti namanya, menghubungkan Libmodsecurity perpustakaan ke webserver nginx. Untuk memuat turun penyambung modsecurity, klon dari repositori github seperti berikut.
$ git clone -depth 1 https: // github.com/spiderlabs/modsecurity-nginx.git/usr/local/src/modsecurity-nginx/
Menavigasi ke direktori klon.
$ cd/usr/local/src/nginx/nginx-1.21.3/
Meneruskan dan memasang kebergantungan membina
$ sudo apt binaan-dept nginx $ sudo apt memasang uuid-dev
Seterusnya, menyusun Penyambung ModSecurity Nginx modul dengan --dengan kompat
bendera. The --dengan kompat
Pilihan menjadikan modSecurity Nginx Connector Module Perdua.
$ sudo ./Konfigurasikan-With-Compat --Add-Dynamic-Module =/usr/Local/Src/ModSecurity-Nginx
Setelah itu selesai, bina modul penyambung modsecurity nginx menggunakan perintah membuat.
$ sudo membuat modul
Modul disimpan sebagai objs/ngx_http_modsecurity_module.Jadi. Anda perlu menyalin modul ini ke /usr/share/nginx/modul/ Direktori seperti berikut.
$ sudo cp objs/ngx_http_modsecurity_module.jadi/usr/share/nginx/modul/
Langkah 6: Muatkan modul penyambung modsecurity nginx
Untuk memuatkan Nginx modul penyambung, pertama, akses fail konfigurasi nginx utama.
$ sudo vim/etc/nginx/nginx.Conf
Tambah baris berikut tepat di bawah beberapa baris pertama
LOAD_MODULE MODUL/NGX_HTTP_MODSECURITY_MODULE.Jadi;
Di samping itu, tambahkan baris berikut di http ...
seksyen. Ini membolehkan modsecurity untuk semua tuan rumah maya nginx.
modsecurity on; modsecurity_rules_file/etc/nginx/modsec/main.Con;Dayakan Mod_Security untuk nginx vhosts
Simpan perubahan dan keluar dari fail.
Seterusnya, buat /etc/nginx/modsec/ direktori yang akan disimpan ModSecurity konfigurasi.
$ sudo mkdir/etc/nginx/modsec/
Seterusnya, salin fail konfigurasi modsecurity seperti berikut.
$ sudo cp/usr/local/src/modsecurity/modsecurity.Conf-Recommended/etc/nginx/Modsec/ModSecurity.Conf
Kemudian buka fail konfigurasi.
$ sudo vim/etc/nginx/modsec/modsecurity.Conf
Cari garis bermula dengan Rahsia arahan.
SecruleAngine Detectionly
Barisan ini mengarahkan ModSecurity hanya log transaksi HTTP tetapi tidak mengambil tindakan dalam menghadapi serangan aplikasi web. Anda perlu mengubah ini supaya modsecurity tidak hanya akan mengesan tetapi juga menyekat serangan web.
Tukar garis ke garisan di bawah
SecruleAngine OnDayakan Peraturan Mod_Security
Simpan perubahan dan keluar dari fail.
Seterusnya, buat /etc/nginx/modsec/utama.Conf fail.
$ sudo vim/etc/nginx/modsec/main.Conf
Tambah baris ini untuk merujuk /etc/nginx/modsec/modsecurity.Conf fail konfigurasi.
Sertakan/etc/nginx/modsec/modsecurity.Conf
Simpan perubahan dan keluar dari fail.
Di samping itu, salin fail pemetaan unicode.
$ sudo cp/usr/local/src/modsurity/unicode.pemetaan/etc/nginx/modsec/
Kemudian uji konfigurasi Nginx.
$ sudo nginx -tUjian konfigurasi nginx
Ujian mesti berjaya. Jika tidak, kembali dan periksa sama ada semua perubahan yang dibuat betul.
Akhirnya, mulakan semula nginx untuk menggunakan semua perubahan yang dibuat.
$ sudo systemctl mulakan semula nginx
Dan sahkan bahawa nginx berjalan seperti yang diharapkan.
$ sudo status status nginx
Langkah 7: Muat turun set owasp corerule
Untuk ModSecurity Untuk melindungi aplikasi web anda, anda perlu menentukan peraturan yang akan mengesan aktiviti yang mencurigakan dan menyekatnya. Untuk memulakan, lebih baik memasang set peraturan sedia ada yang akan membantu anda mempelajari tali.
The Set Peraturan Teras Owasp (CRS) adalah set peraturan percuma, sumber terbuka, dan komuniti yang diselenggarakan yang menyediakan peraturan untuk menangkis vektor serangan biasa seperti suntikan SQL, skrip lintas tapak (XSS).
Muat turun peraturan teras Owasp yang ditetapkan dari GitHub seperti yang ditunjukkan menggunakan perintah wget.
$ wget https: // github.com/coreruleset/coreruleset/arkib/v3.3.0.tar.Gz
Ekstrak fail termampat.
$ tar xvf v3.3.0.tar.Gz
Memastikan untuk memindahkan direktori yang tidak dikompresi ke /etc/nginx/modsec/ jalan.
$ sudo mv coreruleset-3.3.0//etc/nginx/modsec/
Kemudian namakan semula CRS-setup.Conf.Contoh fail ke CRS-setup.Conf.
$ sudo mv/etc/nginx/modsec/coreruleset-3.3.0/CRS-setup.Conf.Contoh/etc/nginx/modsec/coreruleset-3.3.0/CRS-setup.Conf
Sekali lagi, kembali ke ModSecurity fail konfigurasi.
$ sudo vim/etc/nginx/modsec/main.Conf
Dan masukkan baris berikut.
Termasuk/etc/nginx/modsec/coreruleset-3.3.0/CRS-setup.conf termasuk/etc/nginx/modsec/coreruleset-3.3.0/peraturan/*.Conf
Fail sekarang harus mempunyai 3 baris:
Konfigurasikan peraturan modsecuritySimpan fail dan, sekali lagi, mulakan semula nginx.
$ sudo systemctl mulakan semula nginx
Langkah 8: Menguji ModSecurity
Akhirnya, kami akan menjalankan ujian ModSecurity dan sahkan ia dapat mengesan dan menyekat lalu lintas HTTP yang mencurigakan.
Kami akan mengedit fail konfigurasi modsecurity dan membuat peraturan menyekat yang akan menyekat akses ke url tertentu apabila diakses oleh penyemak imbas web.
$ sudo vim/etc/nginx/modsec/modsecurity.Conf
Tambahkan baris ini di bawah SecruleAngine On arahan
Secrule Args: TestParam "@Contains Test" "ID: 254, menafikan, status: 403, msg: 'ujian berjaya'"
Anda boleh menetapkan 'ID' dan 'msg' Tag ke nilai pilihan anda.
Peraturan Keselamatan ModSecuritySimpan perubahan dan mulakan semula nginx.
$ sudo systemctl mulakan semula nginx
Sekarang lancarkan penyemak imbas anda dan lawati URL di bawah dengan ?testParam = ujian
akhiran
http: // server-ip/?testParam = ujian
Anda mesti mendapat 403 Terlarang' ralat. Ini menunjukkan bahawa anda cuba mengakses sumber yang dilarang di webserver.
Nginx 403 kesilapan terlarangDi samping itu, anda boleh menyemak log ralat nginx untuk mengesahkan bahawa pelanggan disekat
$ kucing/var/log/nginx/ralat.log | grep "ujian berjaya"Semak blok keselamatan modsekuriti nginx
[Anda mungkin juga suka: Cara Menyiapkan ModSecurity Dengan Apache di Debian/Ubuntu]
Itu adalah gambaran keseluruhan bagaimana anda boleh menubuhkan ModSecurity dengan Nginx pada Debian dan Ubuntu. Kami berharap ini bermanfaat.
- « Cara menggunakan rsync untuk menyegerakkan fail baru atau diubah/diubah suai di Linux
- Nethogs - Memantau penggunaan trafik rangkaian Linux setiap proses »