SSH странное поведение входа – возможно, человек в средней атаке

У меня есть сервер в моем доме, и я использую динамические DNS и был таким более 10 лет без проблем. Вход в систему с использованием ssh извне был без проблем, но несколько месяцев назад я отключил порт на своем маршрутизаторе, так как я его не так сильно использовал.

Итак, вот моя проблема. Я могу войти в систему из-за маршрутизатора во внутренней сети, используя ssh и 192.168.1.xxx, но когда я пытаюсь войти в систему, используя доменное имя моего сервера, на котором он будет пытаться использовать внешний ip, он говорит: «Невозможно договориться с портом 36.xxx.xx.xx 22: не найдено подходящего метода обмена ключами. Их предложение: diffie-hellman-group1-sha "

На самом деле он должен сказать, что произошел сбой, поскольку порт отключен на маршрутизаторе.

Я попытался войти в систему извне, используя ubuntu, чтобы подтвердить это, и тогда он правильно говорит: «ssh: подключиться к хосту xxxx.com порт 22: время ожидания соединения» Изнутри, используя Mac, подключающийся к внешнему IP-адресу, он меня полностью поддерживает к подсказке пароля, а затем, когда я заполняю это, в нем говорится, что он был отклонен?

Изнутри используя debian, подключающийся к внешнему IP, он предупреждает о возможном человеке в средней атаке.

Почему он будет прослушивать заблокированный 22-портовый порт и предлагать соединения, когда я пытаюсь войти в систему, используя внешний IP-адрес из-за маршрутизатора, а затем отклоняет попытки входа, но извне он дает мою ошибку времени? Скомпрометирован ли маршрутизатор?

Подводя итог, вы заметили три разных поведения при подключении внутри вашей сети:

  • На машине A вы даже не можете установить SSH-соединение, потому что клиент и сервер не поддерживают соответствующие параметры протокола.
  • На машине D клиент отклоняет соединение из-за несоответствия ключа хоста.
  • С машины M установлено соединение SSH, но затем аутентификация пользователя завершается с ошибкой.

Все это указывает на то, что вы не добираетесь до хоста, которого, как вы считали, вы достигаете. Как уже отмечалось в комментариях несколько человек, когда вы получаете доступ к внешнему IP-адресу изнутри сети, вы фактически достигаете своего маршрутизатора. (Точнее, вы достигаете своего устройства NAT – для домашней или небольшой офисной сети это всего лишь одна коробка, выполняющая маршрутизацию, NAT и, возможно, модем.) Кроме того:

  • Тот факт, что вы не можете установить соединение с A, предполагает, что сервер, к которому вы достигаете, поддерживает только небольшое подмножество доступных параметров (общее на маршрутизаторах) и что он не обновлялся через некоторое время (опять же, маршрутизаторы) – diffie-hellman-group1-sha1 устарел .
  • Тот факт, что D обнаруживает несоответствие ключа хоста, ясно показывает, что это не тот хост, который вы искали.
  • У M нет проблем с подключением, поскольку он по-прежнему поддерживает устаревший протокол, и вы никогда не подключались к вашему желаемому серверу с этого клиента, чтобы он не видел никакого несоответствия. Вы должны удалить соответствующий открытый ключ из файла known_hosts ( ssh-keygen -R 36.xxx.xx.xx ), иначе вы получите сообщение об ошибке, если попытаетесь подключиться к нужному серверу.

Когда вы пытаетесь подключиться к внешнему IP-адресу изнутри вашей сети, что происходит, зависит от того, как настроено устройство NAT. Обычным является то, что он видит запрос на подключение к одному из своих IP-адресов и рассматривает это как соединение с самим собой. Это зависит от конфигурации NAT; обычно он настраивается с помощью интерфейса, поэтому входящие запросы соединения, поступающие извне, транслируются в соответствии с правилами входящего перенаправления, но запросы на соединение, поступающие изнутри, переводятся только в том случае, если они фактически выходят наружу, а не когда они заканчиваются на устройстве NAT.

Обычно домашние маршрутизаторы предлагают интерфейс SSH, и нет никаких особых причин для его отключения. Даже устаревший протокол не является большой причиной для беспокойства: атака против него только «в пределах теоретического диапазона» – лучше всего избегать, но не сразу нарушается. Однако факт, что программное обеспечение является старым , вызывает озабоченность; он может иметь другие уязвимости безопасности, не прошедшие проверку. Убедитесь, что ваш маршрутизатор не прослушивает что-либо на своем внешнем интерфейсе на уровне протокола выше TCP (т. Е. Пусть он делает NAT, но убедитесь, что SSH, веб-интерфейсы и т. Д. Ограничены внутренними IP-адресами). И если у вас есть Wi-Fi или если вы не доверяете своей физической сети, затяните внутренние соединения.