Нет коннекта по SSH к публичному интерфесу роутера

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

Нет коннекта по SSH к публичному интерфесу роутера

Сообщение nerve »

Есть удаленный сервер/роутер с Публичным IP и локалкой позади него.
Я без проблем могу подключиться к нему по SSH, например раздав Интернет с телефона на ноутбук.
Но если я нахожусь с этим ноутбуком в другой локальной сети позади другого роутера - то подключиться на внешний/публичный IP не могу. Хотя между двумя роутерами поднят ВПН и я так же спокойно могу подключаться к удаленному роутеру, но на его локальный интерфейс. Однако для некоторых задач мне необходимо иметь к нему доступ и на внешний интерфейс.
Для дебага использую другой процесс SSH.
Вот как это выглядит со стороны сервера:
Spoiler

Код: Выделить всё

# /usr/sbin/sshd -4dddD -p 555 
debug2: load_server_config: filename /etc/ssh/sshd_config
debug2: load_server_config: done config len = 325
debug2: parse_server_config: config /etc/ssh/sshd_config len 325
debug3: /etc/ssh/sshd_config:11 setting Port 22
debug3: /etc/ssh/sshd_config:48 setting AuthorizedKeysFile .ssh/authorized_keys
debug3: /etc/ssh/sshd_config:61 setting PasswordAuthentication yes
debug3: /etc/ssh/sshd_config:65 setting ChallengeResponseAuthentication no
debug3: /etc/ssh/sshd_config:85 setting TCPKeepAlive yes
debug3: /etc/ssh/sshd_config:90 setting ClientAliveInterval 60
debug3: /etc/ssh/sshd_config:91 setting ClientAliveCountMax 3
debug3: /etc/ssh/sshd_config:92 setting UseDNS no
debug3: /etc/ssh/sshd_config:102 setting Subsystem sftp /usr/libexec/sftp-server
debug1: sshd version OpenSSH_5.9
debug3: Incorrect RSA1 identifier
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug3: Incorrect RSA1 identifier
debug1: read PEM private key done: type DSA
debug1: private host key: #1 type 2 DSA
debug3: Incorrect RSA1 identifier
debug1: read PEM private key done: type ECDSA
debug1: private host key: #2 type 3 ECDSA
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-4dddD'
debug1: rexec_argv[2]='-p'
debug1: rexec_argv[3]='555'
debug2: fd 3 setting O_NONBLOCK
debug1: Bind to port 555 on 0.0.0.0.
Server listening on 0.0.0.0 port 555.
debug1: fd 4 clearing O_NONBLOCK
debug1: Server will not fork when running in debugging mode.
debug3: send_rexec_state: entering fd = 7 config len 325
debug3: ssh_msg_send: type 0
debug3: send_rexec_state: done
debug1: rexec start in 4 out 4 newsock 4 pipe -1 sock 7
debug1: inetd sockets after dupping: 3, 3
Connection from х.х.х.х port 63502
debug1: Client protocol version 2.0; client software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: match: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9
debug2: fd 3 setting O_NONBLOCK
debug2: Network child is on pid 23154
debug3: preauth child monitor started
debug3: privsep user:group 27:27 [preauth]
debug1: permanently_set_uid: 27/27 [preauth]
debug1: list_hostkey_types: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256 [preauth]
debug1: SSH2_MSG_KEXINIT sent [preauth]
Read from socket failed: Connection reset by peer [preauth]
debug1: do_cleanup [preauth]
debug1: monitor_read_log: child log fd closed
debug3: mm_request_receive entering
debug1: do_cleanup
И клиента
Spoiler

Код: Выделить всё

$ ssh -vvv х.х.х.х -p 555
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/ууу/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "х.х.х.х" port 555
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to х.х.х.х [х.х.х.х] port 555.
debug1: Connection established.
debug1: identity file /home/ууу/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file /home/ууу/.ssh/id_rsa-cert type -1
debug1: identity file /home/ууу/.ssh/id_dsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ууу/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ууу/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ууу/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ууу/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ууу/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
ssh_exchange_identification: read: Connection reset by peer
Пакеты прилетают на удаленный сервер:
Spoiler

Код: Выделить всё

# tcpdump -i em1 port 22555        
tcpdump: listening on em1, link-type EN10MB
09:11:29.953071 а.а.а.а.63515 > 92.246.22.143.555: S 3893243434:3893243434(0) win 8192 <mss 1460,nop,wscale 2,nop,nop,sackOK>
09:11:29.953102 х.х.х.х.555 > а.а.а.а.63515: S 129028136:129028136(0) ack 3893243435 win 16384 <mss 1460,nop,nop,sackOK,nop,wscale 3>
09:11:30.002420 а.а.а.а.63515 > х.х.х.х.555: . ack 1 win 16425
09:11:30.002545 а.а.а.а.63515 > х.х.х.х.555: P 1:29(28) ack 1 win 16425
09:11:30.307631 а.а.а.а.63515 > х.х.х.х.555: P 1:29(28) ack 1 win 16425
09:11:30.907559 а.а.а.а.63515 > х.х.х.х.555: P 1:29(28) ack 1 win 16425
09:11:32.107665 а.а.а.а.63515 > х.х.х.х.555: P 1:29(28) ack 1 win 16425
Пробовал уменьшать MTU на роутере в локальной сети, откуда подключается клиент (не помогло):
Spoiler

Код: Выделить всё

# ifconfig em1 mtu 1450 
# ifconfig em1          
em1: flags=28843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,NOINET6> mtu 1450
        lladdr 
        priority: 0
        groups: egress
        media: Ethernet autoselect (100baseTX full-duplex,rxpause,txpause)
        status: active
в логе подключение к стандартному порту (не дебаг) выглядит так:
Spoiler

Код: Выделить всё

Oct  2 16:18:16 gw sshd[11237]: Bad protocol version identification '' from а.а.а.а
Oct  2 16:19:54 gw sshd[17088]: Did not receive identification string from а.а.а.а
Проблема точно не в ключах, я даже вход по паролю активировал.
Проблема не в закрытых портах, так как пакеты проходят.
Не похоже на проблему в несовместимости версий клиента и сервера, так как с того же самого ноутбука я подключаюсь к тому же серверу через другой Интернет или через ВПН.
Не похоже на пробему с удаленным сервером, так как он принимает подключения в принципе.
Не похоже на проблему с роутером, откуда подключается клиент, так как клиент без проблем подключается на другие SSH сервера с пуличными IP.
Разумеется не похоже на проблему с клиентом, так как это мой ноутбук и я с него подключаюсь к десятку-другому серверов.

Я потратил вчерашний день на дебаг и гугление и не приблизился хоть на сколько к решению.
Следопыт, Биздельник, ребята, помогите плз.
Последний раз редактировалось nerve 16.10.2019 10:16, всего редактировалось 1 раз.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Нет коннекта по SSH к публичному интерфесу роутера

Сообщение Bizdelnick »

Файрвол?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

Re: Нет коннекта по SSH к публичному интерфесу роутера

Сообщение nerve »

Bizdelnick писал:
03.10.2019 13:34
Файрвол?
не похоже чтоб он блокировал здесь что-то.
Спасибо сказали:
Аватара пользователя
chitatel
Сообщения: 2063

Re: Нет коннекта по SSH к публичному интерфесу роутера

Сообщение chitatel »

А в /etc/hosts.allow/deny ничего не написано?
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Нет коннекта по SSH к публичному интерфесу роутера

Сообщение Hephaestus »

nerve писал(а):
03.10.2019 11:36
Я без проблем могу подключиться к нему по SSH, например раздав Интернет с телефона на ноутбук.
Я не очень понял, подключаетесь Вы к роутеру с телефона или с ноутбука, но по отношению к роутеру это происходит "снаружи", "из Интернета" на его интерфейс, смотрящий опять же "наружу".

То есть картинка примерно такая:
ноутбук -> интернет -> роутер B -> локальная сеть B.
И подключается нормально.
nerve писал(а):
03.10.2019 11:36
Но если я нахожусь с этим ноутбуком в другой локальной сети позади другого роутера - то подключиться на внешний/публичный IP не могу.
А здесь подключение происходит из другой локальной сети.

А здесь картинка примерно такая:
ноутбук ->локальная сеть A -> роутер A -> интернет -> роутер B -> локальная сеть B.
И подключиться не удаётся.

