12Sep

Özel Sanal Web Sunucusunu Döndürme

Web sitenizi çalıştırmak için özel bir sanal sunucu elde ettiğinizde, herkes için yapılandırılmış olması ve bir web sitesini çalıştırmak için performansı en üst düzeye çıkaracak şekilde özelleştirilememesi ihtimali yüksektir.

İçindekiler

[gizle]

  • 1 Genel Bakış
  • 2 Linux Yapılandırması
    • 2.1 DNS'yi Devre Dışı Bırak
    • 2.2 SpamAssassain'i Devre Dışı Bırak
    • 2.3 Xinetd'i Devre Dışı Bırak
    • 2.4 Plesk Bellek Kullanımını Sınırla
    • 2.5 Plesk'i Devre Dışı Bırakma veya Kapatma( isteğe bağlı)
  • 3 MySQL Yapılandırması
    • 3.1 Query Cache'i Etkinleştir
    • 3.2 TCP / IP'yi Devre Dışı Bırakma
  • 4 Apache Yapılandırması
  • 5 PHP Yapılandırması
    • 5.1 Gereksiz PHP Modüllerini Kaldırma
    • 5.2 PHP Opcode Önbellek
  • 6 Yedeklemeler
    • 6.1 Otomatik Yedekleme Komut Dosyası Oluşturma
    • 6.2 Yedeklemeleri Rsync ile Senkronize Et
  • 7 Güvenlik
    • 7.1 KökOturum Açma SSH
    • 7.2 SSH Sürüm 1'i Devre Dışı Bırakma
    • 7.3 SSH Sunucusunu Yeniden Başlat
    • 7.4 Açık Bağlantı Noktalarını Denetleyin
    • 7.5 Bir Güvenlik Duvarı Kur
  • 8 Ayrıca bkz.
  • 9 Kaynaklar

Genel Bakış

Bir takım güvenlik duvarlarını kurduğumuz birkaç sorun alanı varPerformansı en üst düzeye çıkarmak için t:

  • Linux yapılandırması
    Genellikle daha fazla bağlantı için kullanılabilecek belleğin boşa harcanmasına ihtiyaç duymayan servisler vardır.
  • MySQL yapılandırması
    Genellikle varsayılan ayarlar küçük bir sunucuyu temel alır, performansı artırmak için birkaç önemli değişiklik ekleyebiliriz.
  • Apache yapılandırması
    Varsayılan olarak, çoğu barındırma sağlayıcıları neredeyse her modül yüklü olarak apache'yi kurmaktadır. Onları hiç kullanmayacaksanız modülleri yüklemek için hiçbir neden yoktur.
  • PHP yapılandırması
    Varsayılan PHP yapılandırması benzer şekilde şişirilmiş, genellikle bir ton gereksiz ek modül yüklenmiştir.
  • PHP Opcode Önbellek
    PHP'nin her seferinde komut dosyalarını yeniden derlemesine izin vermek yerine, bir opcode önbellek, derlenmiş komut dosyalarını bellekte büyük performans artışı için önbelleğe alır.
  • Yedeklemeleri
    Belirli bir otomatik yedekleme kurmanız gerekir, çünkü barındırma sağlayıcınız sizin için bunu yapmayacaktır.
  • Güvenlik
    Tabii, Linux varsayılan olarak güvende ancak, birkaç hızlı ayarla düzeltebileceğiniz bazı göze çarpan güvenlik sorunları var.

Linux Yapılandırması

Yapabileceğiniz, kullandığınız sunucudan biraz farklı olacak çok sayıda değişiklik yapabilirsiniz. Bu değişiklikler CentOS çalıştıran bir sunucu içindir, ancak DV sunucularının çoğunluğu için çalışmalıdırlar.

DNS

'yi Devre Dışı Bırakma Barındırma sağlayıcınız etki alanınız için DNS'yi( büyük ihtimalle) işliyorsa, DNS hizmetinin çalışmasını engelleyebilirsiniz.

dns'leri devre dışı bırak /etc/init.d/ named stop chmod 644

