Openvpn windows сеть за сервером

Задача. Попасть во внутреннюю сеть организации извне.
VPN сервер находится за роутером (проброс сделан и работает).
К нему подключаюсь удаленно (допустим через Usb модем).
Сама сеть организации это 192.168.2.х. IP адрес сервера на котором стоит сервер openvpn 192.168.2.20. IP адрес впн сервера при запуске 192.168.10.1
При подключении vpn клиент получает IP адрес 192.168.10.6 (Сам IP клиента 192.168.42.188)

Взаимный пинг между 192.168.10.1 и 192.168.10.6 есть. Но пинга до 192.168.2.20 и до 192.168.43.188 никакого нет.
Маршруты прописываются. Через rout print вижу
Следовательно до компьютеров сети организации 192.168.2.х (или до роутера 192.168.2.1) нет.
Как понимаю в конфиге еще что нужно прописывать ?
Конф сервера

dev tun
proto tcp-server
port 5190
tls-server
server 192.168.10.0 255.255.255.0
client-to-client
comp-lzo
route 192.168.42.0 255.255.255.0 192.168.10.6
push «route 192.168.1.0 255.255.255.0 192.168.10.1»
dh C:\\OpenVPN\\ssl\\dh1024.pem
ca C:\\OpenVPN\\ssl\\ca.crt
cert C:\\OpenVPN\\ssl\\Server.crt
key C:\\OpenVPN\\ssl\\Server.key
tls-auth C:\\OpenVPN\\ssl\\ta.key 0
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
keepalive 10 120
status C:\\OpenVPN\\log\\openvupn-status.log
log C:\\OpenVPN\\log\\openvpn.log
verb 3

Конф клиента

client
dev tun
proto tcp
remote х.х.х.х
port 5190
tls-client

persist-key
persist-tun
ns-cert-type server
ca C:\\OpenVPN\\ssl\\ca.crt
cert C:\\OpenVPN\\ssl\\client.crt
key C:\\OpenVPN\\ssl\\client.key
tls-auth C:\\OpenVPN\\ssl\\ta.key 1
ns-cert-type server
comp-lzo
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
verb 3
ping-restart 60
ping 10
log-append «C:\\OpenVPN\\log\\openvpn.log»
status «C:\\OpenVPN\\log\\status.log»

принт сервера

0.0.0.0 0.0.0.0 192.168.42.129 192.168.42.188
127.0.0.0 255.0.0.0 On-link 127.0.0.1
127.0.0.1 255.255.255.255 On-link 127.0.0.1
127.255.255.255 255.255.255.255 On-link 127.0.0.1
192.168.1.0 255.255.255.0 192.168.10.1 192.168.42.188
192.168.10.0 255.255.255.0 192.168.10.5 192.168.10.6
192.168.10.4 255.255.255.252 On-link 192.168.10.6
192.168.10.6 255.255.255.255 On-link 192.168.10.6
192.168.10.7 255.255.255.255 On-link 192.168.10.6
192.168.42.0 255.255.255.0 On-link 192.168.42.188
192.168.42.188 255.255.255.255 On-link 192.168.42.188
192.168.42.255 255.255.255.255 On-link 192.168.42.188

Принт клиента

0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.47 25
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.1.0 255.255.255.0 On-link 192.168.1.47 281
192.168.1.47 255.255.255.255 On-link 192.168.1.47 281
192.168.1.255 255.255.255.255 On-link 192.168.1.47 281
192.168.10.0 255.255.255.0 192.168.10.2 192.168.10.1 20
192.168.10.0 255.255.255.252 On-link 192.168.10.1 276
192.168.10.1 255.255.255.255 On-link 192.168.10.1 276
192.168.10.3 255.255.255.255 On-link 192.168.10.1 276
192.168.42.0 255.255.255.0 192.168.10.6 192.168.1.47 26


  • Вопрос задан

  • 5678 просмотров

Пригласить эксперта

Нужно NAT настроить на сервере OpenVPN, то есть трансляцию адресов из сети VPN-клиентов в локалку.
Так же можно поднять tap OpenVPN, что бы была одна сеть на уровне L2

ИСПРАВЛЕНО

