Имя: Пароль:
IT
Админ
OpenVPN проброс моста или видимость сети за сервером.
,
0 Event_Now
 
10.05.18
09:41
Здравствуйте знатоки.

Разбираюсь тут с OpenVPN и возникла проблема с доступом в локальную сеть за сервером с установленным OpenVPN.
Судя по мануалам и той информации, что нашёл в интернете, для меня больше всего подходит подключение типа мост (bridge).

Итак, имеется сервер Windows server 2012 R2, две локальных сети размещённых в разных городах.
Подсеть офиса №1 имеет адресацию 192.168.94.х
Подсеть офиса №2 имеет адресацию 192.168.115.х

Задача, настроить мост между офисами.

Настройки фаерволов и проброс портов,  корректны. Классическое соединение с DHCP, через подсеть 10.10.10.x работает без проблем, пакеты и ping до сервера проходят, но сеть за сервером OpenVPN не видна.

Если кто уже настраивал подобную схему, прошу откликнуться.
1 Event_Now
 
10.05.18
09:58
Вот как я пробую на данный момент.

Конфиг сервера:
proto tcp4-server
port 30000
dev tap
dev-node oVPN

tls-server
tls-auth "C:\\OpenVPN\\easy-rsa\\keys\\ta.key" 0

tun-mtu 1500
tun-mtu-extra 32
mssfix 1450

ca "C:\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "C:\\OpenVPN\\easy-rsa\\keys\\SrvVPN.crt"
key "C:\\OpenVPN\\easy-rsa\\keys\\SrvVPN.key"
dh "C:\\OpenVPN\\easy-rsa\\keys\\dh4096.pem"

server-bridge 192.168.94.199 255.255.255.0 192.168.94.200 192.168.94.210
client-to-client
keepalive 10 120

cipher AES-128-CBC
comp-lzo

persist-key
persist-tun

client-config-dir "C:\\OpenVPN\\config"

verb 3
route-delay 5
route-method exe
2 Event_Now
 
10.05.18
10:03
Ну и конфиг клиента:

remote [тут адрес сервера]
client
port 30000
proto tcp4-client
dev tap

tls-client
tls-auth "C:\\Program Files\\OpenVPN\\config\\ta.key" 1
remote-cert-tls server
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450

ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\ClientVPN.crt"
key "C:\\Program Files\\OpenVPN\\config\\ClientVPN.key"

cipher AES-128-CBC
comp-lzo

persist-key
persist-tun

verb 3
mute 20
3 Event_Now
 
10.05.18
10:08
А теперь суть проблемы.

Соединение устанавливается, сервер с OpenVPN пингуется, доступ есть. А вот к серверам с другими адресами, как и к любой рабочей станции и/или сетевым устройствам, доступа нет.

Знает кто, как это победить? Ну или выскажите собственные мысли по этому поводу.
4 eRik
 
10.05.18
10:15
А маршрутизацию кто настраивать будет, Пушкин?
5 Exec
 
10.05.18
10:16
(0) У меня без моста реализовано.

Мой конфиг серва:
===
port 2033
proto tcp4
dev tun0
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh4096.pem
server 10.192.18.0 255.255.255.0
push "route 10.192.18.0 255.255.255.0"
push "route 192.168.18.0 255.255.255.0"
client-config-dir /etc/openvpn/ccd
auth SHA256
cipher AES-256-CBC
keepalive 30 180
max-clients 30
user root
group wheel
persist-key
persist-tun
mssfix 0
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3
===

push - отдаст нужные маршруты клиентам.
Если надо каждому клиенту отдельный маршрут, то в файле клиента на сервере указать:

push "route 192.168.1.232 255.255.255.255"
push "route 192.168.1.233 255.255.255.255"
push "route 192.168.3.0 255.255.255.0"

Соответственно, помимо указанных в конфиге сервера подсеток - этому клиенту отдадуться еще три маршрута дополнительно.
А т.к тебе еще надо при установке связи прописать на сервере маршрут к удалённой сети - дописываются еще такие строчки:
iroute "192.168.50.0 255.255.255.0"
iroute "10.10.15.20 255.255.255.255"

После установления соединения с этим клиентом - ему уходят роуты push, и одновременно на сервере появляется маршрут в дальнюю сеть 192.168.50.0/24 и к одиночному серверу за той же удалённой сетью 10.10.15.20/32
6 Event_Now
 
