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

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

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ı:

sudo nano /etc/ssh/sshd_config

Aşağıdaki satırı bulun ve yeni bir port numarası belirleyin:

Port 2222

Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:

sudo systemctl restart sshd

Bağlantıyı test ettikten sonra eski portu kapatın:

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:

sudo nano /etc/ssh/sshd_config

Aşağıdaki satırı bulun ve şu şekilde değiştirin:

PermitRootLogin no

Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:

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:

ssh-keygen -t rsa -b 4096

Oluşturulan anahtarı sunucuya kopyalama:

ssh-copy-id -i ~/.ssh/id_rsa.pub kullanıcı_adı@sunucu_ip

Daha sonra şifreli girişleri tamamen devre dışı bırakın:

sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes

Servisi yeniden başlatın:

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.

sudo nano /etc/ssh/sshd_config

Aşağıdaki satırları ekleyin veya düzenleyin:

ClientAliveInterval 300
ClientAliveCountMax 2

Bu ayarlar, 5 dakika (300 saniye) içinde aktif olmayan bağlantıları kapatacaktır.

Servisi yeniden başlatın:

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.

sudo nano /etc/ssh/sshd_config

Şu satırları ekleyin:

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:

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

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

sudo nano /etc/fail2ban/jail.local

Aşağıdaki satırları ekleyin veya düzenleyin:

[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:

sudo systemctl restart fail2ban

Engellenen IP adreslerini görmek için:

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!

Yorum gönder

This site uses Akismet to reduce spam. Learn how your comment data is processed.