В конфиге сервера

Удалите строки:
route 192.168.42.0 255.255.255.0 192.168.10.6
push «route 192.168.1.0 255.255.255.0 192.168.10.1»

Добавьте строки:
push «route 192.168.10.0 255.255.255.0»
push «route 192.168.2.0 255.255.255.0»
route 192.168.42.0 255.255.255.0

В настройки клиента (обычно это файл с именем клиента в каталоге ccd, на сервере) добавьте:
iroute 192.168.42.0 255.255.255.0

И да, вижу у вас Windows. На момент проверки тормозните файрвол.

Написал. роуты как просили
в папке C:\\OpenVPN\\config\\ccd создал файл Client.txt
прописал там iroute 192.168.43.0 255.255.255.0

Фаерволы на обоих машинах отключены.

Но результат такой же
Табл. мар сервера

192.168.2.0 255.255.255.0 On-link 192.168.2.20 276
192.168.2.20 255.255.255.255 On-link 192.168.2.20 276
192.168.2.255 255.255.255.255 On-link 192.168.2.20 276
192.168.10.0 255.255.255.0 192.168.10.2 192.168.10.1 30
192.168.10.0 255.255.255.252 On-link 192.168.10.1 286
192.168.10.1 255.255.255.255 On-link 192.168.10.1 286
192.168.10.3 255.255.255.255 On-link 192.168.10.1 286
192.168.43.0 255.255.255.0 192.168.10.2 192.168.10.1 30

клиента

127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.2.0 255.255.255.0 192.168.10.5 192.168.10.6 20
192.168.10.0 255.255.255.0 192.168.10.5 192.168.10.6 20
192.168.10.4 255.255.255.252 On-link 192.168.10.6 276
192.168.10.6 255.255.255.255 On-link 192.168.10.6 276
192.168.10.7 255.255.255.255 On-link 192.168.10.6 276
192.168.43.0 255.255.255.0 On-link 192.168.43.138 281
192.168.43.138 255.255.255.255 On-link 192.168.43.138 281
192.168.43.255 255.255.255.255 On-link 192.168.43.138 281

Еще вопрос. С роутера я же должен пинговать сеть openvpn. Маршрут вроде нормальный.
Но ни сервер впн ни клиент не пингуются.

204d5379352847f48158aecb774df9ac.PNG

Войдите, чтобы написать ответ


  • Показать ещё
    Загружается…

Минуточку внимания

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 » и мост как-то слабо сочетаются в итоге.

OpenVPN – это набор open source программ, который заслуженно является одним из самых популярных и легких решений для реализации защищенной VPN сети. OpenVPN позволяет объединить в единую сеть сервер и клиентов (даже находящиеся за NAT или файерволами), или объединить сети удаленных офисов. Серверную часть OpenVPN можно развернуть практически на всех доступных операционных системах (пример настройки OpenVPN на Linux). Вы можете установить OpenVPN сервер даже на обычный компьютер с десктопной редакцией Windows 10.

В этой статье, мы покажем, как установить OpenVPN сервер на компьютер с Windows 10, настроить OpenVPN клиент на другом Windows хосте и установить защищенное VPN подключение.

Содержание:

  • Установка службы OpenVPN сервера в Windows
  • Создаем ключи шифрования и сертификаты для OpenVPN
  • Конфигурационный файл OpenVPN сервера в Windows
  • Настройка OpenVPN клиента в Windows

Установка службы OpenVPN сервера в Windows

Скачайте MSI установщик OpenVPN для вашей версии Windows с официального сайта (https://openvpn.net/community-downloads/). В нашем случае это OpenVPN-2.5.5-I602-amd64.msi (https://swupdate.openvpn.org/community/releases/OpenVPN-2.5.5-I602-amd64.msi).

Запустите установку.

Если вы планируете, OpenVPN сервер работал в автоматическом режиме, можно не устанавливать OpenVPN GUI. Обязательно установите OpenVPN Services.

установка openvpn сервера в windows 10

Начиная с версии OpenVPN 2.5, поддерживается драйвер WinTun от разработчиков WireGuard. Считается, что этот драйвер работает быстрее чем классический OpenVPN драйвер TAP. Установите драйвер Wintun, откажитесь от установки TAP-Windows6.

Установите OpenSSL утилиту EasyRSA Certificate Management Scripts.

WinTun драйвер openvpn

Запустите установку.

По умолчанию OpenVPN устаналивается в каталог C:\Program Files\OpenVPN.

После окончания установки появится новый сетевой адаптер типа Wintun Userspace Tunnel. Этот адаптер отключен, если служба OpenVPN не запущена.

сетевой адаптер Wintun Userspace Tunnel

Создаем ключи шифрования и сертификаты для OpenVPN

OpenVPN основан на шифровании OpenSSL. Это означает, что для обмена трафиком между клиентом и серверов VPN нужно сгенерировать ключи и сертификаты с использованием RSA3.

Откройте командную строку и перейдите в каталог easy-rsa:

cd C:\Program Files\OpenVPN\easy-rsa

Создайте копию файла:

copy vars.example vars

Откройте файл vars с помощью любого текстового редактора. Проверьте пути к рабочим директориям.

Обязательно поправьте переменную EASYRSA_TEMP_DIR следующим образом:

set_var EASYRSA_TEMP_DIR "$EASYRSA_PKI/temp"

EASYRSA_TEMP_DIR

Можете заполнить поля для сертификатов (опционально)

set_var EASYRSA_REQ_COUNTRY "RU"
set_var EASYRSA_REQ_PROVINCE "MSK"
set_var EASYRSA_REQ_CITY "MSK"
set_var EASYRSA_REQ_ORG "IT-Company"
set_var EASYRSA_REQ_EMAIL " [email protected] "
set_var EASYRSA_REQ_OU " IT department "

конфигурационный файл vars при установке сертфикатов easyrsa

Срок действия сертификатов задается с помощью:

#set_var EASYRSA_CA_EXPIRE 3650
#set_var EASYRSA_CERT_EXPIRE 825

Сохраните файл и выполните команду:

EasyRSA-Start.bat

Следующие команды выполняются в среде EasyRSA Shell:

Инициализация PKI:

./easyrsa init-pki

Должна появится надпись:

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: C:/Program Files/OpenVPN/easy-rsa/pki

Теперь нужно сгенерировать корневой CA:

./easyrsa build-ca

Задайте дважды пароль для CA:

CA creation complete and you may now import and sign cert requests.

Данная команда сформировала:

  • Корневой сертификат центра сертификации: «C:\Program Files\OpenVPN\easy-rsa\pki\ca.crt»
  • Ключ центра сертификации «C:\Program Files\OpenVPN\easy-rsa\pki\private\ca.key»

Теперь нужно сгенерировать запрос сертификата и ключ для вашего сервера OpenVPN:

./easyrsa gen-req server nopass

Утилита сгенерирует два файла:

req: C:/Program Files/OpenVPN/easy-rsa/pki/reqs/server.req
key: C:/Program Files/OpenVPN/easy-rsa/pki/private/server.key

Подпишем запрос на выпуск сертификата сервера с помощью нашего CA:

./easyrsa sign-req server server

Подтвердите правильность данных, набрав yes.

Затем введите пароль CA от корневого CA.

В каталоге issued появится сертификат сервера («C:\Program Files\OpenVPN\easy-rsa\pki\issued\server.crt»)

сертификат сервера openvpn

Теперь можно создать ключи Диффи-Хеллмана (займет длительное время):
./easyrsa gen-dh

Для дополнительной защиты VPN сервера желательно включить tls-auth. Данная технология позволяет использовать подписи HMAC к handshake-пакетам SSL/TLS, инициируя дополнительную проверку целостности. Пакеты без такой подписи будут отбрасываться VPN сервером. Это защитит вас от сканирования порта VPN сервера, DoS атак, переполнения буфера SSL/TLS.

Сгенерируйте ключ tls-auth:

cd C:\Program Files\OpenVPN\bin
openvpn --genkey secret ta.key

Должен появиться файл «C:\Program Files\OpenVPN\bin\ta.key». Переместите его в каталог C:\Program Files\OpenVPN\easy-rsa\pki

Теперь можно сформировать ключи для клиентов OpenVPN. Для каждого клиента, который будет подключаться к вашему серверу нужно создать собственные ключи.

Есть несколько способов генерации ключей и передачи их клиентам. В следующем примере, мы создадим на сервере ключ клиента и защитим его паролем:

./easyrsa gen-req kbuldogov
./easyrsa sign-req client kbuldogov

Данный ключ («C:\Program Files\OpenVPN\easy-rsa\pki\private\kbuldogov.key») нужно передать клиенту и сообщить пароль. Клиент может снять защиту паролем для ключа:

openssl rsa -in "C:\Program Files\OpenVPN\easy-rsa\pki\private\kbuldogov.key"-out "C:\Program Files\OpenVPN\easy-rsa\pki\private\kbuldogov_use.key"

снять защиту паролем с ключа клиента

Если вы хотите сгенерировать ключ, не защищенный паролем, нужно выполнить команду:

./easyrsa gen-req имяклиента nopass

На сервере с OpenVPN вы можете создать неограниченное количество ключей и сертификатов для пользователей. Аналогичным образом сформируйте ключи и сертфикаты для других клиентов.

Вы можете отохвать скомпрометированные сертификаты клиентов:
cd C:\Program Files\OpenVPN\easy-rsa
EasyRSA-Start.bat
./easyrsa revoke kbuldogov

Итак, мы сгенерировали набор ключей и сертификатов для OpenVPN сервера. Теперь можно настроить и запустить службу OpenVPN.

Конфигурационный файл OpenVPN сервера в Windows

Скопируйте типовой конфигурационный файл OpenVPN сервера:

copy "C:\Program Files\OpenVPN\sample-config\server.ovpn" "C:\Program Files\OpenVPN\config-auto\server.ovpn"

Откройте файл server.ovpn в любом текстовом редакторе и внесите свои настройки. Я использую следующий конфиг для OpenVPN:

# Указываем порт, протокол и устройство
port 1194
proto udp
dev tun
# Указываем пути к сертификатам сервера
ca "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\issued\\server.crt"
key "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\private\\server.key"
dh "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\dh.pem"
# Указываем настройки IP сети, адреса из которой будет будут получать VPN клиенты
server 10.24.1.0 255.255.255.0
#если нужно разрешить клиентам подключаться под одним ключом, нужвно включить опцию duplicate-cn (не рекомендуется)
#duplicate-cn
# TLS защита
tls-auth "C:\\Program Files\\OpenVPN\\easy-rsa\\pki\\ta.key" 0
cipher AES-256-GCM
# Другая параметры
keepalive 20 60
persist-key
persist-tun
status "C:\\Program Files\\OpenVPN\\log\\status.log"
log "C:\\Program Files\\OpenVPN\\log\\openvpn.log"
verb 3
mute 20
windows-driver wintun

Сохраните файл.

OpenVPN позволяет использовать как TCP, так и UDP для подключения. В этом примере я запустил OpenVPN на 1194 UDP. Рекомендуется использовать протокол UDP, это оптимально как с точки зрения производительности, так и безопасности.

Не забудьте открыть на файерволе порты для указанного вами порта OpenVPN на клиенте и на сервере. Можно открыть порты в Windows Defender с помощью PowerShell.
Правило для сервера:

New-NetFirewallRule -DisplayName "AllowOpenVPN-In" -Direction Inbound -Protocol UDP –LocalPort 1194 -Action Allow

Правило для клиента:

New-NetFirewallRule -DisplayName "AllowOpenVPN-Out" -Direction Outbound -Protocol UDP –LocalPort 1194 -Action Allow

Теперь нужно запустить службу OpenVPN и изменить тип ее запуска на автоматический. Воспользуйтесь таким командами PowerShell, чтобы включить службу:

Set-Service OpenVPNService –startuptype automatic –passthru
Get-Service OpenVPNService| Start-Service

запуск службы OpenVPNService

Откройте панель управления, и убедитесь, что виртуальный сетевой адаптер OpenVPN Wintun теперь активен. Если нет, смотрите лог «C:\Program Files\OpenVPN\log\server.log»

Если при запуске OpenVPN вы видите в логе ошибку:

Options error: In C:\Program Files\OpenVPN\config-auto\server.ovpn:1: Maximum option line length (256) exceeded, line starts with..

Смените в файле server.ovpn символы переноса строки на Windows CRLF (в notepad++ нужно выбрать Edit -> EOL Conversion -> Windows CR LF). Сохраните файл, перезапустите службу OpevVPNService.

Данный конфиг позволит удаленным клиентам получить доступ только к серверу, но другие компьютеры и сервисы в локальной сети сервера для них недоступны. Чтобы разрешить клиентам OpenVPN получить доступ к внутренней сети нужно:

Включить опцию IPEnableRouter в реестре (включает IP маршрутизацию в Windows, в том числе включает маршрутизацию меду сетями Hyper-V): reg add «HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters» /v IPEnableRouter /t REG_DWORD /d 1 /f

Добавьте в конфгурационный файл сервера OpenVPN маршруты до внутренней IP сети:

push "route 10.24.1.0 255.255.255.0"
push "route 192.168.100.0 255.255.255.0"

Если нужно, назначьте клиенту адреса DNS серверов:

push "dhcp-option DNS 192.168.100.11"
push "dhcp-option DNS 192.168.100.12"

Если нужно завернуть все запросы клиента (в том числе Интернет трафик) на ваш OpenVPN сервер, добавьте опцию:

push "redirect-gateway def1"

Настройка OpenVPN клиента в Windows

Создайте на сервере шаблонный конфигурационный файла для клиента VPN (на базе iшаблона client.ovpn) со следующими параметрами (имя файла kbuldovov.ovpn)

client
dev tun
proto udp
remote your_vpn_server_address 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert kbuldogov.crt
key kbuldogov.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-GCM
connect-retry-max 25
verb 3

В директиве remote указывается публичный IP адрес или DNS имя вашего сервера OpenVPN.

Скачайте и установите клиент OpenVPN Connect для Windows (https://openvpn.net/downloads/openvpn-connect-v3-windows.msi).

установка openvpn connect в windows

Теперь на компьютер с клиентом OpenVPN нужно с сервера скопировать файлы:

  • ca.crt
  • kbuldogov.crt
  • kbuldogov.key
  • dh.pem
  • ta.key
  • kbuldogov.ovpn

Теперь импортируйте файл с профилем *.ovpn и попробуйте подключиться к вашему VPN серверу.

Если все настроено правильно, появится такая картинка.

Проверьте теперь лог OpenVPN на клиенте «C:\Program Files\OpenVPN Connect\agent.log»

Mon Dec 27 08:09:30 2021 proxy_auto_config_url
Mon Dec 27 08:09:31 2021 TUN SETUP
TAP ADAPTERS:
guid='{25EE4A55-BE90-45A0-88A1-8FA8FEF24C42}' index=22 name='Local Area Connection'
Open TAP device "Local Area Connection" PATH="\\.\Global\{25EE4A55-BE90-45A0-88A1-8FA8FEF24C42}.tap" SUCCEEDED
TAP-Windows Driver Version 9.24
ActionDeleteAllRoutesOnInterface iface_index=22
netsh interface ip set interface 22 metric=1
Ok.
netsh interface ip set address 22 static 10.24.1.6 255.255.255.252 gateway=10.24.1.5 store=active
IPHelper: add route 10.24.1.1/32 22 10.24.1.5 metric=-1

Клиент успешно подключится к OpenVPN серверу и получил IP адрес 10.24.1.6.

Проверьте теперь лог на сервере («C:\Program Files\OpenVPN\log\openvpn.log»). Здесь также видно, что клиент с сертификатом kbuldogov успешно подключится к вашему серверу.

2021-12-27 08:09:35 192.168.13.202:55648 [kbuldogov] Peer Connection Initiated with [AF_INET6]::ffff:192.168.13.202:55648
2021-12-27 08:09:35 kbuldogov/192.168.13.202:55648 MULTI_sva: pool returned IPv4=10.24.1.6, IPv6=(Not enabled)
2021-12-27 08:09:35 kbuldogov/192.168.13.202:55648 MULTI: Learn: 10.24.1.6 -> kbuldogov/192.168.13.202:55648
2021-12-27 08:09:35 kbuldogov/192.168.13.202:55648 MULTI: primary virtual IP for kbuldogov/192.168.13.202:55648: 10.24.1.6

Доброго времени уважаемые.

Столкнулся вот с такой траблой… (тем про «клиенты не видят сеть за OpenVPN сервером» вагон, но для конкретного случая не совсем все подходит).

Итак конфиги и вопросы (IPEnableRouter на стороне сервера OpenVPN (Windows2008R2) включен):

Компьютер1 (сервер):
а) LAN интерфейс — сетевая плата: 192.168.0.240/24, gw/dns: 192.168.0.200
б) Сервер OpenVPN tap (в итоге получает адрес 10.0.0.1) надеюсь что шлюзуется??? по дефолту в системе: 0.0.0.0 маска 0.0.0.0 через основной шлюз 192.168.0.200

