Rumah >Tutorial sistem >LINUX >Sembunyikan versi Nginx pada Linux dan Unix

Sembunyikan versi Nginx pada Linux dan Unix

WBOY
WBOYke hadapan
2024-02-09 19:50:29720semak imbas

Gunakan CLI untuk memaparkan versi Nginx semasa

Nginx akan memaparkan versi pada halaman ralat dan dalam medan pengepala respons "Pelayan". Kita boleh mengesahkan ini menggunakan arahan berikut: Contoh output:

$ curl -I https://your-domain
$ curl -I https://www.cyberciti.biz
HTTP/2 200 server: nginx/1.17.10 (Ubuntu)date: Tue, 23 Jun 2020 09:36:49 GMTcontent-type: text/html; charset=UTF-8strict-transport-security: max-age=15768000x-whome: l-ncbz01-mg-wg

Ini adalah output halaman ralat HTTP/502 saya yang memaparkan maklumat:

Sembunyikan versi Nginx pada Linux dan Unix

Gunakan arahan server_tokens untuk menyembunyikan versi Nginx

Anda perlu mematikan server_tokens untuk menyembunyikan versi pelayan Nginx pada sistem seperti Linux dan Unix. Edit fail nginx.conf anda menggunakan editor teks seperti vim/nano:

Kami hanya boleh menetapkan server_tokens dalam konteks http, pelayan atau lokasi. Saya akan menambah pada bahagian http saya: Beginilah rupanya:

$ sudo vim /etc/nginx/nginx.confserver_tokens off;
http {        ## Basic Settings ##        charset utf-8;        sendfile on;        tcp_nopush on;        tcp_nodelay on;        log_not_found off;        keepalive_timeout 65;        types_hash_max_size 2048;        client_max_body_size 16M;        include /etc/nginx/mime.types;        default_type application/octet-stream;        ## Hide Nginx version ##        server_tokens   off;        ## Security headers for Nginx ##         add_header Strict-Transport-Security "max-age=15768000" always;        add_header X-Content-Type-Options "nosniff" always;        add_header X-Frame-Options "SAMEORIGIN" always;        add_header X-Xss-Protection "1; mode=block" always;        add_header Referrer-Policy  strict-origin-when-cross-origin;        add_header Feature-policy "accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment 'none'; usb 'none'";        add_header Content-Security-Policy   "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;        ## SSL Settings ##        ssl_protocols TLSv1.3;        access_log /var/log/nginx/access.log;        error_log /var/log/nginx/error.log;        ## Virtual Host Configs ##        include /etc/nginx/conf.d/*.conf;        include /etc/nginx/sites-enabled/*;}

Mulakan semula atau muat semula pelayan Nginx seperti biasa:

sudo nginx -tsudo nginx -s reload

Sahkan sama ada versi Nginx disembunyikan

Gunakan arahan curl seperti di bawah: Lihat pelayan Nginx saya tidak menunjukkan sebarang versi:

$ curl -I https://your-domain-name-here
$ curl -I https://www.cyberciti.biz

HTTP/2 200 server: nginxdate: Tue, 23 Jun 2020 09:43:17 GMTcontent-type: text/html; charset=UTF-8strict-transport-security: max-age=15768000

Firefox juga mengesahkan bahawa saya juga berjaya menyembunyikan versi Nginx:

Sembunyikan versi Nginx pada Linux dan Unix

Sembunyikan nilai lain yang mungkin untuk versi Nginx

Sintaks adalah seperti berikut: Tetapan lalai pada Linux, *BSD dan Unix adalah seperti berikut:

server_tokens on | off | build | string;
server_tokens on;

Alih keluar versi daripada pengepala pelayan dan halaman ralat

Kami boleh mendayakan atau melumpuhkan pemancaran versi nginx dengan menukar kepada nilai berikut:
on: Paparkan nombor versi.
mati: Matikan paparan nombor versi.
bina: Pastikan kami mengeluarkan nama binaan serta versi nginx. Anda mesti mempunyai Nginx versi 1.11.10.
rentetan: Tersedia untuk langganan komersial sahaja, bermula dalam versi 1.9.13, adalah mungkin untuk menggunakan rentetan dengan pembolehubah untuk memaparkan tandatangan dan nilai medan pengepala respons "pelayan" pada halaman ralat tetapan. Rentetan kosong melumpuhkan pemancaran medan "pelayan".

Tetapkan nombor versi tersuai dalam Nginx

Sebagai contoh, pengguna langganan komersial (Nginx Plus) boleh menetapkannya kepada versi pelayan palsu dan nama tersuai: Muat semula pelayan Nginx menggunakan arahan perkhidmatan atau perintah systemctl: Begitu juga, ujinya menggunakan arahan curl seperti berikut:

;$ service nginx reload$ curl -I http://127.0.0.1/
Sembunyikan versi Nginx pada Linux dan Unix

Versi tersembunyi selamat dalam ketidakjelasan

Ya, ia adalah keselamatan melalui fungsi terselindung. Ia merupakan salah satu kaedah pertahanan secara mendalam. Walau bagaimanapun, ia tidak sepatutnya menjadi bentuk pertahanan utama. Anda perlu menulis kod selamat. Pasang firewall, terutamanya WAF (Web Application Firewall). Tiada sebab untuk mendedahkan versi Nginx atau PHP atau Python kerana ia boleh menjadi maklumat berguna kepada penyerang. Perlu diingat bahawa sistem pengendalian Linux/Unix, aplikasi web/Nginx harus kekal selamat tanpa mengira sama ada versi Nginx adalah umum atau tidak. Walau bagaimanapun, kami tidak memberikan apa-apa faedah kepada penyerang dengan menerbitkan nombor versi.

Atas ialah kandungan terperinci Sembunyikan versi Nginx pada Linux dan Unix. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lxlinux.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam