Rumah > Artikel > Operasi dan penyelenggaraan > Sekatan akses Nginx dan tetapan keselamatan
Nginx ialah pelayan web berprestasi tinggi dan proksi terbalik dengan ciri-ciri ringan, konkurensi tinggi, konfigurasi fleksibel, dsb., dan digunakan secara meluas dalam persekitaran pengeluaran. Walau bagaimanapun, kerana proses pembinaannya agak mudah, ia masih menghadapi beberapa isu keselamatan, jadi sekatan akses dan tetapan keselamatan perlu ditetapkan untuk Nginx.
1. Sekatan akses
Nginx boleh menyekat akses alamat IP dengan mengkonfigurasi arahan membenarkan dan menolak. Contohnya, untuk hanya membenarkan alamat IP tertentu mengakses Nginx, anda boleh menambah kod berikut pada fail nginx.conf:
location / { deny all; allow 192.168.1.100; allow 10.0.0.0/8; allow 172.16.0.0/12; allow 192.168.0.0/16; }
Coretan kod di atas bermaksud untuk menafikan semua permintaan, dan kemudian membenarkan alamat IP 192.168 .1.100 dan 10.0 dalam urutan .0.0/8, 172.16.0.0/12, 192.168.0.0/16 permintaan. Anda juga boleh menetapkan membenarkan dan menafikan peraturan global melalui arahan http dalam fail konfigurasi.
Ejen Pengguna ialah rentetan pengenalan yang dihantar oleh klien HTTP seperti penyemak imbas, yang boleh digunakan untuk menentukan sama ada ia adalah pelawat sendiri. Atau program automatik. Nginx boleh menyekat Ejen Pengguna dengan mengkonfigurasi arahan if dan pembolehubah $http_user_agent, contohnya:
if ($http_user_agent ~* (wget|curl)) { return 403; }
Kod ini bermakna jika User-Agent mengandungi rentetan wget atau curl, kod ralat 403 akan dikembalikan .
Perujuk ialah medan dalam pengepala permintaan HTTP, yang menunjukkan alamat sumber permintaan semasa. Nginx boleh mengehadkan Perujuk dengan mengkonfigurasi arahan if dan pembolehubah $http_referer, contohnya:
if ($http_referer ~* (baidu.com|google.com)) { return 403; }
Kod ini bermakna jika Perujuk mengandungi rentetan baidu.com atau google.com, kod ralat 403 akan menjadi dikembalikan.
2. Tetapan Keselamatan
HTTPS boleh melindungi keselamatan aplikasi web dengan lebih baik daripada protokol HTTP, kerana datanya adalah SSL /Algoritma penyulitan TLS digunakan semasa proses penghantaran. HTTPS boleh didayakan dengan menambahkan kod berikut pada fail konfigurasi Nginx:
server { listen 443 ssl; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/cert.key; ... }
di mana ssl_certificate
dan ssl_certificate_key
akan menggunakan sijil SSL dan kunci peribadi untuk melaksanakan fungsi penyulitan protokol HTTPS.
Nginx akan mendedahkan semua fail dan subdirektori di bawah /etc/nginx/html
dalam direktori akar tapak web secara lalai, jadi akses kepada direktori fail perlu terhad. Anda boleh menambah kod berikut pada fail konfigurasi nginx.conf untuk menyekat akses direktori:
location / { root /path/to/root; index index.html; autoindex off; location ~* .(jpg|jpeg|png|gif|ico|css|js)$ { expires 1d; add_header Cache-Control "public"; } }
Kod di atas bermaksud untuk menghalakan direktori root tapak web ke /path/to/root, matikan fungsi autoindex , dan hadkan jenis fail akses yang dibenarkan dan tetapkan dasar cache.
Untuk mengesan serangan dalam masa, adalah disyorkan untuk mendayakan fungsi pengelogan Nginx. Anda boleh menambah kod berikut pada fail konfigurasi nginx.conf untuk merekod log akses:
http { access_log /var/log/nginx/access.log; ... }
dengan access_log
ialah laluan storan log akses Nginx. Log boleh disimpan dalam fail tempatan atau dianalisis menggunakan alat analisis log seperti ELK.
Ringkasan
Sekatan akses Nginx dan tetapan keselamatan adalah penting untuk keselamatan aplikasi web Akses boleh disekat melalui sekatan IP, sekatan Ejen Pengguna, sekatan perujuk dan langkah-langkah lain masa, Keselamatan aplikasi web boleh dipertingkatkan dengan mendayakan HTTPS, menyekat akses kepada direktori fail dan log keselamatan. Walau bagaimanapun, perlu diingatkan bahawa langkah-langkah ini hanya boleh meningkatkan keselamatan aplikasi Web tetapi tidak dapat menjamin keselamatannya sepenuhnya Oleh itu, kemas kini versi perisian secara tetap dan tampalan kelemahan yang tepat pada masanya dan langkah-langkah lain diperlukan untuk memastikan keselamatan aplikasi Web.
Atas ialah kandungan terperinci Sekatan akses Nginx dan tetapan keselamatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!