15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
30.10.2024
2 +1

Debian’da SSH Sunucusu Nasıl Kurulur ve Yapılandırılır (Eksiksiz Kılavuz)

SSH (Secure Shell), modern sunucu yönetiminin en temel protokollerinden biridir. Linux sunucularına uzaktan erişmek ve yönetmek için şifreli, kimlik doğrulamalı bir kanal sağlar — bu da onu sistem yöneticileri, geliştiriciler ve uzak bir makine çalıştıran herkes için vazgeçilmez bir araç haline getirir. İster bir VPS Hosting ortamı ister bir Dedicated Server yönetiyor olun, SSH sunucunuzu doğru şekilde kurmak ve güçlendirmek tamamlamanız gereken ilk görevlerden biridir.

Bu kapsamlı kılavuzda, Debian üzerine OpenSSH’ı nasıl kuracağınızı, güvenli şekilde yapılandıracağınızı, anahtar tabanlı kimlik doğrulamayı nasıl ayarlayacağınızı ve sunucunuzu yetkisiz erişime karşı korumak için en iyi güvenlik sıkılaştırma önlemlerini nasıl uygulayacağınızı öğreneceksiniz.

Ön Koşullar

Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:

  • Debian tabanlı bir sunucu (Debian 10 Buster, 11 Bullseye veya 12 Bookworm)
  • sudo ayrıcalıklarına sahip root olmayan bir kullanıcı veya ilk kurulum için doğrudan root erişimi
  • Linux komut satırına temel düzeyde aşinalık
  • Sunucunuza ağ erişimi

Adım 1: Sisteminizi Güncelleyin ve OpenSSH Server’ı Kurun

Herhangi bir yazılım kurmadan önce, paket dizininizi yenilemek ve mevcut paketleri en son sürümlerine yükseltmek iyi bir uygulamadır. Bu, uyumluluğu sağlar ve güvenlik açıklarını azaltır.

sudo apt update && sudo apt upgrade -y

Şimdi OpenSSH sunucu paketini kurun:

sudo apt install openssh-server -y

Paket yöneticisi, OpenSSH’ı ve gerekli bağımlılıkları indirip kuracaktır. Kurulum tamamlandığında, SSH hizmeti genellikle otomatik olarak başlatılır.

SSH Hizmetinin Çalıştığını Doğrulayın

