[root@putty ~/articles] #

Смена порта SSH-сервера как мера защиты от брутфорса

По умолчанию 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

Закомментируйте её и добавьте новую строку со случайным номером порта, например 58291. Номер порта не должен превышать 65535. Также удостоверьтесь, что выбранное вами значение не конфликтует с другими сервисами в системе, например mysqld использует порт 3306, httpd — 80, ftpd — 21. Рекомендуем выбрать пятизначное значение.

На всякий случай, для просмотра уже открытых в системе портов, выполните следующую команду:

netstat -tupln | grep LISTEN

После модификации, участок файла конфигурации SSH должен выглядеть примерно так:

#Port 22
Port 58291

Что-бы SSH-сервер начал слушать новый порт вместо прежнего, его нужно перезапустить:

/etc/init.d/ssh restart

или

/etc/init.d/sshd restart

Соединение с SSH-сервером на альтернативном порту

Итак, теперь когда у нас есть SSH-сервер, слушающий альтернативный порт, как с ним соединяться? Если вы попытаетесь соединиться при помощи командной строки Linux, то по умолчанию SSH-клиент попытается использовать стандартный порт, и это приведёт к ошибке подключения:

ssh putty.org.ru
ssh: connect to host putty.org.ru port 22: Connection refused

Вместо этого вы должны передать SSH-клиенту номер порта значением параметра -p, примерно так:

ssh -p 58291 putty.org.ru

Теперь соединение пройдёт успешно.

Если вы используете свободный SSH-клиент PuTTY, то укажите порт в настройках сессии, как показано на картинке:

Настройка подключения PuTTY на альтернативный SSH-порт