adlı /etc/init.d/ chmod komutu, yürütme iznini komut dosyasından kaldırır ve başlangıçta çalışmasını durdurur.

SpamAssassain'i Devre Dışı Bırak

Sunucunuzda e-posta hesapları kullanmıyorsanız spam önleme araçları çalıştırmaya zahmet etmemelisiniz.(Ayrıca Google Apps'ı kontrol etmelisiniz, daha iyi e-posta çözümü)

/etc/init.d/ psa-spamassassin stop chmod 644 /etc/init.d/ psa-spamassassin

xinetd'yi devre dışı bırak

xinetd işlemi hiçbiri tipik bir web sunucusu için yararlı olmayan bir dizi başka işlemi barındırıyor.

/etc/init.d/ xinetd stop chmod 644 /etc/init.d/ xinetd

Sınırlı Bellek Belleği Kullanımı

Plesk panelini kullanırsanız, bir seçenek dosyası ekleyerek daha az bellek kullanmaya zorlayabilirsiniz.

vi /usr/local/psa/admin/conf/ httpsd.custom.include

Dosyaya aşağıdaki satırları ekleyin:

MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

Bu seçeneğin MediaTemple DV sunucularında çalıştığı biliniyor, ancak başkaları tarafından kontrol edilmediğine dikkat edin.(Bkz. Referanslar)

Plesk'i Devre Dışı Bırakma veya Kapatma( isteğe bağlı)

Plesk'i yılda bir kez kullanırsanız, onu tamamen çalıştırmaya bırakmanızın çok az nedeni vardır. Bu adımın tamamen isteğe bağlı olduğunu ve biraz daha gelişmiş olduğunu unutmayın.

Plesk'i kapatmak için aşağıdaki komutu çalıştırın:

/etc/init.d/ psa stop

Aşağıdaki komutu çalıştırarak başlangıçta çalışmasını devre dışı bırakabilirsiniz:

chmod 644 /etc/init.d/ psa

Devre dışı bırakırsanız, el ile başlatamazsınızdosya izinlerini geri değiştirme( chmod u + x).

MySQL Yapılandırması

Sorgu Önbelleğini Etkinleştir

/etc/ my.cnf dosyanızı açın ve aşağıdaki satırları [mysqld] bölümüne aşağıdaki gibi ekleyin:

[mysqld] query-cache-type = 1 query-cache-size = 8M

isterseniz sorgu önbelleğine daha fazla bellek ekleyin, ancak çok fazla kullanmayın.

TCP / IP'yi Devre Dışı Bırak

Şaşırtıcı sayıda ana bilgisayar varsayılan olarak TCP / IP'de MySQL'e erişimi etkinleştirir, bu da bir web sitesi için mantıklı değildir. Aşağıdaki komutu çalıştırarak mysql'in TCP / IP'de dinleyip dinlemediğini öğrenebilirsiniz:

netstat -an |grep 3306

Devre dışı bırakmak için, /etc/ my.cnf dosyanıza aşağıdaki satırı ekleyin:

atlama ağı

Apache Yapılandırması

Sık sık /etc/httpd/conf/ httpd.conf dosyasında bulunan httpd.conf dosyasını açın

Aşağıdaki gibi bir satırı bulun:

Timeout 120

Ve şu şekilde değiştirin:

Timeout 20

Şimdi, bu satırları içeren bölümü bulun ve benzer bir şekilde ayarlayın:

StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000

PHP Yapılandırması

PHP platformunda bir sunucu ayarlarken her bir apache iş parçacığının PHP'yi ayrı bir konumda belleğe yükleyeceği unutulmamalıdır. Bu, kullanılmayan bir modülün PHP'ye 256k bellek, 40 apache iş parçacığı eklediği takdirde 10MB bellek harcıyor demektir.

Gereksiz PHP Modüllerini Kaldır

Genellikle /etc/ php.ini dosyasında bulunan php.ini dosyanızı bulmanız gerekir( bazı dağıtımlarda bazı. ini dosyalarının bulunduğu bir /etc/php.d/ dizini olacağına dikkat edin,her modül

Bu modüllerle herhangi bir loadmodule satırını yorumlayın:

  • odbc
  • snmp
  • pdo
  • odbc pdo
  • mysqli
  • ioncube-yükleyici
  • json
  • imap
  • ldap
  • ncurses

Yapılacaklar:

PHP Opcode Önbellek

BurayaAPC, eAccelerator ve Xcache de dahil olmak üzere kullanabileceğiniz opcode önbellekleridir, sonuncusu istikrar nedeniyle kişisel tercihimdir

xcache'yi indirin ve bir dizine ayıklayın ve sonra aşağıdaki komutları xcache kaynağından çalıştırındizin:

phpize. /configure --enable-xcache make make install

php.ini dosyanızı açın vexcache için yeni bir bölüm ekleyin. Php modülleriniz başka bir yerden yüklendiyse yolları ayarlamanız gerekir.

vi /etc/ php.ini

Dosyaya aşağıdaki bölümü ekleyin:

[xcache-common] zend_extension = /usr/lib/php/modules/ xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere"[xcache];Opcode önbellek boyutunu ayarlamak için xcache.size'yi değiştirin xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0;Değişken önbellek boyutunu ayarlamak için xcache.var_size'yi değiştirin xcache.var_size = 1M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = Kapalı xcache.readonly_protection =On xcache.mmap_path = "/tmp/ xcache" xcache.coredump_directory = "" xcache.cacher = Açık xcache.stat = Açık xcache.optimizer = Kapalı

Yapılacaklar: Bunu biraz genişletmek ve referanslarda xcache'ye bağlantı yapmak gerekiyor.

Yedeklemeleri

Web sitenizin otomatik yedeklemelerine sahip olmaktan çok daha az önemli. Ayrıca, çok yararlı olan, barındırma sağlayıcıdan anlık görüntü yedekleme alabilirsiniz, ancak otomatik yedeklemeleri de tercih ediyorum.

Otomatik Yedekleme Komut Dosyası Oluşturma

Genellikle bir / yedekler dizini yaratarak başlarım, altındaki /backups/ dosyaları dizini ile.İsterseniz bu yolları ayarlayabilirsiniz.

mkdir -p /backups/ dosyaları

Şimdi backups dizininde bir backup.sh komut dosyası oluşturun:

vi /backups/ backup.sh

Yolları ve mysqldump parolasını gerektiği gibi ayarlayarak aşağıdakileri dosyaya ekleyin:

#!/bin/ sh THEDATE = 'tarih +% d% m% y% H% M` mysqldump -uadmin -pPASSWORD DATABASENAME & gt;/backups/files/ dbbackup $ THEDATE.bak tar -cf /backups/files/ sitebackup $ THEDATE.tar /var/www/vhosts/ my-web sitesi yolu / httpdocs gzip /backups/files/ sitebackup $ THEDATE.tar /backups/files/ sitesini bulun * -mtime +5 -exec rm{ } \;/backups/files/ db * -mtime +5 -exec rm{ } \ bulmak;

Komut dosyası ilk olarak bir tarih değişkeni oluşturacak ve böylece tüm dosyalar tek bir yedekleme için aynı ada sahip olacak, daha sonra veritabanını boşaltacak, web dosyalarını sıkıştıracak ve gzip edecektir. Bul komutları, sürücünüzün alanın bitmesini istemediğinizden beri 5 günden daha eski dosyaları kaldırmak için kullanılır.

Komut dosyasını aşağıdaki komutu çalıştırarak çalıştırılabilir yapın:

chmod u + x /backups/ backup.sh

Sonra cron tarafından otomatik olarak çalışacak şekilde atamanız gerekir. Yedekleme dizinine erişimi olan bir hesabı kullandığınızdan emin olun.

crontab -e

Aşağıdaki satırı crontab'a ekleyin:

1 1 * * * /backups/ backup.sh

Senaryoyu, kullanıcı hesabına oturum açmışken çalıştırarak test edebilirsiniz.(Genellikle yedekleri kök olarak çalıştırırım)

Senkron Yedeklemeleri Rsync

ile Senkronize Etme Sunucunuzun otomatik yedeklemelerini çalıştırdıysanız, bunları rsync yardımcı programını kullanarak başka bir yerde senkronize edebilirsiniz. Otomatik oturum açma için ssh anahtarlarını ayarlama hakkında bu makaleyi okumak istersiniz: Tek bir Komutta Uzak Sunucuya Genel SSH Anahtarı Ekleme

Bu komutu başka bir konumdaki bir linux veya Mac makinesinde çalıştırarak test edebilirsiniz( I

rsync -a [email protected]: /backups/files/ * /offsitebackups/

Bu ilk çalıştırmada oldukça zaman alacaktır, ancak sonunda yerel bilgisayarınızın kopyası olmalıdır. /offsitebackups/ dizinindeki files dizininin.(Komut dosyasını çalıştırmadan önce bu dizini oluşturduğunuzdan emin olun)

Bunu bir crontab satırına ekleyerek zamanlayabilirsiniz:

crontab -e

Dakikada 45 dakika işaretiyle rsync'i çalıştıran aşağıdaki satırı ekleyin. Burada rsync'in tam yolunu kullandığımızı fark edeceksiniz.

45 * * * * /usr/bin/ rsync -a [email protected]: /backups/files/ * /offsitebackups/

Farklı bir saatte veya yalnızca günde bir kez çalışacak şekilde zamanlayabilirsiniz. Bu gerçekten size kalmış.

Ssh veya ftp ile senkronizasyon yapmanıza izin verecek bir çok yardımcı program olduğunu unutmayın. Rsync'i kullanmak zorunda değilsiniz.

Güvenlik

Yapmak istediğiniz ilk şey, ssh aracılığıyla kullanılacak düzenli bir kullanıcı hesabına sahip olduğunuzdan emin olmak ve su'yu kök olarak değiştirmek için kullanabildiğinizden emin olmaktır. SSH üzerinden root için doğrudan giriş yapmaya izin vermek çok kötü bir fikir.

SSH Üzerinden Kök Girişini Devre Dışı Bırak

/etc/ssh/ sshd_config dosyasını düzenleyin ve aşağıdaki satırı arayın:

#PermitRootLogin evet

Bu satırı aşağıdaki gibi değiştirin:

PermitRootLogin no

Normal kullanıcı hesabınız olduğundan emin olun veBu değişikliği yapmadan önce kök yapın, aksi takdirde kendinizi kapatabilirsiniz.

SSH Sürüm 1'i Devre Dışı Bırakma

Daha önceki sürümlerden daha güvenli olduğundan, SSH sürüm 2'den başka bir şey kullanmak için hiçbir neden yoktur. /etc/ssh/ sshd_config dosyasını düzenleyin ve aşağıdaki bölümü arayın:

# Protokol 2,1 Protokol 2

Yalnızca Protokol 2'yi gösterilen şekilde kullandığınızdan emin olun.

SSH Sunucusunu Yeniden Başlat

Bunun etkili olması için SSH sunucusunu yeniden başlatmanız gerekecek.

/etc/init.d/ sshd restart

Açık Bağlantı Noktalarını Kontrol Et

Sunucunun hangi portları dinlediğini görmek için aşağıdaki komutu kullanabilirsiniz:

netstat -an |grep LISTEN

Gerçekten de, plesk için 22, 80 ve muhtemelen 8443'ten başka bir şey dinlememelisiniz.

Bir Güvenlik Duvarı Kurulumu

Ana Makale: Linux'ta

'de Iptables Kullanma

İsteğe bağlı olarak daha fazla bağlantıyı engellemek için bir iptables güvenlik duvarı kurabilirsiniz.Örneğin, genellikle iş ağım dışındaki diğer limanlara erişimi engelliyorum. Dinamik bir IP adresiniz varsa bu seçeneği kullanmaktan kaçının.

Şimdiye kadar bu kılavuzdaki tüm adımları izlediyseniz, karışıma bir güvenlik duvarı da eklemek gerekli değildir, ancak seçeneklerinizi anlamak iyidir.

Ayrıca bkz.

  • Linux'ta Iptables Kullanma

Referanslar

  • DV sunucunuzu en iyileştirme( mediatemple.net)
  • XCache