ssh hizmetinin aktif ve etkin olduğunu onaylayın:
sudo systemctl status ssh
Aşağıdakine benzer bir çıktı görmelisiniz:
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since ...
Hizmet çalışmıyorsa, manuel olarak başlatın ve önyüklemede başlaması için etkinleştirin:
sudo systemctl start ssh
sudo systemctl enable ssh
Adım 2: SSH Yapılandırma Dosyasını Anlayın
Birincil SSH daemon yapılandırma dosyası şu konumda bulunur:
/etc/ssh/sshd_config
Bu dosya, SSH sunucunuzun nasıl davranacağının neredeyse her yönünü kontrol eder — hangi portu dinlediğinden, hangi kimlik doğrulama yöntemlerine izin verildiğine kadar. Herhangi bir değişiklik yapmadan önce, orijinal dosyanın bir yedeğini oluşturun:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Şimdi dosyayı bir metin düzenleyiciyle açın:
sudo nano /etc/ssh/sshd_config
Aşağıdaki bölümler, en önemli yapılandırma seçeneklerini adım adım açıklamaktadır.
Adım 3: SSH Yapılandırmanızı Güçlendirin
3.1 Varsayılan SSH Portunu Değiştirin (Önerilir)
Varsayılan olarak, SSH port 22‘yi dinler. Bu geniş çapta bilinmektedir ve otomatik botlar, kaba kuvvet saldırıları denemek için açık port 22 bağlantılarını sürekli olarak taramaktadır. Portu standart dışı bir değere değiştirmek bu gürültüyü önemli ölçüde azaltır.
Aşağıdaki satırı bulun (# ile yorum satırı haline getirilmiş olabilir):
#Port 22
Yorumu kaldırın ve değeri değiştirin:
Port 2222
> Not: Başka bir hizmet tarafından kullanılmayan 1024 ile 65535 arasında bir port numarası seçin. Yaygın alternatifler arasında 2222, 2200 veya 4422 bulunur. Güvenlik duvarı kurallarınızı buna göre güncellemeyi unutmayın (bkz. Adım 5).
3.2 Root Girişini Devre Dışı Bırakın (Kesinlikle Önerilir)
SSH üzerinden doğrudan root girişine izin vermek önemli bir güvenlik riskidir. Bir saldırgan root parolasını tahmin eder veya kaba kuvvetle kırarsa, sunucunuzun tam kontrolünü ele geçirir. Aşağıdaki yönergeyi bulup değiştirerek devre dışı bırakın:
PermitRootLogin no
Yönetimsel görevler gerçekleştirmeniz gerekiyorsa, normal bir kullanıcı olarak giriş yapın ve sudo kullanarak ayrıcalıkları yükseltin.
3.3 SSH Erişimini Belirli Kullanıcılarla Sınırlayın
SSH üzerinden giriş yapmasına izin verilen belirli kullanıcı hesaplarını beyaz listeye ekleyebilirsiniz. Bu, yetkisiz veya sistem hesaplarının giriş noktası olarak kullanılmasını engeller:
AllowUsers your_username deploy_user
Alternatif olarak, erişimi gruba göre kısıtlayabilirsiniz:
AllowGroups sshusers
3.4 Parola Kimlik Doğrulamasını Devre Dışı Bırakın (Anahtar Kimlik Doğrulamasını Kurduktan Sonra)
SSH anahtar kimlik doğrulaması çalışır hale geldikten sonra (bkz. Adım 6), kaba kuvvet saldırı vektörlerini ortadan kaldırmak için parola tabanlı girişleri tamamen devre dışı bırakın:
PasswordAuthentication no
3.5 Ek Güvenlik Sıkılaştırma Yönergeleri
Daha sağlam bir güvenlik duruşu için aşağıdaki satırları ekleyin veya değiştirin:
# Disable empty passwords
PermitEmptyPasswords no

# Limit authentication attempts per connection
MaxAuthTries 3

# Set idle session timeout (seconds)
ClientAliveInterval 300
ClientAliveCountMax 2

# Disable X11 forwarding if not needed
X11Forwarding no

# Use only SSH Protocol 2
Protocol 2

# Restrict to specific address family (IPv4 only example)
AddressFamily inet
Son /etc/ssh/sshd_config ilgili bölümünüz şuna benzer görünmelidir:
Port 2222
PermitRootLogin no
MaxAuthTries 3
PasswordAuthentication no
PermitEmptyPasswords no
AllowUsers your_username
X11Forwarding no
ClientAliveInterval 300
ClientAliveCountMax 2
Adım 4: Yapılandırmayı Doğrulayın ve SSH’ı Yeniden Başlatın
Hizmeti yeniden başlatmadan önce, yapılandırma dosyanızı sözdizimi hataları açısından her zaman test edin. Yanlış yapılandırılmış bir sshd_config sunucunuzdan çıkmanıza neden olabilir:
sudo sshd -t
Hata döndürülmezse, SSH daemon’ını yeniden başlatarak değişiklikleri uygulayın:
sudo systemctl restart ssh
Hizmetin temiz şekilde yeniden başladığını doğrulayın:
sudo systemctl status ssh
> ⚠️ Önemli: Mevcut SSH oturumunuzu kapatmadan önce, ikinci bir terminal penceresi açın ve yeni yapılandırmayı test edin. Bu şekilde, bir şeyler ters giderse sorunu düzeltmek için hâlâ aktif bir oturumunuz olur.
Adım 5: Güvenlik Duvarı Kurallarını Güncelleyin
Debian’da varsayılan güvenlik duvarı aracı olan UFW‘yi (Uncomplicated Firewall) kullanıyorsanız, yeni SSH portunuzdaki trafiğe izin vermeniz gerekir.
Portu 2222 olarak değiştirdiyseniz:
sudo ufw allow 2222/tcp
sudo ufw reload
Varsayılan port 22’yi koruduysanız:
sudo ufw allow ssh
sudo ufw reload
Mevcut güvenlik duvarı durumunu kontrol edin:
sudo ufw status verbose
UFW henüz etkin değilse, etkinleştirin (kilitlenmeyi önlemek için önce SSH portunuzun izin verildiğinden emin olun):
sudo ufw enable
Adım 6: SSH Anahtar Tabanlı Kimlik Doğrulamayı Kurun
SSH anahtar kimlik doğrulaması, parola tabanlı girişten çok daha güvenlidir. Asimetrik kriptografi kullanır — bir özel anahtar (istemci makinenizde gizli tutulan) ve bir genel anahtar‘dan (sunucuda saklanan) oluşan bir anahtar çifti. Bir saldırgan kullanıcı adınızı bilse bile, özel anahtar olmadan giriş yapamaz.
6.1 İstemci Makinenizde SSH Anahtar Çifti Oluşturun
Yerel makinenizde (sunucuda değil) aşağıdaki komutu çalıştırın:
ssh-keygen -t ed25519 -C "your_email@example.com"
> Neden Ed25519? Ed25519, eski RSA algoritmasına kıyasla daha iyi güvenlik ve performans sunan modern bir eliptik eğri algoritmasıdır. Sisteminiz bunu desteklemiyorsa, 4096 bitlik anahtarla RSA kullanın: ssh-keygen -t rsa -b 4096

İstendiğinde, bir kayıt konumu seçin (varsayılan ~/.ssh/id_ed25519‘dir) ve ek bir koruma katmanı için güçlü bir parola belirleyin.

6.2 Genel Anahtarı Sunucunuza Kopyalayın

Genel anahtarınızı sunucuya güvenli şekilde aktarmak için ssh-copy-id kullanın:

ssh-copy-id -p 2222 username@your_server_ip

Bu komut, genel anahtarınızı sunucudaki ~/.ssh/authorized_keys dosyasına doğru izinlerle ekler.

ssh-copy-id mevcut değilse, bunu manuel olarak yapabilirsiniz:

# On your local machine, display your public key:
cat ~/.ssh/id_ed25519.pub

# On the server, add it to authorized_keys:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "your_public_key_here" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

6.3 Anahtar Tabanlı Girişi Test Edin

İstemci makinenizden sunucuya bağlanın:

ssh -p 2222 username@your_server_ip

Anahtar parolanız için istem almalısınız (hesap parolanız için değil). Onaylandıktan sonra güvenli şekilde giriş yapmış olursunuz.

6.4 Parola Kimlik Doğrulamasını Devre Dışı Bırakın

Anahtar tabanlı kimlik doğrulama çalışır hale geldiğine göre, /etc/ssh/sshd_config dosyasına geri dönün ve şunları sağlayın:

PasswordAuthentication no

Uygulamak için SSH’ı yeniden başlatın:

sudo systemctl restart ssh

Adım 7: SSH Güvenliğini İzleyin ve Sürdürün

SSH’ı kurmak ve yapılandırmak tek seferlik bir görev değildir. Sızma girişimlerini tespit etmek ve güvenli bir ortamı sürdürmek için sürekli izleme şarttır.

Başarısız Giriş Denemelerini Kontrol Edin

sudo journalctl -u ssh | grep "Failed password"

Veya başarısız giriş denemelerini görüntülemek için lastb kullanın:

sudo lastb | head -20

Kaba Kuvvet Saldırılarını Engellemek için Fail2Ban Kurun

Fail2Ban, günlük dosyalarını izler ve kötü niyetli davranış gösteren (tekrarlanan başarısız giriş denemeleri gibi) IP adreslerini otomatik olarak engeller:

sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

SSH için yerel bir jail yapılandırması oluşturun:

sudo nano /etc/fail2ban/jail.local

Aşağıdakileri ekleyin:

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600

Uygulamak için Fail2Ban’ı yeniden başlatın:

sudo systemctl restart fail2ban

OpenSSH’ı Güncel Tutun

Bilinen güvenlik açıklarını gidermek için OpenSSH’ı düzenli olarak güncelleyin:

sudo apt update && sudo apt upgrade openssh-server -y

SSH Sunucunuza Bağlanma: Hızlı Başvuru

SenaryoKomut
Varsayılan port (22)ssh username@your_server_ip
Özel portssh -p 2222 username@your_server_ip
Belirli kimlik dosyasıssh -i ~/.ssh/id_ed25519 username@your_server_ip
Ayrıntılı çıktı (hata ayıklama)ssh -v username@your_server_ip
SSH üzerinden dosya kopyalamascp -P 2222 file.txt username@your_server_ip:/path/

SSH için Doğru Hosting Ortamını Seçme

Bu kılavuzdaki adımlar herhangi bir Debian tabanlı sunucu için geçerlidir, ancak kullandığınız hosting türü ortamınıza nasıl eriştiğinizi ve yönettiğinizi etkiler:

  • VPS Hosting: cPanel’li VPS veya diğer VPS Kontrol Panelleri, grafik yönetim arayüzünün yanı sıra tam root SSH erişimi sağlar — hem güç hem de kolaylık isteyen kullanıcılar için idealdir.
  • Dedicated Servers: Bir Dedicated Server ile tam donanım düzeyinde kontrole sahip olursunuz; bu da SSH yapılandırmasını daha da kritik hale getirir, çünkü makinenin güvenliğinden yalnızca siz sorumlusunuzdur.
  • Shared Hosting: Shared Web Hosting planları, ortam birden fazla kullanıcı arasında paylaşıldığından genellikle sınırlı veya hiç SSH erişimi sağlamaz. SSH bir gereksinimse, VPS’e yükseltme önerilen yoldur.

Sonuç

Debian üzerinde SSH sunucusu kurmak ve yapılandırmak, uzak Linux sunucularıyla çalışan her sistem yöneticisi veya geliştirici için temel bir beceridir. Bu kılavuzu takip ederek:

  • ✅ Debian üzerine OpenSSH Server kurdunuz
  • ✅ Varsayılan portu değiştirerek, root girişini devre dışı bırakarak ve kullanıcı erişimini kısıtlayarak SSH yapılandırmasını güçlendirdiniz
  • ✅ Parolasız, güvenli girişler için SSH anahtar tabanlı kimlik doğrulamasını kurdunuz
  • ✅ SSH portunuzu korumak için güvenlik duvarı kurallarını yapılandırdınız
  • ✅ Kaba kuvvet saldırılarına karşı savunmak için Fail2Ban’ı uyguladınız
  • ✅ İzleme ve bakım rutini oluşturdunuz

Düzgün şekilde güvenliği sağlanmış bir SSH sunucusu, saldırı yüzeyinizi önemli ölçüde azaltır ve altyapınızı uzaktan yönetmek için güvenilir, şifreli bir ağ geçidi sağlar. İster ilk sunucunuzla yeni başlıyor olun ister bir üretim ortamını güçlendiriyor olun, bu uygulamalar güvenli bir Linux sisteminin temel yapı taşlarıdır.

15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın