Linux Sunucuda SSH Portunu Değiştirme
SSH varsayılan olarak 22 numaralı portu kullanır. Portu değiştirmek, sunucunuza yapılan otomatik giriş denemelerinin çoğunu azaltır. Bu rehber AlmaLinux, Rocky Linux, Debian ve Ubuntu için adımları anlatır.
Port değiştirmek tek başına yeterli bir güvenlik önlemi değildir. Şifre yerine SSH anahtarıyla giriş yapmanızı ve SSH'a yalnızca kendi IP adreslerinizden erişilmesine izin vermenizi de öneririz.
Başlamadan önce
- Bu rehberde yeni port olarak 2222 kullanılmıştır; kendi seçtiğiniz numarayla değiştirin. Başka bir hizmetin kullandığı bir portu seçmeyin.
- Değişikliği yaparken açık olan SSH oturumunuzu kapatmayın. Yeni porttan bağlanabildiğinizi ikinci bir oturumla denemeden eski oturumu kapatmayın; bir hata olursa açık oturumdan geri alabilirsiniz.
- Sunucunuz Verinomi Sanal Güvenlik Duvarı'nın arkasındaysa önce müşteri panelindeki güvenlik duvarı sayfasından yeni port için bir kural ekleyin.
1. Ayar dosyasını düzenleyin
Port ayarı /etc/ssh/sshd_config dosyasındadır. Güncel dağıtımlarda bu dosyanın başında /etc/ssh/sshd_config.d/ dizinindeki dosyaları okuyan bir Include satırı bulunur ve bu dizindeki ayarlar ana dosyadakilerin önüne geçer. Bu yüzden ayarı ayrı bir dosyaya yazmanızı öneririz:
echo "Port 2222" > /etc/ssh/sshd_config.d/port.conf
Önce dizinde başka bir Port satırı olmadığını denetleyin:
grep -ri "^Port" /etc/ssh/sshd_config /etc/ssh/sshd_config.d/
Ayar dosyasında hata olup olmadığını denetleyin; çıktı boşsa sorun yoktur:
sshd -t
2. AlmaLinux ve Rocky Linux
SELinux açıkken SSH yalnızca SELinux'un SSH portu olarak tanıdığı portları dinleyebilir. Yeni portu SELinux'a tanıtın:
semanage port -a -t ssh_port_t -p tcp 2222
semanage komutu bulunamazsa önce şu paketi kurun:
dnf install policycoreutils-python-utils
firewalld açıksa yeni portu açın ve ayarı kalıcı yapın:
firewall-cmd --add-port=2222/tcp
firewall-cmd --runtime-to-permanent
Ardından SSH hizmetini yeniden başlatın:
systemctl restart sshd
3. Debian
Debian'da hizmetin adı ssh'tır:
systemctl restart ssh
ufw ya da başka bir güvenlik duvarı kullanıyorsanız yeni portu yeniden başlatmadan önce açın (ufw için ufw allow 2222/tcp).
4. Ubuntu
Ubuntu 22.10 ve sonrasında SSH, systemd soket etkinleştirmesiyle çalışır: portu SSH hizmeti değil ssh.socket dinler. Ubuntu 24.04'te soket, port ayarını sshd_config dosyasından ve sshd_config.d dizininden systemd aracılığıyla okur. Bu yüzden ayarı değiştirdikten sonra systemd'nin ayarı yeniden okuması gerekir:
ufw allow 2222/tcp
systemctl daemon-reload
systemctl restart ssh.socket
ufw kapalıysa ilk satıra gerek yoktur. Ubuntu 22.04'te soket etkinleştirmesi yoktur; Debian'daki gibi systemctl restart ssh yeterlidir.
5. Yeni porttan bağlanın
Eski oturumu kapatmadan kendi bilgisayarınızdan yeni bir oturum açın:
ssh -p 2222 root@203.0.113.10
Bağlanabiliyorsanız işlem tamamdır. Güvenlik duvarında 22 numaralı porta artık gerek yoksa kapatabilirsiniz.
Sorun giderme
- Yeni porttan bağlanamıyorum: açık oturumda
ss -tlnp | grep 2222ile portun dinlendiğini denetleyin. Dinlenmiyorsa ayar dosyasını ve (AlmaLinux / Rocky'de) SELinux adımını, dinleniyorsa güvenlik duvarı kurallarını denetleyin. - SSH hizmeti başlamıyor:
sshd -tkomutu hatalı satırı gösterir. Düzeltemezseniz/etc/ssh/sshd_config.d/port.confdosyasını silip hizmeti yeniden başlatarak eski hâline dönebilirsiniz. - Sunucuya hiç bağlanamıyorum: müşteri panelinden destek talebi açabilirsiniz.
Bu rehberdeki bilgiler resmî belgelerden alınmıştır: sshd_config(5), Ubuntu Server: OpenSSH, Ubuntu: sshd socket activation, Red Hat: Using SELinux, firewall-cmd.