10.05.18
10:22
(4) - Да, наверно его позову. Не могли бы вы более конкретно описать, где их добавлять, в файл конфигурации сервера?

Вы уж извините, был бы я таким умным как вы, то не стал бы создавать данную тему.
7 Event_Now
 
10.05.18
10:25
(5) -Спасибо за ответ, сейчас попробую. По результату отпишусь.

p.s. Я так понимаю, у вас OpenVPN на линухе крутится. Забавно, что в сети полно инструкций по линуксу на данную тему, а вот про windows очень мало.
8 Exec
 
10.05.18
10:28
(7) да, центось. На винде по идее то же самое, только у клиента на win 8 и выше не забывай запускать всё от админа, что клиента, что сервер, иначе не будет доступа для изменения таблицы маршрутизации, а так же на стороне клиента прописать в конфиг дополнительно две строчки:
==
route-method exe
route-delay 2    
===
p.s: ну и шлюзование на винде-сервере должно быть включено, чтобы она в качестве роутера выступала
9 arsik
 
гуру
10.05.18
10:30
(8) В новой версии уже все есть. Отдельная служба запускается, которая рулит маршрутами и прочим. Сейчас админские права для запуска перезапуска ненужны боле.
10 Event_Now
 
10.05.18
10:37
(9) - Я использую openvpn 2.4.6-I602 (она последняя).
Простите, как видим из моего примера, новая версия "рулит маршрутами" не особо. Ну или я опять пропустил галочку в настройках.
Можете подсказать, где всё это глянуть?
11 arsik
 
гуру
10.05.18
10:40
(10) Тут разбираться надо. Покажи маршруты на
1) Сервере опенвпн
2) Клиенте опенвпн
3) на компе за сервером
4) На компе за клиентом
12 Event_Now
 
10.05.18
10:42
(5) - Сервер ругается на iroute, мол нет такой команды. Дальше не стартует.
13 Event_Now
 
10.05.18
10:47
(11) - Сервер
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0      192.168.94.1      192.168.94.7    276
        10.10.0.0    255.255.255.0        10.10.0.2        10.10.0.1     21
        10.10.0.0  255.255.255.252         On-link         10.10.0.1    276
        10.10.0.1  255.255.255.255         On-link         10.10.0.1    276
        10.10.0.3  255.255.255.255         On-link         10.10.0.1    276
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      192.168.94.0    255.255.255.0         On-link       192.168.94.7    276
      192.168.94.7  255.255.255.255         On-link       192.168.94.7    276
    192.168.94.255  255.255.255.255         On-link       192.168.94.7    276
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link         10.10.0.1    276
        224.0.0.0        240.0.0.0         On-link       192.168.94.7    276
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link         10.10.0.1    276
  255.255.255.255  255.255.255.255         On-link       192.168.94.7    276
14 Event_Now
 
10.05.18
10:50
(11) - Клиент (внешний ПК)
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0     192.168.1.14     192.168.1.52     35
          0.0.0.0          0.0.0.0         25.0.0.1                e   9256
        10.10.0.0    255.255.255.0        10.10.0.5        10.10.0.6    291
        10.10.0.4  255.255.255.252         On-link         10.10.0.6    291
        10.10.0.6  255.255.255.255         On-link         10.10.0.6    291
        10.10.0.7  255.255.255.255         On-link         10.10.0.6    291
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      192.168.94.0    255.255.255.0        10.10.0.5        10.10.0.6    291
      192.168.1.0    255.255.255.0         On-link      192.168.1.52    291
     192.168.1.52  255.255.255.255         On-link      192.168.1.52    291
    192.168.1.255  255.255.255.255         On-link      192.168.1.52    291
     192.168.56.0    255.255.255.0         On-link      192.168.56.1    281
     192.168.56.1  255.255.255.255         On-link      192.168.56.1    281
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    281
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    281
        224.0.0.0        240.0.0.0         On-link      192.168.1.52    291
        224.0.0.0        240.0.0.0         On-link                 e   9256
        224.0.0.0        240.0.0.0         On-link         10.10.0.6    291
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    281
  255.255.255.255  255.255.255.255         On-link      192.168.1.52    291
  255.255.255.255  255.255.255.255         On-link                 e   9256
  255.255.255.255  255.255.255.255         On-link         10.10.0.6    291
