A’dan Z’ye cPanel Sunucu Kurulum ve Ayarlaması

Linux | | 2 Şubat 2009

cPanel

Merhabalar. Uzun zamandır buraya yazamıyorum, bu yüzden sanırım sizlere bir özür borçluyum. Bu aradan sonra, hep PHP hep PHP nereye kadar diyerek, farklı bir konudan bahsetmek istedim sizlere.

cPanel bir hostingimiz var. Sitemiz zamanla o kadar büyüdü ki, artık hosting, VPS hak getire, mecbur sunucu almamız gerekiyor. Fakat, sunucu alacağımız yer, çoğu yer gibi sadece kurulumu yapıp veriyor. Birdünya ayar var, bunları ne yapacağımızı bilmiyoruz, cPanel sunucumuz oldu fakat güvenli mi, sağlam mı, ayarları yeterli mi, en ufak bir fikriniz yok.

Bu dökümanda, bir web hosting satıcısı ver server admini olarak, en genel ayarları nasıl yapmanız gerektiğini anlatacağım.

Önemli: Bu işlemler sırasında sunucunuza zarar verecek olursanız, kesinlikle mesuliyet kabul etmiyoruz. Ayrıca, işlemleri aynı anda değil her birini tek tek sırayla yapmalısınız.

İlk kontrol etmemiz gereken şey, sunucumuzun hostname ‘idir. Bunun önemi çok büyüktür, sağlıklı bir sunucu olması için bunu düzgünce ayarlamak şarttır. Networking Setup -> Hostname kısmına girerek, hostname ‘i değiştiriyoruz. Burada dikkat edilmesi gereken şey şu. Eğer hostname server.siteadi.com olacaksa, siteadi.com domain kontrol panelinize girip nameserver tanımlaması yapmalı ve sunucu ip’sine server olarak atama yapmalısınız. Bundan sonra, hostname değiştirebilirsiniz. cPanel sizi “hostname için A kaydı bulunmuyor” şeklinde uyarınca da, eklemesi için gerekli butonu tıklayın, artık bu aşamayı geçebiliriz.

İkinci olarak ise, nameserver A kayıtları eklenmelidir. Server Configration -> Basic cPanel/WHM Setup bölümüne girerek nameserver ayarını bulalım ve “Add an A entry for this nameserver” seçeneklerini tıklayalım, bunu bütün nameserverlarımız için yapmamız gerekiyor.

Bu iki ayarı düzgünce yaptıktan sonra, sunucumuz fonksiyonel hale gelecektir. Bu noktadan sonrasında, güvenlik vb.. ayarları yaparak sunucumuzu sorunsuz hale getireceğiz.

İlk yapacağımız şey, Tweak Settings bölümüne girerek Boxtrapper bulmak ve etkisizleştirmektir. Boxtrapper, sorunlu bir sistem ve sunucumuzun IP adresinin SPAM karalistelerine alınmasına sebep olabiliyor. Bu iş için bize SpamAssassin yeterli.

Bunu kaldırıp ayarlarımızı kaydettikten sonra, Service Configration kısmından Exim Configration Editor kısmına giriyoruz ve alt taraftan “Advanced Editor” linkine tıklıyoruz. Bu açılan sayfada, ilk kısma(ilk textarea’ya) tırnak işaretleri olmadan “log_selector = +arguments +subject” ibaresini ekleyip kaydediyoruz, cPanel de Exim’i baştan başlatıp ayarlarımızı kaydediyor. Bu işlem, Exim’in daha sorunsuz ve daha düzgün şekilde log tutmasına yarıyor.

Sırada, PHP ayarlarımız var. PHP, hatalı ayarlarla çok sorun çıkaracak bize, güvenlik denen bir olay olmadığı için. Ola ki birine host açarsanız shell scriptler ile çok rahat bir şekilde sunucunuzu ele geçirebilirler. Service Configration kısmından PHP Configration Editor’e giriyoruz ve üst taraftan “Switch to advanced mode” seçeneğini seçiyoruz. Sonrasında ise, “disable_functions” kısmını bularak tırnaklar olmadan aynen şunu 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"

Sonrasında ise, “enable_dl” ayarını bularak “Off” konumuna getirip ayarlarımızı kaydediyoruz. Evet, artık güvenli bir PHP’miz var.

