SSH-сервер не будет слушать на порту 22 IPv4.

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

Я установил новый сервер Ubuntu 24.04.01 на хост ESXI для размещения Zabbix.
Это новая машина, драйвера обновлены и т.д. После установки SSH сервера он не слушает на IPv4:22, только на IPv6:22. Я не знаю почему по умолчанию это не оба варианта. В любом случае, я думаю, что с Ubuntu 22 у меня не было такой проблемы.
Вы можете спросить, что я сделал для устранения неполадок.

Добавил новую запись в брандмауэр для 22/tcp и 22/tcp (v6). Ничего не изменилось.
Отключил брандмауэр, ничего не изменилось.

user@srv-zabbix:—$ netstat -tulpn 
(No info could be read for "-p": geteuid()=1000 but you should be root.) 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
tcp 0 0 127.0.0.54:53 0.0.0.0:* LISTEN 
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 
tcp6 0 0 :::22 :::* LISTEN 
udp 0 0 127.0.0.54:53 0.0.0.0:* 
udp 0 0 127.0.0.53:53 0.0.0.0:* 
udp 0 0 172.23.72.217:68 0.0.0.0:* 

Попытка раскомментировать sshd_config ListenAddress 0.0.0.0 ничего не меняет.

Перезапустите сервис, удалите и установите его заново.
Если я попытаюсь использовать tcpdump, ничего не показывает на порту 22. Это не связано с внутренней сетью, я могу свободно подключаться к другим серверам или NAS, брандмауэр также пропускает трафик на Ubuntu.
О да, служба включена и работает.

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

Теория. Проблема, описанная в вашем вопросе, связана с тем, что SSH-сервер в Ubuntu 24.04.01 слушает только на IPv6 на порту 22, а не на IPv4, как это должно происходить по умолчанию. Это может быть связано с настройками конфигурации SSH-сервера или с системой управления сетью Ubuntu. По умолчанию, SSH должен слушать на всех IP-адресах (как IPv4, так и IPv6), если это не изменено.

Пример. В вашей конфигурации SSH, файл sshd_config, можно указать, какие именно IP-адреса слушать, используя параметр ListenAddress. При установке значения 0.0.0.0 SSH должен слушать на всех доступных IPv4-адресах. Однако, если он все еще не слушает на IPv4 после этой настройки, это может быть связано с неверной конфигурацией сети или ошибки в системных настройках.

Применение.

  1. Проверка конфигурации SSH: Откройте файл конфигурации /etc/ssh/sshd_config и убедитесь, что строки ListenAddress присутствуют и имеют значения:

    ListenAddress 0.0.0.0
    ListenAddress ::

    Если они закомментированы (# в начале строки), уберите комментарии.

  2. Перезапуск SSH-сервера: После внесения изменений выполните команду для перезапуска SSH-сервиса:

    sudo systemctl restart ssh
  3. Проверка конфигурации брандмауэра: Убедитесь, что ваш брандмауэр, в данном случае ufw (если он используется), позволяет подключения на нужный порт:

    sudo ufw status

    Откройте порт 22 для IPv4, если он закрыт:

    sudo ufw allow 22/tcp
  4. Проверка активных сетевых интерфейсов: Убедитесь, что ваш сетевой интерфейс имеет корректные настройки IP. Например:

    ip addr

    Uбедитесь, что у вас правильно настроен интерфейс для работы с IPv4.

  5. Обновление системы и служб: Иногда может помочь обновление всей системы для устранения возможных багов:

    sudo apt update && sudo apt upgrade

После выполнения всех этих шагов, выполните повторную проверку с помощью netstat:

sudo netstat -tulpn | grep ssh

Ожидается, что SSH-сервер теперь должен слушаться на порту 22 как для IPv4, так и для IPv6. Если проблема сохраняется, это может указывать на более глубокую проблему, связанную с сетевой конфигурацией самой виртуальной машины или гипервизора ESXi.

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

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