Linux & Open Source

Altyapınızı Güçlendirin: Linux Sunucu Güvenliği ve Zorlaması İçin Kapsamlı Bir Rehber

Bulut bilişim ve dağıtık sistemlerin modern manzarasında Linux sunucunuzun güvenliği yalnızca bir en iyi uygulama değil; iş sürekliliği ve veri bütünlüğü için temel bir gerekliliktir. Orta ve ileri düzey geliştiriciler olarak genellikle uygulama mantığına ve performansa yoğunlaşır, bazen altta yatan ana bilgisayar güvenliğini ihmal ederiz. Ancak tek bir yanlış yapılandırma hassas verileri dışarıya açabilir veya bir saldırgana root erişimi sağlayabilir. Bu gönderi, ağ çevre kontrolünden derinlemesine sistem denetimine kadar ilerleyerek bir Linux ortamını zorlamak için gereken savunmanın temel katmanlarını inceler.

Uzaktan Giriş Noktasını Güvence Altına Alma: SSH Zorlaması

Güvenli Kabuk (SSH), uzaktan yönetimin birincil yöntemidir ve bu nedenle otomatik brute-force (kaba kuvvet) saldırılarının ilk hedefidir. Varsayılan yapılandırmalar üretim ortamları için nadiren yeterince güvenlidir. İlk adım, şifreli anahtar çiftlerinin kullanımını zorlayarak şifre kimlik doğrulamasını tamamen devre dışı bırakmaktır. SSH demon yapılandırma dosyasını düzenleyin; bu dosya genellikle /etc/ssh/sshd_config konumunda bulunur ve aşağıdaki yönergeleri uygulayın:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
X11Forwarding no
AllowUsers admin user1
Bu değişiklikleri yaptıktan sonra, yeni kuralları uygulamak için SSH hizmetini yeniden başlatın. Bu yapılandırma, yalnızca belirli kullanıcıların SSH üzerinden oturum açabilmesini, doğrudan root erişiminin engellenmesini ve kimlik doğrulaması için yalnızca herkese açık anahtar kriptografisinin kullanılmasını sağlar; bu da şifre tahmin saldırılarını etkili bir şekilde etkisiz hale getirir.

Zorunlu Erişim Kontrolü: SELinux ve AppArmor

Geleneksel keyfi erişim kontrolü (DAC), dosya izinlerine dayanır ve bir işlem root ayrıcalıkları elde ederse bu ihlal edilebilir. SELinux (Güvenlik Geliştirilmiş Linux) ve AppArmor gibi Zorunlu Erişim Kontrolü (MAC) sistemleri, dosya izinlerinden bağımsız olarak uygulamaların ne yapabileceğini kısıtlayan politikaları uygulayarak ek bir güvenlik katmanı sağlar. SELinux, RHEL tabanlı dağıtımlarda varsayılandır; AppArmor ise genellikle Debian ve Ubuntu sistemlerinde bulunur. Sisteminizin bunları destekleyip desteklemediğinden emin değilseniz, aşağıdaki komutla kontrol edebilirsiniz:
sestatus  # SELinux için
sudo apparmor_status # AppArmor için
Etkinleştirildiğinde, MAC sistemleri ya "Uygulama" (Enforcing) ya da "Duyarlı" (Permissive) modda çalışır. Yasal trafiği engellemeden potansiyel politika ihlallerinin günlüklerini oluşturmak için her zaman Duyarlı modda başlayın. Politikaları gerekli uygulama davranışlarına izin verecek şekilde ayarladıktan sonra, yetkisiz eylemleri aktif olarak reddetmek için Uygulama moduna geçin. Bu bölütleme, Nginx gibi bir web sunucusu ele geçirilirse saldırganın sistemin diğer kısımlarına veya web kökü dışındaki hassas verilere kolayca erişememesini sağlar.

Ağ Çevresi ve Saldırı Önleme

Sağlam bir güvenlik duvarı, harici tehditlere karşı savunmanın ilk çizgisidir. Linux'ta iptables (eski) veya halefi olan nftables, paket filtreleme için güçlü araçlardır. Birçok yönetici için UFW (Anlaşılır Güvenlik Duvarı), bu altta yatan teknolojilerden yararlanırken daha basit bir arayüz sunar.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
Bu temel yapılandırma, varsayılan olarak tüm gelen trafiği reddeder ve yalnızca giden bağlantılara, SSH'ye, HTTP'ye ve HTTPS'ye izin verir. Kalıcı otomatik saldırılara karşı koruma sağlamak için Fail2Ban entegrasyonu hayati önem taşır. Fail2Ban, kötü amaçlı desenleri (örneğin tekrarlayan başarısız giriş denemeleri) için günlük dosyalarını tarar ve saldırgan IP adreslerini yasaklamak için güvenlik duvarı kurallarını günceller.

Denetim ve Sistem Bütünlüğü

Güvenlik yalnızca önlemden ibaret değildir; aynı zamanda tespit ve hesap verebilirlikle de ilgilidir. Linux Denetim Sistemi (auditd), belirli sistem çağrılarını ve dosya erişim olaylarını izlemenizi ve kaydetmenizi sağlar. Hassas dizinler veya kritik ikili dosyalar için kurallar tanımlayarak yetkisiz değişiklikleri veya şüpheli faaliyetleri takip edebilirsiniz.
sudo auditctl -w /etc/passwd -p wa -k identity_changes
Bu komut, /etc/passwd dosyasındaki herhangi bir yazma veya öznitelik değişikliğini izler ve olayı daha kolay günlük ayrıştırması için "identity_changes" (kimlik_değişiklikleri) etiketiyle işaretler. Bu günlükleri düzenli olarak gözden geçirmek, gerçek zamanlı olarak herhangi bir anormalliğin farkında olmanızı sağlar.

Sonuç

Bir Linux sunucusunu güvence altına almak tek seferlik bir kurulum değil, devam eden bir süreçtir. Zorlanmış SSH yapılandırmaları, Zorunlu Erişim Kontrolü, sıkı güvenlik duvarı kuralları, Fail2Ban gibi saldırı önleme araçları ve kapsamlı denetimleri birleştirerek derinlemesine savunma stratejisi oluşturursunuz. Bu katmanlı yaklaşım, bir kontrolün aşılması durumunda bile diğerlerinin altyapınızı korumak için yerinde kalmasını sağlar. Düzenli güncellemeler, yama yönetimi ve sürekli izleme, dirençli ve güvenli bir ortam sürdürmek için operasyonel iş akışınızın ayrılmaz parçaları olmalıdır.
Share: