Linux VPS'te SSH nasıl güvenli hale getirilir
Herkese açık bir VPS, internete bağlandığı andan itibaren dakikalar içinde otomatik oturum açma denemelerine maruz kalır. Bu adımlar SSH'ye yapılan saldırıları çok daha zor hale getirir. Ubuntu veya Debian için yazılmıştır. Henüz bir sunucu oluşturmadıysanız bir Linux VPS kiralayabilir ve temiz bir imajla başlayabilirsiniz. Yeni ayarları ikinci bir pencereden test edene kadar mevcut SSH oturumunuzu açık tutun.
1. Sudo yetkisine sahip normal bir kullanıcı oluşturun
adduser deploy
usermod -aG sudo deploy2. Parola yerine SSH anahtarları kullanın
Kendi bilgisayarınızda:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPParolaları kapatmadan önce anahtarla bir kez oturum açarak çalıştığını doğrulayın.
3. Parola ve root girişini kapatın
/etc/ssh/sshd_config.d/99-hardening.conf dosyasını oluşturun:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Sözdizimini kontrol edin ve servisi yeniden yükleyin. Servis adı Ubuntu ve Debian'da ssh, RHEL tabanlı sistemlerde sshd olarak geçer:
sudo sshd -t && sudo systemctl reload sshİkinci bir terminal açıp yeniden oturum açın. Ancak bundan sonra eski oturumu kapatın.
4. Güvenlik duvarını etkinleştirin
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseYalnızca ihtiyacınız olan portları açın; örneğin web sunucusu için 80 ve 443. Bulut panelindeki bir güvenlik duvarı kuralıyla SSH erişimini kendi IP adresinize de sınırlayabilirsiniz.
5. Tekrarlayan hatalı denemeleri Fail2ban ile engelleyin
sudo apt install -y fail2ban/etc/fail2ban/jail.local dosyasını oluşturun:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. Güvenlik güncellemelerini otomatik yükleyin
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. İsteğe bağlı ek önlemler
- SSH portunu değiştirmek log gürültüsünü azaltır ancak tek başına bir güvenlik önlemi değildir.
- Özel anahtarı bir parola ile koruyun ve güvenli bir yerde yedeğini saklayın.
lastvesudo journalctl -u ssh --since todaykomutlarıyla oturum açmaları inceleyin.- Sunucu yapılandırıldıktan sonra temiz bir başlangıç noktasını geri yükleyebilmek için bir anlık görüntü alın.
Kilitlenirseniz bulut panelinizdeki tarayıcı konsolunu kullanarak oturum açın ve yapılandırmayı düzeltin. Bir sonraki koruma katmanı için DDoS koruma rehberimize bakabilirsiniz.
Sık sorulan sorular
Root girişini kapatmak güvenli mi?
Evet, önce bir sudo kullanıcısı oluşturup anahtarının çalıştığını test ettiyseniz. Yönetici komutlarını yine sudo ile çalıştırabilirsiniz.
Yalnızca anahtar kullanıyorsam Fail2ban'e ihtiyacım var mı?
İsteğe bağlıdır. Parola ile oturum açma kapalıyken kaba kuvvet saldırısı başarılı olamaz, ancak Fail2ban log gürültüsünü ve yükü azaltır.
SSH anahtarımı kaybedersem ne olur?
Bulut panelinizdeki konsolu kullanarak oturum açın, yeni bir genel anahtarı ~/.ssh/authorized_keys dosyasına ekleyin ve eskisini kaldırın.