X
X
Phone :
>
Knowledge Base

Knowledge Base

Knowledge Base

Linux Sunucularında Güvenli SSH Erişimi Nasıl Sağlanır?

 

SSH (Secure Shell), uzak sunuculara güvenli bir şekilde bağlanmak ve yönetmek için kullanılan en yaygın yöntemlerden biridir. Linux sunucuları üzerinde SSH erişimi genellikle yönetim, güncelleme ve yapılandırma işlemleri için kullanılır. Ancak, SSH erişimini açık bırakmak potansiyel bir güvenlik açığı yaratabilir. Bu nedenle SSH erişimini güvenli hale getirmek, yetkisiz erişimleri önlemek ve sunucunuzun siber tehditlerden korunmasını sağlamak çok önemlidir. Bu makalede, Linux sunucularında SSH erişiminin nasıl güvenli hale getirileceğini adım adım açıklayacağız.

SSH Erişiminde Güvenlik İhtiyacı

SSH, güvenli bir protokol olmasına rağmen, varsayılan ayarlar genellikle birçok potansiyel güvenlik açığı bırakır. Özellikle internete açık bir sunucu kullanıyorsanız, brute-force saldırıları gibi tehditlerle karşı karşıya kalabilirsiniz. İşte SSH erişimini güvence altına almanızın bazı temel nedenleri:

  1. Yetkisiz Erişimleri Önlemek: SSH ile doğrudan root erişimi sağlayarak kötü niyetli kullanıcıların sunucunuza erişmesini engellemek.
  2. Brute-Force Saldırılarına Karşı Korunmak: SSH portunu değiştirmek ve güvenli kimlik doğrulama yöntemleri kullanarak bu tür saldırılara karşı korunmak.
  3. Veri Güvenliğini Artırmak: SSH anahtarları ile şifreli bağlantılar kurarak verilerin güvenliğini artırmak.

Güvenli SSH Erişimi İçin Adım Adım Yapılacaklar

Adım 1: SSH Portunu Değiştirme

Varsayılan olarak SSH hizmeti port 22'de çalışır. Bu portu değiştirmek, brute-force saldırılarını büyük ölçüde azaltacaktır. SSH konfigürasyon dosyasını düzenleyerek port numarasını değiştirebilirsiniz.

  1. SSH konfigürasyon dosyasını açın:

     
    sudo nano /etc/ssh/sshd_config
  2. Aşağıdaki satırı bulun ve yeni bir port numarası belirleyin (örneğin, 2222):

     
    Port 2222
  3. Değişiklikleri kaydedip SSH hizmetini yeniden başlatın:

     
    sudo systemctl restart sshd

Bu işlemle SSH bağlantınız artık port 22 yerine yeni belirlediğiniz port üzerinden gerçekleşecektir.

Adım 2: Root Kullanıcıyla SSH Erişimini Kapatma

Root kullanıcısı, sistem üzerinde en geniş yetkilere sahip olduğu için root ile doğrudan SSH bağlantısını engellemek sunucu güvenliğini artırır. Bunun yerine kullanıcıları sudo kullanarak root yetkisi vermek daha güvenli bir yöntemdir.

  1. sshd_config dosyasını tekrar açın:

     
    sudo nano /etc/ssh/sshd_config
  2. Aşağıdaki satırı bulup no olarak değiştirin:

     
    PermitRootLogin no
  3. Değişiklikleri kaydedip SSH hizmetini yeniden başlatın:

     
    sudo systemctl restart sshd

Bu sayede root kullanıcıyla doğrudan SSH bağlantısı artık engellenmiş olacak.

Adım 3: SSH Anahtar Tabanlı Kimlik Doğrulama Kullanma

