Cara Menyembunyikan Nombor Versi Apache dan Maklumat Sistem Pengendalian

Imej yang menunjukkan logo projek pelayan Apache

Apache adalah salah satu daripada pelayan web yang paling popular tetapi konfigurasi lalainya mengandungi pilihan yang boleh dipersoalkan pada banyak pengedaran Linux. Apache cenderung untuk mengiklankan versi khususnya dan platform yang dijalankannya, maklumat yang mungkin bernilai kepada penyerang.

Artikel pantas ini akan menunjukkan kepada anda cara untuk melumpuhkan output ini untuk membantu melindungi pelayan anda. Biasanya tiada sebab untuk ia aktif dan mematikannya hanya perlu mengambil masa seminit.

Apa masalahnya?

Berikut ialah pemasangan Apache 2.4 baharu yang memaparkan indeks direktori:

Imej halaman indeks Apache lalai yang menunjukkan tandatangan pelayan

Pengaki halaman mendedahkan kod versi Apache, nama sistem pengendalian dan alamat IP dalaman serta nombor port pelayan anda.

Ini adalah butiran yang berpotensi sensitif. Kerentanan sifar hari dalam Apache mungkin menjejaskan hanya sebilangan kecil versi. Dengan membiarkan output ini dihidupkan, anda memaparkan kepada dunia sama ada mesin anda berisiko. Ini menjadikannya lebih mudah untuk penyerang mengenal pasti hos anda sebagai sasaran yang berpotensi.

Apache merujuk kepada data ini sebagai "tandatangan pelayan"nya. Ia tidak terhad kepada halaman indeks direktori: kod versi disertakan dalam setiap respons HTTP dalam Server kepala:

imej yang menunjukkan cara pengepala respons Apache memasukkan tandatangan pelayan secara lalai

Ia akan hadir tanpa mengira kod status respons. Penyerang boleh mencari versi Apache tepat anda dengan hanya ping permintaan ke pelayan anda, tanpa mengira sama ada mereka mengetahui URL yang sah.

Melumpuhkan Tandatangan Pelayan

Terdapat dua bahagian untuk melumpuhkan output yang tidak diingini ini. Pertama ialah ServerSignature nilai dalam fail konfigurasi Apache anda. Lokasi fail ini berbeza-beza; /etc/apache2/apache2.conf and /usr/local/apache2/conf/httpd.conf adalah dua kemungkinan biasa. The ServerSignature arahan juga disokong di dalam .htaccess fail dalam akar web anda.

Tetapkan arahan kepada Off untuk melumpuhkan tandatangan yang muncul pada halaman web yang dijana pelayan:

Tandatangan Pelayan Dimatikan

Mulakan semula Apache untuk menggunakan perubahan:

$ sudo service apache2 mulakan semula

Imej halaman indeks Apache lalai tanpa tandatangan pelayan

Ini menjejaskan penyenaraian direktori, halaman ralat lalai Apache dan output HTML lain yang dihasilkan oleh pelayan. Off mengalih keluar baris tandatangan sepenuhnya. Tetapan secara pilihan menyokong nilai ketiga, EMail, yang menyediakan pautan untuk menghantar e-mel ke alamat yang ditentukan oleh ServerAdmin:

ServerAdmin [e-mel dilindungi]
E-mel Tandatangan Pelayan

Ini menggantikan maklumat versi Apache dengan pautan e-mel.

Menguruskan Token Pelayan

Kandungan dari Server pengepala respons dikawal oleh tetapan yang berbeza, ServerTokens. Ini hanya boleh ditetapkan oleh fail konfigurasi global pelayan anda. Ia tidak disokong di dalam .htaccess fail.

Nilai lalai adalah Full yang membentangkan rentetan versi yang tepat dan nama sistem pengendalian yang diperhatikan dalam contoh di atas. Ini juga boleh termasuk nombor versi modul yang dimuatkan dan enjin kandungan CGI seperti PHP.

Nilai alternatif berikut disokong:

  • Full - Apache/2.4.2 (Ubuntu)
  • Prod - Apache
  • Major - Apache/2
  • Minor - Apache/2.4
  • Min - Apache/2.4.2
  • OS - Sama seperti Full tetapi tanpa maklumat tentang modul yang dimuatkan

. Prod pilihan adalah nilai yang paling selamat. Anda boleh menganggapnya sebagai Production, walaupun ia sebenarnya singkatan untuk ProductOnly. Token pelayan ini bermaksud Server pengepala hanya akan mendedahkan anda menggunakan Apache, tanpa sebarang maklumat tambahan tentang keluaran. Penyerang perlu melakukan lebih banyak penyiasatan percubaan dan kesilapan untuk mencari kelemahan yang boleh dieksploitasi dalam pemasangan anda.

Malangnya tiada cara untuk mengalih keluar Server pengepala sama sekali. Apache sebenarnya mengekalkan itu melumpuhkannya "tidak melakukan apa-apa untuk menjadikan pelayan anda lebih selamat" dan mencadangkan penggunaan Min untuk menjadikannya lebih mudah untuk menyahpepijat masalah antara operasi.

Walau bagaimanapun kebanyakan orang tidak pernah mengambil Server header dan sentiasa paling selamat untuk mengiklankan maklumat yang paling sedikit tentang sistem anda. Walaupun ia tidak akan menghalang eksploitasi kelemahan, ServerTokens Prod boleh menghalang penyerang daripada membuat percubaan spekulatif. Ia juga akan menyukarkan orang yang lalu-lalang untuk mengumpulkan butiran kerja dalaman tindanan teknologi anda. Ia hanya pengerasan kecil tetapi satu hari ia boleh menjadi perbezaan yang anda perlukan.

Bagaimana dengan PHP?

Apache sering digunakan di hadapan laman web dan aplikasi yang dikuasakan oleh PHP. Malangnya PHP mempunyai tabiat sendiri menyediakan nombor versinya kepada internet. Ia akan muncul dalam X-Powered-By pengepala respons yang dihantar oleh kod PHP anda.

Anda boleh mematikan ini dengan mengubah suai fail konfigurasi PHP anda dengan baris berikut:

expose_php = Mati

Fail konfigurasi biasanya boleh didapati di /etc/php/8.1/apache2/php.ini. Ganti 8.1 dengan versi PHP yang anda gunakan. Anda perlu memulakan semula pelayan web anda untuk menggunakan perubahan.

Ringkasan

Konfigurasi lalai Apache mendedahkan nombor versi tepat pelayan anda, serta sistem pengendalian dan alamat IPnya. Maklumat yang kelihatan tidak berbahaya ini boleh memberi bantuan kepada penyerang yang mencari pelayan yang terdedah.

Mematikan tandatangan pelayan ialah cara cepat untuk mengeraskan persekitaran anda. Ia juga merupakan idea yang baik untuk menangani pendedahan maklumat serupa daripada perisian lain dalam timbunan anda pada masa yang sama. PHP dan beberapa rangka kerja web datang dengan kelemahan yang sama.

Artikel Asal