sunucuhataları
teknik çözüm merkezi
Ara Giriş Yap Üye Ol
🏠 Ana Sayfa 📚 Kurulum Rehberleri
Kategoriler
🌐 Web Sunucuları 🐧 İşletim Sistemleri 📦 Sanallaştırma & VPS 🖥️ Kontrol Panelleri 🔒 SSL & Güvenlik 📝 CMS & Uygulamalar 🗄️ Veritabanı 📧 Mail Sunucusu 🗨️ Forum ℹ️ Hakkımızda 📧 İletişim
Giriş Yap Üye Ol
Ana Sayfa SSL & Güvenlik SSH Güvenliği SSH Güvenliği: Anahtar Tabanlı Giriş, Port Deği...
🔑 SSH Güvenliği

SSH Güvenliği: Anahtar Tabanlı Giriş, Port Değiştirme ve Bastion

SSH güvenliğini artırın: anahtar tabanlı kimlik doğrulama, port değiştirme, Fail2Ban ve bastion/jump host yapılandırması.

📅 11 Mart 2025 👁 43 görüntülenme ⏱ 3 dk okuma
𝕏 Paylaş
📋 İçindekiler göster/gizle

SSH Güvenliği Neden Önemlidir?

SSH (Secure Shell), Linux sunuculara uzaktan erişimin temel protokolüdür. Ancak varsayılan yapılandırmasıyla çalışan bir SSH sunucusu, İnternet'e açık olduğunda sürekli kaba kuvvet (brute force) saldırılarına maruz kalır. Tipik bir VPS, port 22'de dakikada yüzlerce başarısız giriş denemesine sahiptir. Bu nedenle SSH güvenliğini sıkılaştırmak, sunucu güvenliğinin birinci adımı olmalıdır.

Temel SSH Güvenlik Prensipleri

  • Şifre ile girişi devre dışı bırakın, anahtar kullanın
  • Root girişini doğrudan engelleyin
  • Varsayılan port 22'yi değiştirin
  • Erişime izin verilecek kullanıcıları kısıtlayın
  • Başarısız giriş denemelerini izleyin ve engelleyin (Fail2Ban)
  • İki faktörlü kimlik doğrulama (2FA) ekleyin

Anahtar Oluşturma

ED25519 Anahtar Çifti (Önerilen)

ED25519, RSA'ya göre daha kısa ama en az o kadar güvenli modern bir anahtar algoritmasıdır. Yeni kurulumlar için ED25519 kullanmanız önerilir:

# Yerel makinenizde (istemci) çalıştırın
ssh-keygen -t ed25519 -C "isim@sirket.com"

# Dosya konumu sorulduğunda Enter'a basın (varsayılan: ~/.ssh/id_ed25519)
# Parola (passphrase) girin - boş bırakılabilir ama önerilmez

# Oluşturulan dosyalar:
# ~/.ssh/id_ed25519      (özel anahtar - kesinlikle paylaşmayın!)
# ~/.ssh/id_ed25519.pub  (public anahtar - sunucuya kopyalanır)

RSA Anahtar Çifti (Eski sistemler için)

ssh-keygen -t rsa -b 4096 -C "isim@sirket.com"

Public Anahtarı Sunucuya Kopyalama

# Otomatik yöntem
ssh-copy-id -i ~/.ssh/id_ed25519.pub kullanici@SUNUCU_IP

# Manuel yöntem (ssh-copy-id yoksa)
cat ~/.ssh/id_ed25519.pub | ssh kullanici@SUNUCU_IP \
  "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

# Doğrulama: anahtar ile giriş deneyin
ssh -i ~/.ssh/id_ed25519 kullanici@SUNUCU_IP

sshd_config Sıkılaştırma

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
nano /etc/ssh/sshd_config
# Varsayılan port değiştir (örnek: 2222)
Port 2222

# Root girişini engelle
PermitRootLogin no

# Şifre ile girişi kapat (anahtar kurulduktan SONRA kapatın!)
PasswordAuthentication no
ChallengeResponseAuthentication no

# Yalnızca belirtilen kullanıcılara izin ver
AllowUsers yonetici deploy

# Güvenli şifreleme algoritmaları
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,diffie-hellman-group16-sha512

# Bağlantı zaman aşımı
LoginGraceTime 30
MaxAuthTries 3
ClientAliveInterval 120
ClientAliveCountMax 3
# Yapılandırmayı doğrula ve uygula
sshd -t
systemctl restart sshd

# Güvenlik duvarında yeni portu açmayı unutmayın!
ufw allow 2222/tcp

Fail2Ban ile Kaba Kuvvet Koruması

apt install -y fail2ban

cat > /etc/fail2ban/jail.local << 'EOF'
[DEFAULT]
bantime  = 3600
findtime = 600
maxretry = 3
banaction = iptables-multiport

[sshd]
enabled  = true
port     = 2222
logpath  = %(sshd_log)s
maxretry = 3
EOF

systemctl enable --now fail2ban
fail2ban-client status sshd

Bastion / Jump Host Yapılandırması

Bastion host, iç ağdaki sunuculara erişim için tek giriş noktası görevi gören güçlendirilmiş bir sunucudur. Tüm SSH bağlantıları bu sunucu üzerinden geçer.

~/.ssh/config ile Jump Host Tanımlama

# ~/.ssh/config (yerel makinenizde)
Host bastion
    HostName 203.0.113.1
    User yonetici
    Port 2222
    IdentityFile ~/.ssh/id_ed25519

Host ic-sunucu-1
    HostName 192.168.1.10
    User deploy
    ProxyJump bastion
    IdentityFile ~/.ssh/id_ed25519

Host ic-sunucu-2
    HostName 192.168.1.20
    User deploy
    ProxyJump bastion
# Artık doğrudan iç sunucuya bağlanabilirsiniz:
ssh ic-sunucu-1  # Otomatik olarak bastion üzerinden geçer

Sık Karşılaşılan Sorunlar

  • Anahtar sonrası giriş yapılamıyor: ssh -v kullanici@SUNUCU ile hata ayrıntısını görün. ~/.ssh/authorized_keys dosyasının izni 600 olmalıdır.
  • PasswordAuthentication no sonrası kilitlendi: VPS konsoluna (KVM/IPMI) bağlanarak sshd_config'i düzeltin.
  • Fail2Ban yanlış IP'leri banlıyor: /etc/fail2ban/jail.local dosyasına ignoreip = 127.0.0.1/8 KENDİ_IP_ADRESİNİZ ekleyin.

İlgili Makaleler

🤔 Bu kurulumda sorun mu yaşıyorsunuz?

Hata mesajınızı kopyalayıp foruma konu açın. Topluluğumuz size özel durumunuza göre yardımcı olacaktır.

🗨️ Foruma Katıl & Yardım Al
Etiketler: #ssh #güvenlik #sunucu #ed25519

Yorumlar

Henüz yorum yok. İlk yorumu siz yapın!

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanır.