По умолчанию SSH-сервер открывает для входящих соединений 22 TCP-порт, и тем самым вызывает потенциальную угрозу bruteforce-атак, поскольку злоумышленник обнаружив на сервере такой открытый порт, пытается подобрать пароль к удалённому серверу при помощи специальных средств автоматизации.
В этой статье я опишу, как сконфигурировать SSH-сервер на альтернативном порту.
Особо отмечу, что не стоит воспринимать описанный здесь метод, как панацею. Китайская мудрость гласит — «Security by Obscurity is no Security at all». Не забывайте и про другие методы защиты SSH, такие как правильная настройка межсетевого экрана, разрешение доступа только ограниченному набору IP-адресов, отказ от парольной аутентификации и использование ключей RSA/DSA, и т.п.
Конфиг SSH-сервера обычно располагается в /etc/ssh/sshd_config. Для редактирования этого файла вам потребуются привилегии суперпользователя root, или возможность выполнить sudo для получения таких привилегий текстовым редактором.
nano /etc/ssh/sshd_config
В открывшемся файле найдите следующую строку:
Port 22
Закомментируйте её и добавьте новую строку со случайным номером порта, например 22022. Номер порта не должен превышать 65535. Также удостоверьтесь, что выбранное вами значение не конфликтует с другими сервисами в системе, например mysqld использует порт 3306, httpd — 80, ftpd — 21. Рекомендую выбрать пятизначное значение.
На всякий случай, для просмотра уже открытых в системе портов, выполните следующую команду:
netstat -tupln | grep LISTEN
После модификации, участок файла конфигурации SSH должен выглядеть примерно так:
#Port 22 Port 22022
Что-бы SSH-сервер начал слушать новый порт вместо прежнего, его нужно перезапустить:
/etc/init.d/ssh restart
или
/etc/init.d/sshd restart
Вот и все, порт 22 изменен на 22022 🙂