Как изменить порт SSH в Linux: пошаговая смена с 22 на 2222 для чайников
Зачем менять порт SSH по умолчанию?
Порт 22 TCP общеизвестен. Сразу после аренды любого VPS сервера китайские и международные ботнеты начинают круглосуточно сканировать этот порт, отправляя тысячи комбинаций логинов и паролей в минуту.
Сравнение работы сервера на порту 22 и на новом порту 2222:
| Показатель | Стандартный порт 22 | Нестандартный порт (например, 2222) |
|---|---|---|
Размер файла логов /var/log/auth.log | Разрастается на сотни мегабайт в сутки от записей Failed password for root. | Логи чистые, фиксируются только реальные авторизации администратора. |
| Нагрузка на процессор | 5–10% ресурсов CPU тратится на постоянную обработку попыток шифрования SSH-сессий ботов. | Нагрузка на демон SSH равна 0%. |
| Риск подбора слабого пароля | Критически высокий. | Снижается на 99% (сканеры ботов пропускают нестандартные порты). |
Пошаговый алгоритм безопасной смены порта SSH
- Шаг 1. Открываем новый порт в фаерволе (КРИТИЧНО!):
Предупреждение: Сначала добавьте правило в сетевой экран, и только потом меняйте порт! Иначе вы навсегда заблокируете себе доступ к серверу.
# Для фаервола UFW (Ubuntu/Debian): sudo ufw allow 2222/tcp sudo ufw reload # Для Firewalld (CentOS/AlmaLinux): sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reload - Шаг 2. Изменяем порт в конфигурационном файле OpenSSH:
Откройте файл настроек в редакторе Nano:
sudo nano /etc/ssh/sshd_configНайдите строку
#Port 22, удалите символ#и впишите новый порт:Port 2222Нажмите Ctrl + O, затем Enter (сохранить) и Ctrl + X (выйти).
- Шаг 3. Перезапускаем службу OpenSSH:
sudo systemctl restart ssh # На CentOS / RHEL: sudo systemctl restart sshd - Шаг 4. Проверка подключения (НЕ закрывая текущую сессию!):
Оставьте текущий терминал открытым! Откройте второе отдельное окно терминала на вашем ПК и выполните тестовый вход:
ssh -p 2222 user@IP_ВАШЕГО_СЕРВЕРАЕсли вы успешно зашли, старый порт 22 можно удалить из фаервола:
sudo ufw delete allow 22/tcp.
Особенность Ubuntu 22.10 и 24.04: В новых версиях SSH управляется через systemd-сокет. Если порт не изменился, выполните команду sudo systemctl edit ssh.socket, укажите [Socket] ListenStream=2222 и перезапустите сокет: sudo systemctl daemon-reload && sudo systemctl restart ssh.socket.
Частые вопросы (FAQ)
Какой номер порта безопаснее всего выбрать?
Выбирайте любой свободный номер в диапазоне от **1024 до 65535** (например, 2222, 49222, 55222), который не занят другими службами.
Что делать, если на CentOS служба SSH не запускается после смены порта?
Службу блокирует система безопасности SELinux. Разрешите новый порт командой: `sudo semanage port -a -t ssh_port_t -p tcp 2222`.
Как указать нестандартный порт в программе PuTTY?
В главном окне PuTTY введите ваш IP-адрес и в поле 'Port' смените значение 22 на ваш новый порт (2222).
Достаточно ли одной смены порта для полной защиты сервера?
Нет. Дополнительно обязательно отключите вход по паролю (`PasswordAuthentication no`), настройте авторизацию по SSH-ключам и установите утилиту Fail2ban.