Türkçe

SSH bağlantısını güvenli hale getirme

Brute force saldırılarına karşı SSH bağlantısını güvenli hale getirme

Varsayılan SSH portu (22) genellikle otomatik brute force saldırılarının hedefidir. Bu rehber SSH portunu değiştirmeyi ve sunucu güvenliğini artıran ek ayarları açıklar.

📋 Ön koşullar

  • root veya sudo erişimli VPS sunucu
  • Aktif SSH bağlantısı
  • Kurulu ve yapılandırılmış UFW (bkz. UFW kurulumu)

⚠️ ÖNEMLİ: SSH oturumunu açık tutun

Önemli: Başlamadan önce aktif bir SSH oturumu bırakın. Bir şey ters giderse hâlâ bağlanıp sorunu düzeltebilirsiniz.

Paralel olarak iki SSH terminali açın:

  • Terminal 1: çalışma oturumu (değişiklikleri yaparsınız)
  • Terminal 2: yedek (sorun olursa diye)

🔧 SSH portunu değiştirme

Adım 1: Yeni port seçin

1024–65535 aralığından bir port seçin. Yaygın portlardan kaçının:

  • 22 (varsayılan SSH, çok saldırıya uğrar)
  • 80, 443 (HTTP/HTTPS)
  • 3306, 5432 (veritabanları)

Örnekler: 2222, 2200, 1022, 5000

Adım 2: SSH yapılandırmasını düzenleyin

Bash
# sshd yapılandırma dosyasını düzenle sudo nano /etc/ssh/sshd_config

Adım 3: Portu değiştirin

#Port 22 satırını bulun ve değiştirin:

# Önce
#Port 22

# Sonra (2222'yi seçtiğiniz portla değiştirin)
Port 2222

İpucu: nano'da "Port 22" aramak için Ctrl + W kullanın.

Adım 4: Kaydet ve çık

nano'da:

  • Ctrl + X — çıkış
  • Y — onay
  • Enter — kaydet

Adım 5: Sözdizimini kontrol edin

Bash
# Yapılandırmanın geçerli olduğunu kontrol et sudo sshd -t

Hata mesajı yoksa yapılandırma doğrudur.

Adım 6: UFW'de yeni porta izin verin

Bash
1# Yeni SSH portuna izin ver (2222'yi kendi portunuzla değiştirin) 2sudo ufw allow 2222/tcp 3 4# İsteğe bağlı: kullanmıyorsanız eski 22 portunu kaldırın 5sudo ufw delete allow 22/tcp 6 7# UFW'yi yeniden yükle 8sudo ufw reload 9 10# Kuralı kontrol et 11sudo ufw status | grep 2222

Adım 7: SSH hizmetini yeniden başlatın

Bash
1# sshd'yi yeni yapılandırmayla yeniden başlat 2sudo systemctl restart sshd 3 4# Hizmetin çalıştığını kontrol et 5sudo systemctl status sshd

Adım 8: Yeni bağlantıyı test edin

Yeni bir terminalde yeni portla bağlantıyı test edin:

Bash
# 2222'yi kendi portunuzla ve user@ip'yi kendi bilgilerinizle değiştirin ssh -p 2222 user@ip-adresiniz

Bağlantı çalışıyorsa 22 numaralı porttaki eski oturumu kapatabilirsiniz.

🔒 Ek güvenlik seçenekleri

Root girişini devre dışı bırakma

Önemli: SSH üzerinden root girişini kapatmak iyi bir uygulamadır. Bu değişiklikten önce sudo'lu bir kullanıcınız olduğundan emin olun.

Bash
1sudo nano /etc/ssh/sshd_config 2 3# Bulun ve ayarlayın 4PermitRootLogin no 5 6# Kaydedin ve yeniden başlatın 7sudo sshd -t 8sudo systemctl restart sshd

Giriş denemesi sayısını sınırlama

Bash
1sudo nano /etc/ssh/sshd_config 2 3# Bu satırları ekleyin veya değiştirin 4MaxAuthTries 3 # en fazla 3 deneme 5LoginGraceTime 30 # giriş için 30 sn

Parola girişini devre dışı bırakma (yalnızca SSH anahtarları)

Bash
1sudo nano /etc/ssh/sshd_config 2 3# Değiştirin 4PasswordAuthentication no 5PubkeyAuthentication yes

Uyarı: Bunu yalnızca SSH anahtarınız yapılandırılmış ve girişi test etmişseniz etkinleştirin!

Yalnızca SSH protokol sürüm 2

Bash
sudo nano /etc/ssh/sshd_config # Satır ekleyin (yoksa) Protocol 2

X11 tünellerini devre dışı bırakma (gerekli değilse)

Bash
sudo nano /etc/ssh/sshd_config # Ayarlayın X11Forwarding no

Örnek tam yapılandırma

