Назад | Перейти на главную страницу

OpenVPN - доступ к частной сети другого клиента

Я знаю, что на этот заголовок кажется "слишком много ответов", но на самом деле мне не повезло с поиском ...

РЕДАКТИРОВАТЬ: я обновил диаграмму и вопрос, если быть более точным

Чтобы лучше объяснить мою ситуацию, вот небольшая диаграмма:

Я пытаюсь сделать так, чтобы «Домашний ПК» действовал как «Работа ПК»: - просмотр всех сайтов, которые должны быть недоступны из сети, отличной от 10.42.0.x - Другой локальный клиент SSH в сети 10.42.xx - Использовать DNS, предоставленный работой сеть (для настраиваемого TLD)

Другими словами, я хочу, чтобы PC Home "превратился" в PC Work.

Я знаю, что это возможно с 2 клиентами, подключенными к одному посреднику OpenVPN (клиент OpenVPN на домашнем ПК -> Сервер OpenVPN -> Клиент OpenVPN на работе ПК -> Использование сети с ПК).

Но я очень плохо разбираюсь в сетевых инфраструктурах ...

Может ли кто-нибудь объяснить мне, как это сделать? (TAP вместо TUN? Может быть, соединение клиент-клиент? Правила Iptables для пересылки?)

Ой, я забыл ; Я работаю над Linux, PC Home на Ubuntu 18.04 (но должен работать с любой ОС), OpenVPN Server тоже на Ubuntu 18.04, а PC Work на Raspbian :)

Спасибо ! Некоторые актуальные файлы конфигурации:

Файл конфигурации сервера:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
client-config-dir ccd
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0
cipher AES-256-CBC
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
verb 3
explicit-exit-notify 1

В файле IPP я указываю IP-адрес VPN для домашнего и рабочего клиента (10.8.0.10 и 10.8.0.20). На сервере включена переадресация IP. На сервере /etc/ufw/before.rules я добавил следующие строки:

*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT

Подскажите, если я пропущу еще какие-то полезные вещи :)

Спасибо !

Обычно для сетевых подключений OPENVPN создает свою собственную сеть, которая соединяет узлы (10.8.0.0/MASK).

У вас будет две машины OPENVPN, по одной на каждом конце, один сервер и один клиент.

Эти машины также будут подключены к сетям на каждом конце, 192.168.0.0/MASK и 10.42.0.0/MASK, похоже, в вашем случае.

С двух машин OPENVPN вы можете получить доступ к другому концу, то есть с 10.8.0.10 вы можете пропинговать 10.8.0.20

Если это так, я думаю, вам нужно сделать 3 вещи, чтобы направить трафик в удаленные сети.

1- Активируйте IPFORWARD на обоих серверах

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

2- Добавьте маршруты на своих маршрутизаторах, примерно так

МаршрутизаторA:

ip route add 10.42.0.0/MASK via 192.168.0. [OPENVPN ip]

RouterB:

ip route add 192.168.0.0/MASK via 10.42.0.0. [OPENVPN ip]

3- У вас уже должны быть они, но на каждом конце у вас также должен быть на серверах OPENVPN маршрут для перехода на другую сторону, что-то вроде

OpenVPN1:

ip route add 10.42.0.0/MASK via 10.8.0.10

OpenVPN2:

ip route add 192.168.0.0/MASK via 10.8.0.20

Таким образом вы сообщаете своим серверам OPENVPN, как маршрутизировать сети и как к ним добраться.

Надеюсь, я помог.