15 arsik
 
гуру
10.05.18
10:51
Самое простое - на сервере включить маршрутизацию и включить NAT из опенвпн интерфейса во внутреннюю сеть.
16 Event_Now
 
10.05.18
10:52
(15) - И потом на всех машинах прописывать шлюзом этот сервер. Не, не вариант.
17 Event_Now
 
10.05.18
10:53
(11) - Судя по строке (192.168.94.0    255.255.255.0        10.10.0.5        10.10.0.6    291 ) Маршрут приходит.
18 arsik
 
гуру
10.05.18
10:54
(16) Как раз нет. НАТ же. Все пакеты во внутреннюю сеть пойдут как бы от сервера.
19 Event_Now
 
10.05.18
10:59
(18) - Ладно, попробуем данную зверушку. Сразу вопрос, как реализовать?

p.s. Судя по FAQ Community Software, проблема в том, что не происходит маршрутизация между виртуальным и физическим интерфейсами в локальную сеть.

Текст:
The clients will negotiate a DHCP lease through the tunnel, meaning that both VPN clients and local machines will receive their IP addresses from the DHCP server address pool. The one complexity about this configuration is that you need to modify your DHCP server configuration to differentiate between local clients and VPN clients. The reason for this is that you must not pass out a default gateway to VPN clients. See the Win32 install notes for an example.
20 eRik
 
10.05.18
11:06
Судя по таблице маршрутов, ни сервер, ни клиент openvpn не являются шлюзами в своих сетях. А значит нужно на шлюзах дописать вручную маршруты в чужую сеть на свой узел openvpn.
Или да, придется делать НАТ.
21 Event_Now
 
10.05.18
11:26
(20) - Так, ну давай сперва попробуем NAP, а потом уже пущу в ход "тяжелую артиллерию". (полезу прописывать маршруты на шлюзе)

Сразу вопрос, как развернуть NAP в OpenVPN?
22 Event_Now
 
10.05.18
11:28
(20)- Очипятолся два раза. (NAP = NAT)
23 Exec
 
10.05.18
11:34
Штатно - средствами винды (rras в win-server)
Так же можно попробовать обычным расшариванием сетевого подключения, но не уверен что сработает
24 arsik
 
гуру
10.05.18
11:35
Если есть доступ к маршрутизатору, то проще тогда маршруты на нем добавить.
25 eRik
 
10.05.18
11:45
(21) Как раз таки НАТ и является тяжелой артиллерией. Проще маршрут на шлюзе дописать, ну или на рандомных клиентах (если их немного и трогать настройки шлюза нет возможности), которым нужен доступ в чужую подсеть.
26 eRik
 
10.05.18
11:54
Хотя, что-то я погорячился с НАТом - он тут вообще не при делах. Ибо исходящие запросы с рандомного компа в чужую сеть все-равно будут уходить на шлюз, и НАТ тут не поможет. Разве что в другую сторону, но там и без него все нормально будет.
В общем, добавлять маршрут на шлюз или на каждый комп, которых будет работать с чужой сетью.
27 Event_Now
 
10.05.18
12:07
(22) - Спасибо за рекомендацию.
28 Event_Now
 
10.05.18
12:12
(26) - Вот и я подумал, причём тут NAT? Ладно, проверю сейчас, светится ли адрес сервака на шлюзе и куда пакеты направляются, а там дальше будет видно.

Вообще, идея с DHCP на OpenVPN и пробросом маршрутов только для нужных адресов, мне импонирует больше, т.к. она более гибкая и подконтрольная. Жаль, что нет особо времени разобраться, т.к. сроки горят. (нужно вчера, как обычно)

Спасибо за наводку (на пиво), пойду прописывать маршруты.

По завершению, отпишусь о результатах.
29 Сияющий в темноте
 
10.05.18
13:50
С клиента,когда пакет идет в чужую сеть,то выбирается адаптер с меньшей метрикой,то есть  ли на клиента добавлять маршрут,который можно брать с dhcp сервера,или все пакеты пойдут в шлюз по умолчанию,и ловить их там
30 Провинциальный 1сник
 
10.05.18
13:53
Я не понимаю логику ТС. Нужен мост, а подсети разные. Нафига тогда козе баян? Мост на то и мост, что это по сути объединение двух локалок патч-кордом.
31 Event_Now
 
