LINUX.ORG.RU
ФорумAdmin

Использование vpn-туннеля в одной подсети


0

1

Привет, подскажите можно ли использовать vpn-туннель, созданный с помощью openvpn, в одной подсети?

Хочу, чтоб мои соседи по сети не видели трафика с моей машины ПК1 на другую ПК2 из этой же подсети? В идеале, чтоб весь трафик от ПК1 шел на ПК2 по vpn-туннелю, а затем уже в сеть.

В своей тестовой виртуальной сети имею 3 машины: ПК1, ПК2, машина-сервер. Хочу, чтоб при обращении ПК1 на сервер с запросом какой-то html-ки, его трафик шел сначала на ПК2 через vpn-туннель, а уже после этого на сервер. У меня получилось поднять vpn-сервер на ПК2 и vpn-клиент на ПК1 (работала через сонфиг-файлы), но не понимаю как заставить ПК1 делать запрос не напрямую серверу, а через vpn-туннель. Может прокси как-то настроить? Или роутинг хромает? Проверяю путь запроса с помощью tracepath, трафик наблюдаю wireshark на кажждой из машин.

на ПК1 шлюзом по умолчанию должен быть указан ПК2 (vpn-интерфейс), на ПК2, соответственно, должен быть настроет NAT.

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

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

anonymous ()

надо заменить маршрут к подсети на маршрут к хосту, а затем написать маршрут к подсети через туннель. Хотя логичнее ( и проще ) сделать туннель в отдельной подсети.

nixtrian ()

Поднимаете средствами openvpn на обоих машинах интерфейсы с отдельной подсетью и обращаетесь друг к другу через него (решается через /etc/hosts||dns||dnsmasq). Имхо, в пределах одного широковещательного домена это должно работать без доп. настроек, если коммутаторы специально не режут такое поведение.

blexey ★★★★★ ()

А все-таки до чего нас довел IPv4... На уме одни NATы с туннелями. IPSec может работать и в транспортном режиме, т.е. никаких изменений в маршрутизации не требуется.

Если тебе нужно в исключительно разрезе HTTP, то есть офигенная штука под названием reverse-proxy. Настраивается тривиально. Реализация любая: nginx, apache, lighthttpd. Только не забудь поднять TLS с аутентификацией по клиентским сертификатам.

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

Допустим у ПК1 ip eth0 = 192.168.1.1, а tun1 = 192.168.2.1, ПК2 ip eth0 = 192.168.1.2, а tun2 = 192.168.2.2. Шлюз в сети 192.168.1.10 Может ошибаюсь где, только осваиваю роутинг.

route на ПК1 (192.168.1.1):

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.2.1 * 255.255.255.255 UH 0 0 0 tun1

192.168.1.0 * 255.255.255.0 U 1 0 0 eth0

link-local * 255.255.0.0 U 1000 0 0 eth0

default 192.168.2.2 0.0.0.0 UG 0 0 0 lo

не знаю, почему в последний эксперимент при добавлении дефолтного шлюза (добавляла sudo route add default gw x.x.x.x) запись про новый шлюз опрелилилась для интерфейса lo ????? И так и не поняла, что означает мифическая * в поле Gateway

route на ПК2 (192.168.1.2):

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.2.2 * 255.255.255.255 UH 0 0 0 tun2

192.168.1.0 * 255.255.255.0 U 1 0 0 eth0

link-local * 255.255.0.0 U 1000 0 0 eth0

default 192.168.1.10 0.0.0.0 UG 0 0 0 eth0

Все равно при запросе на сервер ПК1 обращается к серверу напрямую, tracepath это тоже подтверждает.

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

Команду route нужно забыть. Есть команда ip. «ip route show», «ip route add»

Звёздочка означает, что машрут не через gateway, а напрямую, на интерфейсе.

Понятно, что с такими маршрутами при запросе на сервер 192.168.1.10 трафик пойдёт напрямую. Либо добавить маршрут для этого ip-адреса через ПК2:

ip route add 192.168.1.10 via 192.168.2.1 dev tun0

либо вобще убрать маршрут на всю локальную сеть, оставив только маршрут до 192.168.1.2 (чтобы тунель работал).

ip route add 192.168.1.2 dev eth0

ip route del 192.168.1.0/24 dev eth0

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

короч ипсек в транспортном режиме - это то, что тебе нужно

anonymous ()

> Хочу, чтоб мои соседи по сети не видели трафика с моей машины ПК1 на другую ПК2

А с чего вдруг они его вообще должны видеть? Свич aka коммутатор не рассылает Ethernet-пакеты всем подряд, а только адресатам. Кто контролирует свич? Непонятно, почему все в этом треде полезли в IP, когда все на L2 разруливается

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

Разобралась с роутингом, заработало!
Вот только вижу wireshark'ом трафик в открытом виде. Т.е. чего-то оно не шифрует.
Вот частично конфиги (те строчки, которые к шифрованию относятся), какие параметры я не дописала?

/server.conf:

port 1194
proto tcp
tls-server
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
tls-auth /etc/openvpn/keys/ta.key 0
cipher DES-EDE3-CBC ...

***
/client.conf:
dev tun
tls-client
remote xxx.xxx.xxx.xxx
proto tcp
port 1194
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/client.crt
key /etc/openvpn/keys/client.key
tls-auth /etc/openvpn/keys/ta.key 1
cipher DES-EDE3-CBC ...

Туннель поднимается и никаких вроде «плохих» записей в логах. Странно???

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

Вы уверены, что пакеты не шифруются? Если запускаете wireshark на машине с openvpn-тунелем, нужно смотреть пакеты на интерфейсе eth0 (udp port 1194), а не на tun0 интерфейсе.

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

С интерфейса eth0 на машине с openvpn-тунелем я вообще не вижу этого трафика, может так и должно быть??? Хотя физически tun0 работает через eth0. Может wireshark четко разделяет интерфейсы не самостоятельно (не по железу), а берет, то что система ему дала?

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

Трафик должен быть виден, правда не udp, а tcp port 1194. Wireshark-ом не пользовался, но

tcpdump -i eth0 -n -nn tcp and port 1194

должен показывать пакеты при прохождении траффика по тунелю.

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

Спасибо огромное, у меня все получилось :) Правда, трафик из туннеля в шифрованном виде все равно вижу после туннеля, с eth0 не видно. А если хочу увидеть трафик внутри туннеля, надо слушать tun, но там он естественно еще открытый.

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