Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Sekatan akses Nginx dan tetapan keselamatan

Sekatan akses Nginx dan tetapan keselamatan

WBOY
WBOYasal
2023-06-10 18:33:114107semak imbas

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

  1. Sekatan IP

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.

  1. Sekatan Ejen Pengguna

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 .

  1. Sekatan perujuk

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

  1. Perlindungan HTTPS

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.

  1. Hadkan akses kepada direktori fail

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.

  1. Log Keselamatan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn