Dengan populariti IPv6, semakin banyak tapak web perlu mempertimbangkan keselamatan IPv6, dan Nginx, sebagai pelayan web berprestasi tinggi, juga memerlukan tetapan keselamatan IPv6 untuk memastikan operasi tapak web yang selamat. Artikel ini akan memperkenalkan kaedah tetapan keselamatan IPv6 Nginx dan langkah berjaga-jaga untuk membantu pentadbir melindungi keselamatan tapak web dengan lebih baik.
Pertama sekali, adalah sangat penting untuk mendayakan sokongan IPv6 dalam Nginx. Pastikan Nginx disusun dengan pilihan IPv6 yang betul. Semasa menyusun, pastikan anda menggunakan pilihan --dengan-ipv6 untuk mendayakan sokongan IPv6. Selepas menyusun Nginx, anda boleh menggunakan arahan berikut untuk menyemak sama ada IPv6 berfungsi dengan betul:
$ curl -g -6 http://[::1]/ -I
Arahan ini menggunakan alamat IPv6 untuk mengakses hos tempatan dan memaparkan maklumat pengepala HTTP. Jika ia berfungsi dengan betul, anda akan melihat output yang serupa dengan yang berikut:
... Server: nginx/1.17.3 ...
Apabila menggunakan IPv6, kita perlu menggunakan alamat IPv6 untuk menentukan port mendengar Nginx dan nama pelayan. Tidak seperti IPv4, alamat IPv6 menggunakan titik bertindih (:) sebagai pembatas, jadi anda perlu mengelilingi nama pelayan dengan kurungan segi empat sama ([]). Contohnya:
listen [::]:80; server_name [::]:example.com;
Selain itu, anda perlu memastikan bahawa tiada ketidakkonsistenan atau ralat dalam fail konfigurasi apabila menggunakan alamat IPv6. Anda boleh menyemak sama ada terdapat sebarang ralat dalam konfigurasi Nginx anda dengan menjalankan arahan berikut:
$ sudo nginx -t
Memandangkan penyerang boleh menggunakan sejumlah besar alamat IPv6 untuk menyerang, adalah penting untuk Mencegah serangan DoS dalam Nginx adalah penting. Untuk melakukan ini, tetapan berikut boleh dibuat dalam konfigurasi Nginx:
limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 20;
Tetapan ini akan mengehadkan setiap alamat IPv6 kepada maksimum 20 sambungan setiap 10 minit.
Apabila menggunakan IPv6, anda mesti memastikan konfigurasi tembok api yang betul. Adalah disyorkan untuk menggunakan ip6tables dalam pelayan untuk mengelakkan serangan. Berikut ialah beberapa peraturan ip6tables biasa:
-A INPUT -s 2001:db8::1 -j DROP -A INPUT -s 2001:db8:1::/64 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -j DROP
Baris pertama peraturan akan menafikan semua sambungan daripada satu alamat IPv6. Baris kedua peraturan membenarkan sambungan dari semua alamat dalam rangkaian 2001:db8:1::/64. Peraturan ketiga akan membenarkan sambungan HTTP ke port 80. Peraturan terakhir akan menyekat semua sambungan lain.
Pertanyaan DNS mungkin diperlukan kerana alamat IPv6 selalunya panjang. Untuk masa respons yang lebih pantas dan peningkatan keselamatan, alamat IPv6 boleh digunakan dan bukannya nama IPv6. Contohnya:
server { listen [2001:db8::1]:80; server_name example.com; }
Dalam contoh ini, alamat IPv6 tertentu digunakan dan bukannya menggunakan nama hos untuk memastikan masa tindak balas dan keselamatan yang minimum.
Ringkasnya, perkara di atas ialah kaedah tetapan keselamatan IPv6 dan langkah berjaga-jaga untuk Nginx. Apabila menggunakan IPv6, anda mesti mempertimbangkan isu keselamatan dan membuat tetapan yang diperlukan untuk Nginx untuk melindungi tapak web dan pelayan anda daripada serangan. Saya harap artikel ini dapat memberi inspirasi kepada anda dan memberikan panduan tentang tetapan keselamatan anda.
Atas ialah kandungan terperinci Tetapan keselamatan IPv6 untuk Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!