Совершенно новый для 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, который может стать небезопасным, если туннель когда-либо оборвется, обнажая трафик клиента.
Спасибо!
С помощью проб и ошибок и помощи другого форума мне удалось заставить это работать. Обратите внимание, что я переключился на протокол 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
Но без него оно прекрасно работает.