У меня есть Raspberry Pi3 с Raspbian Stretch, который находится за домашним роутером.

/var/log/auth.log в RPi последовательно показывает неудачные попытки входа в систему с общими именами пользователей (root, operator, webmaster и т. д.), на случайных портах с большими числами, примерно 3 попытки каждые 10 секунд, с китайского адреса. Я знаю, что это неудивительно.

Я не понимаю, почему PuTTY не может подключиться к тому же серверу, когда я пытаюсь связаться с ним через мой общедоступный IP-адрес?

Я очень новичок в этой области, но, насколько мне известно, это полный парадокс.

Некоторые дополнительные технические примечания:

  • Iptables не тронут

  • Nmap на мой общедоступный IP-адрес дает "все 1000 сканированных портов отфильтрованы"

  • Функциональный сервер LAMP содержит Owncloud, который работает, но только из локальной сети, поскольку любые попытки связаться с моим публичным IP-адресом с треском проваливаются.
  • мои попытки подключения к моему общедоступному IP сделаны из той же локальной сети, что и RPi.
  • порт 22 перенаправлен на RPi в маршрутизаторе, и брандмауэр маршрутизатора полностью отключен в целях моих нынешних тестов.
  • в роутере мой RPi установлен в DMZ. Afaik, результаты с этой настройкой такие же.

Где мои пакеты сброшены и почему?

Где я могу найти журнал, который покажет мне?

заранее спасибо

1 ответ1

2

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

Ваши обычные правила NAT работают только за пределами вашей сети. Если вы попытаетесь подключиться изнутри вашей сети, возникнет проблема с NAT.

Учти это...

  • У вас есть Server A в вашей локальной сети с IP 10.10.10.10 .
  • У вас есть Computer A в вашей локальной сети с IP 10.10.10.20 .
  • У вас есть Router A с IP-адресом LAN 10.10.10.1 и IP-адресом WAN 11.11.11.11 .
  • У вас есть Computer B вне вашей сети с IP 12.12.12.12 .
  • У вас есть port 22 перенаправленный с вашего WAN IP на Server A

Из-за пределов вашей сети трафик выглядит так:

Компьютер B пытается подключиться к серверу A:

Source IP: 12.12.12.12   Src Port: 12345
Destination IP: 11.11.11.11    Dest Port: 22

Маршрутизатор A NATs пакет и отправляет его на сервер A:

Source IP: 12.12.12.12   Src Port: 12345
Destination IP: 10.10.10.10   Dest Port: 22

Сервер A отвечает на компьютер B:

Source IP: 10.10.10.10    Src Port: 22
Destination IP: 12.12.12.12   Dest Port: 12345

Маршрутизатор A NATs пакет и отправляет его на компьютер B:

Source IP: 11.11.11.11   Src Port: 22
Destination IP: 12.12.12.12   Dest Port: 12345

Все работает как задумано. Теперь рассмотрим тот же сценарий, но внутри вашей сети:

Компьютер A пытается подключиться к серверу A:

Source IP: 10.10.10.20   Src Port: 12345
Destination IP: 11.11.11.11   Dest Port: 22

Маршрутизатор A NATs пакет и отправляет его на сервер A:

Source IP: 10.10.10.20   Src Port: 12345
Destination IP: 10.10.10.10   Dest Port: 22

Сервер A отвечает на компьютер A:

Source IP: 10.10.10.10   Src Port: 22
Destination IP: 10.10.10.20   Dest Port: 12345

Исходный IP-адрес находится в той же подсети, что и IP-адрес назначения. Server A не отправляет пакет обратно маршрутизатору, он отправляет его непосредственно на Computer A Computer A отбрасывает пакет, поскольку он пришел с 10.10.10.10 и отправил исходный пакет на 11.11.11.11 . Ожидается, что пакет вернется с 11.11.11.11 .

Чтобы решить эту проблему, вы должны создать второе, более конкретное правило NAT для соответствия трафику, исходящему из вашей сети. Это придет после вашего исходного правила NAT. Вам нужно будет сделать Source NAT, который выглядит следующим образом:

srcnat src-address=10.10.10.0/24 dst-address=10.10.10.10 dst-port=22 out-interface=LAN action=masquerade

Теперь давайте посмотрим на это снова:

Компьютер A пытается подключиться к серверу A:

Source IP: 10.10.10.20   Src Port: 12345
Destination IP: 11.11.11.11   Dest Port: 22

Маршрутизатор A NATs пакет и отправляет его на сервер A:

Source IP: 10.10.10.1   Src Port: 12345
Destination IP: 10.10.10.10   Dest Port: 22

Сервер A отвечает на компьютер A:

Source IP: 10.10.10.10   Src Port: 22
Destination IP: 10.10.10.1   Dest Port: 12345

Маршрутизатор A NATs пакет и отправляет его на компьютер A:

Source IP: 11.11.11.11   Src Port: 22
Destination IP: 10.10.10.20   Dest Port: 12345

Все работает как задумано.

Как вы реализуете это второе правило NAT, зависит от аппаратного и программного обеспечения вашего маршрутизатора. Ваш пробег может отличаться.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .