Как дать доступ клиентам в интернет через 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
Так же включен форвард:
/etc/sysctl.conf
:net.ipv4.ip_forward = 1
/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 шт):
Сервер Вы видимо настроили, надо и клиентов настроить. На клиентах, необходимо:
добавить маршрут по умолчанию через VPN, старый default маршрут либо удалить, либо задать ему менее приоритетную метрику, чтоб не мешал.
доавить маршрут к 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.