SSH girişinde yüksek güvenlik

Web sitenizde daha fazla güvenlik için SSH kullanıyorsanız, 6 adımda güvenlik derecenizi artırın...

Yüksek güvenlik için...

Secure SHell kurduğunuzda güvensiz sunucularda ve güvensiz ağ bağlantılarında güvenlik sağlarsınız. Bu oldukça kolay olduğu için pek çok insan SSH kullanıyor ancak herkes yeterince dikkatli davranmıyor.

SSH sunucu kullananlar hergün binlerce başarısız giriş denemesiyle karşılaşıyorlar. Bu abartı gibi görünebilir ama log dosyalarını incelerseniz bunun doğru olduğunu görürsünüz. Bunlardan bazıları gerçekten başarısız giriş denemeleri, bazıları ise kötü niyetli denemeler.

Aslında oldukça basit bazı yöntemlerle güvenliği arttırmak mümkün. Özellikle de alt, orta seviye saldırganların büyük kısmını kolayca engelleyebilirsiniz.

İşte size SSH güvenliğini arttırmanızda yardımcı olacak 6 yöntem...

1. Güçlü şifreler oluşturun
Savunmanın ilk hattını güçlü bir şifreyle oluşturun. Güçlü şifre oluşturma yöntemleri için makalemize göz atın.

Temelde uzun şifreler oluşturmanız, farklı karakterler kullanmanız gerekiyor. Geniş bir kullanıcı kitleniz varsa PAM modülleri de kullanabiillirsiniz. pam_cracklib veya pam_ passwdqc gibi eklentiler şifrelerin güvenli olmasını zorlayacaktır.

2. Kök dizine girişi devre dışı bırakın

2. Kök dizine girişi devre dışı bırakın

Sshd config dosyasında PermitRootLogin adında bir kısım var. Bunu ayarlayarak kök dizinine direkt girişleri engelleyebilirsiniz. Ayarlamak için config dosyasındaki ayarı "no" yapmanız gerekiyor. Kök dizin şifresini ele geçirmek potansiyel hackerların sıkça kullandığı bir saldırı metodudur. Bu değişikliği yaptığınızda saldırgan hem kullanıcı ismini, hem şifreyi, hem de kök şifresini çözmek zorunda kalır.

Bu savunma metodu Ubuntu'da standart olarak kullanılıyor. Kök dizin şifreyle korunuyor. Elbette bu ek güvenliğe sahip olmanın ortaya koyduğu bir miktar zorluk var. Kök dizine girmeden önce standart kullanıcı girişi yapmanız gerekecek.

3. Şifre bazlı girişleri iptal edin

3. Şifre bazlı girişleri iptal edin
RSA'yı zorunlu hale getirin

Başlık sizi şaşırtmış olabilir, burada ama. RSA doğrulamasını zorunlu hale getirerek güvenliği arttırmak. SSH'de birden çok doğrulama metodu var ve bunlardan ikisi standart olarak aktif. Şifre doğrulaması ve RSA açık/özel (Public/Privare) anahtar doğrulaması. Password Authentication'u config dosyasından kapattığınızda sshd, RSA kullanmak zorunda kalacak. Bu da güvenliğinizi arttıracak.

Ancak bunu yapmadan önce sunucudaki açık anahtarınızın bir kopyasını almalısınız. Hali hazırda bir açık/özel şifre (public/private key) çiftine sahip değilseniz ssh-keygen, çalıştırarak bir tane oluşturun. Bir şifre cümlesi (Passphrase) de seçin. Ssh-copy-id kullanarak açık anahtarınızı, sunucuda yer alan authorized_keys dosyasına kopyalayın.

Bu gerçekten de çok güçlü bir güvenlik çözümüdür. Ancak farklı bilgisayarlardan sunucuya erişmek için özel anahtarınızı yanınızda taşımanızı gerektirir.

4. SSH'yi standart olmayan bir port üzerinden çalı

4. SSH'yi standart olmayan bir port üzerinden çalı

Sshd'nin dinlediği port'u değiştirebilirsiniz. Bunun için sunucunun config dosyasındaki Port parametresini bulmanız gerekiyor. Daha sonra buradaki port sayısını rastgele bir rakamla değiştirin, ancak yüksek bir sayı seçin. Giriş yaparken bu portu da yazmanız gerekecek.

Örneğin:
$ ssh -p 22505 [email protected]
Alternatif olarak bunu SSH config dosyasında her host için ayarlarlayabilirsiniz. (/etc/ssh/ssh_config).

Elbette ki gizlilik tam bir güvenlik sağlamıyor. Sunucuya girmek isteyen bir saldırgan yeterince kararlıysa kullanılan port numarasını nmap port taraması ile bulabilir. Ancak bu savunma "Script kiddie" tabir edilen, önceden hazırlanmış saldırı yazılımlarını kullananları engellemekte çok başarılı. Otomatik kaba kuvvet saldırılarının çoğu port 22'yi kullanıyor. Kısacası bu zayıf saldırganların çoğunu savuşturmakta etkili; ancak tam bir güvenlik sağlamayan bir yöntem.

5. Devamlı saldıranları Ban'leyin

5. Devamlı saldıranları Ban'leyin

Fail2ban isimli bir yazılım kullanarak çok sayıda başarısız sisteme giriş denemesinde bulunanları engelleyebilirsiniz.

Log dosyalarını kontrol ederseniz başarısız giriş denemelerinin devamlı olarak geldiği IP numaralarını görürsünüz. Belirli bir sayıda başarısız giriş denemesi biriktiğinde fail2ban firewall kurallarına engellenecek olan IP numarasını ekler. Geçici bir süre veya kalıcı ban uygulanabilir. Ancak kötü niyetli olmayan kullanıcıların da zaman zaman şifrelerini üst üste yanlış girmeleri mümkün. Bu yüzden ban'ı geçici tutmanız yerinde olacaktır.

6. Bağlantı sayısını kısıtlayın

6. Bağlantı sayısını kısıtlayın

Bir IP adresinin açabileceği SSH bağlantı sayısını kısıtlayın. Bu limit aşıldığında IP adresini kara listeye alın. Bununla birlikte o IP'den gelen bütün bağlantıları bir saatliğine kapatın ve artık çok daha güvendesiniz! Bütün bunları Iptables recent modülünü kullanarak yapabilirsiniz.

Bu yöntem saldırgan aynı IP'den saldırırsa işe yarar ve başarılı SSH bağlantılarıyla, başarısız olanlar arasında ayrım yapmaz. Sadece deneme sayısını kısıtlar.

Okuyucu Yorumları