cPanel , Linux tabanlı sunucular üzerinde çalışan , bir grafik arayüzü olan ve web sitesi barındırma işlemlerini kolaylaştırmak için tasarlanmış, hosting kontrol panelidir. Üzerinde sunucuyu, bayilerinizi ve son kullanıcılarızı yönetebilirsiniz. Bir çok otomasyon aracı ile yönetimi kolaylaştırabilir ve API’ si üzerinden entegre yazılım geliştirebilirsiniz.Kolay kullanımı ve yaşayabileceğiniz problemler için internet üzerinde çok fazla yardım yazısı olması bu paneli en çok tercih edilen panel haline getirmiş durumda fakat standart ayarlar ile kurup bıraktığınızda dışarıdan gelebilecek tehditler için yeterli hazırlığınız yok demektir. Bu konumuzda 12 basit adımda panel ve sitelerinizin güvenlik puanını nasıl arttırabileceğinizi basit bir dille aktarmaya çalışacağım.
1- Whm Cpanel Güncellemeleri
Cpanel kurulu sunucular için belli belirsiz aralıklar ile panel güncellemeleri hazırlanır. Panele yeni eklenen bir yetenek, panel üzerinde ortaya çıkan bir güvenlik açığı ya da bir bug güncelleme gerektirir. Eğer sunucunuz üzerinde panel güncelleştirmelerini otomatik al seçeneği aktif ise farklı bir şey yapmanıza gerek yoktur fakat bu seçeneği kapalı tutuyor iseniz aşağıdaki komutu SSH üzerinden çalıştırarak panel güncelleştirmelerini tek komut ile yükleyebilirsiniz. Belki ilgisiz olabilir ama bir örnek ile açıklamak gerekir ise evinize bir çelik kapı aldığınızı düşünün, aldığınız firma diyor ki “bu kapının daha iyisini ürettik ayrıca daha güvenli, evinize kadar da getirdik, takmak ister misiniz, üstelik bunun için ücrette almıyoruz.” Yine de istemeyen olur mu? Güvenli bir sunucu için lütfen güncellemeleri ihmal etmeyiniz. Bu madde ile ilgili bir diğer tavsiyem ise http://cpanel.net/category/security/ adresini günlük olarak takip etmenizdir.
SSH üzerinden çalıştırabileceğiniz komut : /scripts/upcp –force
Aynı işlemi WHM üzerinden yapmak isterseniz aşağıdaki bölümü kullanabilirsiniz.WHM cPanel güncellemelerini sistemin otomatik olarak algılaması ve yüklemesi için aşağıdaki bölümü kullanabilirsiniz. Önerilen ayarlar aşağıdaki gibidir.
2- Sistem Güncellemeleri Paneliniz ne kadar güncel olursa olsun eğer işletim sisteminiz güncel değilse güvenlikten bahsedilemez. Bunu Windows’ta yer alan Windows Update’e benzetebilirsiniz. Linux sistemi güncellemek için SSH ile sunucunuza erişmeli ve aşağıdaki komutu çalıştırmalısınız. Bu işlemi yapmaktan çekinmeyiniz çünkü zaten cpanel güncellenmemesi gereken paketleri kendi içinde exclude etmekte. SSH üzerinden çalıştırabileceğiniz komut : yum update Size güncel bir kernel olup olmadığını yazacak ve sonrasında Yes ya da No şeklinde onay sunacaktır. Y harfine basarak kurmasını onaylayabilirsiniz. Aşağıda örnek güncellemeyi görebilirsiniz. 3- Şifre Güvenliği Her ne kadar basit bir başlık gibi görünse de basit şifreler yüzünden her gün onlarca olumsuz vaka ile karşılaşıyoruz. Bu nedenle aslında birinci öncelik verilmesi gereken konu olarak görüyorum. Tavsiyem sunucu erişim şifrelerinizin en az 8 karakterli, içinde rakam, büyük harf, küçük harf ve mümkün ise özel karakterlerden oluşmasıdır. Eğer sunucunuzda birazdan ele alacağımız cPHulk gibi bir Brute-Force engelleme yazılımı yok ise basit şifreler kolaylıkla deneme yanılma yolu ile elde edilebilir. Örnek vermek gerekir ise Comp şifresi 0.00001 saniye de kırılabilirken Compl3xity_< şifresi için 4.000.000 yıl gibi bir süre ön görülmektedir. Bunu https://howsecureismypassword.net adresinden test edebilir ve kullanacağınız şifreler için bilgi sahibi olabilirsiniz. Bu sunucu yöneticileri için önerim idi peki cPanel sunucunuzda bayilerinizin ya da kullanıcıların oluşturacağı sitelerde kolay şifre koymalarının önüne nasıl geçebiliriz? cPanel bunu da düşünmüş ve Password Strength Configuration isimli bir bölüm kullanmışlar. Aşağıda görebilirsiniz, önerilen değer 60 oranıdır fakat unutulmamalıdır ki eğer kullanıcılarınıza sunucu üzerinde Shell erişimi veriyor iseniz şifrelerini password ile kolay bir şifre olacak şekilde değiştirebilirler Bu adımı geçtikten sonra bir diğer önerim kullanıcılarınızı şifre değiştirmeye zorlamaktır. Bunu da yine yukarıdaki resimde görebileceğiniz Force Password Change bölümünden yapabilirsiniz. Tüm kullanıcıları ya da şifresini değiştirmesini istediğiniz kullanıcıları seçebilirsiniz, sonrasında da bu kullanıcılar mevcut şifreleri ile giriş yaptıktan sonra ekranda şifre değiştirmeleri gerektiğini belirten bir bölüm ile karşılaşırlar ve yukarıda belirttiğiniz karmaşıklık oranında bir şifre girene kadar içeri giremezler. 4- SSH Güvenliği SSH sunucumuzun erişim kapısıdır standartta 22 nolu portu kullanır, eğer sunucunuzda SSH’ı bu porttan kullanmaya devam ediyor iseniz muhtemelen loglarınız da sürekli SSH giriş denemeleri görüyor olmalısınız ve bunun yanı sıra dünya üzerinde ağlar tarayan botnetlerin de gözü üzerinizde olacaktır. Sunucu güvenliği için kesinlikle önerilen port değişikliği işlemini nasıl yapabileceğimize hemen bakalım. Sunucumuza SSH ile giriş yapıyor ve aşağıdaki dosyayı açıyoruz. Fakat belirtmek isterim ki eğer sunucunuzda bir Firewall kullanıyor iseniz (iptables ya da CSF gibi) bu işlemi yapmadan önce yeni tanımlayacağınız porta Firewall dan izin vermelisiniz, aksi taktirde bindiğiniz dalı kesmek deyimini yerinde yaşamış olursunuz. Komut : nano /etc/ssh/sshd_config Açılan editörde #Port 22 yazan bölümü siliyor ve başında # işareti olmadan Port 999 yazıp kaydediyoruz. Burada 999 kısmına dilediğiniz port yazabilirsiniz, önemli olan kullanılmıyor olmasıdır. Eğer değişikliği yaptı iseniz aktif olması için SSH servisini yeniden başlatmanız gerekecektir. Aşağıdaki komut ile yapabilirsiniz. Komut : service sshd restart
5- Cpanel ve Whm Erişim Güvenliği Standart kurulumda login ekranı üzerinden gönderilen bilgiler şifrelenmemiş olarak sunucuya iletilir, bu da eğer ağınızda networkü dinleyen birisi var ise girdiğiniz şifreleri öğrenebileceği anlamına gelmektedir. Bunun için login ekranının her zaman SSL üzerinden çalışmasını sağlamalıyız, bu durumda HTTPS olmadan erişenler otomatik olarak HTTPS üzerinden çalışan bölüme yönlendirilecektir. Bu bölüm Tweak Settings kısmında Redirection bölümü altında yer almaktadır. Önerilen hali için aşağıdaki resmi inceleyebilirsiniz. 6- Derleyicilerin Kapatılması Sunucuya zarar verme amacı ile kullanılan bir çok exploit , çalışabilmek için C ve C++ gibi derleyicilere ihtiyaç duyar , dolayısı ile son kullanıcıda bu iznin olması bir bombanın üzerinde çalışan sunucu gibidir. Bu derleyicileri devre dışı bırakmak için Compiler Access bölümüne erişmeli ve Disable Compilers butonuna tıklamalısınız. Bu durumda derleyiciler sadece cpanel kullanıcısı için derleme işlemi yapabilecektir. Farklı bir kullanıcıya da bu hakkı vermek istiyor iseniz Allow specific users to use the compilers bağlantısına tıklayıp kullanıcı seçebilirsiniz. 7- Cphulk Brute Force KorumasıCphulk, sunucunuza brute force atak yapan IP adreslerini belirlediğiniz periyotlar için bloklamaktadır. cPanelde kurulu olarak gelmektedir. Sol menüden CpHulk Brute Force Protection’ı seçip Enable butonuna basmalısınız. Configuration bölümünde engellenen IP’ yi kaç dakika engelli tutacağı, bir IP’ den kaç adet geçersiz giriş denemesi gelebileceği, sunucu yöneticisine bildirim gönderip göndermeyeceği gibi seçenekleri değiştirebilirsiniz. Yapılan erişim denemelerini Login/Brute History Report bölümünden görebilir. Size ait izinli ya da direkt olarak engellemek istediğiniz IP adreslerini White/Black List Management bölümüne tanımlayabilirsiniz. 8- Host Erişim Kontrolü Bu özelliği kullanarak sunucunuzdaki servislere erişimi IP bazında yönetebilirsiniz, yani ben istiyorum ki WHM panelime sadece ofisten erişilebilsin ama cPanel’ e her yerden girilebilsin ve SSH erişimini de sadece evden yapabileyim, bunun dışında kimse SSH’ a erişemesin, örnekleri ihtiyacınıza göre geliştirebilirsiniz, aşağıda örnek bir ekran görüntüsü var. IP bölümlerini kendinize uygun düzenlemelisiniz, örnek amaçlı IP yazılmıştır. Bu özellik üzerinden kullanabileceğiniz servisler, cPaneld, Ftpd, Imap, POP3, SMTP, SSHd, cpdavd, webmaild, whostmgrd şeklindedir.
9- EasyApache ile Apache ve Php Güncelleme Nasıl ki paneli ve sistemimizi güncel tutuyorsak Apache, PHP ve bunlara bağlı modülleri de güncel tutmalı ve kullanılabilir yeni bir modül geldi ise bu bölümden sisteme dahil etmeliyiz. Bu bölüm; Apache versiyonu güncellemenizi, Mod_security ,suhosin , symlink race condition protection gibi modülleri ve PHP versiyonunuzu güncellemek için kullanışlı bir bölümdür. Eğer cPanel kullanmıyor olsaydınız bunların hepsini manuel kurmak ya da güncellemek zorunda kalacaktınız. Tabi esasen bununla da kalmıyor, PHP güvenliği ayrı bir deniz gibi, disable_functions lar , open_basedir ler vs ile apayrı bir makale konusu. 10- Shell Fork Bomb Koruması Mutlaka aktif durumda olması gereken bir özelliktir. Ön tanımlı kurulumda pasif durumda gelmektedir. Bu özellik sunucuyu potansiyel saldırılar ile çökmesinden, kullanıcıların sistem kaynaklarını sunucuya zarar verecek şekilde korumasından dolayı önemlidir. Belirli limit değerleri ile gelmektedir ancak /etc/profile dosyası aracılığı ile manuel olarak limit değişikliği yapılabilmektedir. Örneğin bir kullanıcının çalıştırabileceği maksimum süreç sayısını bu özelliği açarak öntanımlı 35 ile sınırlayabilir farklı bir değer için yukarıda belirttiğimiz dosyayı düzenleyerek değiştirebilirsiniz. 11- Background Process Killer Sunucumuzda IRC botlarının , bitchx gibi IRC clientlarının çalışmasını genelde istemeyiz. Bu özellik bunların sunucuda çalıştığını gördüğü anda süreçlerini sonlandırabilir ve sunucu yöneticisine mail atabilir. Hepsini seçip kaydetmeniz önerilmektedir. Aşağıdaki resimde örneğini görebilirsiniz. Trusted Users bölümüne, bunları çalıştırmasına izin vereceğiniz kullanıcı adlarını yazabilirsiniz. 12- Csf (ConfigServer Secure Firewall)CSF , cPanel kurulu sunucuların bence olmazsa olmazlarından biri, çoğumuz iptables kurallarını ezbere yazamayız, işte tam burada CSF imdadımıza yetişir ve bence bu yazının olmazsa olmazlarından biri konumundadır hatta kurulu değil ise kurmak için yazının sonuna kadar bile beklemeyin ve hemen kurun derim. Önce yeteneklerinden sonra kurulum ve kullanımından bahsedelim. CSF iptablesı görsel olarak yönetebilir, sunucu erişim durumlarında bilgilendirme gönderebilir, bir kullanıcı sıra dışı bir yoğunluk yaratıyorsa bilgilendirir, synfloof ve port flood gibi saldırılardan koruyabilir, Dshield ve spamhaus gibi IP listelerinde yer alan kötü niyetli IP bloklarını otomatik olarak alıp bloklayabilir, bir IDS gibi çalışabilir hatta en güzeli ülke bazlı yani sadece ülke kodu girerek IP bloklarını engelleyebilirsiniz. Diğer yeteneklerini görmek için http://configserver.com/cp/csf.html adresinden faydalanabilirsiniz. Kurulumu ise çok basit ve aşağıdaki komutları SSH üzerinden sıra ile çalıştırarak tamamlanabilir. wget http://www.configserver.com/free/csf.tgztar -xzf csf.tgzcd csfsh install.sh Şimdi WHM panelinize giriş yapıp Manage Plugins kısmından erişebilirsiniz. Kurulumdan sonra pasif durumda gelecektir. Aşağıdaki bölümden Firewall Configuration bölümüne girdiğinizde “Testing” yazan yerin yanındaki 1 i 0 yapıp en alttan kaydettiğinizde artık devrede olacaktır. CSF’ in en sevdiğim özelliklerinden birisi de sadece güvenlik duvarı anlamında değil, cPanel tarafındaki tüm güvenlik seviyesini arttırmanıza yardımcı olacak bir araç daha içermesidir. Yukarıda göreceğiniz Check Server Security butonuna tıkladığınızda, size onlarca uyarı çıkaracak ve belirtilen güvenlik uyarılarını giderdiğinizde alt kısımda sunucunuz için bir güvenlik puanı belirtecektir, işin en eğlenceli yanı bu olsa gerek.
Temel olarak bu adımları uygulamanız sunucu ve sitelerinizin sağlığı için faydalı olacaktır fakat unutulmamalıdır ki makale giriş ve orta seviyesi kullanıcılar içindir. Umarım faydalı olmuştur ve ilerleyen makalelerde mod_security nin derinlerine, cloudlinux’un kernel seviyesinde getirdiği avantajlara , CSF’ nin ince ayarlarına vs değinmek üzere güvenli günler dileriz.