Sunucu PHP Versiyon Bilgisi Gizleme

php-versiyon-surum-gizleme

PHP (açılımı PHP: Hypertext Preprocessor) web dünyasında geniş kitleler tarafından kullanılan en populer betik (script) dillerindendir. Sunucunuzda yüklü, kullandığınız PHP versiyonu için bilinen cidd bir güvenlik zaafiyeti varsa, bu durum saldırganların işine  yarayacaktır. İyi niyetli olmayan kişi ya da kişilerin işlerini en azından kolaylaştırmamalıyız aksine zorlaştırmalıyız. En güncel php sürümünü kullanıyor olsak da güvenlik söz konusu olunca işi riske atamayız ve alınması gerekli tedbirleri almalı zaafiyet oluşturacak kapıları kapatmalıyız.  Güvenlik sebebiyle, saldırılardan kendinizi korumanız için sunucunuzun zayıflıklarını öğrenmek isteyen saldırganlardan bazen PHP versiyonunuzu gizlemeniz gerekebilir. Burada php versiyon (sürüm) gizleme işlemini bu amaç ile yapıyoruz.

Güvenlik, performans ve verimlilik adına web sunucunuzdaki php sürümünü (en güncel php) güncellemenizi tavsiye ederiz.

Web sunucumuzda ilgili php.ini dosyasını bulup içindeki expose_php  değerini off şeklinde değiştirip bunu sisteme bildirmemiz gerekiyor.

Sunucu işletim sistemi ve kullanılan yazılımlara bağlı olarak php ayar dosyamız (php.ini) farklı konumlarda olabilmektedir:

  • Freebsd işletim sistemlerinde php.ini konumu: /usr/local/etc/
  • Plesk kontrol paneli php.ini konumu: /etc/php.ini şeklindedir.
    Eğer multiphp (php selector) kullanıyorsanız /opt/plesk/php/7.x/etc/php.ini
  • Cpanel kontrol paneli php.ini konumu: /usr/local/lib/php.ini şeklindedir.
    Eğer multiphp kullanıyorsanız /opt/cpanel/ea-php7x/root/etc/php.ini

Eğer php.ini dosyanızın tam olarak nerde olduğunu bilmiyorsanız  komut istemcinize aşağıdaki komutları uygulayarak konumunu öğrenebilirsiniz.

[[email protected]]~$ php -i | grep "Loaded Configuration File" 
 Loaded Configuration File => /opt/plesk/php/7.2/etc/php.ini
[[email protected]]~$ find / -type f -name php.ini
/var/www/vhosts/system/sizinwebsiteniz.com/etc/php.ini
/etc/php.ini
/usr/local/psa/admin/conf/php.ini
/opt/plesk/php/7.4/etc/php.ini
/opt/plesk/php/7.3/etc/php.ini
/opt/plesk/php/7.2/etc/php.ini
/opt/plesk/php/7.1/etc/php.ini
/opt/plesk/php/5.6/etc/php.ini

Php ayar (php.ini) dosyamızın konumunu öğrendiğimize göre artık düzenleme işlemine geçebiliriz. Favori editörünüzü kullanarak ilgili php.ini dosyasını açınız ve  expose_php değerini bulup karşısındaki on değerini off yaptıktan sonra dosyayı kayıt edip ve çıkınız.

[[email protected]]~$ vi /opt/plesk/php/7.x/etc/php.ini
 expose_php = Off

Apache versiyonunu gizlemek için de httpd.conf dosyanızı favori editörünüzle açın ve aşağıdaki değişiklikleri yapınız. Dosyanın konumunu öğrenmek için aşağıdaki komutu kullanabilirsiniz.

[[email protected]]~$ find / -type f -name httpd.conf

Aşağıdaki satırları bulun ve aşağıdaki gibi tanımlama yapın. Eğer satır ekli değilse ekleyin.

[[email protected]]~$ vi /etc/httpd/conf/httpd.conf
ServerTokens ProductOnly 
ServerSignature Off

Bundan sonra  apache/nginx servisini yeniden başlatıyoruz. (Sunucunuzu yeniden de başlatabilirsiniz)

[[email protected]]~$ systemctl restart httpd
[[email protected]]~$ service nginx restart
[[email protected]]~$ systemctl restart apache2
[[email protected]]~$ service httpd restart
[[email protected]]~$ service apache2 restart

Şimdi son olarak aşağıdaki komutları uygulayarak, sunucunuzun hala PHP sürüm numaranızı gösterip göstermediğini kontrol edin.

[[email protected]]~$ lynx -head -mime_header http://localhost
[[email protected]]~$ lynx -head -mime_header http://sunucu-adresi

Hakkında Ahmet Bolu

İlginizi çekebilir

nginx

Nginx Nedir? Nginx Nasıl Kurulur? [ Centos 8 ]

Bu yazımızda CentOS 8 üzerine Nginx kurulumu anlatılmaktadır. CentOS Red Hat firmasının dağıtımı olan Red …