Я знаю, что на этот заголовок кажется "слишком много ответов", но на самом деле мне не повезло при поиске ...
РЕДАКТИРОВАТЬ: Я обновил диаграмму и вопрос, чтобы быть более точным
Чтобы лучше объяснить мою ситуацию, вот небольшая диаграмма:
Я пытаюсь сделать так, чтобы «Домашний ПК» действовал как «Работа ПК» : - просмотр всех сайтов, которые должны быть недоступны из сети, отличной от 10.42.0.x - Другой локальный клиент SSH в сети 10.42.x.x - Использовать DNS, предоставляемый рабочей сетью (для настраиваемого TLD).
Другими словами, я хочу, чтобы домашний компьютер «стал» рабочим ПК.
Я знаю, что это возможно, если 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/МАСКА).
у Вас будет две машины OPENVPN, один в каждом конце, одном сервере и одном клиенте.
Эти машины будут также подключены к сетям в каждом конце, 192.168.0.0/МАСКА и 10.42.0.0/МАСКА, кажется, Ваш случай.
От двух машин OPENVPN можно достигнуть другого конца, то есть, от 10.8.0.10 можно проверить с помощью ping-запросов 10.8.0.20
Если так, я думаю, что необходимо сделать 3 вещи направить трафик к удаленным сетям.
1-Активируются, IPFORWARD на обоих серверах
echo 1>/proc/sys/net/ipv4/ip_forward
2-Добавляют маршруты на Ваших маршрутизаторах, что-то вроде этого
RouterA:
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 маршрут для получения до другой стороны, чего-то как [1 114]
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 направлять сети и как добраться до них.
я надеюсь, что помог.