LINUX.ORG.RU
ФорумAdmin

Сделать устройство, которое не умеет в vpn, клиентом vpn сети

 , ,


0

3

Дано: сеть за натом, где есть два устройства. Одно из них на линуксе (RPi), второе непонятно на чем и не умеет в vpn. RPi является клиентом openvpn, к нему я могу подключаться откуда нужно.

Хочу: подключаться ко второму устройству откуда нужно (не из этой сети) через RPi, чтобы работало стабильно-надежно. Что-то вроде проброса порта, только не через роутер. Нагрузка на соединение будет небольшая (до 10 Мбит), но постоянная.

На клиентах (с которых хочу подключаться) ssh может не быть. Работа через вебню идет. Все общение между устройством, с которого хочу получить доступ, и конечным устройством должно быть внутри openvpn.

Какой софт мне нужен?



Последнее исправление: kardjoe (всего исправлений: 2)
Ответ на: комментарий от zgen

До этого делал бридж для виртуалки, но как сделать его для обособленного устройства со своим интерфейсом - не понял. Как я объединю в бридж интерфейс RPi и некий интерфейс, которым я не могу управлять, у второго устройства?

kardjoe
() автор топика
Ответ на: комментарий от Bers666

Как это работает, когда ssh есть только на RPi, но нет на втором устройстве и нет на клиенте, с которого получаю доступ?

kardjoe
() автор топика

какой ты загадочный. говори уже прямо, что умеет второе устройство и как оно к RPi подключено

colok
()
Ответ на: комментарий от colok

Никак оно к RPi не подключено. Написал же, что оно в одной локалке с RPi. Там нет ничего, кроме ethernet и вебни для управления.

kardjoe
() автор топика
Ответ на: комментарий от kardjoe

Никак оно к RPi не подключено
в одной локалке с RPi
ethernet и вебни для управления

ну ты это, определись уже как-то

colok
()
Ответ на: комментарий от colok

Корма тебе тут не будет. Можешь идти.

kardjoe
() автор топика
Ответ на: комментарий от turtle_bazon

Другими словами, достаточно ли для этого простого маскарадинга типо такого

Destination NAT

You need to add the following table and chain configuration:

% nft 'add rule nat prerouting iif eth0 tcp dport { 80, 443 } dnat 192.168.1.120'

https://wiki.nftables.org/wiki-nftables/index.php/Performing_Network_Address_Translation_(NAT)

Или нужен доп. софт? Если этого достаточно, то новое соединение происходит через пакеты, которые идут устройство управления -> RPi -> устройсто. А ответы по какому маршруту будут идти? Тот же или RPi уже в этой схеме не обязателен? Мне нужно, чтобы и ответы шли через openvpn, то есть все соединение полностью внутри впн. Маршруты я не могу корректировать на конечном устройстве.

kardjoe
() автор топика
Ответ на: комментарий от kardjoe

Нужен iptables. -j DNAT –to-destination

Гуглить iptables port forwarding.

anarquista ★★★★★
()
Ответ на: комментарий от kardjoe

Устройство = устройство в той локалке типа умный свитч или тупая вебкамера
Десктоп = комп не в той локалке, например домашний

--

способ 1, запускать на rpi.


ssh CloudVPS -R 0.0.0.0:8222:ustrojstvo_ip:8222 -N

из интернета обращаемся на cloudvps:8222, попадаем на ustrojstvo_ip:8222
---

Способ 2, запускать на твоем десктопе. Здесь я предполагаю , что по адресу Cloudvps:2222 ты можешь залезть на Rpi.

ssh Cloudvps -p 2222 -L 8222:ustrojstvo_ip:8222 -N

Потом лезешь на localhost:8222 со своего декстопа, попадаешь на ustrojstvo_ip:8222

--

Все способоы выше могут не работать, потому что тупое устройство тебя будет редиректить своей тупой вебмордой на свой локальный IP типа 192.168.хр.ень. Поэтому

Способ 3 , поднимаем SOCKS прокси на RPI.

Запускать на десктопе

ssh Cloudvps -p 2222 -D 5555 -N

и лезешь браузером на ustrojstvo_ip:8222 , предварительно сконфигурив в браузере socks proxy == localhost:5555

Bers666 ★★★★★
()
Последнее исправление: Bers666 (всего исправлений: 2)
Ответ на: комментарий от Bers666

Понятно, что ничего не понятно. Буду разбираться с носками. Скажи хотя бы, вот это условие

Все общение между устройством, с которого хочу получить доступ, и конечным устройством должно быть внутри openvpn.

при варианте 3 осуществимо? Ответы будут внутри туннеля идти через носки на малине или они будут по дефолту валиться напрямую на роутер?

kardjoe
() автор топика
Ответ на: комментарий от turtle_bazon

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

kardjoe
() автор топика
Ответ на: комментарий от kardjoe

Не обязательно. Просто сделать DNAT и разрешить роутинг. А на устройстве указать маршрут по умолчанию IP от RPi. Но согласен, неудобно. Я в таких случаях просто через haproxy делаю.

turtle_bazon ★★★★★
()
Ответ на: комментарий от turtle_bazon

Только вот

Маршруты я не могу корректировать на конечном устройстве.

kardjoe
() автор топика
Ответ на: комментарий от Bers666

Через iptables? Чтобы DNAT? Нет, не будет. Он будет думать, что к нему обращается указанный IP, на который он попытается отправить ответ, используя свои таблицы маршрутизации. И отправить вообще в никуда.

turtle_bazon ★★★★★
()
Ответ на: комментарий от turtle_bazon

я жи писал DNAT+SNAT ( а ты ответил на просто DNAT ).
это значит RPI подменит src_ip на свой из локалки. Так что «устройство» ответит на RPI , а не на default gw.

Bers666 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.