Компьютер2 (клиент):
а) Роутер 192.168.10.50 с настройками сети провайдера (файрвол allow насквозь!!!)
б) MacOS сетевая плата: 192.168.10.1/24, gw/dns: 192.168.10.50
в) Сеть tap интерфейса (насколько понимаю): 10.0.0.10 (назначенный), что касается маршрутизации по умолчанию на 192.168.10.50 с этого tap я НЕ ЗНАЮ ЕСТЬ ИЛИ НЕТ???

server.ovpv:

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

dev tap

dev-node "OpenVPN Adapter"

proto udp

port 24000

tls-server

server 10.0.0.0 255.255.255.0

comp-lzo

route-method exe

push "route 192.168.0.0 255.255.255.0"
push "route-gateway 10.0.0.1"

push "dhcp-option DNS 10.0.0.1"
push "dhcp-option DNS 192.168.0.200"

route 192.168.10.0 255.255.255.0 10.0.0.1
# route-gateway 192.168.0.200

client-to-client

client-config-dir D:\\OpenVPN\\config\\ccd

ifconfig-pool-persist D:\\OpenVPN\\config\\ccd\\ipp.txt

dh dh1024.pem
ca ca.crt
cert server.crt
key server.key

#persist-key

tls-auth ta.key 0

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

