Linux VPS Kurulumu

Herkese merhaba! Bizi internete taşıyan gemimiz yani sunucumuzu yapmaya başlıyoruz. Kaliteli ve sorunsuz bir sunucuya sahip olmak için, bazı ayarları yapmamız gerekiyor. Bu yazının sonunda (linux vps kurulumu); otomatik güncelleştirme, yeniden başlatma, güvenlik gibi hayati konular hakkında bilgi sahibi olacaksınız.

1.) Sunucu için hangi işletim sistemi? Kaç bit?

ubuntu-server-lts-temel-sunucu-ayarlari

Kullanım kolaylığı, ücretsiz olması, az kaynak tüketmesi, LTS, yani uzun süreli güncelleştirme ( 5 yıl boyunca ) sebebiyle, Ubuntu Server 14.04 LTS‘yi kullanacağız. Kaç bit olduğuna gelince, 3 GB ram‘i geçecek bir proje oluşturacaksanız 64 bit, 3 GB ram bana yeter, olmazsa load balance ( yük dengeleme ) daha mantıklı ( bence de ) derseniz, 32 bit kullanmanızı öneriyorum. Ram, bir sunucu için gerçekten çok önemli.

Benim sunucumda 4 site barınıyor. 1 GB ram e sahibim. Ram tüketimi 700 MB’ı geçmiyor.

Popüler açık kaynaklı sunucu işletim sistemlerinin RAM kullanımı:

http://www.netkolik.org/rehberler/linux-surumleri-ram-kullanimi.html


2.) Sunucu lokasyonu (konum) belirleme

Sunucunuz, yayın yapacağınız ülkeye ne kadar yakın olursa, erişim hızı o kadar çok olur. Türkiye’ye en yakın Digital Ocean veri merkezi Hollanda ( Amsterdam ) olduğu için, tercihimizi Amsterdam yönünde yapıyoruz.

GÜNCELLEME: Digital Ocean, Almanya (Frankfurt) lokasyonlu veri merkeziyle hizmet sunmaya başladı! Lokasyon tercihiniz, Almanya olsun. Hem daha yakın hem de, Türkiye ile Almanya arasında omurga (backbone) hat sayesinde, çok daha hızlı erişim hızına sahip olacaksınız.


3.) Sunucuya erişimi güçlendirme & SSH Key oluşturma

Anlamadığım bir şekilde, SSH port numarası ve root kullanıcısını kuralına uygun değiştirdiğim halde, sunucuya erişimi kaybediyorum. Bu yüzden SSH port numarası değişimi ve root kullanıcısını iptal edip, root yetkisine sahip yeni kullanıcı oluşturmayı anlatmayacağım.

Güvenliğin ilk adımı, bu kısımda başlıyor. Sunucunuzu daha güvenli hale getirip, brute force ( tahminle şifre kırma ) ataklarını büyük ölçüde engelleyeceğiz.


3a.) Root kullanıcısına güçlü bir şifre belirleyelim

https://www.grc.com/passwords.htm

Yukarıdaki siteye girip, rastgele ve sadece size özel üretilmiş 63 haneli alfa-nümerik şifrenizi bir yere kaydedin. Sunucunuza SSH üzerinden eriştikten sonra, aşağıdaki komutu yazın ve şifrenizi 2 kere yapıştırın. ( Putty için sağ tık yapıştırma işlevi görür. )

passwd


3b.) SSH Key oluşturalım

Anahtar dosyası ( SSH Key ) oluşturmak için, öncelikle Puttygen programına ihtiyacımız var. Aşağıdaki linkten indirebilirsiniz.

http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe

Programı çalıştırdıktan sonra, aşağıdaki adımları takip edin.

ssh-key-olusturma-1

ssh-key-olusturma-2

ssh-key-olusturma-3

Elimizde bir public key ve bir tane de private key olacak. Public key kodunu sunucumuza yazdıktan sonra, public key dosyamız ile şifresiz root erişimi sağlayabileceğiz. Şimdi public key tanımlaması yapalım. Digital Ocean hesabınıza giriş yapın. SSH Keys menüsüne girin. Size ait public key kodunu yapıştırın ve kaydedin.

ssh-key-olusturma-4


3c.) Parola ile erişimi devre dışı bırakalım. Sadece SSH Key ile sunucu erişimi mümkün olsun.

Bu adımı terminal üzerinden de yapabiliriz fakat, yeni başlayanlara kolay olsun diye, FTP üzerinden işimizi halledeceğiz. Herhangi bir FTP sunucusu üzerinden, aşağıdaki gibi bir bağlantı kurun.

IP Adresi: Sunucunuza ait ip

Kullanıcı Adı: root

Port No: 22

Şifre: root şifreniz

FileZilla ile bağlantı sorunu yaşarsanız, WinSCP programını öneririm. Aşağıdaki dizine ulaşın ve dosyayı düzenleyin.

/etc/ssh/sshd_config

Bu kısımda yapacağınız bir yanlışlık, sunucuya erişiminizi kesecektir. Sadece ihtiyacımız olan değerleri değiştireceğiz. Değerlerin başında # şeklinde tırnak varsa kaldıracağız. Sizdeki değerler INFO, yes, yes şeklinde olacaktır. Aşağıdaki değerleri bulun ve değiştirin.

LogLevel VERBOSE

ChallengeResponseAuthentication no

PasswordAuthentication no


4.) Sunucunuzu tepeden tırnağa güncelleyin, otomatik güncellemeyi açın.

Aşağıdaki komut, kernel ( çekirdek ) dahil işletim sistemini tamamen güncelleyecektir. Digital Ocean’ın 1 Gbit internet erişimi olduğu için, 5 dakika bile sürmez.

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Çıkan uyarılara Y yazıp enterlayın.

Şimdi sunucumuz için otomatik güncelleme programını yükleyip kuralım. Digital Ocean sunucularında genelde yüklü geliyor. Yükleme başlamazsa, sizin sunucunuzda da yüklü demektir.

sudo apt-get install unattended-upgrades

sudo dpkg-reconfigure unattended-upgrades

Çıkan uyarı penceresine yes dediğiniz zaman, otomatik güncelleme açılır. ( Ok tuşları ile buton hareket eder. )

Sunucu saatimizi de güncelleyelim. Güvenlik ve güncelleştirme açısından, sunucu saatinin güncel olması çok önemlidir.

dpkg-reconfigure tzdata

Açılan pencereden, Europe > İstanbul yolunu izleyelim ve kaydedelim.

Son olarak, otomatik güncellemelerin çalışması için, sunucumuzun da belli aralıklarda yeniden başlatılması gerekiyor. Ayda 2 kere yeniden başlatmak, sunucu uptime değerini %99’un altına düşürmez. Kişisel bir sunucu için %99 çok iyi bir yüzdedir.

Aşağıdaki komut, sunucunuzu her 15 günde 1 kere, sabah 6’da yeniden başlatır. Bence sabah 6 herkes için çok ideal bir saat. Ziyaretçi ve veri kaybı yaşamazsınız.

sudo crontab -e

Açılan pencerenin en altına gelin ve aşağıdaki kodu ekleyin.

* 6 15 * * sudo reboot

CTRL + X ile metin editöründen çıkın. Yes deyip kaydedin.

GÜNCELLEME: Sunuculardaki saat senkronizasyonunu (saatin her zaman doğru olmasını sağlar) sağlamak için, ufak bir program daha kuracağız.

sudo apt-get install ntp

Sunucu her restart sonrası, otomatik olarak saat güncellemesi yapacak.


5.) SWAP ( Takas ) alanı ekleyin.

Sandığımdan da uzun bir yazı oldu. Fakat bu ayarları bitirdiğiniz zaman, İsviçre saati gibi sorunsuz çalışan bir sunucuya sahip olacaksınız. Sabredin ve dikkatli olun.

Swap alanı, sunucumuzun rami yetersiz olduğu zaman devreye giren, sunucuyu kilitlenmekten kurtaran, hard disk üzerine açacağımız bir alandır. Raminizin 2 katı olacak şekilde, swap alanı oluşturmalısınız. Daha azına veya daha fazlasına gerek yok. Benim sunucum 1 GB rame sahip olduğu için, 2 GB boyutunda swap alanı oluşturacağım.

sudo fallocate -l 2G /swapfile

sudo chmod 600 /swapfile

sudo mkswap /swapfile

sudo swapon /swapfile

sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'

6.) Güvenlik duvarını ayarlayalım.

Hep duyarız bu güvenlik duvarını. Linux cephesinde güvenlik duvarı deyince akla iptables gelir. Hepimizin korkulu rüyasıdır. Kafa karıştırır. Bunun daha kolayını yapalım demişler ve UFW ortaya çıkmış. Canım UFW! Sunucumuzun dışarıya yayın yapmasına izin verip, dışarıdan sunucumuza gelen tüm bağlantıları reddedeceğiz. Sadece 2 port açık kalacak. Bir tanesi 22 nolu port. Bu port ile SSH üzerinden sunucumuzu yöneteceğiz. Diğeri, 80 numaralı port. Bu port da, web sitemizi yayınlayacak.

sudo ufw allow 22

sudo ufw allow 80

sudo ufw default deny incoming

sudo ufw default allow outgoing

sudo ufw enable

Komutları girerken, çıkan uyarılara yes diyelim. Güvenlik duvarımız aktif. Tebrikler! Artık kale gibi bir sunucunuz var. Son olarak, bütün ayarların çalışması için, sunucumuzu yeniden başlatalım.

sudo reboot

Gerçekten uzun bir yazı oldu. Bütün ayarları sindire sindire okuyun, anlayın. Anladıktan sonra dikkatlice uygulayın. Bir sonraki yazımda, web stack ( istemci ) ve wordpress kurulumunu anlatacağım. Bu yazı kadar karmaşık olmayacak. Şahane bir script sayesinde, herşey otomatik kurulacak.

You may also like...

Leave a Reply

%d bloggers like this: