Я пытаюсь настроить внутреннюю сеть в Virtualbox, чтобы совместно использовать туннель клиента openvpn с несколькими виртуальными машинами, действующими в качестве клиентов, которые должны быть полностью изолированы от всего, кроме интерфейса туннеля VPN, чтобы предотвратить все возможности клиентских виртуальных машин от раскрывая мой реальный IP-адрес.
Моя установка состоит из 1 виртуальной машины, на которой запущен сервер Ubuntu, и нескольких клиентских виртуальных машин, которые подключаются к ней для доступа к openvpn-соединению, которое имеет серверная виртуальная машина. Серверная виртуальная машина подключена к eth0 как NAT для доступа к Интернету. Эта виртуальная машина также имеет интерфейс eth1, который подключен к внутренней сети Virtualbox, используемой другими клиентами виртуальной машины для подключения к Интернету. Dnsmasq работает через eth1 для обслуживания IP-адресов клиентам, а iptables настроен на пересылку всего трафика с eth1 на tun0, который является адаптером openvpn tun на сервере.
Пока это частично удается. Я могу заставить своих клиентов связываться с сервером по внутренней сети и получать доступ к Интернету через туннель openvpn, настроенный на сервере, но клиенты испытывают серьезные проблемы с подключением и производительностью в Интернете, в то время как сам сервер не имеет проблем с Интернетом. доступ через vpn. Я исследовал эту проблему и обнаружил, что существует проблема с таймингами mtu, поскольку мой хост-компьютер уже подключен к VPN, а виртуальная машина сервера также подключена к другой виртуальной машине, которая добавляет отступы и может создавать проблемы с фрагментацией и производительностью. Мне нужно решение, которое не требует изменения vpn-соединения хоста, все должно быть сделано в виртуальном боксе и виртуальных машинах. Я попытался добавить параметры tun-mtu 1400 и mssfix в файл конфигурации клиента openvpn на моей серверной виртуальной машине, но затем openvpn отказывается подключаться. В качестве альтернативы я попытался решить эту проблему со стороны своих клиентских виртуальных машин, установив размер mtu ниже 1400, но проблема не была решена, несмотря на перезапуск и сброс сетевого адаптера. Однако сама серверная виртуальная машина не имеет проблем с поддержанием нормальной производительности по vpn, и только клиенты во внутренней сети испытывают проблемы с Интернетом. Попробовав эти два решения, я протестировал доступ к моей серверной виртуальной машине через замазку от клиента и загрузку файла через HTTP, что показало отсутствие проблем с производительностью между клиентскими виртуальными машинами и серверной виртуальной машиной по внутренней сети. В настоящее время я понятия не имею, почему доступ клиентов к локальной сети не имеет проблем, а доступ к Интернету есть. Клиенты могут пинговать с помощью icmp, загружать файлы (с гораздо меньшей скоростью, чем обычно) и частично получать доступ к некоторым веб-сайтам, что заставило меня поверить в то, что существует проблема с mtu. Однако я понятия не имел, что делать дальше, чтобы решить эту проблему, и попробовал все известные мне решения.
Вот дополнительная информация о моей настройке, я действительно надеюсь, что кто-то может помочь мне наладить это и работать должным образом, поскольку я потратил несколько часов в течение 2 дней, пытаясь заставить его работать, но пока безуспешно, и это действительно начинает меня бесить прочь и заставь меня потерять терпение.
Базовое изображение макета (поможет вам понять): макет
Изображения, показывающие проблемы клиента с подключением: проблемы
Ifconfig на серверной виртуальной машине показывает все сетевые интерфейсы:
root@server1:/var/www# ifconfig -a
eth0 Link encap:Ethernet HWaddr 08:00:27:8b:b4:cb
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe8b:b4cb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:126546 errors:0 dropped:0 overruns:0 frame:0
TX packets:75182 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23817797 (23.8 MB) TX bytes:9685507 (9.6 MB)
eth1 Link encap:Ethernet HWaddr 08:00:27:37:98:0c
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe37:980c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46043 errors:0 dropped:0 overruns:0 frame:0
TX packets:103573 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3105270 (3.1 MB) TX bytes:550239993 (550.2 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:247 errors:0 dropped:0 overruns:0 frame:0
TX packets:247 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:19597 (19.5 KB) TX bytes:19597 (19.5 KB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.xxx.x.x P-t-P:10.xxx.x.x Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:37018 errors:0 dropped:0 overruns:0 frame:0
TX packets:20921 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:51937120 (51.9 MB) TX bytes:1148212 (1.1 MB)
/ etc / network / interfaces настройки:
root@server1:/var/www# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
# Virtualbox internal Network
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
Iptables:
root@server1:/var/www# iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.1.0/24 anywhere ctstate NEW
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Конфигурационный файл OpenVPN:
client
dev tun
proto udp
remote xxx.xxx.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
tls-client
remote-cert-tls server
auth-user-pass
comp-lzo
verb 1
reneg-sec 0
auth-user-pass login.conf