Главная

Friday, 6 November 2020

Смена стандартного порта 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 для получения таких привилегий текстовым редактором.

Выполним команду:

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

На всякий случай прочитайте журнал командой journalctl -xe на возможные ошибки.

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

ssh zabbix-server

ssh: connect to host zabbix-server port 22: Connection refused

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

ssh -p 58291 zabbix-server

Теперь соединение пройдёт успешно. Нет? Не успешно. И такое возможно. Это происходит в том случае если у вас активирован фаерволл: iptables либо ufw в зависимости от версии Linux.

Проверьте чтобы был открыт 58921-й порт командой iptables -S либо ufw status verbose. Если порт закрыт то пропишите соответствующие правила.

И пробуйте еще раз. У вас получится.


No comments:

Post a Comment

А что вы думаете по этому поводу?