Yeni kurulan bir Linux sunucusu, ilk dakikalardan itibaren otomatik botların ve sözlük saldırılarının hedefi olur. Saldırı yüzeyini daraltmanın en etkili iki yolu, uzaktan erişimin kapısı olan SSH servisini doğru yapılandırmak ve trafiği bir paket filtresiyle sınırlamaktır. Aşağıda, üretim ortamında doğrudan uygulayabileceğiniz yapılandırma adımlarını sırasıyla ele alıyoruz.
Saldırı Yüzeyini Anlamak
Çoğu Linux dağıtımı kurulumdan sonra OpenSSH servisini 22 numaralı portta dinlemeye açar. Genellikle bir sunucu açık internete çıktığı andan itibaren root kullanıcısı ve yaygın parolalarla deneme yapan trafik almaya başlar. Bu trafiği journalctl -u ssh veya /var/log/auth.log kayıtlarında kolayca görürsünüz. Amaç bu denemeleri sıfıra indirmek değil, başarılı olma ihtimallerini ortadan kaldırmak ve gürültüyü azaltmaktır.
Anahtar Tabanlı Kimlik Doğrulama
Parola yerine asimetrik anahtar kullanmak, sertleştirmenin temel taşıdır. İstemci tarafında modern bir Ed25519 anahtarı üretip genel anahtarı sunucuya kopyalarsınız:
ssh-keygen -t ed25519 -a 100 -C "yonetici@bogahost"
ssh-copy-id -i ~/.ssh/id_ed25519.pub yonetici@sunucu-ipAnahtar doğrulandıktan sonra parola ile girişi tamamen kapatabilirsiniz. Bu sayede ele geçirilmiş bir parolanın tek başına anlamı kalmaz; saldırganın ayrıca özel anahtar dosyasına da sahip olması gerekir.
sshd_config Sertleştirmesi
Asıl yapılandırma /etc/ssh/sshd_config dosyasında yapılır. Aşağıdaki direktifler en çok işe yarayan ayarlardır:
- PermitRootLogin no: root ile doğrudan girişi engeller, yetki yükseltme için
sudokullanılır. - PasswordAuthentication no: parola tabanlı oturumları kapatarak yalnızca anahtara izin verir.
- AllowUsers / AllowGroups: SSH erişimini belirli hesaplarla sınırlar.
- MaxAuthTries 3: tek bağlantıda deneme sayısını düşürür.
- Port: standart 22 yerine yüksek bir port seçmek otomatik tarama gürültüsünü azaltır.
# /etc/ssh/sshd_config
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers yonetici
MaxAuthTries 3
LoginGraceTime 30
ClientAliveInterval 300
X11Forwarding noDeğişiklikleri uygulamadan önce sshd -t ile sözdizimini doğrulayın, ardından systemctl reload ssh çalıştırın. Mevcut oturumunuzu kapatmadan ikinci bir terminalden yeni ayarları test etmek, kendinizi dışarıda bırakmamak için kritik bir alışkanlıktır.
Bogahost Önerisi: Port değiştirmek bir gizlilik önlemidir, güvenlik garantisi değildir. Asıl koruma anahtar tabanlı kimlik doğrulama ve firewall kurallarından gelir; portu yalnızca log gürültüsünü azaltmak için değiştirin.
fail2ban ile Otomatik Engelleme
Tekrarlayan başarısız girişleri otomatik olarak engellemek için
fail2banoldukça pratiktir. Auth loglarını izler ve eşik aşıldığında ilgili IP'yi geçici olarak firewall üzerinden bloklar.# /etc/fail2ban/jail.local [sshd] enabled = true port = 2222 maxretry = 4 findtime = 600 bantime = 3600Servisi
systemctl enable --now fail2banile etkinleştirdikten sonrafail2ban-client status sshdkomutuyla aktif yasakları görebilirsiniz. Yoğun trafik alan sistemlerdebantimedeğerini artırmak çoğu durumda işe yarar.Firewall Yapılandırması: nftables, ufw ve firewalld
Linux'ta paket filtreleme çekirdek seviyesinde Netfilter altyapısıyla yapılır. Dağıtıma göre farklı ön yüzler kullanılır. Aşağıdaki tablo en yaygın araçları karşılaştırıyor:
Araç Tipik Dağıtım Arka Plan Kullanım ufw Ubuntu / Debian iptables / nftables Basit, hızlı kural eklemeye uygun firewalld RHEL / Rocky / AlmaLinux nftables Zone tabanlı, dinamik kural yönetimi nftables Tüm modern çekirdekler Netfilter Doğrudan, esnek, betiklenebilir Ubuntu tabanlı bir sistemde varsayılan politikayı kapatıp yalnızca gereken portları açmak şu kadar basittir:
ufw default deny incoming ufw default allow outgoing ufw allow 2222/tcp ufw allow 80/tcp ufw allow 443/tcp ufw enableRHEL ailesinde aynı mantık
firewalldile kurulur:firewall-cmd --permanent --add-port=2222/tcp firewall-cmd --permanent --remove-service=ssh firewall-cmd --reloadTemel ilke her zaman aynıdır: varsayılan olarak gelen trafiği reddet, yalnızca açıkça ihtiyaç duyduğun servisleri beyaz listeye al. Çıkış trafiğini de sınırlamak ileri düzey bir adımdır ve uygulama bağımlılıklarını iyi bilmeyi gerektirir.
İzleme ve Kayıt
Sertleştirme tek seferlik bir iş değil, sürekli izlenmesi gereken bir süreçtir. Birkaç pratik alışkanlık:
- Log denetimi:
journalctl -u ssh --since todayile günlük erişimleri gözden geçirin.- Açık portlar:
ss -tulpnkomutuyla dinleyen servisleri düzenli kontrol edin.- Güncel paketler: OpenSSH ve çekirdek güncellemelerini geciktirmeyin; bilinen açıklar çoğunlukla bu katmanda kapatılır.
Kaynak ölçeklendirme ve yedek altyapı planlarken, kendi kontrolünüzdeki izole bir ortam çoğu kurum için daha öngörülebilir olur. Bu nedenle proje gereksinimlerinize göre bir sanal sunucu çözümüyle test ortamı kurmak ve kritik yükler için ayrılmış bir fiziksel sunucu üzerinde üretim katmanını çalıştırmak dengeli bir yaklaşım sunar.
Özetle
Anahtar tabanlı kimlik doğrulama, root erişiminin kapatılması, fail2ban ve sıkı bir firewall politikası birlikte uygulandığında, sunucunuz otomatik saldırıların büyük çoğunluğuna karşı dirençli hale gelir. Bu katmanları kurduktan sonra düzenli log denetimi ve güncellemelerle koruma seviyesini canlı tutmak, uzun vadede en çok geri dönüş sağlayan yatırımdır.
Reklam Alanı
İçerik Altı (728x90)
Yorumlar (0)
Henüz yorum yapılmamış. İlk yorumu siz yapın!
Yorum Yap