Sunucu Yönetimi

Linux Sunucularda Temel Güvenlik Sıkılaştırma (Hardening) Rehberi: Adım Adım Koruma

 · 

Linux Sunucularda Temel Güvenlik Sıkılaştırma (Hardening) Rehberi: Adım Adım Koruma

Linux Sunucularda Temel Güvenlik Sıkılaştırma (Hardening) Neden Önemli?

Günümüzün dijital dünyasında, sunucularınızın güvenliği iş sürekliliğinizin ve veri bütünlüğünüzün temelini oluşturur. Özellikle Linux tabanlı sunucular, esneklikleri ve güçlü yapıları sayesinde kurumsal altyapıların vazgeçilmez bir parçasıdır. Ancak bu güç, doğru yapılandırılmadığında potansiyel güvenlik açıkları da barındırabilir. İşte bu noktada temel güvenlik sıkılaştırma (hardening) devreye girer. Sunucularınızı olası siber saldırılara, yetkisiz erişimlere ve veri ihlallerine karşı korumak için proaktif adımlar atmak hayati öneme sahiptir.

Başlamadan Önce: Hazırlık ve En İyi Uygulamalar

Güvenlik sıkılaştırma işlemlerine başlamadan önce aşağıdaki adımları göz önünde bulundurmanız şiddetle tavsiye edilir:

  • Yedekleme Yapın: Herhangi bir değişiklik yapmadan önce sunucunuzun tam bir yedeğini alın. Bu, beklenmedik sorunlarda hızlıca geri dönebilmenizi sağlar.
  • Test Ortamı Kullanın: Kritik üretim sunucularına uygulamadan önce, güvenlik adımlarını bir test ortamında denemek olası kesintileri önleyecektir.
  • Dokümantasyon: Yaptığınız her değişikliği, tarih ve nedenleriyle birlikte belgeleyin.

Adım 1: Güncel Tutun ve Yama Yönetimi Yapın

Yazılım güncellemeleri, bilinen güvenlik açıklarını kapatan yamalar içerir. Sunucunuzu güncel tutmak, en temel güvenlik adımıdır.

Ubuntu/Debian Tabanlı Sistemler İçin:

sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y

CentOS/RHEL Tabanlı Sistemler İçin:

sudo yum update -y
sudo yum upgrade -y
sudo yum autoremove -y

Otomatik güncellemeleri yapılandırmak, bu süreci daha yönetilebilir hale getirebilir, ancak kritik güncellemeleri manuel olarak kontrol etmek her zaman iyi bir pratiktir.

Adım 2: SSH Güvenliğini Sıkılaştırın

SSH (Secure Shell), Linux sunuculara uzaktan erişim için kullanılan en yaygın protokoldür. SSH güvenliğini sağlamak, yetkisiz erişimi engellemenin anahtarıdır.

1. Varsayılan SSH Portunu Değiştirin

Yaygın taramalardan kaçınmak için varsayılan 22 numaralı portu farklı bir porta taşıyın (örneğin 2222).

sudo nano /etc/ssh/sshd_config

Aşağıdaki satırı bulun ve değiştirin:

#Port 22
Port 2222

2. Parola Yerine Anahtar Tabanlı Kimlik Doğrulama Kullanın

Parola tabanlı kimlik doğrulama yerine SSH anahtar çiftleri kullanmak çok daha güvenlidir.

sudo nano /etc/ssh/sshd_config

Aşağıdaki satırları kontrol edin ve ayarlayın:

PasswordAuthentication no
PubkeyAuthentication yes

3. Root Kullanıcısı ile Doğrudan Erişimi Kapatın

Root kullanıcısının doğrudan SSH üzerinden erişmesini engellemek, sisteminize yönelik saldırı yüzeyini azaltır.

sudo nano /etc/ssh/sshd_config

Aşağıdaki satırı bulun ve değiştirin:

PermitRootLogin no

Değişikliklerden sonra SSH servisini yeniden başlatın:

sudo systemctl restart sshd

Önemli: SSH ayarlarını değiştirdikten sonra, yeni port ve anahtar ile yeni bir oturum açıp erişimi doğrulayın. Mevcut oturumu kapatmadan önce yeni ayarların çalıştığından emin olun!

Adım 3: Güçlü Parola Politikaları Uygulayın

Kullanıcıların güçlü ve karmaşık parolalar kullanmasını zorunlu kılmak, kaba kuvvet saldırılarına karşı koruma sağlar.

  • Minimum parola uzunluğunu ve karmaşıklığını ayarlayın (büyük/küçük harf, sayı, özel karakter).
  • Parola yaşlandırma (password aging) politikaları uygulayın.
  • pam_pwquality modülü ile parola kalitesini artırın (Ubuntu/CentOS).
sudo apt install libpam-pwquality # Ubuntu
sudo yum install pam_pwquality # CentOS

Daha sonra /etc/pam.d/common-password (Ubuntu) veya /etc/pam.d/system-auth (CentOS) dosyasını düzenleyerek parola politikalarını sıkılaştırabilirsiniz.

Adım 4: Kullanıcı ve Grup Yönetimi

