Како променити SSH порт на ЦентОС 7 Линуксу

Зашто? Порт 22 је дифолтни порт који се користи за логин кроз ssh те је као такав занимљив разним аутоматизовим софтверима за такозвани брутфорс (bruteforce) који ће покушати на све могуће начине да провале root лозинку на серверу.

Постоји варијанта да заштитите и тај дефoлтни порт 22 разним додатним софтверима типа fail2ban – али опет мислим да је много боља варијанта дати до знања ботовима да тај порт није отворен за сарадњу али и да ето, постоји неко стручан ко је то убио а и опет на све то може да се пљусне додатно и fail2ban па да све буде како треба.

Сем саме промене порта било би добро забранити генерално логин путем само корисничког имена и лозинке већ ту у убацити и логовање путем ssh кључева, као и забранити логин root кориснику, али о тим додатним подешавањима неки други пут. У овом упутству ћемо променити порт на неки безвезе, на ЦентОС 7 Линуксу који дебело преферирам јер је ћале, рећи selinux-у да је порт промењен и додати firеwall правила и на firewalld-у и на нативном iptables-у ако га користите без firewalld-а.

# Промена порта и скидање коментара у sshd_config фајлу
sed -i s/"#Port 22"/"Port 53535"/g /etc/ssh/sshd_config

# Промена порта у selinux-у
yum -y install policycoreutils-python # Ako ne postoji
semanage port -a -t ssh_port_t -p tcp 53535

# Додавање порта у firewalld
firewall-cmd --permanent --zone=public --add-port=53535/tcp
firewall-cmd --runtime-to-permanent 
firewall-cmd --reload 

# Додавање порта у iptables (ако је потребно)
# iptables -I INPUT 1 -p tcp --dport 53535 -j ACCEPT
# systemctl save iptables
# systemctl restart iptables

# Рестарт ssh
systemctl restart sshd.service

# Провера да ли се ослушкује прави порт сад
netstat -tunlp | grep ssh