keepalive 10 120

status status.log
log openvpn.log

verb 3

файл ipp.txt:

файлы client1 и client2:

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

push "route 192.168.0.0 255.255.255.0"
push "route-gateway 10.0.0.1"
iroute 192.168.10.0 255.255.255.0
push "dhcp-option DNS 10.0.0.1"
push "dhcp-option DNS 192.168.0.253"

client.ovpn (1й клиент ИСПОЛЬЗУЕТСЯ НА MAC OS):

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

dev tap

proto tcp

remote site.com 42000

route-delay 3

client
tls-client

ns-cert-type server

ca ca.crt
cert client1.crt
key client1.key
tls-auth ta.key 1

comp-lzo

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

ping-restart 120
ping 20

verb 3

ВОПРОСЫ:

ЗАДАЧА ВИДЕТЬ СЕТЬ 192.168.0.0 (WINDOWS) за сервером OpenVPN 10.0.0.1 (WINDOWS) из сети 192.168.10.0 (MAC OS)

1. Правильно ли указаны route и push нет ли лишних параметров в конфиге СЕРВЕРА?

2. Что то нужно дополнительно прописать в конфиг клиентов или что то убрать оттуда?

3. Что и как нужно прописать в маршруты на компьютеры за сервером OpenVPN сети 192.168.0.0 или это не нужно и маршрут сервера OpenVPN сам все сделает?

