X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe)
X
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe)
X
🔥 Türkiye Lokasyon VDS & VPS sunucularında %20 indirim! Kupon Kodu: Türkiye'de %20 İndirim! Kod: DATA20
Şirketimizdeki KALİTEYİ Yakından Tanıyın!

SSH Portu Değiştirme ve Root Girişini Kapatma Rehberi

SSH Portu Değiştirme ve Root Girişini Kapatma Rehberi

SSH port değiştirme ve root girişini kapatma, yeni bir Linux sunucuda en sık yapılan iki sertleştirme adımıdır. Varsayılan 22 numaralı port, internetteki botların sürekli taradığı bir hedeftir ve root kullanıcısı her sistemde bulunduğu için parola denemelerinin bir numaralı adıdır. Bu iki ayar tek başına tam güvenlik sağlamaz, ancak günlüklerdeki gürültüyü azaltır ve saldırı yüzeyini daraltır. Asıl dikkat edilmesi gereken nokta sırayla ilgilidir: Yanlış sırayla yapılan bir port değişikliği sizi kendi sunucunuzun dışında bırakabilir. Bu rehberde Ubuntu 22.04/24.04 ve AlmaLinux 9 için kilitlenme riskini en aza indiren adım adım bir yol izliyoruz.

Başlamadan Önce: Kilitlenmeye Karşı Önlemler

Aşağıdaki kurallar bu yazının tamamı için geçerlidir:

  • Mevcut SSH oturumunu kapatmayın. SSH servisini yeniden başlatmak açık oturumları genellikle sonlandırmaz; bir hata olursa bu oturumdan geri alırsınız. Testleri her zaman yeni bir terminal penceresinde yapın.
  • Önce güvenlik duvarında yeni portu açın, sonra SSH'ı yeni porta taşıyın. Tersi, bağlantının anında kesilmesine yol açar.
  • Konsol erişiminizi bilin. Sunucu panelindeki VNC veya web konsolu, SSH çalışmadığında bile sunucuya girmenizi sağlar.
  • Root girişini kapatmadan önce sudo yetkili bir kullanıcıyla giriş yapabildiğinizi doğrulayın.

Adım 1: Sudo Yetkili Bir Kullanıcı Oluşturun

Root girişini kapattığınızda sunucuya başka bir kullanıcıyla girip yetkili işleri sudo ile yapacaksınız. Bu kullanıcıyı şimdi oluşturun. Örneklerde kullanıcı adı olarak deploy kullanıyoruz.

# Ubuntu 22.04 / 24.04
adduser deploy
usermod -aG sudo deploy

# AlmaLinux 9
useradd -m deploy
passwd deploy
usermod -aG wheel deploy

Root hesabında SSH anahtarı kullanıyorsanız anahtarları yeni kullanıcıya doğru sahiplikle kopyalayın:

cp -r /root/.ssh /home/deploy/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys

# Yalnızca AlmaLinux (SELinux bağlamını düzeltir)
restorecon -Rv /home/deploy/.ssh

Ardından yeni bir terminalden ssh [email protected] ile bağlanın ve sudo whoami komutunun root yanıtını verdiğini görün. Anahtar tabanlı girişi henüz kurmadıysanız SSH anahtarı ile giriş rehberimizi bu adımdan önce uygulamanızı öneririz.

Adım 2: Yeni Port Numarasını Seçin

1024 ile 65535 arasında, sunucuda başka bir servisin kullanmadığı bir port seçin. Linux'un giden bağlantılar için kullandığı geçici port aralığı varsayılan olarak 32768–60999 olduğundan bu aralığın altında kalan bir numara tercih etmek olası çakışmaları önler. Örneklerimizde 2222 kullanıyoruz; kendi kurulumunuzda daha az bilinen bir numara seçebilirsiniz. Portun boş olduğunu şöyle kontrol edin:

ss -tlnp | grep ':2222'

Komut hiçbir çıktı vermiyorsa port boştur. Unutmayın: Port değiştirmek bir güvenlik önlemi değil, otomatik tarama gürültüsünü azaltan bir yöntemdir. Asıl korumayı anahtarla giriş, güvenlik duvarı ve Fail2ban gibi araçlar sağlar.

Adım 3: Güvenlik Duvarında Yeni Portu Açın

Bu adım atlandığında yaşanan kilitlenmeler, port değişikliğiyle ilgili sorunların en yaygın nedenidir. Kullandığınız güvenlik duvarına göre:

# Ubuntu (UFW)
sudo ufw allow 2222/tcp
sudo ufw status

# AlmaLinux 9 (firewalld)
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports

Sağlayıcı panelinizde ayrıca bir ağ güvenlik duvarı veya güvenlik grubu tanımlıysa orada da aynı portu açın. UFW ve firewalld ayrıntıları için Ubuntu UFW rehberimize ve AlmaLinux firewalld rehberimize bakabilirsiniz.

