Ana içeriğe geç

Linux'ta SSH Portunu Değiştirme

"Secure Shell (SSH)" varsayılan olarak "22" portunu kullanır. Bu bilgi ile, birçok tool ile sunucunuzun kapısı çalınabilir ve bu durum bazen rahatsız edici olabiliyor.

SSH için varsayılan portun değiştirilmesi, oturum açma denemelerinin miktarını azaltsa da, tam bir güvenlik çözümü değildir. Bildiğiniz üzere, basit bir "nmap" taraması açık portlarınız hakkında bilgi bulabilir. Ancak, çoğu "script kiddie" bununla uğraşmaz.

Varsayılan SSH Portunu Değiştirme

SSH daemon'ın yapılandırması varsayılan olarak "/etc/ssh/sshd_config" dosyasındadır. "ssh"'tan sonra "d" harfine dikkat edin. Bu dosyayı düzenleyerek, portun yanı sıra SSH yapılandırmanızı da değiştirebilirsiniz. Ancak, bir firewall'ın arkasında çalışıyorsanız, SSH yapılandırmanızı değiştirmeden önce bu portu açtığınızdan emin olun. Aksi takdirde, kendi sunucunuza bağlanamaz hâle gelebilirsiniz!

İlgili Portu Açma

CentOS 7 makinemde güvenlik duvarı olarak "firewall-cmd" kullanıyorum. Bu nedenle, firewall-cmd ile kalıcı olarak port açılışını göstereceğim.

Öncelikle zone'ları kontrol edelim. Bu komutun çıktısını not edin. Portu açtığımızdan emin olmak için bunu kullanacağız:

centos firewall yapılandırması
root@gnuadmin ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

Görünüşe göre sadece bir aktif bölgemiz var. Birden fazla zone varsa, aktif zone'u şu şekilde kontrol edebilirsiniz:

centos'ta firewall zone'larını kontrol etme
root@gnuadmin ~]# firewall-cmd --get-active-zones
public
interfaces: enp0s3

"33333" portunu açalım. SSH için kullanmak istediğiniz portu kullanan başka bir uygulama olmadığından emin olun:

centos'ta port açma
root@gnuadmin ~]# firewall-cmd --permanent --zone=public --add-port=33333/tcp
success

Bu komutla, "public zone'unda" 33333 numaralı TCP portunu kalıcı olarak açtık. Port durumunu değiştirdikten sonra firewall ayarlarını reload etmemiz gerekir:

centos reload firewall
root@gnuadmin ~]# firewall-cmd --reload
success

Şimdi elimizde ne olduğuna bakalım:

centos firewall kurallarını listeleme
root@gnuadmin ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources: 
  services: dhcpv6-client ssh
  ports: 33333/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

root@gnuadmin ~]# firewall-cmd --list-ports
33333/tcp

İstenen portu açtığımıza göre SSH konfigürasyonunu değiştirelim.

SSH Portunu Değiştirme

"/etc/ssh/sshd_config" dosyasını açın ve #Port 22 satırını bulun. "#" karakterini silin ve satırı Port 33333 olarak değiştirin. Dosyayı kaydedin ve SSH servisini yeniden başlatın:

restart ssh service
root@gnuadmin ~]# vi /etc/ssh/sshd_config 
root@gnuadmin ~]# systemctl restart sshd.service

Bu adımdan sonra, portu kontrol etmek için "netstat" veya "ss" gibi bir araç kullanabilirsiniz. netstat kurulu değilse, "net-tools" paketini yükleyebilirsiniz:

netstat çıktısı
root@zion:~# netstat -tulpn
Aktif internet bağlantıları (sadece sunucular)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:445             0.0.0.0:*               DİNLE      1547/smbd           
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               DİNLE      30468/python3       
tcp        0      0 0.0.0.0:139             0.0.0.0:*               DİNLE      1547/smbd           
tcp        0      0 127.0.0.53:53           0.0.0.0:*               DİNLE      786/systemd-resolve 
tcp        0      0 127.0.0.1:631           0.0.0.0:*               DİNLE      28027/cupsd         
tcp        0      0 127.0.0.1:9050          0.0.0.0:*               DİNLE      995/tor      
tcp        0      0 0.0.0.0:33333           0.0.0.0:*               DİNLE      3388/sshd         
tcp6       0      0 :::445                  :::*                    DİNLE      1547/smbd           
tcp6       0      0 :::139                  :::*                    DİNLE      1547/smbd           
tcp6       0      0 :::1716                 :::*                    DİNLE      2005/kdeconnectd    
tcp6       0      0 ::1:631                 :::*                    DİNLE      28027/cupsd         
udp        0      0 0.0.0.0:55263           0.0.0.0:*                           824/avahi-daemon: r 
udp        0      0 127.0.0.53:53           0.0.0.0:*                           786/systemd-resolve 
udp        0      0 192.168.0.255:137       0.0.0.0:*                           1509/nmbd           
udp        0      0 192.168.0.10:137        0.0.0.0:*                           1509/nmbd           
udp        0      0 0.0.0.0:137             0.0.0.0:*                           1509/nmbd           
udp        0      0 192.168.0.255:138       0.0.0.0:*                           1509/nmbd           
udp        0      0 192.168.0.10:138        0.0.0.0:*                           1509/nmbd           
udp        0      0 0.0.0.0:138             0.0.0.0:*                           1509/nmbd           
udp        0      0 0.0.0.0:631             0.0.0.0:*                           28028/cups-browsed  
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           824/avahi-daemon: r 
udp6       0      0 :::58683                :::*                                824/avahi-daemon: r 
udp6       0      0 :::1716                 :::*                                2005/kdeconnectd    
udp6       0      0 :::5353                 :::*                                824/avahi-daemon: r 

Gördüğünüz gibi, "sshd" artık varsayılan 22 yerine 33333 portunu dinliyor.