Linux & Open Source

Linux Sunucu Güvenliği ve Sertleştirme Stratejilerini Ustalaşmak

Güvenlik bir özellik değil; sürekli bir süreçtir. Modern tehdit ortamında, varsayılan bir Linux yapılandırmasını açık bırakmak, ihlale davetiye çıkarmaktır. Geliştiriciler ve sistem yöneticileri olarak "varsayılan olarak reddet" zihniyetini benimsemeliyiz. Bu rehber, üretim sunucularınızı yaygın ve gelişmiş saldırılara karşı korumak için uygulamanız gereken kritik savunma katmanlarını kapsar. Temel eğitimlerin ötesine geçerek, güvenliği kullanılabilirlikle dengeleyen pratik, üretim ortamına hazır sertleştirme tekniklerine odaklanacağız.

SSH Erişimini Kilitleme

Güvenli Kabuk (SSH), çoğu saldırı için birincil giriş noktasıdır. Yanlış yapılandırılmış SSH, sunucu ihlallerinin başlıca nedenidir. İlk adımınız, zayıf kimlik doğrulama yöntemlerini ortadan kaldırmak olmalıdır.

1. Parola Kimlik Doğrulamayı Devre Dışı Bırakın: Açık anahtar kriptografisinin kullanımını zorunlu kılın.

2. Varsayılan Portu Değiştirin: Bu, gizlilik yoluyla güvenlik olmasa da, 22 portundan ayrılmak, otomatik tarama botlarından gelen gürültüyü azaltır.

3. Kullanıcıları Kısıtlayın: Yalnızca belirli yönetici hesaplarının oturum açmasına izin verin.

# /etc/ssh/sshd_config

# Parola ve kök (root) girişini devre dışı bırak
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

# Erişimi belirli kullanıcılara kısıtla
AllowUsers deploy admin

# Varsayılan portu değiştir (isteğe bağlı)
Port 2222

# Güçlü anahtar değişim algoritmalarını zorla
KexAlgorithms curve25519-sha256, diffie-hellman-group-exchange-sha256

Bu ayarları değiştirdikten sonra, kendinizi dışarıda bırakmadığınızdan emin olmak için mevcut oturumunuzu kapatmadan önce ayrı bir oturumda test edin.

Zorunlu Erişim Denetimi (MAC) Uygulama

Geleneksel Unix izinleri (okuma/yazma/çalıştırma), karmaşık ortamlar için yetersizdir. SELinux (RHEL/Fedora için standart) ve AppArmor (Ubuntu/Debian için standart) gibi MAC sistemleri, onları çalıştıran kullanıcıdan bağımsız olarak süreçlere politikalar uygular. Bir web sunucusu ele geçirilirse, MAC, hassas dosyalara (ör. /etc/shadow) erişmesini veya yetkilerini yükseltmesini engeller.

SELinux için politikaları ince ayar yapmak üzere semanage ve audit2allow araçlarını kullanın. AppArmor için, /etc/apparmor.d/ konumundaki profilleri kullanarak profiller tanımlayın.

# SELinux durumunu kontrol et
getenforce

# Süreçlerin neden engellendiğini anlamak için son zamanlardaki AVC reddelerini görüntüle
ausearch -m avc -ts recent

Ağ Katmanı Savunması: Güvenlik Duvarları ve Fail2ban

Bir güvenlik duvarı, kapı bekçiniz olarak görev yapar. RHEL tabanlı sistemler için firewalld, Debian tabanlı sistemler için ise ufw kullanın. Hizmetleriniz için (ör. HTTPS için 443, özel SSH portunuz) kesinlikle gerekli olan portları açtığınızdan emin olun.

Fail2ban, başarısız erişim denemelerini izleyerek ve suçlu IP adreslerini dinamik olarak engelleyerek güvenlik duvarınızı tamamlar. Brute-force (zorla deneme) saldırılarını azaltmak için hayati önem taşır.

# fail2ban'ı kur ve etkinleştir
sudo apt-get install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# Özelleştirmek için /etc/fail2ban/jail.local dosyasını oluşturun
[sshd]
enabled = true
port = 2222
filter = sshd
maxretry = 3
bantime = 1h

Sistem Sertleştirme ve Denetim

Sertleştirme, saldırı yüzeyini en aza indirmeyi içerir. Bu, kullanılmayan hizmetleri (FTP veya Telnet gibi) devre dışı bırakmayı, çekirdek parametre ayarlamalarını uygulamayı ve denetim kayıtlarını etkinleştirmeyi kapsar.

Kritik sistem dosyalarındaki değişiklikleri izlemek için auditd kullanın. /etc/passwd veya /etc/sudoers değiştirildiğinde yöneticileri uyaracak izleme kuralları oluşturabilirsiniz.

# Kritik dosyalardaki değişiklikleri izle
sudo auditctl -w /etc/passwd -p wa -k identity
sudo auditctl -w /etc/sudoers -p wa -k sudoers

# Denetim kayıtlarını kontrol et
sudo ausearch -k identity

Ayrıca, çekirdek parametrelerinizin sertleştirildiğinden emin olun. ICMP yönlendirme saldırılarını önlemek ve IP sahteciliği korumasını etkinleştirmek için aşağıdakileri /etc/sysctl.conf dosyasına ekleyin:

net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

Sonuç

Sunucu güvenliği tek seferlik bir görev değil, sürekli bir sorumluluktur. Güçlü SSH yapılandırmalarını, Zorunlu Erişim Denetimini, Fail2ban aracılığıyla dinamik IP engelleme ve titiz denetimleri birleştirerek çok katmanlı bir savunma inşa edersiniz. Kayıtlarınızı düzenli olarak gözden geçirin, yazılımınızı güncel tutun ve sertleştirme önlemlerinizi test edin. Unutmayın, en iyi güvenlik stratejisi, ekibinizin gerçekten sürdürdüğü stratejidir. Temellerle başlayın, ihtiyaç duydukça karmaşıklığı katlayın ve sistem tasarımınızda her zaman en az ayrıcalık ilkesini önceliklendirin.

Share: