İnternete açık her Linux sunucu, dakikalar içinde otomatik botların SSH giriş denemeleriyle karşılaşır. Bu rehberde SSH anahtarı ile giriş yapmayı, parolalı girişi kapatmayı ve sunucunuzu temel seviyede sıkılaştırmayı adım adım anlatıyoruz.
1. Adım: SSH anahtar çifti oluşturun
Anahtarı kendi bilgisayarınızda oluşturun (Windows 10/11 PowerShell, macOS ve Linux'ta aynı komut çalışır):
ssh-keygen -t ed25519 -C "[email protected]"Dosya konumu için varsayılanı kabul edin ve anahtarınızı korumak için bir parola (passphrase) belirleyin. Bu işlem iki dosya oluşturur:
~/.ssh/id_ed25519: Özel anahtar, kimseyle paylaşmayın.~/.ssh/id_ed25519.pub: Açık anahtar, sunucuya bu yüklenir.
2. Adım: Açık anahtarı sunucuya kopyalayın
macOS/Linux'ta:
ssh-copy-id kullanici@SUNUCU_IP_ADRESIWindows PowerShell'de:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh kullanici@SUNUCU_IP_ADRESI "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"Şimdi şifre sorulmadan bağlanabildiğinizi test edin:
ssh kullanici@SUNUCU_IP_ADRESI3. Adım: sudo yetkili bir kullanıcı oluşturun
Günlük işlerde doğrudan root kullanmak yerine sudo yetkili bir kullanıcı tercih edin:
adduser yonetici
usermod -aG sudo yonetici # Ubuntu/Debian
usermod -aG wheel yonetici # AlmaLinux/RockyArdından 2. adımı bu kullanıcı için de tekrarlayın.
4. Adım: SSH yapılandırmasını sıkılaştırın
Bu adımdan önce anahtarla girişin çalıştığından kesinlikle emin olun ve mevcut SSH oturumunuzu kapatmayın. Aksi halde sunucuya erişiminizi kaybedebilirsiniz.
Ayarları ayrı bir dosyada tutmak güncellemelerde çakışmayı önler:
sudo nano /etc/ssh/sshd_config.d/99-guvenlik.confPasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 30
X11Forwarding noYapılandırmayı test edip servisi yeniden başlatın:
sudo sshd -t
sudo systemctl restart ssh # Ubuntu/Debian
sudo systemctl restart sshd # AlmaLinux/RockyYeni bir terminal penceresinden tekrar bağlanmayı deneyin. Başarılıysa eski oturumu kapatabilirsiniz.
5. Adım (isteğe bağlı): SSH portunu değiştirin
Varsayılan 22 numaralı portu değiştirmek, otomatik tarama botlarının oluşturduğu log kirliliğini büyük ölçüde azaltır. Aynı dosyaya şu satırı ekleyin:
Port 2222Güvenlik duvarında yeni porta izin verin (yeniden başlatmadan önce!):
# UFW (Ubuntu)
sudo ufw allow 2222/tcp
# firewalld (AlmaLinux) + SELinux
sudo firewall-cmd --permanent --add-port=2222/tcp && sudo firewall-cmd --reload
sudo semanage port -a -t ssh_port_t -p tcp 2222Ubuntu 24.04'te SSH, systemd soket aktivasyonu ile çalışabilir. Port değişikliği sonrası sudo systemctl daemon-reload && sudo systemctl restart ssh.socket komutunu da çalıştırmanız gerekebilir.
Artık şu şekilde bağlanırsınız:
ssh -p 2222 kullanici@SUNUCU_IP_ADRESI6. Adım: Ek önlemler
- Fail2Ban ile tekrarlanan hatalı girişleri otomatik engelleyin: UFW ve Fail2Ban rehberi.
- Otomatik güvenlik güncellemeleri için Ubuntu'da
unattended-upgradespaketini etkinleştirin. - Kullanmadığınız servisleri kapatın ve yalnızca gerekli portları açık bırakın.
Sonuç
Bu adımlarla sunucunuz kaba kuvvet saldırılarına karşı çok daha dayanıklı hale geldi. MerkezHost VDS sunucularında ağ seviyesindeki DDoS korumasına ek olarak bu önlemler, sunucunuzu çok katmanlı bir güvenliğe kavuşturur. VDS paketlerimizi inceleyin.
Sık Sorulan Sorular
SSH portunu değiştirmek güvenliği artırır mı?
Port değiştirmek otomatik tarama botlarından gelen gürültüyü azaltır ancak tek başına güvenlik önlemi değildir. Asıl koruma anahtarla giriş ve parolalı girişin kapatılmasıdır.
SSH anahtarımı kaybedersem ne olur?
Sunucuya VNC/konsol üzerinden bağlanarak yeni bir anahtar ekleyebilirsiniz. Bu nedenle anahtarınızın güvenli bir yedeğini almanız önerilir.
