Как дать доступ клиентам в интернет через VPN сервер (OpenConnect VPN server)?

Я пытаюсь настроить OpenConnect VPN сервер. Сервер установлен на машине с публичным IP-адресом 154.154.154.154. Сеть VPN сервера: 192.168.2.0/24. VPN сервер слушает порт 1234 на машине. Таблица роутинга на машине (ip route):

default via 154.154.154.1 dev eth0
192.168.2.0/24 via 154.154.154.154 dev eth0
154.154.154.0/24 dev eth0 proto kernel scope link src 154.154.154.154

Так же включен форвард:

  1. /etc/sysctl.conf: net.ipv4.ip_forward = 1
  2. /etc/default/ufw: DEFAULT_FORWARD_POLICY="ACCEPT" Но выйти в интернет через VPN пока не получается. Но после выполнения этой команды: iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE Получается, но трафик идет от устройства клиента (при заходе на 2ip.ru я вижу адрес провайдера клиента, а не публичный адрес машины - 154.154.154.154), а не от VPN сервера. Как сделать так, чтобы трафик шел от VPN сервера?
ДОПОЛНЕНИЯ И ИЗМЕНЕНИЯ:

Я внес небольшие изменения и вот более подробно и структурированно:

VPS сервер - машина "А":

    1. Белый ip адрес 154.154.154.154

    2. На нем установлен Open Connect VPN сервер:

        2.1. Сеть 192.168.2.0/24

        2.2. Маршрутизатор 192.168.2.1

        2.3. Клиентам дан доступ только к локальной сети (192.168.2.0/24)

        2.4. DNS сервера которые используются VPN сервером:
8.8.8.8, 1.1.1.1 (информация об этом
автоматически передается на клиент,
и на клиенте настраивается роутинг
для этих адресов через шлюз 192.168.2.1
и сетевой интерфейс VPN (192.168.2.x)

        2.5. VPN сервер слушает входящие подключения на порту 1234

    3. Роутинг на сервере:
default via 154.154.154.1 dev eth0
192.168.2.0/24 via 154.154.154.154 dev eth0
154.154.154.0/24 dev eth0 proto kernel scope link src 154.154.154.154
Где строчка "192.168.2.0/24 via 154.154.154.154 dev eth0"
отвечает за то, чтобы входящие соединения
к VPN сети устанавливались через шлюз - 
машина "А", для того, чтобы VPN сервер
знал через какой шлюз ему обратно
посылать пакеты.

    4. IP forwarding: включен в ядре и в UFW (firewall).
Добавлена запись iptables:
"iptables -t nat -D POSTROUTING -s 192.168.2.0/24 -o eth0 -j SNAT --to-source 154.154.154.154"
для того, чтобы когда устройство
192.168.2.x посылает запрос
(192.168.2.x -> 192.168.2.1 -> UFW)
его IP был публичный и посылал
запрос от имени машины "A"
(UFW -> 154.154.154.1 -> destination).

Устройство клиента - машина "B":

    1. Локальный ip адрес: 192.168.1.x

    2. Шлюз (роутер): 192.168.1.1

При подключении к VPN на клиенте автоматически настраивается роутинг на DNS сервер'а VPN с'ервера и к ним я спокойно подключаюсь через VPN сервер с публичным ip адресом машины "A". Но когда я потом еще настраиваю роутинг ip сайта или полностью весь default трафик (на клиенте) через шлюз 192.168.2.1 через сетевой интерфейс 192.168.2.x этот рутинг почему-то не работает, доступ к сайту пропадает.

Также на клиенте настроен роутинг к 154.154.154.154 (машина "A") через шлюз 192.168.1.1 через сетевой интерфейс 192.167.1.x.

Как настроить роутинг на клиенте, чтобы весь интернет трафик или подключение только к отдельному сайту происходило через VPN сервер и подключение устанавливалось с через белый ip адрес машины "A" ?


Ответы (1 шт):

Автор решения: balbes

Сервер Вы видимо настроили, надо и клиентов настроить. На клиентах, необходимо:

  1. добавить маршрут по умолчанию через VPN, старый default маршрут либо удалить, либо задать ему менее приоритетную метрику, чтоб не мешал.

  2. доавить маршрут к vpn узлу по пути старого default маршрута, иначе перестанет работать vpn из-за зацикливания трафика через самого себя.

    default via 192.168.2.1 dev vpn 154.154.154.154/32 via x.x.x.x dev eth0

где: via x.x.x.x dev eth0 - часть старого default маршрута, обеспечивающего прямой доступ в internet.

→ Ссылка