
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.
Aşağıdaki satırı bulun ve yeni bir port numarası belirleyin:
Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:
Bağlantıyı test ettikten sonra eski portu kapatın:
Aşağıdaki satırı bulun ve şu şekilde değiştirin:
Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:
Bundan sonra root kullanıcısı SSH ile giriş yapamaz, ancak normal kullanıcılar sudo yetkisi ile root erişimi sağlayabilir.
Oluşturulan anahtarı sunucuya kopyalama:
Daha sonra şifreli girişleri tamamen devre dışı bırakın:
Servisi yeniden başlatın:
Aşağıdaki satırları ekleyin veya düzenleyin:
Bu ayarlar, 5 dakika (300 saniye) içinde aktif olmayan bağlantıları kapatacaktır.
Servisi yeniden başlatın:
Şu satırları ekleyin:
Bunu kullanarak sadece 192.168.1.0/24 ağı içindeki cihazların SSH bağlantısı yapmasına izin vermiş olursunuz.
Aşağıdaki satırları ekleyin veya düzenleyin:
Engellenen IP adreslerini görmek için:
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
GENEL
Port 2222
BASH
sudo systemctl restart sshd
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
GENEL
PermitRootLogin no
BASH
sudo systemctl restart sshd
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
BASH
ssh-copy-id -i ~/.ssh/id_rsa.pub kullanıcı_adı@sunucu_ip
BASH
sudo nano /etc/ssh/sshd_config
GENEL
PasswordAuthentication no
PubkeyAuthentication yes
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
GENEL
ClientAliveInterval 300
ClientAliveCountMax 2
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
GENEL
AllowUsers kullanıcı_adı@192.168.1.*
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
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.
BASH
sudo systemctl restart fail2ban
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

Nginx ve Apache Güvenliği
0 Yorumlar

Linux’ta Güncelleme ve Yama Yönetimi
0 Yorumlar
Yorumlar ()
Henüz yorum yok. İlk yorum yapan sen ol!