4. Что нужно прописать в iptables самого клиента MacOS??? Возможно команда push «route» не проходит на стороне MacOS???

5. Нужна ли дополнительная настройка: # route-gateway 192.168.0.200 под правилом: route 192.168.10.0 255.255.255.0 10.0.0.1
если в самом правиое задается шлюзоваться через 10.0.0.1 ??? Может OpenVPN не врубается???

И ЕЩЕ: В данном маршруте сеть 192.168.10.0 должна быть видна из под 10.0.0.1 нужно ли дополнительно указывать серверу OpenVPN чтобы он ходил через шлюз в локальной сети??? Или это сделает шлюз по умолчанию в настройках интерфейса LAN???

Факт в том, что все танцы с бубном НЕ ДАЮТ РЕЗУЛЬТАТА и сеть из 192.168.10.0 не пингует 192.168.0.0 за сервером OpenVPN!!! Перечитал КУЧУ статей в Интернете!!!

ПРОШУ ПоМоЩи, пожалуйста???

Здравствуйте, уважаемые гуру! Сеовсем я запутался в настройках и уже бьюсь не первый день с openvpn.
Схема такая: opevpn сервер (192.168.50.0), ae0 (192.168.0.90)-роутер длинк(192.168.0.1)(внешний ип)- удаленный клиент (через кучу разных сетей) получает ип 192.168.50.10
конфиг сервера

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