/etc/ssh/sshd_config içinde örnek güvenli blok:

# Özel SSH portu
Port 2222

# Root girişi yok
PermitRootLogin no

# Bağlantı limitleri
MaxAuthTries 3
LoginGraceTime 30

# Parola devre dışı (anahtar kullanırken — bilinçli olarak yorum satırını kaldırın)
# PasswordAuthentication no
# PubkeyAuthentication yes

# Yalnızca SSHv2
Protocol 2

# X11 yönlendirme yok
X11Forwarding no

# TCP yönlendirme yok (dikkat — bazı araçları bozabilir)
AllowTcpForwarding no

# Boşta kalınca bağlantıyı kes
ClientAliveInterval 300
ClientAliveCountMax 2

Her değişiklikten sonra:

Bash
sudo sshd -t sudo systemctl restart sshd

🔄 Gerekirse sudo'lu kullanıcı oluşturma

Root girişini kapattıysanız sudo'lu bir kullanıcınız olduğundan emin olun:

Bash
1# Yeni kullanıcı 2sudo adduser kullanicim 3 4# sudo grubuna ekle 5sudo usermod -aG sudo kullanicim 6 7# sudo testi 8su - kullanicim 9sudo whoami 10# "root" görünmeli

✅ Son doğrulama

SSH durumu

Bash
1sudo systemctl status sshd 2 3# Port dinleme 4sudo netstat -tlnp | grep ssh 5# veya 6sudo ss -tlnp | grep ssh 7 8# Yapılandırmadaki port 9sudo sshd -T | grep port

SSH günlükleri

Bash
1# Bağlantı denemeleri 2sudo tail -f /var/log/auth.log 3 4# Başarılı girişler 5sudo grep "Accepted" /var/log/auth.log 6 7# Başarısız denemeler 8sudo grep "Failed" /var/log/auth.log

🛡️ Ek koruma: fail2ban

fail2ban, tekrarlanan başarısız giriş denemelerinde IP adreslerini otomatik engeller.

fail2ban kurulumu

Bash
sudo apt update sudo apt install fail2ban -y

Temel yapılandırma

Bash
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo nano /etc/fail2ban/jail.local

SSH için örnek:

INI
1[sshd] 2enabled = true 3port = 2222 # Yeni SSH portunuz 4maxretry = 3 # Ban öncesi deneme 5bantime = 3600 # Ban süresi saniye (1 sa) 6findtime = 600 # Deneme penceresi (10 dk)

fail2ban'ı başlatma

Bash
1sudo systemctl start fail2ban 2sudo systemctl enable fail2ban 3sudo systemctl status fail2ban 4 5# Engellenen IP listesi 6sudo fail2ban-client status sshd

🆘 Sorun giderme

SSH erişimi yok

  1. Yedek oturumu kullanın (Terminal 2).

  2. Yedek oturum yoksa:

    • erişim bilgilerinizle Infrawire desteğine başvurun

    • müşteri panelinde VNC/KVM konsolunu kullanın

    • yerel bağlanın ve eski yapılandırmayı geri yükleyin:

      Bash
      sudo nano /etc/ssh/sshd_config # Örn. Port 22'yi geri yükleyin sudo systemctl restart sshd

SSH portu yanıt vermiyor

Bash
sudo netstat -tlnp | grep ssh sudo ufw status | grep 2222 sudo journalctl -u sshd -n 50

Eski port üzerinden geçici bağlantı

Bash
sudo ufw allow 22/tcp ssh -p 22 user@ip-adresiniz sudo ufw delete allow 22/tcp

📚 Ek kaynaklar

❓ Sık sorulan sorular

S: SSH için hangi portu seçmeliyim?
C: 1024–65535 aralığından. Yaygın hizmet portlarından (80, 443, 3306 vb.) kaçının. 2222, 2200, 1022 gibi portlar uygundur.

S: Aynı port birden fazla hizmeti sunabilir mi?
C: Hayır — her hizmetin kendi benzersiz portu olmalıdır.

S: SSH portunu gerçekten değiştirmek gerekli mi?
C: Şiddetle önerilir — 22 numaralı porttaki toplu tarama ve brute force saldırılarını büyük ölçüde azaltır.

S: Port değiştirdikten sonra fail2ban gerekli mi?
C: Zorunlu değil, ancak ek bir koruma katmanı sağlar.

S: Yeni portla SSH istemcisinde nasıl bağlanırım?
C: -p seçeneği, örn. ssh -p 2222 user@ip-adresiniz


Güvenli bağlantılar.

Yardıma mı ihtiyacınız var?

Bu rehber hakkında sorularınız mı var? Ekibimiz ve topluluğumuz yardımcı olmaya hazır.

En yeni teklifler, indirimler ve özel promosyonlardan haberdar olun.

Promosyonları gör