Modyfikujemy politykę bezpieczeństwa Centosa (SELinux), gdzie w miejsce X wstawiamy swój numer portu (1024<X<65536):
yum install policycoreutils-python
semanage port -a -t ssh_port_t -p tcp X
Ograniczamy dostęp do usługi SSHD do określonych IP (yyy.yyy.yyy.yyy, zzz.zzz.zzz.zzz) modyfikując:
wstawiamy ALL:ALL do pliku host.deny
wstawiamy ALL: localhost oraz w kolejny wierszu SSHD: yyy.yyy.yyy.yyy zzz.zzz.zzz.zzz do pliku hosts.allow
Modyfikujemy firewall:
firewall-cmd --permanent --zone=public --add-port=X/tcp
firewall-cmd --reload
By ograniczyć ilość połączeń w jednostce czasu na określony port (X) instalujemy i konfigurujemy Fail2ban:
yum install epel-release
yum install fail2ban fail2ban-systemd
yum update selinux-policy
cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
wstawiamy do sekcji [sshd] w pliku /etc//fail2ban/jail.local wiersze enabled = true oraz maxretry = 5 i bantime=86400 , a także port = X
systemctl enable firewalld
systemctl start firewalld
systemctl enable fail2ban
system start fail2ban
Modyfikujemy plik /etc/ssh/sshd_config wstawiając następujące linie (gdzie X to docelowy port uslugi SSH):
Port X
PermitRootLogin no
W końcu z czystym sumieniem uruchamiamy demona SSH oraz od niechcenia rozglądając się w usługach wykonujemy szyfrowane połączenie z serwerem na wybrany port X:
systemctl restart sshd
ssh -l user -p X IP_serwera
ss -tunap | grep ssh
cat /var/log/secure | grep 'Failed password'
fail2ban-client status
fail2ban-client set sshd unbanip IP_naszej_stacji_roboczej
Opracowanie własne na podstawie https://www.howtoforge.com/tutorial/how-to-install-fail2ban-on-centos/ oraz https://www.liberiangeek.net/2014/11/change-openssh-port-centos-7/