30 Nisan 2025 - 14:33
SSH Güvenliği: Yetkisiz Erişimi Önleme Teknikleri Görseli
Sunucu Yönetimi

SSH Güvenliği: Yetkisiz Erişimi Önleme Teknikleri

Yorumlar
Secure Shell (SSH), Linux ve Unix tabanlı sistemlerde uzak sunucu erişimi için en yaygın kullanılan protokoldür. Ancak, SSH varsayılan yapılandırmayla kullanıldığında brute-force saldırıları, kimlik avı girişimleri ve yetkisiz erişimler gibi güvenlik tehditlerine açık olabilir.

1. SSH İçin Varsayılan Portu Değiştirme

Varsayılan olarak, SSH 22. portu kullanır ve bu, saldırganların brute-force denemeleri yapmasını kolaylaştırır. SSH portunu değiştirerek bu tür saldırıları azaltabilirsiniz.

Port Değiştirme Adımları:

BASH
sudo nano /etc/ssh/sshd_config
Aşağıdaki satırı bulun ve yeni bir port numarası belirleyin:
GENEL
Port 2222
Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:
BASH
sudo systemctl restart sshd
Bağlantıyı test ettikten sonra eski portu kapatın:
BASH
sudo ufw deny 22/tcp
sudo ufw allow 2222/tcp
  • Önemli: Seçtiğiniz yeni portun 1-65535 arasında ve kullanılmayan bir port olması gerekir. 1024'ten büyük port numaraları tercih edilmelidir.

2. Root Kullanıcısı ile SSH Erişimini Devre Dışı Bırakma

Root hesabıyla doğrudan SSH bağlantısı yapmak ciddi bir güvenlik riskidir. Root erişimini devre dışı bırakmak, sunucunun ele geçirilmesini zorlaştırır.

Root SSH Erişimini Kapatma:

BASH
sudo nano /etc/ssh/sshd_config
Aşağıdaki satırı bulun ve şu şekilde değiştirin:
GENEL
PermitRootLogin no
Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:
BASH
sudo systemctl restart sshd
Bundan sonra root kullanıcısı SSH ile giriş yapamaz, ancak normal kullanıcılar sudo yetkisi ile root erişimi sağlayabilir.

3. SSH İçin Güçlü Kimlik Doğrulama Kullanımı

3.1. Şifre Doğrulamasını Devre Dışı Bırakın ve SSH Anahtarlarını Kullanın

Şifre tabanlı doğrulama, brute-force saldırılarına açıktır. SSH anahtar tabanlı kimlik doğrulama kullanarak güvenliği artırabilirsiniz. Anahtar çifti oluşturma:
BASH
ssh-keygen -t rsa -b 4096
Oluşturulan anahtarı sunucuya kopyalama:
BASH
ssh-copy-id -i ~/.ssh/id_rsa.pub kullanıcı_adı@sunucu_ip
Daha sonra şifreli girişleri tamamen devre dışı bırakın:
BASH
sudo nano /etc/ssh/sshd_config
GENEL
PasswordAuthentication no
PubkeyAuthentication yes
Servisi yeniden başlatın:
BASH
sudo systemctl restart sshd
  • SSH anahtarlarını kullanmak, şifreli giriş yöntemine göre çok daha güvenlidir.

4. SSH Bağlantıları İçin Timeout Süresini Kısaltma

Saldırganların sistemde açık bağlantılar üzerinden işlem yapmasını önlemek için otomatik zaman aşımı süresi belirlemek önemlidir.
BASH
sudo nano /etc/ssh/sshd_config
Aşağıdaki satırları ekleyin veya düzenleyin:
GENEL
ClientAliveInterval 300
ClientAliveCountMax 2
Bu ayarlar, 5 dakika (300 saniye) içinde aktif olmayan bağlantıları kapatacaktır. Servisi yeniden başlatın:
BASH
sudo systemctl restart sshd

5. SSH Erişimini Belli IP’lerle Sınırlamak

Eğer belirli bir IP veya ağ bloğu dışında SSH bağlantısı yapılmasını istemiyorsanız, erişimi kısıtlayabilirsiniz.
BASH
sudo nano /etc/ssh/sshd_config
Şu satırları ekleyin:
GENEL
AllowUsers kullanıcı_adı@192.168.1.*
Bunu kullanarak sadece 192.168.1.0/24 ağı içindeki cihazların SSH bağlantısı yapmasına izin vermiş olursunuz.

6. Fail2Ban ile Brute-Force Saldırılarını Önleme

Brute-force saldırılarında sürekli yanlış giriş denemeleri yapılır. Fail2Ban, belirli sayıda hatalı girişten sonra IP'yi otomatik olarak engeller.

Fail2Ban Kurulumu:

BASH
sudo apt install fail2ban -y  # Debian/Ubuntu
sudo yum install fail2ban -y  # CentOS/RHEL

SSH İçin Fail2Ban Yapılandırması:

BASH
sudo nano /etc/fail2ban/jail.local
Aşağıdaki satırları ekleyin veya düzenleyin:
GENEL
[sshd]
enabled = true
bantime = 3600
findtime = 600
maxretry = 3
  • maxretry = 3: 3 başarısız girişten sonra IP engellenir.
  • bantime = 3600: Engellenen IP, 1 saat (3600 saniye) boyunca yasaklanır.
Fail2Ban servisini yeniden başlatın:
BASH
sudo systemctl restart fail2ban
Engellenen IP adreslerini görmek için:
BASH
sudo fail2ban-client status sshd

Özetle

SSH güvenliği, brute-force saldırıları ve yetkisiz erişim risklerini azaltmak için kritik bir konudur. Aşağıdaki adımları uygulayarak sunucunuzu daha güvenli hale getirebilirsiniz:
  • SSH portunu değiştirin ve varsayılan 22 yerine farklı bir port kullanın.
  • Root kullanıcı erişimini kapatın ve normal kullanıcı hesaplarıyla oturum açın.
  • SSH anahtar tabanlı kimlik doğrulama kullanarak şifre girişlerini devre dışı bırakın.
  • Timeout süresini kısaltarak inaktif oturumları otomatik sonlandırın.
  • IP bazlı erişim kısıtlamaları yaparak sadece belirlenen IP’lerin bağlantı yapmasına izin verin.
  • Fail2Ban gibi ek güvenlik yazılımları kullanarak brute-force saldırılarını engelleyin.
  • 💡 Unutmayın: SSH güvenliğini sağlamak, tüm sisteminizin güvenliğini artırır. Düzenli güvenlik kontrolleri yaparak sisteminizi güncel tutun!

Benzer Yazılar

Yorumlar ()

Henüz yorum yok. İlk yorum yapan sen ol!

Yorum Yap