KernelPunk

root
Forum yöneticisi
Güvenli Kabuk (SSH - Secure Shell), Linux sunuculara uzaktan erişim sağlamak için kullanılan en güvenli ve yaygın protokollerden biridir. SSH, ağ üzerindeki iletişimi şifreleyerek yetkisiz erişimleri önler ve yöneticilere güvenli bir yönetim ortamı sunar.

1. SSH Nedir ve Neden Kullanılır?

SSH, uzaktaki bir Linux sunucusuna şifreli bir bağlantı üzerinden erişim sağlamak için kullanılan bir ağ protokolüdür. Telnet ve FTP gibi eski protokollere kıyasla, veri iletimini şifreleyerek güvenlik açıklarını minimize eder. SSH, şu avantajları sağlar:
  • Güvenli Bağlantı: Tüm veri akışı şifrelenerek korunur.
  • Uzaktan Yönetim: Sunuculara fiziksel erişim gerektirmeden işlem yapma imkanı sunar.
  • Dosya Transferi: SCP ve SFTP gibi protokollerle güvenli dosya transferine olanak tanır.
  • Yetkilendirme Mekanizması: Kullanıcı adı-şifre veya SSH anahtarları ile güçlü kimlik doğrulama sağlar.

2. Linux’ta SSH Kurulumu

Çoğu Linux dağıtımı, SSH istemcisi ile ön yüklü gelir. Ancak, bir SSH sunucusu kurmak için aşağıdaki adımları takip edebilirsiniz.

Ubuntu/Debian için SSH Kurulumu

Bash:
sudo apt update
sudo apt install openssh-server -y

CentOS/RHEL için SSH Kurulumu

Bash:
sudo yum install -y openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
Kurulum tamamlandıktan sonra, SSH servisini çalıştırdığınızdan emin olun:
Bash:
sudo systemctl start ssh
sudo systemctl enable ssh
Sunucunun SSH hizmetinin çalıştığını doğrulamak için şu komutu kullanabilirsiniz:
Bash:
sudo systemctl status ssh

3. SSH ile Linux Sunucusuna Bağlanma

SSH bağlantısı kurmak için istemci cihazda aşağıdaki komut kullanılabilir:
Bash:
ssh kullanıcı_adı@sunucu_ip_adresi
Örneğin:
Bash:
Bağlantıyı onayladıktan sonra, sistem sizden parolanızı girmenizi isteyecektir.

4. SSH Güvenliğini Artırma

SSH bağlantısını daha güvenli hale getirmek için aşağıdaki önlemleri uygulayabilirsiniz:

4.1 SSH Portunu Değiştirme

Varsayılan SSH portu 22'dir. Saldırganların kolayca erişmesini engellemek için farklı bir port kullanmak önerilir.

SSH yapılandırma dosyasını açın:
Bash:
sudo nano /etc/ssh/sshd_config
Aşağıdaki satırı bulun ve 22 yerine farklı bir port numarası belirleyin:
Bash:
Port 2222
Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:
Bash:
sudo systemctl restart sshd
Bağlantı kurarken yeni portu belirtmeyi unutmayın:
Bash:
ssh -p 2222 kullanıcı_adı@sunucu_ip_adresi

4.2 SSH Anahtar Tabanlı Kimlik Doğrulama Kullanma

Parola tabanlı kimlik doğrulama yerine SSH anahtarları kullanarak bağlantı sağlamak güvenliği artırır.

1. SSH Anahtar Çifti Oluşturma (İstemci Tarafında)
Bash:
ssh-keygen -t rsa -b 4096
Komut çalıştırıldıktan sonra, oluşturulan id_rsa.pub dosyasını sunucuya kopyalayın:
Bash:
ssh-copy-id kullanıcı_adı@sunucu_ip_adresi
Alternatif olarak, elle kopyalamak için aşağıdaki komutları kullanabilirsiniz:
Bash:
cat ~/.ssh/id_rsa.pub | ssh kullanıcı_adı@sunucu_ip_adresi 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
2. Sunucuda Parola Girişi Zorunluluğunu Kapatma

SSH yapılandırma dosyasını düzenleyerek yalnızca anahtar tabanlı kimlik doğrulama kullanımını sağlayabilirsiniz:
Bash:
sudo nano /etc/ssh/sshd_config
Aşağıdaki satırları ekleyin veya düzenleyin:
NGINX:
PasswordAuthentication no
PubkeyAuthentication yes
Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:
Bash:
sudo systemctl restart sshd
Bundan sonra, yalnızca SSH anahtarı olan kullanıcılar bağlanabilir.

4.3 Root Kullanıcısının SSH Erişimini Kapatma

Güvenliği artırmak için root kullanıcısının doğrudan SSH erişimini devre dışı bırakabilirsiniz.

SSH yapılandırma dosyasını açın:
Bash:
sudo nano /etc/ssh/sshd_config
Aşağıdaki satırı bulun ve değiştirin:
NGINX:
PermitRootLogin no
Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:
Bash:
sudo systemctl restart sshd
Artık yalnızca belirlenen kullanıcılar SSH ile bağlantı kurabilir.​

5. SSH Bağlantı Problemleri ve Çözümleri

SSH bağlantısında yaşanabilecek yaygın sorunlar ve çözümleri şunlardır:
  • Bağlantı Reddedildi:
    • SSH servisini başlatmayı deneyin:
      Bash:
      sudo systemctl start sshd
    • Doğru IP adresini ve portu kullandığınızdan emin olun.
  • Yetkilendirme Hatası:
    • SSH anahtarlarınızın doğru kopyalandığını kontrol edin.
    • chmod 600 ~/.ssh/authorized_keys komutu ile dosyanın izinlerini düzenleyin.
  • Bağlantı Zaman Aşımına Uğruyor:
    • Güvenlik duvarı ayarlarını kontrol edin ve SSH portunu açın:
      Bash:
      sudo ufw allow 2222/tcp
SSH, Linux sunuculara güvenli bağlantı sağlamak için en yaygın kullanılan protokollerden biridir. Bu rehberde, SSH bağlantısını nasıl kuracağınızı, güvenlik önlemlerini nasıl alacağınızı ve en iyi yapılandırma yöntemlerini detaylı şekilde ele aldık. Güçlü kimlik doğrulama yöntemleri kullanarak ve güvenlik açıklarını en aza indirerek, SSH bağlantınızı daha güvenli hale getirebilirsiniz.
 
Back
Top