Возможно ли и как поделиться OpenVPN (в настоящее время Anonine) -соединением с указанными IP-адресами в локальной сети? Локальная локальная сеть состоит из компьютеров под управлением ОС Windows и Linux и устройств Android.
Текущая настройка, сервер с дистрибутивом Ubuntu Server:
- eth0: публичный ip (dhcp, скажем, 112.112.112.112), общий для локальной сети с iptables
- eth1: локальная локальная сеть (192.168.1.1)
- tap0: OpenVPN (Anonine DHCP 221.221.221.221) с опцией конфигурации route-nopull
В данный момент я делюсь публичным IP-адресом для локальной сети с помощью iptables:
iptables -A FORWARD -s 192.168.1.0/24 -i eth1 -o eth0 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Чего я хотел бы добиться - это подключить интернет-соединение eth0 к локальной сети с IP-адресами 192.168.1.2 - 192.168.1.19, и они отказались использовать OpenVPN -соединение tap0.
Затем я хотел бы поделиться OpenVPN-соединением с ip-адресами, превышающими 192.168.1.19, и они отказались использовать eth0 любой ценой.
Я буду вручную добавлять серверы имен на каждом клиенте в локальной сети.
- ПОСЛЕ ЧАСОВ ПОПЫТКИ -
Таблица маршрутов, когда route-nopull используется с OpenVPN:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 88.115.14.1 0.0.0.0 UG 0 0 0 eth0
88.115.14.0 * 255.255.224.0 U 0 0 0 eth0
localnet * 255.255.255.0 U 0 0 0 eth1
И эта маршрутизация используется, когда OpenVPN добавляет маршруты:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 46.246.18.101 128.0.0.0 UG 0 0 0 tap0
0.0.0.0 88.115.14.1 0.0.0.0 UG 0 0 0 eth0
46.246.18.100 0.0.0.0 255.255.255.128 U 0 0 0 tap0
80.67.8.213 88.115.14.1 255.255.255.255 UGH 0 0 0 eth0
88.115.14.0 0.0.0.0 255.255.224.0 U 0 0 0 eth0
128.0.0.0 46.246.18.129 128.0.0.0 UG 0 0 0 tap0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Вот что я использовал для предоставления публичного IP (WAN) локальной сети:
iptables -A FORWARD -o eth0 -i eth1 -m iprange --src-range 192.168.1.2-192.168.1.19 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m iprange --src-range 192.168.1.2-192.168.1.19 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.1.2-192.168.1.19 -o eth0 -j MASQUERADE
Это для того, чтобы попытаться поделиться OpenVPN для локальной сети
iptables -A FORWARD -o tap0 -i eth1 -m iprange --src-range 192.168.1.20-192.168.1.254 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m iprange --src-range 192.168.1.20-192.168.1.254 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.1.20-192.168.1.254 -o tap0 -j MASQUERADE
Приведенная выше iptables работает для части общего доступа eth0, когда для OpenVPN не используется no-route, но она не работает для tap0. Если я разрешаю маршруты по умолчанию для OpenVPN, то он работает для tap0, но не для eth0.
Теперь вопрос в том, как мне нужно изменить таблицы маршрутизации на сервере Ubuntu, чтобы это работало? Или мне нужно изменить таблицы маршрутизации для клиентов?