Linux

Sunucu Optimizasyonu Nedir? Sunucu Optimizasyonu Nasıl Yapılır?

sunucu linux kernel
Share

Merhabalar, Fiziksel sunucunuz veya sanal sunucunuzdan beklediğiniz performansı alamıyorsanız, aşırı sistem kaynağı tüketimi ile karşı karşıya kalıyorsanız, siteleriniz yavaş açılıyorsa sunucunuzun optimize edilmesi gerekebilir.

Makalemizde, temel anlamda sunucu optimizasyonu için neler yapmanız gerektiğine yer verilmektedir.

Sunucu Optimizasyonu nedir?

Web sunucularının performansını etkileyen en önemli husus yazılımlardır, bu yazılımların sunucu donanımı, sunucu içerisinde yayın yapacak web sitelerinin durumuna göre seçilmesi ve konfigüre edilmesi sunucu optimizasyonu kavramını tanımlar. Başarılı bir sunucu optimizasyonu ile sunucu kaynakları minimum seviyede kullanılır, sunucu performansı artar, çıkabilecek sürpriz problemlerin oranı minimuma iner.

Sunucu Optimizasyon Hizmetinde Neler Yapmaktayız?

Apache Optimizasyonu
Nginx Optimizasyonu
Php-FPM Optimizasyonu
SQL Server Optimizasyonu
Php.ini Düzenlemesi
Exec-Symlink,Perl,Cgi Açık Tespiti
Sistem ve Kullanıcı İzinlerinin Düzenlenmesi
ModSecurity Ayarları
WAF Kurulum ve Ayarları
Open_basedir Ayarları
Mod_userdir Ayarları
Mysql Remote Engelleme
SSH Port Güncelleme
Maldet Kurulum ve Ayarları
ConfigServer Exploit Scanner Kurulum ve Ayarları (60$ Lisans)
Litespeed Kurulum ve Ayarları (Lisans Gerektirir)
Cpanel Kurulum ve Ayarları (Lisans Gerektirir)
Rootkit Kontrolü
Yedekleme Yapılandırması
Sanallaştırma Desteği (Sunucu Kurulum)
Yazılımsal Firewall Kurulumu
Memcache Kurulum
Opcache Kurulum
HTTP/2 – Gzip/Brotli – Mod_Expires – HSTS** Aktivasyonu

Sunucu Optimizasyonu Nasıl Yapılır?

Bu bölümde, en fazla kullanılan cPanel / WHM kontrol paneli baz alınarak bilgi paylaşımı gerçekleştireceğiz.

HOSTNAME KONTROLÜ :

Panelden Networking Setup -> Hostname kısmına geliyoruz ve hostnamelerimizi düzenliyoruz.

Peki Nasıl Düzenliyoruz ?

Öncelikle server.siteadı.com şeklindeki yazıdaki siteadı.com ‘un domain kontrol paneline giriyoruz ve sunucumuza verilen ip adreslerini domainin nameserver ekle kısmından ekliyoruz.
Sonra WHM ‘den nameserver A kayıtlarını ekleyeceğiz. Server Configration -> Basic cPanel/WHM Setup ‘ye geliyoruz ve nameserver ayarını aratıyoruz.“Add an A entry for this NameServer” ‘a tıklayınız , bunu bütün NameServerlarınız için yapmalısınız.

Diğer Adım Güvenlik Önlemleri :

CPanel/WHM ‘ye geliyoruz Tweak Settings bölümüne girip Boxtrapper ‘ı bulup ve etkinsizleştiriyoruz.Boxtrapper, IP adresimizin SPAM olmasını sağlayabilir bundan dolayı SpamAssassin ‘i kullancağız..

Boxtrapper ‘ı kaldırıp ayarlarınızı kaydettikten sonra, Service Configration kısmından Exim Configration Editor kısmına giriyoruz ve alttaki “Advanced Editor” linkine tıklıyoruz. Bu açılan sayfada, ilk kutucuğa log_selector = +arguments +subject ‘i ekleyip kaydediyoruz,sonra cPanel’de Exim’i baştan başlatıp ayarlarınızı kaydedin. Bu sayede Exim daha performanslı çalışacaktır..

PHP Konfigürasyonu ( PHP Configuration ) :

Panelden Service Configration ‘a geliniz.PHP Configration Editor’e girip ve üstteki Switch to advanced mode seçeneğini seçiniz ve disable_functions kısmını bulup aşağıdaki kodu yapıştırınız.. ;

Kopyalamak için satır başına 2 kez tıklamanız yeterlidir.temadan dolayı biraz zorluk yaşayabilirsiniz.Ama dediğim şekilde tamamını seçebilirsiniz.

Kod:


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_curren t_user,getmyuid,pconnect,link,symlink,pcntl_exec,i ni_alter,parse_ini_file,leak,apache_child_terminat e,posix_kill,posix_setpgid,posix_setsid,posix_setu id,proc_terminate,syslog,fpassthru,allow_url_fopen ,stream_select,socket_select,socket_create,socket_ create_listen,socket_create_pair,socket_listen,soc ket_accept,socket_bind,socket_strerror,pcntl_fork, pcntl_signal,pcntl_waitpid,pcntl_wexitstatus,pcntl _wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcnt l_wstopsig,pcntl_wtermsig,openlog,apache_get_modul es,apache_get_version,apache_getenv,apache_note,ap ache_setenv,virtual,name

Bu işlem bitince ;

enable_dl ayarını bulup “Off” konumuna getirip ayarlarınızı kaydediniz.Bu sayede sunucunuza shell vb. scriptlerin sokulmasını önlersiniz..

FTP GÜVENLİĞİ :

Service Configration ‘a gelelim burdan FTP Server Configration kısmına girelim ve Allow Anonymous Logins,Allow Anonymous UploadsAllow Logins With Root Password kısımlarını NO seçip kaydediyoruz. Bu kısım güvenlik ile ilgili olan kısımdır. Fakat Anonymous (şifresiz) kullanıcılara açmak istiyorsanız YES olarak bırakınız.

NameServer Ayarları :

Varsayılan olarak Bind seçilidir büyük ihtimalle fakat ben Bind ‘i önermiyorum.. Sol panelden Nameserver selection bölümüne gelerek, Bind yerine tercih edebileceğimiz daha performanslı çalışan NSD ‘yi seçip kaydediniz.Bu kadardır

YARARLI cPANEL ADD-ON KURULUMLARI :

WHM ‘ye girip sol menüdeki cPanel bölümünden Manage Plugins bölümüne giriniz.
ve şu işlemleri yapınız ;

cPanel Pro Activation – cPanel Inc. adresine girip sunucunuzun ip adresini yazıp Pro Eklentisini aktifleştiriniz. Sonra , Manage Plugins bölümünden pro, clamavconnector, modbandwidth, modsecurity ‘i seçerek alttaki Save butonuna tıklayınız.ImageMagick, GD Library vb. modüller bu sayede kurulacaktır.Bu işlem biraz sürebilir fakat bekleyiniz…

WHM/cPANEL APACHE DERLEME :

Merhaba ,
Şimdi de cPanel derlemesini göstereceğim fakat bu konuda fazla bilginiz yoksa lütfen yazdıklarımı harfiyen uygulayınız…
Gelelim derleme işlemlerine ;

WHM ‘ye giriyoruz.
Software kısmından Easy Apache (Apache Update) kısmına geliyorsunuz.
Start customizing based on profile linkine tıklayıp Apache 2.2 seçip next step ‘e basınız
Sonra PHP 5 seçip PHP 4 seçiliyse kaldıralım onu ve Next step deyip devam edelim
PHP Seçeneklerinden en alttaki seçeneği seçiniz.Bu seçenek en güncel olanıdır.Şu an en son 5.2.17 sanırım. Next step deyiniz.
Frontpage , Ioncube Loader for PHP,Mod SuPHP, Mod Bandwidth, Mod Security ve Zend Optimizer for PHP seçiniz.Kendiliğinden seçili olanları ise mutlaka kaldırınız..
Alt tarafa geçtiğimizde ise Exhaustive Options List ‘e tıklayınız. Apache Build-In Modules kısmından sadece aşağıdakiler seçili olmalıdır:

Kod:

Asis, AuthnDefault, Env, Expires, Fileprotect, Frontpage, Headers, Mod SuPHP, Proxy, UniqueID

Sonra Other Modules kısmından aşağıda verdiklerimi seçip diğerlerini kaldırınız. :“IonCube Loader for PHP”, “Mod Bandwidth”, “Mod Security”, “Zend Optimizer for PHP” Sırada PHP Ayarları var…PHP Ayarları ‘na Geliyoruz ve sadece yazıklarımı seçili hale getiriyoruz:


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

 

Prefrences ve diğer kısımlara dokunmayınız.
Save and Build ‘a basıp derlemeyi başlatıyoruz.

ARA NOT :

Derlemi işlemi bitmeden sunucunuza restart atmayın.Eğer PC ‘niz veya tarayıcınız kapanırsa dert etmeyin sunucuda hala derleme işlemi devam ediyordur.
Derleme işlemi bittiğinde size cPanel ekranında bilgi verilecektir.

Derleme bittikten sonra ise ;

Service Configuration bölümünden Apache Configration ‘a giriniz ve buradan PHP and SuExec Configuration bölümüne geçiniz.
PHP 5 Handler olarak suphp seçiyoruz, PHP 4 Handler kullanmadığımızdan none olarak kalsın.Apache suEXEC ise On yapınız ve Do a dryrun kutucuğunu işaretleMEDENSave New Configuration diyiniz.

EN SON AYARIMIZA GELDİK…

Apache Configuration’a giriniz ve Memory Usage Restrictions ‘a tıklayıp Proceed deyiniz.
Bu sayede sunucunun boş yere kasılmasını bir nebze olsa önlemiş oluyoruz.

Şimdi İse Güvenlik konusunda ek işlemlerimiz var ;

Sol menüdeki Security kısmından Security Center bölümüne giririniz.
cPHulk Brute Force Protection, PHP open_basedir Tweak, Apache mod_userdir Tweak, SMTP Tweak ve Shell Fork Bomb Protection
ayarlarını açık (ON) konuma getiriniz.
Compilers Tweak kısmında ise Disable Compilers ‘a tıklayınız.

SSH GÜVENLİĞİ ;

Sunucumuza ssh ile giriş yapıyoruz ve ekrana aşağıdaki komutu giriyoruz.(Bu komut ile sshd_config dosyasını editleyeceğiz.Bundan dolayı Pico ‘ya ihtiyacımız vardır.)

Kod:
pico /etc/ssh/sshd_config

Protocol 2,1 ayarının başına koyarak pasif hale getiriniz.
Protocol 2 ayarının başındaki # işaretini ise kaldırınız.
Bu dosyayı kaydedip çıkınız , sonra

Kod:
service sshd restart

komutuyla SSH Server ’a reset atıyoruz.Evet an itibariyle yaptığımız ayarlar geçerlilik kazanmıştır.

tmpfs Güvenliği ;

LÜTFEN İŞLEM YAPMADAN ÖNCE AŞAĞIDAKİ DOSYAYI KOPYALAYINIZ ; (isteğe bağlı ama önerilir.)

Kod:
/etc/fstab

tmpfs bölümünü güvenli hale getirebilmek için aşağıdaki komutu ekrana giriniz ;

Kod:
pico /etc/fstab

bu komutla dosyayı düzenleyeceğiz.

ARA NOT :

Bu dosya üzerinde yapılan yanlış bir işlem sonucu oluşacak hata sunucunun formatlanmasına dahi yol açabilir.
Bunun için belirtilen işlemler harici işlemlerden sakınınız.

Şimdi ;
Düzenleyeceğimiz dosyayı yukarda belirttiğim komutla açtıktan sonra tmpfs satırını bulunuz ve yine aynı satırdaki defaults yazısının yanına şunları ekliyoruz ;

PHP- Kodu:
,noexec,nosuid

NOT : ” ,noexec,nosuid ” baştaki virgülü koymayı unutmayınız !!!