Whm/Cpanel kurulumdan sonra yapılacak ayarları yapıp sunucumuzu ve Whm/Cpanel’i en iyi şekilde yapılandıralım.
Kurulum işleminden sonra browser’ımıza http://IP:2086 yazarak Whm/Cpanel’e giriş yapıyoruz.
Kullanıcı adı ve şifreniz linux sunucunuzun root bilgileriyle aynıdır.
Kuruluma yeni başladığımız için öncelikle sözleşme gelecektir burda I agree/Go to Step 2 tıklayarak sözleşmeyi kabul edip, 2. adıma geçelim.
Server Contact Email Address: server@domainadi.com (Sisteminizde oluşacak hataları ve genel bilgileri bu mail adresine gönderecektir.)
Server Contact SMS Address: SMS ile bilgi almanız içindir. Bunu boş bırakıyoruz.
Server Contact AIM Name: AIM bilgileriniz. Bunu boş bırakıyoruz.
Server Contact ICQ Number: ICQ numaranız. Bunuda boş bırakıyoruz.
This Server’s Hostname: Server’ınızın hostname adıdır. Bu alana NS adresinizden birini yazınız.
Primary Resolver: DNS server’ınızın IP’sidir. Hizmet aldığınız Datacenter’ın IP’sidir.
Secondary Resolver: DNS server’ınızın 2.IP’sidir. Hizmet aldığınız Datacenter’ın IP’sidir.
Third Resolver: DNS server’ınızın 3.IP’sidir. Hizmet aldığınız Datacenter’ın IP’sidir.
Main Network/Ethernet Device: Ethernet kartınızı seçmeniz gerekmektedir. Default değer doğrudur.
Save & Go to Step 3′e tıklayarak yeni adıma geçiyoruz.
Add New IP Address(es): Yeni IP adresi eklemek için kullanılır. Altta ekli olan IP leri görebilirsiniz.
Go to Step 4′e tıklayıp 4. adıma geçiyoruz.
Nameserver Configuration: Server için DNS yazılımını seçmemize yarar. Bind DNS başarılıdır ama çok çıkarttığı için tercih etmeyebilirsiniz. Nsd DNS şu anda en sağlıklı iyi çalışan sistemdir. Bunu tercih edebilirsiniz.
Choose which nameservers domains on this server will use: Domain’i yönlendirmek için kullanılacak NS’leri yazınız.
Add “A Entries” for all Nameservers: NS’lerimizin sağlıklı çalışması için bunu aktif edin. NS’lerimize karışık gelen A kayıtlarını oluşturacaktır.
Add A Entries for Nameservers & Hostname: Yazmış olduğunuz NS’lere karşılık gelen IP adreslerinizi giriniz.
Add “A Entries” for Hostname: Aktif ediniz. Hostname’in karşılığına gelen A kaydını oluşturacaktır.
Save & Go to Step 5′e tıklayarka 5. adıma geçiyoruz.
FTP Configuration: FTP server’ımızı seçmemiz gerekiyor. ProFTPD seçmeniz daha iyi olacaktır.
Mail Configuration: Burda Mail server’ımızı seçmemiz lazım. Courier’i seçebilirsiniz.
Convert Mailbox Format: Bunu aktif ediniz.
Configure cPHulk: Bunu aktif ediniz. Brute force ataklarına karşı sunucunuza güvenlik sağlayacaktır.
Extend account lockout time upon additional authentication failures: Bunu aktif ediniz.
Save & Go to 6 Step tıklayarak 6. adıma geçiyoruz.
Use file system quotas. Seçilip finish setup wizard’a tıklayarak kurulumu tamamlıyoruz.
Şimdi ince ayarlarımı yapalım.
İlk yapmamız gereken şey, Tweak Settings bölümüne giderek BoxTrapper Spam Trap bulmak ve pasif etmektir.
BoxTrapper Spam Trap server’ımızın IP adresini SPAM’a düşürebileceği için kapatıyoruz. Kaydet deyip devam ediyoruz.
PHP Configuration Editor’e girip Switch to advanced mode’e tıklıyoruz ve “disable_functions” kısmını bularak aşağıdaki fonksiyonları aynen yapıştırıyoruz:
shell_exec,exec,system,glob,cat,dl,openbasedir,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,allow_url_fopen,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,name
Not: Üstteki komutları yazarken kesinlikle boşluk bırakmayın. Tek satır olarak aralarında boşluk olmadan yana yana yazılmalıdır.
Sonrasında ise, “enable_dl” ayarını bularak “Off” konumuna getirip ayarlarımızı kaydediyoruz ve artık güvenli bir PHP’imiz var.
FTP Server Configration kısmına giriyoruz ve “Allow Anonymous Logins”, “No” olarak seçip kaydediyoruz. Böylece artık FTP’miz de güvenli. FTP server’a kullanıcı adı ve şifre olmadan herkese açık bağlantı yapacaksanız, ilk seçeneği “Yes” olarak seçmelisiniz.
Manage Plugins bölümüne giderek. “pro”, “clamavconnector” pluginleri işaretleyerek alttaki Kaydet butonuna tıklıyoruz ve bu eklentiler sunucumuza kuruluyor. Bu işlem uzun sürebilir ancak bu eklentilerin yüklenmesi önemli.
Sıra geldi Apache derleme işlemine. Bu kısım daha çok hosting firmalarının ihtiyacı olacak kısımdır.
Uyarı: Bu işlem kesinlikle yarıda kalmamalı. Yarıda kalması durumunda sunucunuza format atılması ve tekrar kurulması gerekebilir. Eğer tarayıcı pencereniz kapansa veya internetiniz kesilirse bile derleme işlemi devam edecektir ve derleme işleminin bittiğinden emin olmadan sunucunuza kesinlikle reset atmayın.
EasyApache (Apache Update) kısmına giriyoruz. “Start customizing based on profile” tıklıyoruz.Apache 2.4.7 seçip next step diyoruz. PHP 5 seçiyoruz. Next step tıklıyoruz ve en alttaki, yani en günel seçeneği seçiyoruz. Şu anda en güncel PHP versiyonu 5.4.24 seçiyoruz. Next step tıklıyoruz,Frontpage, Mod SuPHP, Ioncube Loader for PHP, Mod Security bunların dışında seçili olan varsa işaretlerini kaldıralım. Hemen altta “Exhaustive Options List” tıklıyoruz. Apache Build-In Modules kısmından sadece şunların seçili olduğundan emin oluyoruz: Asis, AuthnDefault, Env, Expires,Fileprotect, Frontpage, Headers, imagemap, Mod SuPHP, Proxy, UniqueID, Version. Daha sonraOther Modules kısmında sadece şunların seçili olduğundan emin olalım: “IonCube Loader for PHP”, “Mod Security”. Şimdi ise, PHP ayarlarına geliyoruz ve sadece aşağıdakilerin seçili olduğundan emin olalım: “Bcmath, CGI, Calendar, Curl, CurlSSL, FTP, GD, Gettext, Iconv, Imap, Mbregex,Mbstring, Mcrypt, Mysql, Mysql of the system, OpenSSL,PDO, PDO Mysql, POSIX, Path Info Check, Pear, SQLite3, Sockets, TTF (Free Type), Zlib. Şimdi bunların seçili olduğundan emin olduktan sonra, Prefrences ve diğer kısımlara dokunmadan en alttaki “Save and Build” butonuna tıklıyoruz ve işlem başlıyor. Sonrasında sorduğu sorulara Yes ve I Understand seçip işleme başlıyoruz.
Derleme bittiğinde PHP and SuExec Configuration hakkında sorular soracak. Biz PHP4 kurmadığımız için, default olarak PHP 5 seçiyoruz. Burada PHP5′i CGI olarak seçiyoruz. ApacheSuExec ON yapıyoruz ve Do a dryrun kutucuğunu işaretlemeden Save New Configuration seçip derleme işlemini bitiriyoruz. Kapata tıklayıp işlemi sonlandırıyoruz.
Apache-PHP ile ilgili son ayar olarak Apache Configuration’a giriyoruz ve “Memory Usage Restrictions” kısmını tıklayıp Proceed diyoruz. Artık arızalı scriptlerin sunucumuzu şişirmesi, kilitlemesi gibi şeyler de söz konusu olmayacak.
Bu ayarları tamamladıktan sonra, cPHulk Brute Force Protection kısmına girip enable ediyoruz. PHP open_basedir Tweak bölümüne girip Enable php open_basedir protection seçip save ediyoruz. Apache mod_userdir Tweak bölümüne gelip Enable mod_userdir protection seçip save ediyoruz. SMTP Tweak kısmında ise Enable ediyoruz. Shell Fork Bomb Protection kısmında iseEnable Protection seçiyoruz. Compiler Access kısmında ise “Disable Compilers” tıklıyoruz. Artık, son derece güvenli bir sunucuya sahibiz.
WHM ayarlarımızı tamamladık. Şimdi sunucumuza root olarak SSH ile giriş yapıyoruz ve aşağıdaki komutu çalıştırıyoruz.
$ nano /etc/ssh/sshd_config
Komutunu vererek sshd_config dosyasını editliyoruz ve “Protocol 2,1″ ayarının başına # koyarak etkisizleştiriyoruz, “Protocol 2″ ayarının başındaki # işaretini ise kaldırıyoruz. Dilerseniz, Port 22 kısmından portu da değiştirebilirsiniz, SSH bağlanmak isteyen yetkisiz kişileri engelleyecektir, fakat önce, değiştireceğiniz portun kullanılmadığından ve herhangi bir firewall kullanıyorsanız firewall’da bu portun açık olduğundan emin olmalısınız. Bu dosyayı kaydedip çıkıyoruz ve “service sshd restart” yazarak SSH server’ı baştan başlatıyoruz, böylece yaptığımız ayarlar geçerli oluyor.
Şimdi, tmpfs bölümünü güvenli hale getirmek için
$ nano /etc/fstab
dosyasını editliyoruz. Bu dosyayı düzenlerken çok dikkatli olmalısınız, yapacağınız bir hata sunucunuza format atılmasını gerektirecektir. Söylediğimin dışında kesinlikle başka bir işlem yapmayınız. buradan tmpfs bölümünü buluyoruz ve aynı satırdaki defaults yazısının yanına ,noexec,nosuid ekliyoruz. Yani o satır şu şekilde görünmeli:
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0
Dosyayı kaydetmeden önce 3 kere kontrol ediyoruz, özellikle bu eklemeyi yapınca txt editörün herhangi bir kısmı alt satıra almadığından emin oluyoruz, alt satıra almışsa alta alınan kısmı tekrar yukarı çıkarıyoruz ve dosyamızı kaydedip çıkıyoruz. Bu ayarın da etkin olması için;
$ mount -o remount,noexec,nosuid /dev/shm komutunu çalıştırıyoruz.
Bunu da hallettikten sonra, sunucuda gerek duyulmayan, gereksiz yere sunucuyu yoracak bütün fonksiyonları kapatıyoruz. Sırasıyla, hata verirse önemsemeden(failed yazabilir, başka hata verebilir, önemli değil) aşağıdaki komutları çalıştırıyoruz:
service cups stop
chkconfig cups off
service xfs stop
chkconfig xfs off
service atd stop
chkconfig atd off
service nfslock stop
chkconfig nfslock off
service canna stop
chkconfig canna off
service avahi-daemon stop
chkconfig avahi-daemon off
service avahi-dnsconfd stop
chkconfig avahi-dnsconfd off
service gpm stop
chkconfig gpm off
service saslauthd stop
chkconfig saslauthd off
service webmin stop
chkconfig webmin off
service sbadm stop
chkconfig sbadm off
service FreeWnn stop
chkconfig FreeWnn off
service cups-config-daemon stop
chkconfig cups-config-daemon off
service iiim stop
chkconfig iiim off
service mDNSResponder stop
chkconfig mDNSResponder off
service nifd stop
chkconfig nifd off
service ossec stop
chkconfig ossec off
service hidd stop
chkconfig hidd off
service pcscd stop
chkconfig pcscd off
service rpcidmapd stop
chkconfig rpcidmapd off
service bluetooth stop
chkconfig bluetooth off
service anacron stop
chkconfig anacron off
Bunların hepsini sırasıyla çalıştırdıktan sonra, gereksiz bütün servisler kapanmış oluyor.
Bu kadar çok ayar yaptık, şimdi cPanel’in bu ayarlar karşısında kendini kaybetmesini önleyelim. İlk olarak;
/scripts/upcp
Komutunu çalıştırarak cPanel update yapıyoruz. Bu işlemin bitmesini bekliyoruz, bittiğinden emin olmadan daha sonraki adımlara geçmiyoruz. Bittiğinden emin olamıyorsanız, ne olur ne olmaz diyeek yarım saat beklemenizi öneririm. Eğer yavaş bir bağlantı varsa, 2 saat bekleyin ki bir sorun çıkmasın. Bu işlem bittikten sonra da,
/scripts/makecpphp
Komutunu çalıştırarak cpanelin kendine çeki düzen vermesini sağlıyoruz. Bu işlem de bittikten sonra,
service cpanel restart
Komutuyla cPanel’imizi baştan başlatıyoruz. Artık Her anlamda taş gibi çalışan bir sistemimiz var. Son olarak da, apache derlemesi apache’nin aklını bulandırabileceğinden,
/scripts/rebuildhttpdconf
Komutuyla apache konfigrasyonumuzu tekrar düzenletiyoruz ve
service httpd restart
Komutuyla apache’mizin sağlam konfigrasyonla çalışmasını sağlıyoruz ve sonunda bitirdik, artık son derece güvenli bir Whm/cPanel sunucunuz var.