SSH ile anahtar tabanlı erişim denetimi

0 ردود 8 مشاهدات
المقيّمون
المشاركون
صاحب الموضوع #1
Giriş ve bağlam
Güvenli uzak erişimin temel taşlarından biri, parola bazlı giriş yerine anahtar tabanlı kimlik doğrulamasını benimsemektir. SSH anahtarları, her kullanıcı için benzersiz bir çift oluşturur: özel anahtar makinede kalır, açık anahtar ise sunucuya yüklenir. Bu yaklaşım, kaba kuvvet saldırılarına karşı daha dirençli olur ve otomatik scriptlerle yapılan bağlantıları güvenli kılar. Ancak doğru yapılandırılmazsa bileşimsel riskler doğurabilir; bu yüzden adımları dikkatli uygulamak gerekir.

Temel kavramlar ve hazırlık
  • Anahtar çifti oluşturma: genellikle ssh-keygen ile yapılır. Varsayılan konumlar ~/.ssh/id_rsa (özel anahtar) ve ~/.ssh/id_rsa.pub (açık anahtar) olarak kabul edilir. Güçlü bir passphrase eklemek, özel anahtarın zor durumda bile korunmasına yardımcı olur.
  • OpenSSH konfigürasyonu: sunucu tarafında /etc/ssh/sshd_config dosyası üzerinde izinler ve protokol sürümü gibi parametreler ayarlanır. En iyi uygulamalar arasında Protocol 2, PasswordAuthentication no, ChallengeResponseAuthentication no, ve PermitRootLogin no bulunur.
  • Yetkilendirme anahtarları: Kullanıcıya özel ~/.ssh/authorized_keys dosyasına eklenen açık anahtarlar; bu dosya sunucunun kullanıcı klasöründe bulunur ve doğru şekilde permissions ile korunmalıdır (ör. 600 = rw-------).


Uygulama adımları (örnek akış)
1) Yerel makinada anahtar çifti üretimi
  • ssh-keygen -t rsa -b 4096 -C "kullanici@makine"
  • Oluşturulan özel anahtar güvenli yerde saklanır; tercihen bir passphrase ile korunur.

2) Açık anahtarın sunucuya yüklenmesi
  • ssh-copy-id kullanımı: ssh-copy-id kullanıcısı@sunucu
  • Aksi durumda manuel olarak ekleme: cat ~/.ssh/id_rsa.pub | ssh kullanici@sunucu "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

3) Sunucu tarafı güvenlik katmanları
  • /etc/ssh/sshd_config üzerinde değişiklikler: PasswordAuthentication no, PermitRootLogin no, PubkeyAuthentication yes
  • SSH servisini yeniden başlatma: systemctl restart sshd (veya service sshd restart)
  • Sıkılaştırılmış izinler: ~/.ssh dizini 700, ~/.ssh/authorized_keys 600, sahibi kullanıcı olmalı

4) Güvenlik iyileştirmeleri
  • Aynı anda birden çok başarısız giriş için fail2ban gibi araçlar kullanılır.
  • SSH protokol sürümü en az 2 olarak sabitlenir; modern anahtarlar ve RSA yerine ED25519 tercih edilebilir.
  • Anahtar yönetimi: eski anahtarlar periyodik olarak devre dışı bırakılır, en azından yetkisiz erişimin fark edilmesini kolaylaştırır.

5) Yedekleme ve kurtarma
  • Özel anahtarın yedeklemesi güvenli bir şekilde (şifreli yedek) yapılır; üçüncü parti depolamalarda erişim kontrolleri ve anahtar kısıtlaması uygulanır.
  • Acil durumda kullanıcı hesaplarının güvenliğini sürdürmek için kurtarma planı düşünülür.


Olası sorunlar ve ipuçları
  • Yetkisiz anahtarlar: authorized_keys içindeki geçmiş anahtarları temizleyin; önemli sunucular için her kullanıcı için tek bir aktif anahtar olması ideal değildir.
  • İzin hataları: ~/.ssh ve alt dosyalarının yanlış izinleri SSH’nin bağlantıyı reddetmesine yol açar. 700 ve 600 standarttır.
  • SSHCfg farkındalığı: Protokol 2 kullanımı ve log kayıtlarının izlenmesi, güvenlik olaylarını hızlı tespit etmek için kritiktir.


Sonuç ve kapanış
Anahtar tabanlı erişim, güvenliği önemli ölçüde artırırken doğru konfigürasyon ve düzenli anahtar yönetimini gerektirir. Sunucunun güvenliğini sürdürmek için düzenli denetimler, güncellemeler ve güvenlik politikaları ile entegrasyon kritik öneme sahiptir. Bu yöntemle ilgili kendi uygulama deneyimleriniz veya karşılaştığınız sorunlar varsa paylaşıp düşüncelerinizi paylaşabilirsiniz.

يجب تسجيل الدخول للرد.

0 اقتباسات محددة