Hepinizin bildiği gibi birçok hosting firmasının başının belası olan shell scriptler bazen inanılmaz zararlar verebiliyor. Başlıca sebeplerinden biri piyasada r57 ve c99 gibi scriplerin php’nin oldukça yaygın ve hali hazırda kullanılan fonksiyonları ile çok rahat birşekilde server üzerinde rahatlıkla değişiklik yapılabilmesi.
Bunları engellemenin birkaç yolu var ancak ben size şimdiye kadar denediklerim içinde en sağlamı olanı anlatacağım. Birazdan bahsedeceğim server üzerinde centos 5 ve whm son sürüm bulunmaktadır.
Öncelikle R57 için WHM nin securty bölümüne girerek, Securty Center kısmına geliniz. İçeride “PHP open_basedir Tweak” altında enable php open_basedir seçeneğini aktif edin. Bu php sayesinde base klasörünün içinde gezmeyi engelleyecektir. Yine aynı bölümden “mod_userdir tweak” seçeneğinide aktif etmeniz gerekiyor.
Gelelim en heyecanlı bölüme, öncelikle makinamızdaki php.ini dosyasının yerini tesbit etmemiz gerekiyor (WHM kullanılıyorsa whm üzerindeki “PHP Configuration Editor” ->advanced kısmıda işimizi görecektir.) Php ini içerisindeki disable_functions kısmının karşısına aşşağıdaki fonksiyonları yazmamız gerekiyor, ve herşeyden önemlisi safe_mod on yapılmalı. Burada dikkat edilmesi gereken birkaç husus var; Eğer sunucumuzda joomla benzeri scriptler çoğunlukta ise engellediğimiz bazı fonksiyonların sitelerin düzgün çalışmasını engelleyebileceğini unutmamak lazım, engelleyen fonksiyonu bulup eğer çok ciddi bir güvenlik açığı yaratmıyor ise kaldırmak çözüm olabilir. Yazmamız gereken fonksiyonlar ise şunlar;
restore_ini,glob,hopenbasedir,f_open,system,dl,pas sthru,cat,exec,popen,proc_close,proc_get_status,pr oc_nice,proc_open,escapeshellcmd,escapeshellarg,sh ow_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,soc ket_select,socket_create,socket_create_listen,sock et_create_pair,socket_listen,socket_accept,socket_ bind,foreach,socket_strerror,pcntl_fork,pcntl_sign al,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_seten v,virtual
Yukarıdakileri yaptıktan sonra Apacheyi yeniden başlatıyoruz ve böylece r57 scriptini engellemiş oluyoruz. C99 için ise WHM için üretilmiş olan Mod Securty Plugini Cpanelden aktif etmeniz gerekiyor. Kurulum için WHM de Cpanel altında Plugins kısmından mod securty seçip kaydediyoruz. Kurulum bittikten sonra soldaki menüde en aşşğıda mod security gelmiş olması lazım. Mod security içine girip “Edit Config” butonuna tıklayınız, oradan “default config” seçip aşşağıdan “Save Configuration” butonuna tıklayınız. Bundan sonraki kısım SSH ile yapılacaktır.
SSH ile login olduktan sonra cd/usr/local/apache/Conf/ dizinine geliniz (Eğer apacheyi farklı bir yere kurduysanız oraya giriniz) Ve sırasıyla aşşağıdaki satırları yazınız;
rm -rf modsec.conf
wget www.ni.net.tr/dosyalar/modsec.conf.txt
mv modsec.conf.txt modsec.conf
Tüm bunları bitirdikten sonra yeniden apachenizi restart ediniz ve işlem bitecektir.
Peki tüm bunlar yeterli olacakmıdır? Elbette hayır. Hiçbir zaman tamamen secure bir server elde edemezsiniz, ama elde etmek için uğraşmalısınız. Örneğin sunucunuza muhakkak bir antivirüs yazılımı kurmanız gerekmekte. Yukarıdaki gibi ve benzer içerikteki scriptleri server üzerinde çalışamadan silmekteler. Umarım faydalı olabilimişimdir.
yusuf bey ben blue host kullanıyorum, bir dostuma verdiğim ftp yi keyloggerla çalmışlar ve sistemime cp99 mu nedir onu sokmuşlar. Kullandıgım şey shared hoting bu işlemi ben mi yapacağım yoksa sunucum mu yapacak. Kod bilgim pek olmadıgı için anlayamadım vereceğiniz cvp için şimdiden teşekkür ederim.