Debian 7 ile İlk Sunucu Kurulumu: Güvenli ve Verimli Bir Başlangıç
Debian, açık kaynak dünyasının en köklü ve saygın Linux dağıtımlarından biridir. Kararlılığı, güvenilirliği ve geniş paket deposu sayesinde hem masaüstü kullanıcıları hem de sunucu yöneticileri için ideal bir seçimdir. Özellikle sunucu ortamlarında, Debian’ın sağladığı sağlam temel, uzun vadeli ve sorunsuz bir operasyon için kritik öneme sahiptir. Bu makalede, Debian’ın “Wheezy” kod adlı 7. sürümü ile bir sunucunun ilk kurulumunu, temel yapılandırma adımlarını ve güvenlik önlemlerini detaylı bir şekilde ele alacağız. Amacımız, yeni bir sunucu için sağlam, güvenli ve verimli bir başlangıç noktası oluşturmaktır.
Debian 7’yi Neden Tercih Etmeliyiz?
Debian 7, uzun süreli destek (LTS) sunan eski bir sürüm olmasına rağmen, belirli senaryolarda hala tercih edilebilir. Özellikle eski donanımlarla uyumluluk gerektiren durumlarda veya belirli yazılım bağımlılıkları nedeniyle daha eski bir çekirdek ve glibc sürümü gerektiren projelerde Debian 7, istikrarlı bir çözüm sunar. Sunucu ortamlarında kararlılık her şeyden önemlidir ve Debian bu konuda mükemmel bir üne sahiptir. Açık kaynak felsefesi, geniş topluluk desteği ve güçlü paket yönetim sistemi (APT), Debian’ı sunucu kurulumları için cazip bir seçenek haline getirir. İlk kurulumun doğru yapılması, sunucunun gelecekteki performansı, güvenliği ve yönetilebilirliği açısından hayati öneme sahiptir.
Kuruluma Hazırlık Aşaması
Başarılı bir sunucu kurulumu için ön hazırlık adımları büyük önem taşır. Bu aşamada donanım gereksinimlerinden yazılım teminine kadar birçok detayın gözden geçirilmesi gerekir.
Donanım Gereksinimleri
Debian 7, nispeten düşük donanım kaynaklarıyla çalışabilen bir işletim sistemidir. Ancak sunucunun kullanım amacına göre donanım gereksinimleri değişiklik gösterecektir.
* İşlemci (CPU): Minimum 500 MHz Pentium uyumlu işlemci yeterli olsa da, modern sunucu uygulamaları için en az 1-2 GHz hızında çift çekirdekli bir işlemci önerilir.
* Bellek (RAM): Metin tabanlı kurulum ve temel sunucu işlevleri için 256 MB RAM yeterli olabilir. Ancak SSH, web sunucusu (Apache/Nginx), veritabanı (MySQL/PostgreSQL) gibi servisleri çalıştıracak bir sunucu için minimum 1 GB, tercihen 2-4 GB veya daha fazla RAM önerilir.
* Depolama (Disk): Minimum 10 GB disk alanı gerekli olsa da, işletim sistemi, log dosyaları, uygulamalar ve veri depolaması için en az 40-80 GB SSD veya HDD alanı önerilir. SSD’ler performans açısından büyük avantaj sağlar.
* Ağ Kartı: Sunucunun ağa bağlanabilmesi için bir Ethernet kartı olmazsa olmazdır.
Yazılım Gereksinimleri
Debian 7’nin kurulumu için gerekli temel yazılımları temin etmeliyiz.
* Debian 7 “Wheezy” ISO İmajı: Debian’ın resmi web sitesinden (archive.debian.org üzerinden veya yansılardan) uygun mimariye (amd64, i386) sahip ISO imajını indirin. Netinstall imajları daha küçük boyutlu olup, kurulum sırasında internetten ek paketleri çeker. Komple DVD imajları ise internet bağlantısı olmadan da çoğu paketi kurmanıza olanak tanır.
* Önyüklenebilir Medya Oluşturma Aracı:
* USB Bellek için: Windows üzerinde Rufus, Linux üzerinde dd komutu (örneğin: sudo dd if=/path/to/debian.iso of=/dev/sdX bs=4M status=progress) veya Etcher gibi araçlar kullanılabilir.
* CD/DVD için: İndirdiğiniz ISO imajını bir CD veya DVD’ye yazdırın.
* Ağ Yapılandırma Planı: Sunucunuz için statik bir IP adresi, ağ geçidi (gateway), alt ağ maskesi (netmask) ve DNS sunucuları (tercihen Google DNS: 8.8.8.8, 8.8.4.4 veya ISS’nizin DNS’leri) belirlemek, kurulum sırasında ağ ayarlarını kolaylaştıracaktır.
Kurulum Öncesi Kontrol Listesi
* Mevcut verilerin yedeklendiğinden emin olun (eğer sunucu daha önce kullanıldıysa).
* Fiziksel erişim veya uzaktan konsol (ILO, iDRAC, KVM) erişiminin sağlandığını kontrol edin.
* Root parolası ve oluşturulacak ilk kullanıcı için güçlü parolalar belirleyin.
* Gerekirse BIOS/UEFI ayarlarından önyükleme sırasını (USB/CD/DVD ilk sırada olacak şekilde) ayarlayın.
Debian 7 Kurulum Adımları
Şimdi sıra Debian 7’yi sunucumuza kurmaya geldi. Adım adım ilerleyelim.
Kurulum Medyasından Önyükleme
Hazırladığınız önyüklenebilir USB veya CD/DVD’yi sunucuya takın ve sunucuyu başlatın. BIOS/UEFI ayarlarınız doğruysa, Debian kurulum menüsü karşınıza gelecektir.
* Graphical Install (Grafiksel Kurulum): Daha kullanıcı dostu bir arayüz sunar.
* Install (Metin Tabanlı Kurulum): Daha hafif ve hızlıdır, sunucular için genellikle tercih edilir.
* Diğer seçenekler (Advanced options, Rescue mode) genellikle ilk kurulum için kullanılmaz.
Metin tabanlı kurulumu seçerek devam edelim.
Dil ve Konum Seçimi
* Dil (Language): Kurulum dilini seçin. Türkçe kurulumu tercih edebilirsiniz, ancak çoğu teknik belge İngilizce olduğundan İngilizce seçmek de yaygın bir pratiktir.
* Konum (Location): Ülkenizi seçin. Bu, saat dilimi ve yerel ayarlar için önemlidir.
* Klavye Düzeni (Keyboard Layout): Klavye düzeninizi seçin (örneğin, “Turkish (Q)” veya “U.S. English”).
Ağ Yapılandırması
Kurulum sihirbazı otomatik olarak DHCP üzerinden bir IP adresi almaya çalışacaktır. Eğer DHCP sunucunuz yoksa veya statik IP kullanmak istiyorsanız:
* Manuel Ağ Yapılandırması (Manual network setup): Bu seçeneği tercih edin.
* IP Adresi: Sunucunuz için belirlediğiniz statik IP adresini girin (örneğin, 192.168.1.100).
* Netmask (Alt Ağ Maskesi): Genellikle 255.255.255.0 veya /24.
* Gateway (Ağ Geçidi): Ağ geçidinizin IP adresini girin (örneğin, 192.168.1.1).
* DNS Sunucuları: Belirlediğiniz DNS sunucularını girin (örneğin, 8.8.8.8, 8.8.4.4).
* Hostname (Ana Bilgisayar Adı): Sunucunuza bir isim verin (örneğin, webserver veya dbserver).
* Domain Name (Alan Adı): Eğer bir alan adınız varsa girin (örneğin, ornek.com).
Disk Bölümleme (Disk Partitioning)
Bu aşama kritik bir adımdır. Disklerinizi nasıl böleceğiniz, sunucunuzun kararlılığı ve yönetilebilirliği açısından önemlidir.
* Guided – Use entire disk (Tüm diski kullan): En basit seçenektir. Kurulum sihirbazı otomatik olarak bölümleme yapar.
* Guided – Use entire disk and set up LVM (Tüm diski kullan ve LVM kur): Mantıksal Birim Yönetimi (LVM) ile daha esnek disk yönetimi sağlar. Sunucu ortamları için şiddetle tavsiye edilir, çünkü disk boyutlarını sonradan kolayca değiştirebilirsiniz.
* Manual (Manuel): En esnek seçenektir. Deneyimli kullanıcılar için önerilir.
Sunucu ortamları için manuel veya LVM ile birlikte “Guided” seçeneğini tercih etmek daha iyidir. Örnek bir manuel bölümleme:
* /boot: 500 MB – 1 GB (ext2 veya ext4). Çekirdek ve önyükleyici dosyaları için.
* /: Ana dosya sistemi (ext4). Minimum 10-20 GB.
* /var: Log dosyaları, web sunucusu verileri, veritabanları gibi sık değişen veriler için ayrı bir bölüm. Boyutu sunucunun kullanımına göre değişir, genellikle 20 GB veya daha fazla.
* /tmp: Geçici dosyalar için ayrı bir bölüm. 2-5 GB. Güvenlik için noexec ve nosuid mount seçenekleriyle bağlanabilir.
* /home: Kullanıcı ev dizinleri için. Sunucularda genellikle çok büyük bir ihtiyaç değildir, ancak varsa ayrı bir bölüm olabilir.
* swap: RAM’in 1-2 katı kadar, ancak 2-4 GB genellikle yeterlidir. Hibernasyon kullanılmayacaksa 2 GB idealdir.
Bölümlemeyi tamamladıktan sonra “Finish partitioning and write changes to disk” seçeneğini seçin.
Kullanıcı Hesapları ve Parolalar
* Root Parolası: Sunucunuzun en önemli hesabı olan root (yönetici) için güçlü bir parola belirleyin. Bu parolayı unutmayın ve güvenli bir yerde saklayın.
* Yeni Kullanıcı Oluşturma: Günlük işlemler için root hesabını kullanmak yerine, sudo yetkilerine sahip standart bir kullanıcı hesabı oluşturmak güvenlik açısından önemlidir. Kullanıcı adı ve parola belirleyin.
Yazılım Seçimi
Bu aşamada sunucunuzda hangi yazılımların kurulacağını seçersiniz.
* Debian Masaüstü Ortamı (Debian desktop environment): Sunucuya GUI kurmak istemiyorsanız bu seçeneğin işaretini kaldırın. Çoğu sunucu için gereksizdir ve kaynak tüketimini artırır.
* SSH server (SSH sunucusu): Uzaktan güvenli bağlantı kurmak için bu seçeneği mutlaka işaretleyin.
* Standard system utilities (Standart sistem araçları): Temel sistem araçları için bu seçeneği işaretli bırakın.
* Diğer seçenekler (Web server, Mail server, DNS server vb.) şimdilik kurulmayabilir, daha sonra manuel olarak eklenebilir.
Seçimlerinizi yaptıktan sonra kurulum devam edecektir.
GRUB Önyükleyici Kurulumu
GRUB önyükleyiciyi ana sabit diskinizin ana önyükleme kaydına (MBR) kurmayı onaylayın. Genellikle /dev/sda üzerine kurulur.
Kurulumun Sonlandırılması
Kurulum tamamlandığında, kurulum medyasını çıkarmanız ve sunucuyu yeniden başlatmanız istenecektir. Yeniden başlattıktan sonra, yeni kurduğunuz Debian 7 sistemine giriş yapabilirsiniz.
Kurulum Sonrası Yapılandırma ve Güvenlik Sertleştirme
Debian 7’nin temel kurulumu tamamlandıktan sonra, sunucuyu daha güvenli, güncel ve yönetilebilir hale getirmek için bazı ek yapılandırmalar yapmamız gerekir.
İlk Giriş ve Sistem Güncelleme
İlk olarak, root kullanıcısı ile giriş yapın ve sisteminizi güncelleyin.
su - # Eğer normal kullanıcı olarak giriş yaptıysanız root olmanızı sağlar
apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get clean
apt-get autoremove
* apt-get update: Paket listelerini günceller.
* apt-get upgrade: Mevcut kurulu paketleri günceller.
* apt-get dist-upgrade: Çekirdek gibi sistem bileşenlerini de güncelleyebilir ve bağımlılık sorunlarını çözebilir.
* apt-get clean: İndirilen paket dosyalarını temizler.
* apt-get autoremove: Artık ihtiyaç duyulmayan paketleri kaldırır.
Sudo Kullanıcısı Oluşturma ve Yapılandırma
Günlük yönetim görevleri için root kullanıcısını doğrudan kullanmak yerine, sudo yetkilerine sahip bir standart kullanıcı kullanmak güvenlik açısından daha iyidir.
adduser
gpasswd -a sudo
* yerine kendi belirlediğiniz kullanıcı adını yazın.
* adduser komutu yeni kullanıcıyı oluşturur ve ev dizinini ayarlar.
* gpasswd -a komutu, kullanıcıyı sudo grubuna ekler. Bu sayede kullanıcı, kendi parolasını girerek sudo komutunu kullanarak yönetici yetkileriyle komut çalıştırabilir.
Yeni kullanıcı ile oturum açıp root yetkisi gerektiren bir komut çalıştırarak test edebilirsiniz:
sudo apt-get update
SSH Sunucusu Yapılandırması
SSH, sunucuya uzaktan güvenli bir şekilde erişmek için kullanılır. Varsayılan ayarları değiştirmek güvenliği artırır.
nano /etc/ssh/sshd_config
Aşağıdaki değişiklikleri yapın:
* Root ile Girişi Devre Dışı Bırakma:
PermitRootLogin no
Bu, root kullanıcısının doğrudan SSH üzerinden oturum açmasını engeller. Önce standart kullanıcı ile giriş yapıp sonra su - veya sudo -i ile root olmanız gerekir.
* Varsayılan SSH Portunu Değiştirme (Opsiyonel ama önerilir):
Port 2222 # 22 yerine farklı bir port numarası kullanın
Bu, otomatik saldırıları azaltmaya yardımcı olur. Yeni port numarasını unutmayın.
* Parola ile Girişi Devre Dışı Bırakma ve SSH Anahtarları Kullanma (Daha güvenli):
Önce SSH anahtarlarını ayarlamanız gerekir.
1. Kendi bilgisayarınızda SSH anahtarı oluşturun:
ssh-keygen -t rsa -b 4096
Parola belirlemeyi unutmayın.
2. Genel anahtarı sunucuya kopyalayın:
ssh-copy-id -i ~/.ssh/id_rsa.pub @
Bu komut, genel anahtarınızı sunucudaki kullanıcısının ~/.ssh/authorized_keys dosyasına ekler.
3. Sunucudaki sshd_config dosyasında:
PasswordAuthentication no
PubkeyAuthentication yes
Bu değişiklikleri yaptıktan sonra SSH servisini yeniden başlatın:
service ssh restart
Yeni SSH portunu kullanıyorsanız, bağlantı kurarken belirtmeyi unutmayın: ssh -p 2222 .
Güvenlik Duvarı (Firewall) Kurulumu
Bir güvenlik duvarı, sunucuya gelen ve giden ağ trafiğini kontrol etmenizi sağlar. Debian 7’de iptables varsayılan olarak gelir, ancak ufw (Uncomplicated Firewall) daha kullanıcı dostu bir arayüz sunar.
sudo apt-get install ufw
ufw enable
ufw default deny incoming
ufw default allow outgoing
Şimdi ihtiyaç duyduğunuz portlara izin verin:
* SSH (Yeni port numaranızı kullanın):
ufw allow 2222/tcp
* HTTP (Web sunucusu için):
ufw allow 80/tcp
* HTTPS (Güvenli web sunucusu için):
ufw allow 443/tcp
* Diğer servisler için (örneğin, 3306/tcp MySQL için):
ufw allow 3306/tcp
Güvenlik duvarı durumunu kontrol edin:
ufw status verbose
Zaman Senkronizasyonu (NTP)
Sunucunuzun sistem saatinin doğru olması, log kayıtlarının tutarlılığı ve çeşitli uygulamaların düzgün çalışması için önemlidir. NTP (Network Time Protocol) ile zaman senkronizasyonunu sağlayın.
sudo apt-get install ntp
NTP servisi varsayılan olarak başlar ve zamanı senkronize eder. Durumunu kontrol etmek için:
ntpq -p
Hostname ve DNS Yapılandırması
Kurulum sırasında belirlediğiniz hostname ve DNS ayarlarını kontrol edin veya değiştirin.
* Hostname:
sudo nano /etc/hostname
Buradaki ismi sunucunuzun adı ile değiştirin.
sudo nano /etc/hosts
Bu dosyaya sunucunuzun IP adresini ve hostname’ini ekleyin (örneğin: 127.0.1.1 webserver.ornek.com webserver).
* DNS Sunucuları:
sudo nano /etc/resolv.conf
nameserver satırlarını kontrol edin. Eğer statik IP ile kurduysanız, burada belirlediğiniz DNS sunucuları olmalıdır.
Değişikliklerden sonra hostname’i uygulamak için:
sudo /etc/init.d/hostname.sh start
Sistem İzleme Araçları (Opsiyonel ama Önerilir)
Sunucunuzun kaynak kullanımını (CPU, RAM, Disk I/O, Ağ) izlemek için bazı araçlar kurabilirsiniz.
sudo apt-get install htop glances sysstat
* htop: Etkileşimli bir süreç görüntüleyici. top‘tan daha gelişmiştir.
* glances: Çapraz platform, gelişmiş bir sistem izleme aracı.
* sysstat: sar, iostat, mpstat gibi araçları içerir, sistem performansını detaylı olarak kaydetmeye ve analiz etmeye yarar.
Güvenlik En İyi Uygulamaları
Bir sunucunun güvenliği sürekli bir süreçtir. İlk kurulumdan sonra aşağıdaki en iyi uygulamaları takip etmek önemlidir.
Düzenli Güncellemeler
Sisteminizi ve kurulu tüm paketleri düzenli olarak güncelleyin. Bu, bilinen güvenlik açıklarının kapatılmasını sağlar. Otomatik güncellemeler için unattended-upgrades paketini kurup yapılandırabilirsiniz.
sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
Güçlü Parolalar ve SSH Anahtarları
Tüm kullanıcı hesapları için güçlü ve benzersiz parolalar kullanın. SSH anahtarları ile parola tabanlı kimlik doğrulamayı devre dışı bırakmak, SSH güvenliğini önemli ölçüde artırır.
Minimum Yazılım Kurulumu
Sunucunuzda yalnızca ihtiyaç duyduğunuz yazılımları kurun. Gereksiz servisler ve uygulamalar, potansiyel güvenlik açıkları oluşturabilir.
Log İzleme
Sistem loglarını düzenli olarak kontrol edin (/var/log/). logwatch gibi araçlar, önemli log mesajlarını özetleyerek e-posta ile gönderebilir. fail2ban gibi araçlar ise, başarısız giriş denemelerini izleyerek kötü niyetli IP adreslerini otomatik olarak engelleyebilir.
sudo apt-get install fail2ban
fail2ban varsayılan olarak SSH için yapılandırılmıştır, ancak diğer servisler için de yapılandırılabilir (/etc/fail2ban/jail.conf veya /etc/fail2ban/jail.local).
Fiziksel Güvenlik
Sunucunuzun fiziksel güvenliğini sağlayın. Yetkisiz erişimi önlemek için sunucu odasını veya cihazın bulunduğu yeri kilitleyin.
Düzenli Yedeklemeler
Veri kaybını önlemek için sunucunuzdaki önemli verilerin düzenli olarak yedeklendiğinden emin olun. Yedeklemeler, farklı bir konumda veya bulut depolama hizmetinde saklanmalıdır.
Sonuç
Debian 7 ile bir sunucunun ilk kurulumu, dikkatli ve planlı bir şekilde yapıldığında, sağlam ve güvenilir bir temel oluşturur. Bu makalede ele aldığımız adımlar, temel bir Debian sunucusunu kurmak, onu güncel tutmak ve ilk güvenlik önlemlerini almak için gerekli bilgileri sağlamaktadır. Kurulum sonrası yapılandırma ve güvenlik sertleştirme adımları, sunucunuzun potansiyel tehditlere karşı daha dirençli olmasını sağlar.
Unutmayın ki sunucu yönetimi sürekli bir öğrenme ve dikkat gerektiren bir alandır. Kurulumdan sonra, sunucunuzun belirli rollerine (web sunucusu, veritabanı sunucusu, dosya sunucusu vb.) göre ek yazılımlar kurmanız ve yapılandırmanız gerekecektir. Güvenlik açıklarını takip etmek, sisteminizi düzenli olarak denetlemek ve yedekleme stratejinizi gözden geçirmek, uzun vadeli başarı için kritik öneme sahiptir. Bu kılavuz, Debian 7 ile sunucu maceranızda size yol gösterecek güçlü bir başlangıç noktası sunmaktadır.