Sisteminizde sadece gerekli kullanıcıların ve grupların bulunmasını sağlayın.

  • Gereksiz kullanıcı hesaplarını silin veya devre dışı bırakın.
  • Her kullanıcıya en az yetki prensibiyle (Principle of Least Privilege) yetki verin.
  • sudo grubunu kullanarak belirli kullanıcılara yönetici yetkileri atayın, root kullanıcısını doğrudan kullanmaktan kaçının.
sudo adduser yeni_kullanici
sudo usermod -aG sudo yeni_kullanici

Adım 5: Firewall (Güvenlik Duvarı) Yapılandırması

Bir güvenlik duvarı, sunucunuza gelen ve giden ağ trafiğini kontrol ederek istenmeyen erişimi engeller.

Ubuntu İçin UFW (Uncomplicated Firewall):

sudo ufw enable
sudo ufw allow ssh # veya 2222 gibi özel portunuz
sudo ufw allow http
sudo ufw allow https
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw status verbose

CentOS İçin firewalld:

sudo systemctl enable firewalld
sudo systemctl start firewalld
sudo firewall-cmd --permanent --add-service=ssh # veya --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Adım 6: Gereksiz Servisleri Kapatın

Sunucunuzda çalışmayan ve ihtiyacınız olmayan servisleri kapatmak, saldırı yüzeyini önemli ölçüde azaltır.

sudo systemctl list-units --type=service --state=running
sudo systemctl disable <servis_adı>
sudo systemctl stop <servis_adı>

Herhangi bir servisi kapatmadan önce, bu servisin sisteminiz için gerekli olup olmadığını veya başka bir servise bağımlılığı olup olmadığını mutlaka kontrol edin.

Adım 7: Log Yönetimi ve İzleme

Sistem loglarını düzenli olarak izlemek ve analiz etmek, potansiyel güvenlik olaylarını erken aşamada tespit etmenizi sağlar.

  • /var/log dizinindeki log dosyalarını (auth.log, syslog, messages vb.) düzenli olarak kontrol edin.
  • rsyslog veya journalctl gibi araçları kullanarak logları merkezi bir sunucuya (SIEM) göndermeyi düşünebilirsiniz.
  • Fail2Ban gibi araçlar, başarısız oturum açma girişimlerini izleyerek saldırgan IP'leri otomatik olarak engelleyebilir.
sudo apt install fail2ban # Ubuntu
sudo yum install fail2ban # CentOS
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Adım 8: Antivirüs ve Rootkit Tarayıcıları

Linux sistemleri Windows kadar yaygın virüs tehditleriyle karşılaşmasa da, kötü amaçlı yazılımlara ve rootkit'lere karşı koruma sağlamak önemlidir.

  • ClamAV: Bilinen virüslere karşı tarama yapabilir.
  • chkrootkit / rkhunter: Sistemde rootkit varlığını tespit etmeye yardımcı olur.
sudo apt install clamav chkrootkit rkhunter # Ubuntu
sudo yum install clamav chkrootkit rkhunter # CentOS

Bu araçları düzenli olarak çalıştırarak sisteminizi tarayın.

Adım 9: SELinux (CentOS) veya AppArmor (Ubuntu) Etkinleştirme

Bu güvenlik mekanizmaları, uygulamaların ve kullanıcıların sistem kaynaklarına erişimini kısıtlayarak ek bir koruma katmanı sağlar.

  • SELinux (Security-Enhanced Linux): CentOS/RHEL sistemlerinde varsayılan olarak bulunur. Genellikle Enforcing modunda çalıştırılması önerilir.
  • AppArmor: Ubuntu sistemlerinde varsayılan olarak bulunur. Uygulama bazında profiller tanımlanarak güvenlik sağlanır.

Bu araçların doğru yapılandırılması karmaşık olabilir, ancak sağladıkları güvenlik faydaları göz ardı edilemez.

Adım 10: Düzenli Yedekleme Stratejileri

En iyi güvenlik önlemleri bile %100 koruma sağlamaz. Bir felaket durumunda verilerinizi kurtarabilmek için düzenli ve güvenli yedeklemeler kritik öneme sahiptir.

  • Verilerinizi düzenli aralıklarla yedekleyin.
  • Yedekleri güvenli, tercihen ayrı bir konumda (bulut depolama, ayrı bir sunucu) saklayın.
  • Yedeklerin geri yüklenebilirliğini periyodik olarak test edin.

Sonuç: Güvenlik Sürekli Bir Yolculuktur

Linux sunucularda güvenlik sıkılaştırma, tek seferlik bir işlem değildir; sürekli bir süreçtir. Siber tehditler evrim geçirdikçe, güvenlik önlemlerinizin de güncel kalması gerekir. Yukarıda belirtilen adımları uygulayarak sunucularınızın güvenlik duruşunu önemli ölçüde artırabilir ve olası saldırılara karşı daha dirençli hale getirebilirsiniz. Unutmayın, proaktif güvenlik yaklaşımı, reaktif olmaktan her zaman daha etkili ve daha az maliyetlidir.

← Blog Listesine Dön