Я правильно понял?

Вывод: Поскольку роутер B "из интернета" вообще доступен, а через роутер A - недоступен, то либо роутер B не принимает именно от роутера A, либо роутер A не выпускает "изнутри", либо маршрутизация уводит куда-то в сторону.

Сделайте трассировку из локальной сети от ноутбука к внешнему интерфейсу роутера.
Посмотрите, где затык.

Также неплохо бы глянуть логи фаервола. Пакеты-то проходят, но не факт, что все, какие надо.
nerve писал(а):
03.10.2019 11:36
Хотя между двумя роутерами поднят ВПН и я так же спокойно могу подключаться к удаленному роутеру, но на его локальный интерфейс.
Ну, если ВПН поднят между локальными интерфейсами, Вы на локальный и попадаете.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

Re: Нет коннекта по SSH к публичному интерфесу роутера

Сообщение nerve »

chitatel писал:
03.10.2019 18:11
А в /etc/hosts.allow/deny ничего не написано?
ни на клиентском, ни на удаленном компьютерах - ничего.
Спасибо сказали:
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

Re: Нет коннекта по SSH к публичному интерфесу роутера

Сообщение nerve »

Hephaestus писал:
06.10.2019 00:07
nerve писал(а):
03.10.2019 11:36
Я без проблем могу подключиться к нему по SSH, например раздав Интернет с телефона на ноутбук.
Я не очень понял, подключаетесь Вы к роутеру с телефона или с ноутбука, но по отношению к роутеру это происходит "снаружи", "из Интернета" на его интерфейс, смотрящий опять же "наружу".

То есть картинка примерно такая:
ноутбук -> интернет -> роутер B -> локальная сеть B.
И подключается нормально.
верно
Hephaestus писал:
06.10.2019 00:07
nerve писал(а):
03.10.2019 11:36
Но если я нахожусь с этим ноутбуком в другой локальной сети позади другого роутера - то подключиться на внешний/публичный IP не могу.
А здесь подключение происходит из другой локальной сети.

А здесь картинка примерно такая:
ноутбук ->локальная сеть A -> роутер A -> интернет -> роутер B -> локальная сеть B.
И подключиться не удаётся.

Я правильно понял?
верно
Hephaestus писал:
06.10.2019 00:07
Вывод: Поскольку роутер B "из интернета" вообще доступен, а через роутер A - недоступен, то либо роутер B не принимает именно от роутера A, либо роутер A не выпускает "изнутри", либо маршрутизация уводит куда-то в сторону.
именно для этого я привел вывод тспдампа и дебаг вывод ссш сервера/клиента в момент неуспешного подключения из которых видно, что роутер А - выпускает, роутер В - пускает и с маршрутом теоретически нет проблем..
Hephaestus писал:
06.10.2019 00:07
Сделайте трассировку из локальной сети от ноутбука к внешнему интерфейсу роутера.
Посмотрите, где затык.
такого затыка нет.
Hephaestus писал:
06.10.2019 00:07
Также неплохо бы глянуть логи фаервола. Пакеты-то проходят, но не факт, что все, какие надо.
правило на вход на 555 порт для дебаг ссш сервера работает при подключении в схеме напрямую через Интернет и оно же работает при подключении в схеме их другой локальной сети через роутер А.
Hephaestus писал:
06.10.2019 00:07
nerve писал(а):
03.10.2019 11:36
Хотя между двумя роутерами поднят ВПН и я так же спокойно могу подключаться к удаленному роутеру, но на его локальный интерфейс.
Ну, если ВПН поднят между локальными интерфейсами, Вы на локальный и попадаете.
имело ввиду, что между внешними интерфейсами роутеров А и В поднят site-to-site ВПН между локальными сетками A и В и находясь в локальной сети А я могу подключаться на проблемный роутер по его Внутреннему (локальному) адресу.
при этом задача у меня - попасть на него по его внешнему адресу из локальной сети А независимо от того работает сейчас ВПН или нет.
плюс есть другие же такие удаленные роутеры С, Е и тд на внешние адреса которых из локальной сети А через роутер А подключение работает нормально.
Спасибо сказали:
Ответить