11.05.18
10:24
(29) - Маршруты идут в любом случае через шлюз, VPN сервер им и является. По логике, маршрутизацию должен сам VPN сервер раздавать клиентам и пускать их только туда, куда им разрешено. (Но это в идеале)

Я с OpenVPN не работал до данного момента, пользовался Kerio VPN, но он платный. А контора, что запросила создать им VPN мост, за софт платить не хочет. Вот и пытаюсь слепить из того, что имеется в наличии.
32 Event_Now
 
11.05.18
10:26
(30) - С вашей логикой, я вижу лучше не спорить. )))))))) *facepalm*
33 Event_Now
 
11.05.18
11:27
Итак.
Решение задачи.

---

Конфиг сервера:
proto tcp4-server
port 30000
dev tun
tls-server
tls-auth "C:\\OpenVPN\\easy-rsa\\keys\\ta.key" 0
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ca "C:\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "C:\\OpenVPN\\easy-rsa\\keys\\SrvVPN.crt"
key "C:\\OpenVPN\\easy-rsa\\keys\\SrvVPN.key"
dh "C:\\OpenVPN\\easy-rsa\\keys\\dh4096.pem"
server 10.10.0.0 255.255.255.0
push "route 10.10.0.0 255.255.255.0"
push "route 192.168.94.0 255.255.255.0"
client-to-client
keepalive 10 120
cipher AES-128-CBC
comp-lzo
persist-key
persist-tun
client-config-dir "C:\\OpenVPN\\config"
verb 3
route-delay 5
route-method exe

---

Конфиг клиента:
remote [тут адрес сервера]
client
port 30000
proto tcp4-client
dev tun
tls-client
tls-auth "C:\\Program Files\\OpenVPN\\config\\ta.key" 1
remote-cert-tls server
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\ClientVPN.crt"
key "C:\\Program Files\\OpenVPN\\config\\ClientVPN.key"
cipher AES-128-CBC
comp-lzo
persist-key
persist-tun
verb 3
mute 20
route-delay 5
route-method exe

После этого, заходим в свойства физического адаптера и на закладке "Доступ", ставим галочку напротив "Разрешить другим поль...", а в списке "Подключение домашней сети", выбираем наш виртуальный адаптер OpenVPN.

---

Вот собственно и всё.

p.s. Всем спасибо за участие, всех вам благ и быстрых решений ваших задач.

Тема закрыта.
34 arsik
 
гуру
11.05.18
11:31
Короче ты все таки НАТ сделал. Ну хозяин барин.
35 Event_Now
 
11.05.18
11:35
(34) - Тут у меня пара человек постоянно мотаются по разным офисам и хз какие там адреса у сеток. Дабы исключить проблему с адресацией, я сам с собой посовещался и принял решение об использовании NAT конфигурации. ;)
36 arsik
 
гуру
11.05.18
11:56
(35) А при чем тут какая сетка за клиентом? У тебя же трафик будет идти от виртуального интерфейса опенвпн (10.10.0.0 255.255.255.0)
37 arsik
 
гуру
11.05.18
11:57
+ (36) Тебе в офисе на основном маршрутизаторе нужно было добавить маршрут 10.10.0.0 255.255.255.0 до сервера опенвпн и все.
38 Йохохо
 
11.05.18
12:00
(35) чтобы такое исключить надо выбрать хитрую подсеть, а не натить, 172.29.251.0 рекомендую
39 Event_Now
 
11.05.18
12:10
(37) + (38) - Ребята, спасибо за комментарии, но давайте не будем плодить их, т.к. когда появится человек с подобным вопросом как у меня, то ему будет сложно найти решение задачи и придётся опять поднимать текущую тему.
40 Йохохо
 
11.05.18
12:11
(39) НАТ не поможет при совпадении подсетей, так норм?
41 arsik
 
гуру
11.05.18
12:13
(40) Маршрутизация тоже не поможет. Только NETMAP - но как на винде нетмап сделать это большой вопрос.
42 Йохохо
 
11.05.18
12:14
(41) да пока непонятно какой вопрос у ТС остался) нат лучше тем, что порты клиента останутся закрыты, для домашних ноутов это +
43 Провинциальный 1сник
 
12.05.18
19:30
(33) "dev tun " и мост как-то слабо сочетаются в итоге.
Закон Брукера: Даже маленькая практика стоит большой теории.