Rehber · Linux & Sunucu

Linux sunucuda SSH güvenliği: anahtar ile giriş, root kapatma ve fail2ban

Kısa cevap

Linux sunucuda SSH nasıl güvenli hale getirilir?

Şifre yerine SSH anahtarıyla giriş yapın, sshd_config'te PasswordAuthentication no ve PermitRootLogin no ayarlayın, ayarı sshd -t ile test edip servisi yeniden yükleyin. Ek olarak fail2ban ile kaba kuvvet denemelerini engelleyin, firewall'da sadece gereken portları açın ve güvenlik güncellemelerini otomatik kurun.

Adım adım

  1. Anahtar oluşturun ve sunucuya kopyalayın

    Kendi bilgisayarınızda ed25519 anahtarı üretin ve sunucuya kopyalayın.

    ssh-keygen -t ed25519 -C "bilgisayarim"
    ssh-copy-id kullanici@sunucu
  2. Anahtarla girişi test edin

    Yeni bir terminalde şifre sormadan girebildiğinizi doğrulayın. Mevcut oturumu kapatmayın.

  3. Şifreli girişi ve root'u kapatın

    /etc/ssh/sshd_config dosyasında (veya sshd_config.d altındaki bir dosyada) şu satırları ayarlayın.

    PasswordAuthentication no
    KbdInteractiveAuthentication no
    PermitRootLogin no
    PubkeyAuthentication yes
  4. Test edip yeniden yükleyin

    Yazım hatası sizi dışarıda bırakmasın: önce yapılandırmayı test edin, sonra servisi yeniden yükleyin ve yeni bir oturumla tekrar girin.

    sudo sshd -t && sudo systemctl reload ssh
  5. Firewall

    Sadece gereken portlara izin verin.

    sudo ufw allow OpenSSH
    sudo ufw enable
    sudo ufw status
  6. fail2ban

    Tekrarlanan başarısız girişleri yapan IP'leri geçici olarak engeller.

    sudo apt install fail2ban
    sudo systemctl enable --now fail2ban
    sudo fail2ban-client status sshd
  7. Otomatik güvenlik güncellemeleri

    Debian/Ubuntu'da güvenlik yamalarını otomatik kurun.

    sudo apt install unattended-upgrades
    sudo dpkg-reconfigure -plow unattended-upgrades

Sık sorulan sorular

SSH portunu 22'den değiştirmeli miyim?

Port değiştirmek loglardaki rastgele denemeleri azaltır ama güvenlik önlemi değildir. Asıl koruma şifreli girişi kapatıp anahtar kullanmaktır.

Ubuntu'da servisin adı ssh mi sshd mi?

Debian ve Ubuntu'da servis adı ssh, RHEL/Rocky/Alma'da sshd'dir. Komutu dağıtımınıza göre uyarlayın.