port 8303

proto udp

dev tun0

ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/server.crt
key /usr/local/etc/openvpn/keys/server.key
dh /usr/local/etc/openvpn/keys/dh1024.pem
#crl-verify /usr/local/etc/openvpn/crl.pem

server 192.168.50.0 255.255.255.0
push "dhcp-option DNS 192.168.0.1"
push "dhcp-option DNS 192.168.0.90"
push "dhcp-option WINS 192.168.0.1"

push "route 192.168.0.0 255.255.255.0"
push "route 192.168.50.0 255.255.255.252"
#push "route 192.168.51.0 255.255.255.0"

client-config-dir ccd

route 192.168.50.0 255.255.255.0
route 192.168.0.0 255.255.255.0

push "redirect-gateway def1"
client-to-client
tls-server
tls-auth keys/ta.key 0
tls-timeout 120
auth SHA1
cipher BF-CBC
keepalive 10 120
comp-lzo
max-clients 100
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3

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

sysctl -a net.inet.ip.forwarding
net.inet.ip.forwarding: 1

ccd

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

ifconfig-push 192.168.50.10 192.168.50.9
iroute 192.168.51.0
push "route 192.168.0.0 255.255.255.0

Что происходит: клиент коннектится нормально, получает адрес из ccd прописывает дефолтный маршрут на впн сервер.
пинги
192.168.0.90 пингуется (внешняя карта сервера см.выше)
192.168.50.1 тоже пингуется. шары всякие видны, но
192.168.0.1 — не пингуется хоть тресни и соотвественно дальше вся локалка тоже.

по трассировке видно такое (пишу по памяти потому как гладиолус дома) от клиента:
1. хоп 192.168.50.1
2. хоп 192.168.0.1
3. * * * * * * * * * * * *
и всё на этом заканчивается.
так же пробовал поднять НАТ на pf

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

# TUN (Виртуальный интерфейс OpenVPN 10.10.100.1)
ext_if_ovpn="tun0"

# Виртуальная подсеть OpenVPN
vpnhost_table="{192.168.50.0/24}"

# Подсети Филиалов
filials_subnet="{192.168.0.0/24}"

# Для того что бы из подсети могли ходить друг на друга
nat pass on $ext_if_ovpn from $vpnhost_table to $filials_subnet -> ($ext_if_ovpn)

тоже не помогло. возможно конфиг не правильный но было много попыток сделать верный и все равно не заработал.

Есть еще один казус: после коннекта, клиент пингует всё, что хочет внутри впн локалки 192.168.50.0, нно вот сервер клиента пингануть никак не может. Клиент под windows 7.
опять же пробовал писать в ccd разные маршруты в iroute но толку от этого не прибавилось. кручу опенвпн первый раз и прям встрял с этой проблемой…
обгуглил всю гуглю, вижу я такой не единственный, но пути решения других людей мне не помогают

Прошу помощи у населения этого форума всея сети.
Заранее благодарен за любой намек в правильную сторону потому как перерыл кучу маршрутов и не один не помогает
вижу чо проблема в маршрутизации, но где именно не врублюсь….

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Pages для windows что это
  • Paper windows in korea
  • Realtek lan driver windows vista
  • Kmp video player for windows
  • Windows command net command