SSH, sunucuna uzaktan bağlanmanın en yaygın yolu. Ancak varsayılan SSH ayarları güvenlik açısından yeterli değil. Her gün binlerce bot, sunucuların SSH portlarını tarayarak brute force saldırıları düzenliyor. Birkaç basit ayarla SSH güvenliğini ciddi ölçüde artırabilirsin.
Bu rehberde SSH güvenliğini artırmak için uygulanması gereken 10 kritik adımı detaylıca anlatacağız.
SSH'ı Tehdit Eden Güvenlik Riskleri
- Brute force saldırıları: Otomatik şifre deneme saldırıları
- Dictionary attack: Yaygın şifre listeleriyle deneme
- Man-in-the-middle: Bağlantı araya girme saldırıları
- Key theft: SSH anahtarı çalınması
- Zero-day exploit: SSH yazılımındaki güvenlik açıkları
1. SSH Portunu Değiştir
sudo nano /etc/ssh/sshd_config
# Varsayılan portu değiştir
Port 34821 # Rastgele bir port seç
sudo systemctl restart sshd
2. Root Girişini Kapat
# sshd_config dosyasında:
PermitRootLogin no
3. SSH Key Authentication Kullan
# Yerel makinede key oluştur
ssh-keygen -t ed25519 -C "benim-sunucum"
# Key'i sunucuya kopyala
ssh-copy-id -i ~/.ssh/id_ed25519.pub kullanici@sunucu-ip
# Parola girişini kapat
# sshd_config dosyasında:
PasswordAuthentication no
PubkeyAuthentication yes
4. Fail2Ban Kur
sudo apt install fail2ban
# Yapılandırma dosyası oluştur
sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 34821
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
sudo systemctl enable fail2ban
sudo systemctl restart fail2ban
# Engellenen IP'leri gör
sudo fail2ban-client status sshd
5. Erişimi Sınırla
# Sadece belirli kullanıcılara izin ver
AllowUsers yonetici deploy
# Belirli grupları kısıtla
AllowGroups sshusers
# MaxAuthTries düşür
MaxAuthTries 3
# Login süresini kısalt
LoginGraceTime 20
6. SSH Protokol ve Algoritmalar
# Güçlü şifreleme algoritmaları kullan
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
KexAlgorithms curve25519-sha256@libssh.org
# Eski algoritmaları devre dışı bırak
# DSA key'leri kabul etme
PubkeyAcceptedKeyTypes ssh-ed25519,ssh-rsa
7. İdle Timeout Ayarla
# Boşta kalan oturumları kapat
ClientAliveInterval 300
ClientAliveCountMax 2
# 10 dakika sonra otomatik disconnect
8. Firewall ile SSH Portunu Koru
# UFW ile SSH rate limiting
sudo ufw limit 34821/tcp
# Sadece belirli IP'lerden SSH erişimi
sudo ufw allow from 88.230.45.0/24 to any port 34821
9. İki Faktörlü Doğrulama (2FA)
sudo apt install libpam-google-authenticator
# Yapılandır
google-authenticator
# PAM ayarı
sudo nano /etc/pam.d/sshd
# Ekle: auth required pam_google_authenticator.so
# SSH yapılandırması
# sshd_config'de:
ChallengeResponseAuthentication yes
10. SSH Güncellemelerini Takip Et
# OpenSSH versiyonunu kontrol et
ssh -V
# Güvenlik güncellemelerini uygula
sudo apt update
sudo apt upgrade openssh-server
💡 Güvenlik Altyapıdan Başlar
SSH güvenliği sunucu tarafında önemli olsa da, ağ seviyesinde DDoS koruması olmadan tam güvenlik sağlanamaz. HazalHost VDS sunucuları L3/L4/L7 DDoS korumalı altyapıda çalışır.
SSH Güvenlik Checklist
- ☐ SSH portu değiştirildi mi?
- ☐ Root SSH girişi kapatıldı mı?
- ☐ SSH key authentication aktif mi?
- ☐ Parola girişi kapatıldı mı?
- ☐ Fail2Ban kurulu ve aktif mi?
- ☐ MaxAuthTries düşürüldü mü?
- ☐ Idle timeout ayarlandı mı?
- ☐ Firewall rate limiting aktif mi?
- ☐ SSH ve sistem güncel mi?
🚀 Profesyonel Sunucu, Profesyonel Güvenlik
Güvenlik yapılandırmasıyla uğraşmak istemiyorsan, HazalHost'un DDoS korumalı VDS sunucuları ile en kolay çözümü seç.
Sonuç
SSH güvenliği, sunucu güvenliğinin en kritik bileşenidir. Bu rehberdeki 10 adımı uygulayarak sunucunu otomatik saldırılardan büyük ölçüde koruyabilirsin. En önemli üçlü: SSH key authentication + Fail2Ban + port değiştirme.
Sık Sorulan Sorular (FAQ)
SSH key mi parola mı daha güvenli?
SSH key çok daha güvenlidir. 4096 bit RSA veya Ed25519 anahtarlar brute force ile kırılması pratik olarak imkansızdır. Parola girişini tamamen kapatmanız önerilir.
Fail2Ban ne kadar etkili?
Fail2Ban, brute force saldırılarına karşı çok etkilidir. Belirli sayıda başarısız denemeden sonra IP'yi otomatik olarak engeller. Ancak dağıtık saldırılara karşı tek başına yeterli olmayabilir.
SSH key'imi kaybedersem sunucuma nasıl bağlanırım?
VNC veya KVM konsol üzerinden sunucuya bağlanarak parola girişini geçici olarak aktif edebilir veya yeni bir SSH key ekleyebilirsin. Bu yüzden her zaman konsol erişiminin açık olduğundan emin ol.