Bardzo często potrzebujemy dostępu do serwera protokołem ssh. Wystawianie portu ssh dostępnego „ze świata” jest bardzo niebezpieczne i nie powinno być praktykowane. Niestety czasami jest to jedyny sposób na dostęp do naszego serwera. Gdy decydujemy się na taki krok powinniśmy postarać się jak najlepiej taki dostęp zabezpieczyć poprzez maksymalne ograniczenie szansy wykrycia i udanego włamania na serwer. Możemy to zrobić na kilka sposobów:
- poprzez ograniczenie dostępu do ssh dla konkretnych, zaufanych adresów IP ( firewall )
- poprzez ograniczenie możliwości logowania po ssh tylko za pośrednictwem klucza prywatnego
- poprzez zmianę portu, pod którym jest dostępna usługa sshd
W tym wpisie opiszę tylko ostatni punkt, żeby zebrać potrzebne informacje w jednym miejscu 🙂
Całą operację rozpoczynamy od zmian domyślnego numeru portu w pliku konfiguracyjnym usługi sshd. Domyślny port ma numer 22 i linia z jego definicją jest wykomentowana.
/etc/ssh/sshd_config
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 2234
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Następnie musimy w SELinuksie zezwolić usłudze sshd na korzystanie z innego portu niż domyślny:
# semanage port -a -t ssh_port_t -p tcp 2234
Jeżeli dostajemy informację, że nie ma takiego polecenia jak semanage, to możemy je doinstalować poleceniem:
# yum install policycoreutils-python
Następnie restartujemy usługę sshd:
# systemctl restart sshd.service
oraz modyfikujemy ustawienia firewalla, żebyśmy mieli szansę na połączenie się z naszą usługą:
# firewall-cmd --permanent --zone=public --add-port=2234/tcp
# firewall-cmd --zone=public --remove-service=ssh --permanent
# firewall-cmd --reload
Usunęliśmy przy okazji dostęp do usługi na porcie 22, żeby nie zostawiać po sobie bałaganu 🙂
Jedna odpowiedź na „Zmiana domyślnego portu ssh na Centos 7”