Parola tabanlı kimlik doğrulama yöntemleri, brute-force saldırılarına karşı savunmasızdır. Bunun yerine SSH anahtar tabanlı kimlik doğrulama yöntemi kullanarak güvenliği artırabilirsiniz.

  1. Yerel makinenizde SSH anahtarı oluşturun:

     
    ssh-keygen -t rsa -b 4096
  2. Oluşturulan anahtarı sunucuya kopyalayın:

     
    ssh-copy-id kullanıcı_adı@sunucu_ip_adresi
  3. SSH anahtarı başarılı bir şekilde kopyalandıktan sonra, parola tabanlı kimlik doğrulamayı kapatmak için sshd_config dosyasını düzenleyin:

     
    PasswordAuthentication no
  4. Değişiklikleri kaydedip SSH hizmetini yeniden başlatın:

     
    sudo systemctl restart sshd

Bu adımlar sayesinde, SSH girişleri artık sadece anahtarlar aracılığıyla yapılacak ve parolayla giriş tamamen engellenecektir.

Adım 4: Güvenlik Duvarı Yapılandırması (Firewall)

Güvenli SSH erişimi sağlamak için sunucunuza yalnızca belirli IP adreslerinden bağlantılara izin vererek güvenlik duvarınızı yapılandırabilirsiniz.

  1. UFW (Uncomplicated Firewall) kullanıyorsanız, önce UFW'yi etkinleştirin:

     
    sudo ufw enable
  2. Sadece belirli IP adreslerinden SSH bağlantısına izin verin:

     
    sudo ufw allow from 192.168.1.100 to any port 2222

Bu işlem, sadece belirttiğiniz IP adresinden gelen SSH bağlantılarını kabul eder.

Adım 5: Fail2Ban ile Brute-Force Saldırılarını Engelleme

Fail2Ban, sunucunuza yapılan başarısız SSH giriş denemelerini tespit eder ve belirli bir süre boyunca IP'yi engeller. Bu, brute-force saldırılarına karşı etkili bir önlemdir.

  1. Fail2Ban'i yükleyin:

     
    sudo apt-get install fail2ban
  2. Fail2Ban konfigürasyon dosyasını açın:

     
    sudo nano /etc/fail2ban/jail.conf
  3. SSH için bir bölüm ekleyin veya düzenleyin:

     
    [sshd]
    enabled = true
    port = 2222
    maxretry = 5
    bantime = 3600
  4. Fail2Ban hizmetini başlatın:

     
    sudo systemctl start fail2ban

Bu ayarlarla, bir IP adresi 5 kez başarısız giriş yaparsa 1 saat boyunca SSH erişiminden yasaklanır.

Ekstra Güvenlik İpuçları

  • SSH Bağlantı Zaman Aşımını Ayarlayın: Uzun süre aktif kalan, ancak kullanılmayan SSH bağlantılarını otomatik olarak sonlandırmak için ClientAliveInterval ve ClientAliveCountMax parametrelerini ayarlayabilirsiniz.

     
    ClientAliveInterval 300 ClientAliveCountMax 0
  • Daha Güçlü Şifreleme Algoritmaları Kullanın: SSH konfigürasyon dosyanızda zayıf şifreleme algoritmalarını devre dışı bırakıp güçlü algoritmalar kullanın.

     
    Ciphers aes256-ctr,aes192-ctr,aes128-ctr

SSH, uzaktan sunucu erişimi sağlamak için güçlü ve güvenli bir protokoldür. Ancak, varsayılan ayarlar güvenlik açısından yetersiz kalabilir. Yukarıda anlattığımız adımları izleyerek, sunucunuzun güvenliğini büyük ölçüde artırabilir ve kötü niyetli saldırılara karşı önlemler alabilirsiniz. Port değiştirme, root erişimini engelleme, SSH anahtar tabanlı kimlik doğrulama ve Fail2Ban gibi araçlarla saldırılara karşı daha dayanıklı bir SSH erişimi sağlayabilirsiniz.

Can't find the information you are looking for?

Create a Support Ticket
Did you find it useful?
(7 times viewed / 0 people found it helpful)
Top