SSH для чайников: как изменить стандартный порт 22 для защиты сервера от взлома
Зачем менять порт 22 на сервере Linux
Как только новый сервер подключается к сети интернет, тысячи автоматизированных хакерских скриптов (ботов) начинают непрерывно долбить стандартный порт 22 TCP, пытаясь подобрать пароли к учетным записям (Brute-Force атака). Если открыть системный журнал /var/log/auth.log, можно увидеть миллионы строк неудачных попыток входа в секунду. Это нагружает процессор и забивает дисковые логи. Перенос службы управления на нестандартный порт отсекает 99% автоматического мусорного трафика.
Принцип выбора нового порта
Выбирайте любой свободный номер порта в безопасном диапазоне от 1024 до 65535 (рекомендуется от 20000 до 60000, например: 2222, 45222, 50022).
Пошаговая инструкция по смене порта SSH
Золотое правило безопасности: Ни в коем случае не закрывайте ваше текущее окно терминала, пока не выполните все шаги и не проверите вход в новом окне!
Шаг 1: Разрешение нового порта в файрволе UFW
Если на сервере включен межсетевой экран, первым делом откройте ваш новый порт (например, 2222):
sudo ufw allow 2222/tcp comment 'SSH Custom Port'
sudo ufw statusШаг 2: Изменение конфигурации OpenSSH Server
Откройте файл конфигурации в редакторе nano:
sudo nano /etc/ssh/sshd_configНайдите строку #Port 22 (символ решетки означает, что параметр закомментирован). Удалите решетку # и замените номер порта:
Port 2222Сохраните изменения комбинацией Ctrl + O -> Enter, затем выйдите Ctrl + X.
Шаг 3: Проверка синтаксиса на опечатки
Обязательно протестируйте файл перед перезапуском демона:
sudo sshd -t(Если команда выполнилась молча — синтаксис идеален. Если вывела ошибку — исправьте опечатку в sshd_config).
Шаг 4: Перезапуск службы SSH
sudo systemctl restart ssh
или на CentOS / RHEL:
sudo systemctl restart sshdШаг 5: Проверка подключения в НОВОЙ сессии
Не закрывая первое окно, откройте новую вкладку терминала на своем рабочем ПК и подключитесь, явно указав новый порт флагом -p:
ssh -p 2222 ubuntu@IP_вашего_сервераЕсли подключение прошло успешно, вернитесь в первое окно и удалите старое правило 22 порта из файрвола: sudo ufw delete allow 22/tcp.
Типовые ошибки администраторов
- Особенность Ubuntu 22.10 / 24.04 (systemd socket activation): В новейших версиях Ubuntu служба SSH управляется сокетом systemd. Смена порта в sshd_config может не примениться, пока вы не измените порт в файле
/lib/systemd/system/ssh.socket(параметрListenStream=2222) и не выполнитеsudo systemctl daemon-reload && sudo systemctl restart ssh.socket. - Забытый порт в PuTTY / WinSCP: При использовании графических клиентов не забывайте менять цифру в поле «Port» со стандартного 22 на ваш новый номер.
ITSTM настроит защиту от подбора паролей Fail2ban / CrowdSec, двухфакторную аутентификацию (2FA) и изолированные Jump-серверы для безопасного доступа администраторов.
Частые вопросы (FAQ)
Как указать нестандартный порт при передаче файлов через SCP?
В утилите scp флаг порта пишется с заглавной буквы -P: scp -P 2222 file.txt user@server_ip:/tmp/.
Что делать, если я забыл открыть порт в файрволе и потерял доступ?
Подключитесь через веб-консоль KVM/VNC в панели управления вашего облачного хостинга и выполните: sudo ufw allow НОВЫЙ_ПОРТ/tcp.
Защищает ли смена порта от целенаправленной хакерской атаки?
Смена порта защищает от массовых автоматических ботов. Профессиональный сканер портов (nmap) обнаружит службу SSH за пару секунд. Поэтому в дополнение к смене порта обязательно отключайте парольный вход в пользу SSH-ключей.
Как проверить, какой порт слушает SSH прямо сейчас на сервере?
Выполните команду: sudo ss -tulpn | grep ssh.