Как сменить номер порта для SSH. Зачем мне это нужно?

ssh - авторизация по ключам
Итак, уважаемые коллеги, прошу внимательно посмотреть на скрин выше этого текста.
Это кусочек лога богом забытого сервера находящегося на краю географии, поднятого несколько дней назад. И как видите, боты пытаются подобрать пароль для авторизации. И если вы посмотрите в логи своего сервера вы будете так же неприятно удивлены. Ваш маленький уютненький сервер, вполне возможно, атакуется куда сильней. Периодичность попыток может быть от нескольких в час до нескольких сотен в минуту. Без вариантов! Если вы не предприняли ни каких попыток для защиты — то вы найдете у себя в логах такие записи. Чем это грозит? Только тем что рано или поздно бот подберет ваш пароль и получит полный доступ к вашему серверу, как говориться — со всеми вытекающими…
Теперь когда я вас хорошенечко запугал будем пытаться исправить ситуацию.
Первое что нужно сделать — это перевесить данный сервис на другой порт.
Боты которые занимаются подбором паролей к ssh в 99% случаев сначала пытаются присоединиться к 22 порту (на котором висит данный сервис) и если порт ответил — начинают свое «черное дело». Если же в ответ ничего не получил — то считают что ssh на вашем сервере нет и оставляют его в покое.
Безусловно, есть софт который сканирует все порты вашего сервера, в надежде найти ssh на нестандартном порту, но в этом случае время сканирования возрастает на несколько порядков, а эффективность работы такого бота падает в разы.
Итак — первое что нужно сделать после установки сервера, либо аренды VPS — это перевесить демон sshd на какой ни будь другой порт. Сделать это совсем не сложно.
Для начала просто убедимся что он у нас висит на 22 порту (а где бы ему еще быть если в сервер вы попали и читаете данную статью.)

netstat -tupln | grep LISTEN | grep sshd


sshd_config — это тот файл где нам нужно поменять номер порта. Почти во всех NIX-системах он находится по одному и тому же пути. Открываем его вашем любимым редактором (в примере это будет nano)

nano /etc/ssh/sshd_config

Ищем в файле sshd_config запись
SSH — авторизация по ключам
Удаляем # в начале строки и меняем номер порта на другой, на пример 22345
Как сменить номер порта для SSH
И сохраняем данные изменения при помощи команды:

Ctrl+X

В нижней части редактора появится меню уточняющее хотим ли мы сохранить изменения сделанные в файле.
Подтверждаем нажав клавишу «Y»
Следующее меню информирует нас что будет перезаписан текущий файл.
Для подтверждения просто нажимаем клавишу «Enter» и выходим с консоль.
Чтобы изменения вошли в силу, перезагрузите ваш SSH-демон. Это можно сделать при помощи команды:

systemctl restart sshd.service

Проверяем что демон теперь «слушает» на новом порту

netstat -tupln | grep LISTEN | grep sshd

Как сменить номер порта для SSH
С сервером закончили. Теперь внесем изменения в клиент.

В PuTTY это делается так:
Как сменить номер порта для SSH

В MobaXterm это делается так:

Как сменить номер порта для SSH
Сохраняем и заходим уже на ssh по новому порту.
Можете себя поздравить — вы только что заделали огромную дыру в безопасности своего сервера.
К сожалению не до конца. Но об этом мы поговорим уже в следующей статье.