Поделиться VPN-соединением через Ethernet

Совершенно новый для Linux, работает под управлением Ubuntu 18.04 LTS.

Я ищу дублирующуюся функциональность, которую я могу сделать на оборудовании macos & amp; ОС: использование VPN-соединения на уровне ОС с аппаратным интерфейсом.

В этом конкретном случае, ноутбук подключается к ненадежному Wi-Fi, устанавливает VPN-туннель, VPN затем используется совместно с интерфейсом Ethernet, на котором я подключаю маршрутизатор DD-WRT (double-nat, очевидно), который обеспечивает безопасный Wi-Fi / Ethernet для клиентов. Причина использования ноутбука с реальной ОС для шлюза заключается в том, что он обрабатывает порталы на пленку через браузер (как это делают многие отели).

Эта настройка делает невозможным утечку трафика клиентов через шлюз Wi-Fi, так как используется только VPN-соединение. Если VPN падает, у клиентов вообще нет подключения. Достаточно просто сделать это под macos с помощью l2tp.

Есть ли достаточно простой способ сделать это из графического интерфейса GNOME? Я потратил часы, пытаясь заставить работать только туннель L2TP + IPsec, и, наконец, сдался. Я использую OpenVPN сейчас. Но я не могу найти простой способ совместного использования OpenVPN-соединения, а именно Wi-Fi, который может стать небезопасным, если туннель когда-либо оборвется, обнажая трафик клиента.

Спасибо!

3
задан 3 June 2019 в 02:42

1 ответ

С помощью проб и ошибок и помощи другого форума мне удалось заставить это работать. Обратите внимание, что я переключился на протокол OpenVPN из-за лучшей поддержки в Linux и просто в целом лучшей пропускной способности.

Единственная часть, которая может быть выполнена с GUI, - это настройка для соединения OpenVPN и клиентской сети на втором интерфейсе (это делается в сетевом менеджере). В моем случае ens9 - это вторичный интерфейс Ethernet, который я настроил со статическим IP-адресом в уникальной локальной подсети. Клиентские устройства были предварительно настроены на использование этого IP-адреса в качестве шлюза.

Подробные подробности моего решения здесь: https://www.linuxquestions.org/questions/linux-networking-3/share-vpn-with-ethernet-interface-4175655027/

VPN kill-switch для самого устройства Gateway работает следующим образом:

Внесите эти изменения в /etc/sysctl.conf

#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
#enable packet forwarding
net.ipv4.ip_forward=1

В файле конфигурации UFW по умолчанию (/ etc / default / ufw), внесите это изменение:

DEFAULT_FORWARD_POLICY=“ACCEPT”

В командной строке измените правила ufw следующим образом:

sudo ufw default deny incoming
sudo ufw default deny outgoing
sudo ufw allow out on tun0
sudo ufw allow out on wlp2s0 to XXX.YYY.ZZZ.AAA port 1194 proto udp

В последней строке используйте имя интерфейса, который вы используется для подключения к глобальной сети (используйте команду ifconfig для просмотра всех интерфейсов) и используйте IP-адрес и номер порта для вашего сервера OpenVPN - это можно получить из предоставленного файла ovpn.config.

Это дает вам работающий VPN kill-switch на устройстве шлюза. Последний шаг - маскировка VPN-соединения на вторичном интерфейсе (в моем случае это Ethernet-устройство под названием ens9).

Не используйте метод GUI из nm-connection-editor для включения общего доступа, он будет обходить ваш переключатель kill. Вместо этого отредактируйте файл /etc/ufw/before.rules, добавив раздел nat чуть выше заголовка * фильтра:

### Start OpenVPN Share rules
### NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.10.0/24 -o tun0 -j MASQUERADE   
COMMIT

Где 192.168.10.0/24 соответствует диапазону IP-адресов вашего клиента. сеть. В моем случае я определил его статически в этом диапазоне.

1117 И это было во многом. Я ожидал, что понадобится правило ufw, подобное этому:

sudo ufw allow out on ens9 to 192.168.10.0/24

Но без него оно прекрасно работает.

1
ответ дан 3 June 2019 в 02:42

Другие вопросы по тегам:

Похожие вопросы: