Не удается подключиться к SFTP из одной конкретной сети.

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

У меня есть домашний сервер, на котором настроены два SSH-демона — один на порту 22 для обычных SSH-подключений с аутентификацией по ключу и другой на порту 21, настроенный на прием только SFTP-подключений и аутентификацию по паролю. Мой роутер настроен на прием внешних подключений на этих портах. (Причина разделения в том, что я хочу, чтобы SFTP разрешал подключение по паролю даже для пользователей, которым нужен ключ для подключения к SSH.)

Я могу успешно подключаться к SSH, используя свой ключ с компьютера в другом городе, но подключение к SFTP не удается. Можно подумать, что SFTP неправильно настроен, но я могу подключиться к нему с телефона, когда использую мобильные данные. Но когда я подключаюсь через WiFi? Никак.

Ниже приведен журнал попытки входа (из sftp -vvv):

debug1: Reading configuration data /etc/ssh/ssh_config
debug3: /etc/ssh/ssh_config line 19: Including file /etc/ssh/ssh_config.d/20-systemd-ssh-proxy.conf depth 0
debug1: Reading configuration data /etc/ssh/ssh_config.d/20-systemd-ssh-proxy.conf
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname [DEST IP] is address
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/maki/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/maki/.ssh/known_hosts2'
debug3: channel_clear_timeouts: clearing
debug3: ssh_connect_direct: entering
debug1: Connecting to [DEST IP] [[DEST IP]] port 21.
debug3: set_sock_tos: set socket 3 IP_TOS 0x10
debug1: Connection established.
debug1: identity file /home/maki/.ssh/id_rsa type -1
debug1: identity file /home/maki/.ssh/id_rsa-cert type -1
debug1: identity file /home/maki/.ssh/id_ecdsa type -1
debug1: identity file /home/maki/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/maki/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/maki/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/maki/.ssh/id_ed25519 type -1
debug1: identity file /home/maki/.ssh/id_ed25519-cert type -1
debug1: identity file /home/maki/.ssh/id_ed25519_sk type -1
debug1: identity file /home/maki/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/maki/.ssh/id_xmss type -1
debug1: identity file /home/maki/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_9.9p1 Debian-3
debug1: Remote protocol version 2.0, remote software version OpenSSH_9.6p1 Ubuntu-3ubuntu13.5
debug1: compat_banner: match: OpenSSH_9.6p1 Ubuntu-3ubuntu13.5 pat OpenSSH* compat 0x04000000
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to [DEST IP]:21 as 'maki'
debug3: put_host_port: [[DEST IP]]:21
debug1: load_hostkeys: fopen /home/maki/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
debug3: order_hostkeyalgs: no algorithms matched; accept original
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent

Брандмауэр моего роутера (в сети, откуда я подключаюсь) отключен. Неудачные подключения создают такие записи в журнале: Connection closed by [SRC IP] port 30818 [preauth].

Вот что я получаю, когда подключаюсь через мобильный Интернет своего телефона: Accepted password for maki from [SRC IP MOBILE] port 57427 ssh2.

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

Разобраться с проблемой, связанной с невозможностью подключения к SFTP с определенной сети, требует анализа нескольких возможных причин.

Теория: Ваша ситуация подразумевает, что проблема кроется в сетевой конфигурации, так как SFTP соединения работают, если используется мобильный интернет, но не работают при подключении через Wi-Fi. Это может указывать на ряд факторов: блокировка порта 21 на уровне сети, неправильно настроенный NAT/PAT на роутере, или проблемы с DNS-ресолвингом. Также существует вероятность наличия фаервола на стороне клиента, который может блокировать входящие или исходящие соединения.

Пример: В логах подключения через SFTP видно, что сетевая сессия устанавливается ("Connection established"), но нет продолжения аутентификации, как это происходит при подключении через мобильный интернет. Это может свидетельствовать о том, что на каком-то этапе TCP-соединение прерывается из-за сетевых настроек или политик безопасности.

Применение: Вот несколько действий, которые можно предпринять для решения проблемы:

  1. Проверка сетевых настроек:

    • Убедитесь, что порт 21 действительно открыт и правильно направлен на вашем роутере, как для входящих, так и для исходящих соединений.
    • Если в конфигурации роутера включены какие-либо дополнительные функции безопасности, попробуйте их временно отключить или настроить исключения для вашего случая.
  2. Тестирование с другими сетями:

    • Попробуйте выполнить подключение, используя другую Wi-Fi сеть. Это поможет подтвердить, есть ли проблема только с определенной сетью.
  3. Локальная проверка:

    • На устройстве, с которого вы производите попытки подключения, убедитесь, что сами ПО (например, антивирусы или файрволы) не блокируют трафик на порт 21.
  4. Альтернативный метод аутентификации:

    • Попробуйте временно настроить SFTP-деймон на другой порт, который не имеет ассоциаций с FTP-протоколом для проверки, не является ли причиной конфликта политика фильтрации трафика, ориентированная на блокировку FTP.
  5. Мониторинг сетевого трафика:

    • Используйте утилиты типа tcpdump или Wireshark, чтобы выяснить, где именно прерывается связь и каким образом.

Этот системный подход должен помочь в выявлении и устранении проблемы, связанной с подключением к SFTP через определённую сеть.

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

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