Как пустить клиентов в интернет через канал openvpn

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Gosha
проходил мимо

Как пустить клиентов в интернет через канал openvpn

Непрочитанное сообщение Gosha » 2008-05-14 0:32:36

Всем привет!
Помогите пожалуйста в решении такой задачи:
Есть центральный офис и удаленный офис. В удаленном офисе стоит одна машина с windows на которой интернет раздается с помощью ADSL модема. У машины белый адрес. С помощью OpenVPN клиента для Windows я соединяю эту машину с шлюзом головного офиса, она получает доступ к головной сети и я хочу чтобы в интернет эта машина тоже ходила только через шлюз головного офиса.. как ей прописать маршрут по умолчанию после поднятия VPN канала не понимаю. Помогите пожалуйста.
На шлюзе головного офиса openvpn.conf

Код: Выделить всё

dev               tun
local             1.2.3.4
port              1194
proto             udp
server            192.168.0.0 255.255.255.0
push              "route 192.168.0.0 255.255.252.0"
route             192.168.0.0 255.255.255.0
client-config-dir ccd
client-to-client
tls-server
dh                /usr/local/etc/openvpn/dh2048.pem
ca                /usr/local/etc/openvpn/CA_cert.pem
cert              /usr/local/etc/openvpn/certs/server.pem
key               /usr/local/etc/openvpn/keys/server.pem
crl-verify        /usr/local/etc/openvpn/crl/crl.pem
tls-auth          /usr/local/etc/openvpn/ta.key 0
comp-lzo
keepalive         10 120
tun-mtu           1500
mssfix            1450
persist-key
persist-tun
user              virtual
group             virtual
verb              5
Сеть головного офиса 192.168.1.0/27
Подсеть в которую попадает машина удаленного офиса после поднятия канала 192.168.0.0/24
Конфиг openvpn для удаленного офиса:

Код: Выделить всё

client
dev           tun
proto         udp
remote        1.2.3.4
tls-client
tls-remote    server.ru
ca            "F:\\vpn\\CA_cert.pem"
cert          "F:\\vpn\\c.pem"
key           "F:\\vpn\\k.pem"
tls-auth      "F:\\vpn\\ta.key" 1
ns-cert-type  server
comp-lzo
tun-mtu       1500
mssfix        1450
verb          3

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Gosha
проходил мимо

Re: Как пустить клиентов в интернет через канал openvpn

Непрочитанное сообщение Gosha » 2008-05-14 1:50:28

Может чуть-чуть ещё поясню: Пробовал на сервере Openvpn прописывать
push "route 0.0.0.0 0.0.0.0"
Но тогда после поднятия канала у клиента такая таблица маршрутизации:

Код: Выделить всё

0.0.0.0   0.0.0.0   ШЛЮЗ_ПРОВАЙДЕРА metric 1
0.0.0.0   0.0.0.0  ШЛЮЗ_В_VPN metric 1
.... .... .... .... ..... 
И в инет он идет через провайдера, но и в сеть головного офиса доступ имеет. Если же у клиента прописываю скрипты для поднятия/отключения канала up.bat и down.bat такого содержания:
up.bat

Код: Выделить всё

route add 0.0.0.0 mask 0.0.0.0 VPN_GATE_IP metric 1
route delete 0.0.0.0
то после поднятия канала доступа нет вообще ни к чему и канал через какое то время просто рвется потому как и инета тоже нет. Хотя таблица после этого получается с шлюзом который нужен, т.е.

Код: Выделить всё

0.0.0.0   0.0.0.0   ШЛЮЗ_В_VPN  metric 1

Аватара пользователя
hizel
дядя поня
Сообщения: 9031
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Как пустить клиентов в интернет через канал openvpn

Непрочитанное сообщение hizel » 2008-05-14 8:30:02

для клиента
из man-а openvpn

Код: Выделить всё

--redirect-gateway [local] [def1] 
 (Experimental) Automatically execute routing commands to cause all outgoing IP traffic to be redirected over the VPN. 
 This option performs three steps: 
(1) Create a static route for the --remote address which forwards to the pre-existing default gateway. This is done so that (3) will not create a routing loop. 
(2) Delete the default gateway route. 
(3) Set the new default gateway to be the VPN endpoint address (derived either from --route-gateway or the second parameter to --ifconfig when --dev tun is specified). 
 When the tunnel is torn down, all of the above steps are reversed so that the original default route is restored. 
 Add the local flag if both OpenVPN servers are directly connected via a common subnet, such as with wireless. The local flag will cause step 1 above to be omitted. 
 Add the def1 flag to override the default gateway by using 0.0.0.0/1 and 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of overriding but not wiping out the original default gateway. 
 Using the def1 flag is highly recommended, and is currently planned to become the default by OpenVPN 2.1.
транслирую
создается роут до openvpn сервера через ваш основной шлюз
удаляется дефолтный роут
новый дефолт роут фигачится через openvpn
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.