Как изменить порт SSH-сервера на Ubuntu?

Вопрос или проблема

Я изменил файл конфигурации SSH сервера /etc/ssh/sshd_config:

Port 2222

Затем я перезапустил службу SSH сервера: systemctl restart ssh.service.

Тем не менее, SSH сервер все еще работает на порту 22, потому что я все еще могу к нему получить доступ на стандартном порту, и ss -tulpn показывает:

> ss -tulpn
Netid    State     Recv-Q    Send-Q    Local Address:Port    Peer Address:Port    Process
tcp      LISTEN    0         4096                  *:22                 *:*        users:(("sshd",pid=16720,fd=3),("systemd",pid=1,fd=163))

Примечание: Я использую только что установленный сервер Ubuntu 24.04.

Очевидно, что Ubuntu уже некоторое время использует сокеты systemd, что делает конфигурацию порта в настройках SSH сервера устаревшей.

Чтобы изменить порт SSH сервера, необходимо изменить или дополнить конфигурацию systemd для ssh.socket. Настройка конфигурации осуществляется созданием файла *.conf в директории /etc/systemd/system/ssh.socket.d/.

  1. Создайте файл конфигурации, чтобы расширить стандартную конфигурацию:
    systemctl edit ssh.socket
          или
    vim /etc/systemd/system/ssh.socket.d/override.conf

    [Socket]
    ListenStream=
    ListenStream=2222
    

    Строка ListenStream= обязательна, чтобы порт 22 больше не использовался. Без этой строки SSH сервер будет доступен через порт 22 (по умолчанию) и 2222.

  2. Перезапустите сокет:
    systemctl restart ssh.socket

другой подход:

  1. nano /etc/ssh/sshd_config, раскомментируйте Port 22 и измените на ВАШ_НОМЕР_ПОРТА
  2. sudo ufw allow YOUR_PORT_NUMBER/tcp
  3. отключите systemd от использования конфигурации сокета по умолчанию:
    sudo systemctl disable ssh.socket && sudo systemctl stop ssh.socket
  4. sudo systemctl restart ssh
  5. sudo ufw reload

Затем вы можете проверить, что ваш порт указан в sudo ss -tuln

(заметьте, что вышеуказанный подход может не быть стандартным способом в версиях Ubuntu выше 22).


Если вышеуказанное не сработает, попробуйте:

sudo iptables -A INPUT -p tcp --dport YOUR_PORT_NUMBER -j ACCEPT

и затем перезапустите ssh

(источник)

Ответ или решение

Как изменить порт SSH-сервера на Ubuntu

Изменение порта SSH-сервера на Ubuntu необходимо для повышения уровня безопасности и предотвращения несанкционированного доступа. В данном руководстве мы подробно рассмотрим процесс изменения порта SSH на свежей установке Ubuntu 24.04, что требует некоторых специфических шагов, связанных с конфигурацией systemd.

Шаги по изменению порта SSH

1. Изменение файла конфигурации SSH

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

sudo nano /etc/ssh/sshd_config

В этом файле необходимо найти строку с Port и изменить её на желаемый номер порта. Например, для использования порта 2222:

Port 2222

После этого убедитесь, что ранее установленный порт 22 больше не используется, добавив следующую строку:

# Port 22

2. Настройка systemd-sockets

С установкой systemd в последующих версиях Ubuntu (включая 24.04) использование сокетов стало новым стандартом, и даже если вы изменили конфигурацию sshd_config, SSH-сервер всё равно может слушать на порту 22. Поэтому необходимо внести дополнения в конфигурацию сокетов.

2.1 Создание конфигурационного файла

Для этого создайте файл конфигурации в каталоге /etc/systemd/system/ssh.socket.d/. Воспользуйтесь следующей командой:

sudo mkdir -p /etc/systemd/system/ssh.socket.d
sudo nano /etc/systemd/system/ssh.socket.d/override.conf

Вставьте в него следующие строки:

[Socket]
ListenStream=
ListenStream=2222

Обратите внимание, что строка ListenStream= необходима для отключения прослушивания порта 22. Без неё SSH-сервер будет доступен как по старому порту, так и по новому.

3. Перезапуск сокета

После изменения конфигурации нужно перезапустить сокет SSH:

sudo systemctl daemon-reload
sudo systemctl restart ssh.socket

4. Настройка брандмауэра

Не забудьте открыть новый порт в настройках брандмауэра, если он у вас активирован. Используйте команду:

sudo ufw allow 2222/tcp

5. Проверка статуса

Теперь можно проверить, что SSH-сервер успешно слушает на новом порту. Используйте следующую команду:

ss -tulpn | grep sshd

Вы должны увидеть вывод, где указан ваш новый порт 2222.

6. Дополнительные действия

Если вы всё ещё сталкиваетесь с проблемами доступа, возможно, потребуется разрешить новый порт через iptables:

sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT

Затем повторно перезапустите SSH:

sudo systemctl restart ssh

Заключение

Изменение порта SSH на Ubuntu может показаться сложной задачей, но, следуя представленным инструкциям, вы сможете сделать это без проблем. Правильная настройка SSH не только улучшит безопасность вашего сервера, но и обеспечит более стабильный доступ. Не забудьте уведомить всех пользователей о необходимости подключения через новый порт, чтобы избежать ненужных сбоев в доступе.

Оцените материал
Добавить комментарий

Капча загружается...