AlmaLinux 9: SELinux'a yeni portu tanıtın

AlmaLinux'ta SELinux varsayılan olarak enforcing modda çalışır ve sshd'nin yalnızca ssh_port_t etiketli portlarda dinlemesine izin verir. Bu adımı atlarsanız sshd yeni portta başlayamaz:

sudo dnf install -y policycoreutils-python-utils
sudo semanage port -a -t ssh_port_t -p tcp 2222
sudo semanage port -l | grep ssh_port_t

Son komutun çıktısında tcp 2222, 22 görmelisiniz. Ubuntu'da SELinux varsayılan olarak kullanılmadığı için bu adım gerekmez.

Adım 4: sshd Yapılandırmasını Düzenleyin

Ubuntu 22.04/24.04 ve AlmaLinux 9'da /etc/ssh/sshd_config dosyası, başındaki Include /etc/ssh/sshd_config.d/*.conf satırıyla ek dosyaları okur. OpenSSH'de çoğu ayar için ilk okunan değer geçerli olur; bu nedenle ana dosyayı değiştirmek yerine adı alfabetik olarak en önde gelen bir ek dosya oluşturmak, başka dosyaların ayarınızı ezmesini engeller:

sudo nano /etc/ssh/sshd_config.d/00-sertlestirme.conf
# Geçiş süresince iki port birlikte açık kalsın
Port 22
Port 2222

# Root ile doğrudan girişi kapat
PermitRootLogin no

Geçiş süresince iki Port satırını birlikte tutmak, yeni port çalışmazsa eski porttan girebilmenizi sağlar. Port ayarı birden fazla kez yazılabilen istisnai ayarlardandır; sshd tüm satırlardaki portları dinler. Bu yüzden ana dosyada yorum satırı olmayan bir Port 22 kalmışsa son aşamada onu da kaldırmanız gerekir.

PermitRootLogin için kullanabileceğiniz değerler şunlardır:

DeğerAnlamıNe zaman?
yesRoot parola veya anahtarla girebilirÖnerilmez
prohibit-passwordRoot yalnızca anahtarla girebilirRoot ile otomasyon gerekiyorsa ara çözüm
forced-commands-onlyRoot yalnızca anahtara bağlı tanımlı komutu çalıştırabilirBelirli yedekleme senaryoları
noRoot ile SSH girişi tamamen kapalıGenel öneri

Kaydettikten sonra yapılandırmayı test edin ve gerçekte uygulanacak değerleri görün:

sudo sshd -t
sudo sshd -T | grep -E '^(port|permitrootlogin) '

İsterseniz aynı dosyaya AllowUsers deploy satırını ekleyerek SSH ile giriş yapabilecek kullanıcıları açıkça sınırlayabilirsiniz. Bu ayar tanımlandığında listede olmayan hiçbir kullanıcı, parolası doğru olsa bile SSH ile giremez. Birden fazla kullanıcı varsa adları boşlukla ayırarak yazın; yeni bir yönetici hesabı açtığınızda bu listeyi güncellemeyi unutmayın, aksi halde o hesap SSH ile bağlanamaz.

sshd -t hata vermezse ve ikinci komut port 22, port 2222 ve permitrootlogin no satırlarını gösteriyorsa bir sonraki adıma geçebilirsiniz.

Adım 5: SSH Servisini Doğru Şekilde Yeniden Başlatın

Bu adım dağıtıma ve SSH'ın nasıl başlatıldığına göre değişir.

AlmaLinux 9

sudo systemctl restart sshd

Ubuntu 22.04

sudo systemctl restart ssh

Ubuntu 24.04: ssh.socket ve soket etkinleştirme

Ubuntu 22.10 ile birlikte OpenSSH, varsayılan olarak systemd soket etkinleştirmesiyle çalışmaya başladı. Bu düzende portu ssh.socket birimi dinler; ssh.service ise ilk bağlantı geldiğinde başlatılır. Ubuntu 22.10–23.10 arasında port değişikliği için ssh.socket birimindeki ListenStream değerini elle düzenlemek gerekiyordu. Ubuntu 24.04'te ise bir systemd üreteci (generator), sshd_config içindeki Port ve ListenAddress değerlerini okuyup soket ayarını otomatik oluşturur. Ancak bunun devreye girmesi için systemd'nin yeniden yüklenmesi ve soketin yeniden başlatılması gerekir:

# Soket etkinleştirmesi kullanılıyor mu?
systemctl is-active ssh.socket

# Yanıt "active" ise:
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket

# Yanıt "inactive" ise (klasik servis düzeni):
sudo systemctl restart ssh

Sadece systemctl restart ssh yazıp soketi yeniden başlatmamak, Ubuntu 24.04'te yeni portun dinlenmemesinin en yaygın nedenidir. Hangi düzende olursanız olun, sonucu her zaman gerçekten dinlenen portlara bakarak doğrulayın:

sudo ss -tlnp | grep -E ':(22|2222) '

