доступ к хосту снаружи

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

доступ к хосту снаружи

Непрочитанное сообщение Olej » 11 июл 2019, 15:05

Для удалённой отработки часто нужно иметь доступ к хосту LAN снаружи, к хосту находящемуся за NAT (WAN роутера) ... Ну и когда не охота связываться с организацией собственного VPN ... да и таскать за собой из любых мест доступа настроенного клиента OpenVPN.

Самый элементарный способ (общеизвестный) для этого - это проброс портов на роутере.
Менее известно (не вникают в такие детали), что делает роутер это правилами файервола (iptables ... потому как я ещё не видел роутеров, работающих под другими ОС кроме Linux).

В любом варианте доступа к хосту LAN, как я понимаю, требуется:
- получить белый IP адрес от провайдера именно для роутера WAN...
- потребует каких-то оплат провайдеру (при выделении IP, или абоноплаты)

Из других вариантов (кроме правил файервола на роутере):
2. туннель SSH
3.
Стоит отметить, что с внедрением IPv6, необходимость в пробросе портов и NAT в целом исчезнет.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: доступ к хосту снаружи

Непрочитанное сообщение Olej » 11 июл 2019, 15:12

Olej писал(а): Самый элементарный способ (общеизвестный) для этого - это проброс портов на роутере.
Менее известно (не вникают в такие детали), что делает роутер это правилами файервола (iptables ... потому как я ещё не видел роутеров, работающих под другими ОС кроме Linux).
И делается это, зачастую, через WEB-интерфейс роутера:
Проброс портов
Изображение
Как выполнить проброс портов на маршрутизаторе
Изображение
Быстрый проброс портов на роутере: рабочие инструкции для чайников
Изображение
P.S. Обращаем внимание, что способы несколько отличаются. Ещё обращаем внимание, что в пообных публикациях рассматриваются только LAN хосты Windows.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: доступ к хосту снаружи

Непрочитанное сообщение Olej » 12 июл 2019, 00:52

Olej писал(а): Самый элементарный способ (общеизвестный) для этого - это проброс портов на роутере.
Менее известно (не вникают в такие детали), что делает роутер это правилами файервола (iptables ... потому как я ещё не видел роутеров, работающих под другими ОС кроме Linux).
Здесь подробно расписан этот механизм - Сквозь защитные порядки: Пробрасываем порты в окнах, никсах и кисках
В Linux все намного сложнее, здесь необходимо оперировать правилами iptables/netfilter, без знания основ которого просто не обойтись. Для осуществления проброса портов предусмотрена цель DNAT, которую необходимо использовать в правилах цепочки PREROUTING. В самом простейшем случае правило будет выглядеть следующим образом:

iptables -t nat -A PREROUTING -p tcp --dst $GATE \
--dport $PORT -j DNAT --to-destination $SERVER:$PORT

Где $GATE — это адрес шлюза, $PORT — пробрасываемый порт, а связка $SERVER:$PORT — это адрес и порт внутреннего сервера. Естественно, чтобы правило сработало, должен быть включен форвардинг (хотя на шлюзе он в любом случае включен):

# echo 1 > /proc/sys/net/ipv4/ip_forward

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: доступ к хосту снаружи

Непрочитанное сообщение Olej » 12 июл 2019, 00:54

Olej писал(а): Здесь подробно расписан этот механизм - Сквозь защитные порядки: Пробрасываем порты в окнах, никсах и кисках
Там же и описание SSH туннеля:
Один из таких инструментов — SSH. Далеко не каждый системный администратор в курсе, что проброс порта является стандартной функцией этой программы. Возьмем, к примеру, следующую ситуацию. В локальной сети, закрытой от внешней сети NAT’ом, есть сервер, к которому тебе необходимо иметь доступ. Ситуация усугубляется тем, что ты не имеешь привилегий для настройки файервола на машине-шлюзе. Зато у тебя есть доступ к SSH-серверу, работающему на этом шлюзе. Как это может помочь? На самом деле очень сильно. Ты просто выполняешь следующую команду на удаленной машине (serverip — адрес внутреннего сервера, gateway-ip — адрес шлюза):

$ ssh -L 8080:<server-ip>:80 user@<gateway-ip>

И вуаля, порт 8080 локальной машины становится портом 80 внутреннего сервера локалки. Теперь достаточно набрать в веб-браузере адрес localhost:8080, и ты попадешь туда, куда надо. Твой SSH-клиент создаст туннель с SSH-сервером шлюза, все передаваемые в рамках которого данные будут направлены на порт 80 внутреннего сервера.
Но для этого, очевидно, должен использоваться роутер с управлением по SSH.
Маршрутизаторы SSH
Выбрано 55 моделей:
В большинстве своём это MikroTik ценой от 2400 руб и выше, т.е. от $50.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: доступ к хосту снаружи

Непрочитанное сообщение Olej » 12 июл 2019, 09:17

Olej писал(а):В большинстве своём это MikroTik ценой от 2400 руб и выше, т.е. от $50.
Это и будет, нужно полагать, одним из основных достоинств популярности роутеров MikroTik.
Но для дешёвых бытовых моделей роутеров, a'la TP-Link TL-WR841N, этот способ не играет.
Так что я для своих целей (для своего заказчика) здесь его не разбираю. Смотрю дальше детали проброса портов на роутере правилами файервола.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: доступ к хосту снаружи

Непрочитанное сообщение Olej » 12 июл 2019, 09:27

Olej писал(а): Так что я для своих целей (для своего заказчика) здесь его не разбираю. Смотрю дальше детали проброса портов на роутере правилами файервола.
Есть ещё одна фича в этом деле: управление настройками роутера все статьи описывают из локальной сети, по внутреннему IP роутера в локальной сети. Мне же, после одного-двух телодвижений, нужно настраивать роутер из WAN, удалённо. Здесь нужна ещё одна дополнительная настройка, см. на картинке, там всё в HELP написано.

В дополнение к этой настройке предстоит:
1. сменить заводской login:passwd на что-то приличное...
2. пробросить порт 80 из LAN под каким-то другим номером, иначе порт управления по HTTP будет отбит
Вложения
p1.png

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: доступ к хосту снаружи

Непрочитанное сообщение Olej » 12 июл 2019, 09:57

Ещё один вариант проброса портов - режим DMZ (DeMillitary Zone) для одного из хостов LAN, для которого пробрасываются все порпты.
Что такое DMZ в роутере
Вложения
p2.png

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 22 гостя