Sanal Güvenlik

  1. Anasayfa
  2. »
  3. Rehber
  4. »
  5. Sistem Yöneticileri İçin Güvenli SSH Yapılandırması

Sistem Yöneticileri İçin Güvenli SSH Yapılandırması

Sanal Güvenlik Sanal Güvenlik -
69 0

Sunucu ve sistem yönetimi söz konusu olduğunda, Secure Shell (SSH) protokolü, uzaktan erişim ve yönetim için temel bir araçtır. Ancak, SSH’nin yanlış yapılandırılması, sistemleri ciddi güvenlik açıklarına maruz bırakabilir. Bu rehber, sistem yöneticilerine SSH’yi daha güvenli hale getirmeleri için adım adım bir yol haritası sunarak, potansiyel tehditlere karşı daha dirençli bir altyapı oluşturmalarına yardımcı olmayı amaçlamaktadır.

SSH Güvenliğini Artırma Nedenleri

SSH, şifrelenmiş bir iletişim kanalı sunarak ağ üzerindeki verilerin gizliliğini ve bütünlüğünü sağlar. Ancak, varsayılan yapılandırmalar veya zayıf kimlik doğrulama yöntemleri, yetkisiz erişim girişimlerine zemin hazırlayabilir. Brute-force saldırıları, zayıf şifrelerin denenmesi veya kritik sistem bilgilerinin sızdırılması gibi riskler, SSH güvenliğini proaktif olarak ele almayı zorunlu kılar.

Temel SSH Güvenlik Adımları

1. Varsayılan SSH Portunu Değiştirme

SSH için standart port 22’dir. Bu port, otomatik taramalarda ilk denenendir. Port numarasını değiştirmek, basit ama etkili bir yöntemle otomatik saldırıların büyük bir kısmını engeller.

Adımlar:

  • SSH yapılandırma dosyasını açın: sudo nano /etc/ssh/sshd_config
  • #Port 22 satırını bulun ve yorum satırından çıkararak istediğiniz yeni bir port numarası ile değiştirin (örneğin, 2222). Yüksek port numaraları (genellikle 1024 ve üzeri) tercih edilir.
  • Dosyayı kaydedin ve kapatın.
  • SSH servisini yeniden başlatın: sudo systemctl restart sshd
  • Güvenlik duvarınızda (firewall) yeni portu açmayı unutmayın.

2. Root Girişini Devre Dışı Bırakma

Doğrudan root kullanıcısı ile SSH üzerinden giriş yapmak, ciddi bir güvenlik zafiyetidir. Yetkisiz bir erişim sağlandığında, saldırgan doğrudan en yüksek yetkiye sahip olur.

Adımlar:

  • /etc/ssh/sshd_config dosyasını açın.
  • PermitRootLogin yes satırını bulun ve PermitRootLogin no olarak değiştirin.
  • Dosyayı kaydedin ve kapatın.
  • SSH servisini yeniden başlatın: sudo systemctl restart sshd
  • SSH üzerinden giriş yaptıktan sonra root yetkilerine yükselmek için sudo -i veya su - komutlarını kullanın.

3. Parola Tabanlı Kimlik Doğrulamasını Devre Dışı Bırakma (SSH Anahtar Kullanımı)

Parola tabanlı kimlik doğrulama, brute-force saldırılarının ana hedefidir. SSH anahtar tabanlı kimlik doğrulama, çok daha güvenli bir alternatiftir.

Adımlar:

  1. Yerel makinenizde bir SSH anahtar çifti oluşturun: ssh-keygen -t rsa -b 4096
  2. Oluşturulan genel anahtarı sunucuya kopyalayın: ssh-copy-id kullanıcı@sunucu_ip
  3. Sunucuda, /etc/ssh/sshd_config dosyasını açın.
  4. PasswordAuthentication yes satırını bulun ve PasswordAuthentication no olarak değiştirin.
  5. Dosyayı kaydedin ve kapatın.
  6. SSH servisini yeniden başlatın: sudo systemctl restart sshd

Bu adımdan sonra parola ile giriş yapılamayacak, yalnızca geçerli özel anahtara sahip kullanıcılar giriş yapabilecektir.

4. Sınırlı Kullanıcılar İçin Erişim İzni Verme

SSH üzerinden erişebilecek kullanıcıları sınırlamak, yetkisiz erişim riskini azaltır.

Adımlar:

  • /etc/ssh/sshd_config dosyasını açın.
  • AllowUsers veya AllowGroups direktiflerini kullanarak yalnızca izin verilen kullanıcıları veya grupları belirtin. Örnek: AllowUsers ali can
  • Dosyayı kaydedin ve kapatın.
  • SSH servisini yeniden başlatın: sudo systemctl restart sshd

5. SSH Bağlantı Zaman Aşımı Ayarları

Boşta kalan SSH bağlantılarının otomatik olarak kapatılması, kaynak israfını önler ve potansiyel saldırı yüzeyini daraltır.

Adımlar:

  • /etc/ssh/sshd_config dosyasını açın.
  • Aşağıdaki satırları ekleyin veya mevcut değerlerini güncelleyin:
    • ClientAliveInterval 60 (Sunucu, her 60 saniyede bir istemciye canlılık kontrolü mesajı gönderir.)
    • ClientAliveCountMax 3 (İstemciden 3 kez yanıt gelmezse bağlantı kesilir.)
    • TCPKeepAlive no (Bu ayar genellikle yukarıdakilerle birlikte kullanılır ve TCP düzeyinde keep-alive’ı devre dışı bırakır.)
  • Dosyayı kaydedin ve kapatın.
  • SSH servisini yeniden başlatın: sudo systemctl restart sshd

Ek Güvenlik İpuçları

  • Fail2Ban Kullanımı: Otomatik brute-force saldırılarını tespit ederek IP adreslerini geçici veya kalıcı olarak engellemek için Fail2Ban gibi araçları yapılandırın.
  • SSH Protokol Sürümünü Sınırlama: Eski ve güvensiz protokol sürümlerini devre dışı bırakın. Protocol 2 direktifi ile sadece SSHv2’nin kullanıldığından emin olun.
  • Güncel Tutma: İşletim sisteminizi ve SSH sunucu yazılımını düzenli olarak güncelleyerek bilinen güvenlik açıklarını kapatın.

Yukarıda belirtilen adımları uygulayarak, SSH servisinizin güvenliğini önemli ölçüde artırabilirsiniz. Bu yapılandırmalar, sistemlerinizi dış tehditlere karşı daha dayanıklı hale getirirken, aynı zamanda yönetim süreçlerinizi de daha kontrollü bir hale getirecektir. Güvenlik, tek seferlik bir işlem değil, sürekli bir süreçtir. Bu nedenle, yapılandırmalarınızı düzenli olarak gözden geçirmek ve güncel tehditlere karşı önlemler almak büyük önem taşır.

SSH yapılandırmalarınızda karşılaştığınız en yaygın zorluklar nelerdir ve bu tür güvenlik adımlarının uygulanmasında nelere dikkat edilmelidir?

İlgili Yazılar