Şimdi FTP’mizi güvenli hale getirelim. Yine Service Configration kısmından FTP Server Configration kısmına giriyoruz ve “Allow Anonymous Logins”, “Allow Anonymous Uploads”, “Allow Logins With Root Password” kısımlarını “No” olarak seçip kaydediyoruz. Böylece, FTP’miz de artık taş gibi güvenli. Tabi ki, isimsiz FTP server çalıştıracaksanız, yani FTP server’a kullanıcı adı ve şifre olmadan halka açık bağlantı yapacaksanız, ilk seçeneği “Yes” olarak seçmelisiniz.

Şimdi ise gelelim Nameserver’ımıza. Varsayılan nameserver Bind, sorunlu bir sistem. Çok sıkıntı yaşatıyor. “Nameserver selection” bölümüne gelerek, Bind’den çok daha stabil ve hızlı olan “NSD” ‘yi seçiyoruz ve kaydediyoruz, bu işlem de tamamlanıyor.

Şimdi gelelim, birtakım cPanel add-onlarına. cPanel kısmından “Manage Plugins” bölümüne giriyoruz. İlk olarak, http://pro.cpanel.net/activate adresine gidiyoruz ve sunucumuzun IP adresini yazarak Pro eklentisini aktifleştiriyoruz. Daha sonra, Manage Plugins bölümünden “pro”, “clamavconnector”, “modbandwidth”, “modsecurity” seçerek alttaki Save butonuna tıklıyoruz ve bu eklentiler sunucumuza kuruluyor, birazcık uzun sürebilir ama önemli eklentiler bu şekilde geliyor, ImageMagick dahil.

Bu aşamayı da tamamladık, artık sunucumuzun derlemesini yapabiliriz. Derleme, sunucunun en önemli kısmıdır. Hangi modüller yüklenecek, hangileri yüklenmeyecek, hepsini bu şekilde belirleyeceğiz. Ben en güvenli ve en sık kullanılan ayarlara göre anlatıyorum, eğer ne yaptığınızı bilmiyorsanız, anlattıklarımdan şaşmamanızı öneririm, zira sunucunuza zarar verebilirsiniz.

Önemli: Bu derleme işlemi kesinlikle yarıda kesilmemelidir. Yarıda kesilmesi durumunda sunucunuza format atılması ve tekrar kurulması gerekebilir. Eğer tarayıcı pencereniz kapansa bile derleme işlemi arkaplanda çalışmaya devam edecektir, yeter ki derleme işleminin bittiğinden emin olmadan sunucunuza kesinlikle reboot yaptırmayın.

Software kısmından Easy Apache (Apache Update) kısmına giriyoruz. “Start customizing based on profile” tıklıyoruz. Apache 2.2 seçip next step diyoruz. PHP 5 seçiyoruz, PHP 4 seçiliyse kaldırıyoruz, seçili olmamalı. Next step tıklıyoruz ve en alttaki, yani en günel seçeneği seçiyoruz. Şu anda en günce PHP versiyonu 5.2.8, yani daha yenisi olmadığı sürece 5.2.8 seçiyoruz. Next step tıklıyoruz, Frontpage, Mod SuPHP, Ioncube Loader for PHP, Mod Bandwidth, Mod Security ve Zend Optimizer for PHP seçiyoruz, bunların dışında seçili olan varsa kaldırıyoruz. Alttan “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, Mod SuPHP, Proxy, UniqueID. Daha sonra Other Modules kısmında sadece şunların seçili olduğundan emin oluyoruz: “IonCube Loader for PHP”, “Mod Bandwidth”, “Mod Security”, “Zend Optimizer for PHP”. Şimdi ise, PHP ayarlarına geliyoruz ve sadece aşağıdakilerin seçili olduğundan emin oluyoruz: “Bcmath, CGI, Calendar, Curl, CurlSSL, Discard Path, FTP, GD, Gettext, Iconv, Imap, Magic Quotes, Mbregex, Mysql, Mysql of the system, POSIX, Path Info Check, Pear, Sockets, TTF (Free Type), Zlib. Sadece bunlarınseçili olduğundan emin olduktan sonra, Prefrences ve diğer kısımlara dokunmadan en alttaki “Save and Build” butonunu tıklıyoruz ve build başlıyor.

Build bittiğinde, cPanel bunu bize söylüyor. Bittikten sonra, Service Configuration bölümünden Apache Configration ‘a giriyoruz ve buradan “PHP and SuExec Configuration” bölümüne giriyoruz. “PHP 5 Handler” olarak suphp seçiyoruz, “PHP 4 Handler” none olarak kalıyor, “Apache suEXEC” ise On yapıyoruz ve “Do a dryrun” kutucuğunu işaretlemeden Save New Configuration diyoruz. Artık Harika bir sunucu konfigrasyonumuz var. Apache-PHP ile ilgili son ayar olarak, yine 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özkonusu olmayacak.

Bu ayarları tamamladıktan sonra, Security kısmından Security Center bölümüne giriyoruz. cPHulk Brute Force Protection, PHP open_basedir Tweak, Apache mod_userdir Tweak, SMTP Tweak ve Shell Fork Bomb Protection ayarlarını açık konuma getiriyoruz, Compilers Tweak kısmında ise “Disable Compilers” tıklıyoruz. Artık, son derece güvenli bir sunucuya sahibiz.

Nihayet WHM ayarlarımızı tamamladık. Şimdi sunucumuza root olarak SSH ile giriş yapıyoruz. İlk önce, /etc/ssh/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 /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 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 rpcidmapd stop
chkconfig rpcidmapd off
service bluetooth stop
chkconfig bluetooth off
service anacron stop
chkconfig anacron off
service gpm stop
chkconfig gpm off
service saslauthd stop
chkconfig saslauthd off
service avahi-daemon stop
chkconfig avahi-daemon off
service avahi-dnsconfd stop
chkconfig avahi-dnsconfd off
service hidd stop
chkconfig hidd off
service pcscd stop
chkconfig pcscd off
service sbadm stop
chkconfig sbadm off
service webmin stop
chkconfig webmin off
service ossec stop
chkconfig ossec 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.

İşte hepsi bu kadar, artık sapasağlam ve son derece güvenli bir cPanel sunucunuz var.

İşinize yarayabilecek birkaç ücretsiz eklenti:

Hayırlı uğurlu olsun.

Önemli: Bu işlemler sırasında sunucunuza zarar verecek olursanız, kesinlikle mesuliyet kabul etmiyoruz.

Rastgele Yazılar

Bu yazı , , , , , kelimeleriyle etiketlenmiştir. Bu yazıyı beğendiyseniz Delicious, Twitter, Facebook gibi sitelerde paylaşabilirsiniz. Yazılarımızı düzenli olarak takip etmek içinse Rss abonemiz olabilirsiniz.

A’dan Z’ye cPanel Sunucu Kurulum ve Ayarlaması yazısı için 5 yorum yapılmış...

  1. www.tusul.com diyor ki:

    A’dan Z’ye cPanel Sunucu Kurulum ve Ayarlaması…

    cPanel bir hostingimiz var. Sitemiz zamanla o kadar büyüdü ki, artık hosting, VPS hak getire, mecbur sunucu almamız gerekiyor. Fakat, sunucu alacağımız yer, çoğu yer gibi sadece kurulumu yapıp veriyor. Birdünya ayar var, bunları ne yapacağımızı bilmiyo…

  2. pligg.com diyor ki:

    A’dan Z’ye cPanel Sunucu Kurulum ve Ayarlaması | t-infection.com | tasarım oyuncakları, web teknolojileri…

    Merhabalar. Uzun zamandır buraya yazamıyorum, bu yüzden sanırım sizlere bir özür borçluyum. Bu aradan sonra, hep PHP hep PHP nereye kadar diyerek, farklı bir konudan bahsetmek istedim sizlere….

  3. tolga diyor ki:

    merhaba arkadaşım tüm bu dediklerini yaptım…ama malesef sitemde 500 Internal Server Error Hatası şeklinde hatalar aldım ve ne yapmam gerekiyor bilmiyorum :(

  4. Alican diyor ki:

    @tolga,

    suPHP olarak ayarladığınız apacheyi, dso ya çevirin.

  5. Alper diyor ki:

    tesekkurler gercekten cok faydali olmus. Emeginize saglik

Yorumunuzu Yazın