Çıktıda hem 22 hem de 2222 numaralı portları görmelisiniz.

Adım 6: Yeni Bağlantıyı Test Edin

Mevcut oturumu açık tutarak yeni bir terminalde sırasıyla şunları deneyin:

  1. ssh -p 2222 [email protected] ile yeni porttan sudo kullanıcısıyla bağlanın.
  2. sudo -i ile root yetkisine geçebildiğinizi doğrulayın.
  3. ssh -p 2222 [email protected] denemesinin reddedildiğini görün.
  4. Portun dışarıdan erişilebilir olduğunu port kontrol aracı ile de teyit edin.

Bağlantı zaman aşımına uğruyorsa güvenlik duvarını ve sağlayıcı tarafındaki kuralları, Connection refused alıyorsanız sshd'nin yeni portta dinleyip dinlemediğini kontrol edin. Ayrıntılı hata tablosu için SSH ile sunucuya bağlanma yazımıza bakabilirsiniz.

Adım 7: Eski Portu Kapatın

Yeni port üzerinden sorunsuz bağlandığınızdan eminseniz yapılandırma dosyasından Port 22 satırını silin, testi tekrarlayıp servisi Adım 5'teki gibi yeniden başlatın. Ardından güvenlik duvarındaki eski kuralı kaldırın:

# Ubuntu (UFW) - kuralı hangi adla eklediyseniz
sudo ufw delete allow OpenSSH
sudo ufw delete allow 22/tcp

# AlmaLinux 9 (firewalld)
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload

Fail2ban kullanıyorsanız sshd hapishanesindeki port değerini de yeni portla güncellemeyi unutmayın; aksi halde engellemeler yanlış porta uygulanır.

Sık Sorulan Sorular

SSH portunu değiştirmek sunucuyu güvenli hale getirir mi?

Tek başına hayır. Port değişikliği otomatik botların denemelerini ve günlüklerdeki kalabalığı ciddi ölçüde azaltır, ancak hedefli bir saldırgan port taramasıyla yeni portu bulabilir. Gerçek koruma anahtarla giriş, parola girişinin kapatılması, güvenlik duvarı ve Fail2ban birlikte kullanıldığında sağlanır.

Ubuntu 24.04'te port değiştirdim ama SSH hâlâ 22'de dinliyor, neden?

Büyük olasılıkla soket etkinleştirmesi kullanılıyor ve yalnızca servis yeniden başlatıldı. sudo systemctl daemon-reload ardından sudo systemctl restart ssh.socket komutlarını çalıştırıp ss -tlnp ile kontrol edin. Ana yapılandırma dosyasında unutulmuş bir Port 22 satırı da aynı sonuca yol açar.

AlmaLinux'ta sshd yeni portta başlamıyor, ne yapmalıyım?

En sık neden SELinux'tur. semanage port -a -t ssh_port_t -p tcp 2222 komutuyla portu tanımlayın ve journalctl -u sshd çıktısındaki hata mesajını kontrol edin.

PermitRootLogin no yerine prohibit-password kullanabilir miyim?

Kullanabilirsiniz; bu ayarla root yalnızca SSH anahtarıyla girebilir. Yine de günlük işlerde ayrı bir kullanıcı ve sudo kullanmak, yapılan işlemlerin kim tarafından yapıldığını izlemeyi kolaylaştırdığı için daha iyi bir uygulamadır.

Kendimi sunucunun dışında bıraktım, ne yapabilirim?

Sunucu panelindeki konsoldan giriş yapın, /etc/ssh/sshd_config.d/ altındaki dosyanızı ve güvenlik duvarı kurallarını düzeltip SSH servisini yeniden başlatın. Konsola erişemiyorsanız destek ekibinden yardım isteyin.

SSH port değiştirme ve root girişini kapatma, doğru sırayla yapıldığında birkaç dakikalık bir iştir ve sunucunuzu gereksiz deneme trafiğinden arındırır. NVMe SSD, DDoS koruması ve Linux dağıtım seçenekleriyle sunulan VDS sunucu kiralama seçeneklerimizi ya da bütçe dostu VPS paketlerimizi inceleyerek bu yapılandırmayı kendi sunucunuzda hemen uygulayabilirsiniz.

VDS Sanal Sunucu
TÜRKİYE / ANKARA
₺139 /ay'dan başlayan
Paketleri İncele
  •  NVMe SSD Disk
  •  DDoS Koruması Dahil
  •  Limitsiz Trafik
  •  0–15 Dakikada Kurulum
  •  Windows - Linux
  •  7/24 Destek
Top
Destek Hattı0850 840 90 28

DNS Adresleri

ns1.datahost.net.tr
ns2.datahost.net.tr
DataHost Destek Çevrimiçi

Satış öncesi tüm sorularınız için WhatsApp hattımıza yazın; size hızlıca yardımcı olalım.

WhatsApp'tan Yaz