Bu yazımda sizlere sunucu güvenliğinden biraz bahsedeceğim.Çoğu internet uzmanının,sitelerinin güvenliği hakkında endişeleri var.Bu yazıyı okuduktan sonra siz de sunucunuza güvenlik yaptırabileceksiniz.Öyleyse başlayalım,Bismillahirrahmanirrahim.
Adım 1) Güvenilir Bir Hosting Firması Seçin
Güvenliğin temel şartlarından birisi geniş güvenlikli bir hosting firması seçmektir.Kötü amaçlı kişiler genelde BlueHost,HostGator gibi firmaların güvenlik engellerini aşamamaktadır.Tabii alanında uzman kişiler bu güvenlik duvarlarını aşabilmektedir.(Yine de yazımızda bu durumu engellemeye çalışacağız.) Bu sebeplerden dolayı sitenizi barındırmak için HostGator veya BlueHost firmalarını tercih edin.
Adım 2) Bilgisayar Güvenliğinize Dikkat Edin
Kötü amaçlı kişilerin çoğu,sitelerin güvenlik duvarını aşamayınca sosyal mühendislik dediğimiz kandırma,yalan söyleyerek amacına ulaşma sanatına başvurur.Bu tür yollardan korunmak için yerel bilgisayarınıza güvenilir bir antivirüs seçin.Bknz:eset.com.
Adım 3) Asıl Güvenlik Sunucu Güvenliği
Asıl sunucu koruma bölümü buradan başlıyor.Kötü amaçlı kişilere karşı çeşitli güvenlik duvarlarından bahsedeceğiz.
Öncelikle sitemizde kurulu olan veya kuracağımız yazılımı (script) araştıracağız.1337day,Exploit-DB,Security Focus gibi exploit sitelerinden kullanmakta olduğumuz veya kullanacağımız yazılımın (script) güvenlik açıklarını arattırıyoruz,tabii bu işlem için Google amca da kullanılabilir.Eğer yazılımda (script) herhangi bir güvenlik açığı tespit edilmişse Google amcadan güvenlik açığının (vulnerability) kapatılmasını (İngilizce olarak fix edilmesini) araştırıyoruz ve açığı kapatıyoruz.
Diyelim yazılımda açık yok,kendimiz kodladık,o zaman ne yapacağız? die bir soru duyargibiyim.Hemen ona da değinelim.Öncelikle kötü amaçlı kişilerin ilk yapacağı iş sitenizde yükleme (upload) bölmelerini aramak olacaktır.Bunun sebebi sitenize shell adı verilen zararlı dosyaları yüklemektir.Shelle biraz değinecek olursak,bir sunucunun tamamının ele geçirilmesini,h*ck edilmesini sağlar.Peki shellerden nasıl korunuruz? Gelin birlikte öğrenelim.
Öncelikle sunucunuza shell yüklendi diyelim.Korunmak için bazı aşamaları devredışı bırakacağız ve shelleri engelleyeceğiz.Peki nasıl olacak? Sunucunuzda root olarak bağlanıp: /usr/lib/ yolunu takip edin.Orada bir php.ini dosyası olacak.İlk aşama o dosyayı düzenlemektir,haydi düzenlelim.(Dosyayı bulamayanlar locate php.ini komutuyla bulabilirler.) Dosyamızı düzenlemek için komut satırına pico /usr/lib/php.ini komutunu verelim.Daha sonra dosyadan disable_functions bölümünü bulup aşağıdaki kodları ekliyoruz tırnak işaretleri olmadan:
foreach,glob,hopenbasedir,f_open,
system,dl,passthru,cat,exec,popen,proc_close,proc_get_status,
proc_nice,proc_open,escapeshellcmd,escapeshellarg,show_source,
posix_mkfifo,mysql_list_dbs,get_current_user,getmyuid,pconnect,
link,symlink,pcntl_exec,ini_alter,parse_ini_file,leak,
apache_child_terminate,posix_kill,posix_setpgid,posix_setsid,
posix_setuid,proc_terminate,syslog,fpassthru,stream_select,
socket_select,socket_create,socket_create_listen,socket_create_pair,
socket_listen,socket_accept,socket_bind,socket_strerror,pcntl_fork,
pcntl_signal,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,
pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,
openlog,apache_get_modules,apache_get_version,apache_getenv,apache_note,
apache_setenv,virtual,user_dir
Sonrasında kaydedip service htttpd restart komutunu verelim.İşlem sonrası çoğu shell sunucunuzda çalışmayacaktır.Bir sonraki adım ise Perl kütüphanesine erişimi engellemekolacak.Yine sunucumuza root olarak bağlanıp yine yukarıdaki gibi php.iniyidüzenlüyoruz.CTRL+X veya CTRL+F ile #AddHandler komutunu arattıralım ve bununla değiştirelim:#AddHandler cgi-script .cgi .pl .perl .ppl .plx.
Perl kütüphanesine erişimi kesin engellemek içinse yine sunucumuza root olarak bağlanıp:chmod 710 /usr/bin/perl komutunu verelim.Tekrar farklı bir güvenlik içince chmod 600 /etc/shadow komutunu vermekte yarar var.İşlemlerin sonunda service httpd restart komutunu tekrar vererek sunucumuzu resetleyeylim.
Şimdi diğer bir güvenlik aşamasına geçelim,bulunduğumuz dizinde dosya yazılmasını engelleyeceğiz.Peki nasıl mı? Tabii ki de cPanel veya Plesk tabanlı panellerimizden dosya yöneticisine girip index.php ve public_html veya www ya da httpdoc klasörlerimizin izinlerini değiştirerek.Ana dosyamız olan index.phpye tik işareti koyarak İzinleri Değiştir butonuna basalım ve Writing izinlerinde bulunan tik (tcik) işaretlerini kaldıralım.Böylece kötü amaçlı kişiler sitemizin girişinde karşımıza çıkan index dosyamızın kodlarını değiştiremeyecek.Aynı işlemi yapılandırma ayarlarını barındıran konfigürasyon.php (config.php) dosyamızda da yapabiliriz ama bu sefer Writing değil Reading izinlerindeki tik (tick) işaretini kaldıracağız.Eğer işlem sonrasında siteniz hata verirse,Reading izinlerinden sadece bir tanesinin tick işaretini kaldırın ve hata kalkana kadar üçlü grubun (Group vs.) her birine tik (rick) işareti koymayı deneyin.
Yine bir sonraki aşamaya geçelim.Yapılandırma ayarlarının da bulunduğu,bu yüzden adını konfigürasyon olarak alan İngilizce config.php dosyamızı şifrelemeye geldi sıra.Peki nasıl yapacağız? Bu işlem bir miktar ücret gerektiriyor ne yazık ki.Yalnız güvende olmak istiyorsanız belirli bir miktarı gözden çıkarmalısınız. Tamam, benim param var,nasıl konfigürasyon dosyamı şifreletebilirim? derseniz Ioncube hizmetini kullanabilirsiniz.Dediğim gibi ücretli ama gayet güvenilir bir firma.ioncube.com adresinden ulaşabilirsiniz.Zaten Googlea Ioncube yazdığımızda Free Trial yazısını görerek ücretsiz bir deneme sürümünün olduğunuz anlıyoruz.
Yazımız sona ermiştir arkadaşlar.Bu yazımızda Linux sunucumuza güvenlik sağlamayı anlattım.Umarım anlamışsınızdır.Saygılarımla,