LINUX.ORG.RU
решено ФорумAdmin

Помогите настроить OpenVPN

 


0

1

Сервер Ubuntu 20.04
2 клиента Windows 10

Первый клиент ip 10.8.0.2
Второй клиент ip 10.8.0.3

У второго клиента есть подсеть 192.168.1.0/24
Нужно сделать так чтобы клиент 1 имел доступ к этой сети и мог пинговать любое устройство, например 192.168.1.112

client-to-client вроде сделал Маршрутизацию вроде прописал всеровно не работает. Даже на сервере не пингуется 192.168.1.112

Вот конфигурация OpenVPN

port 1194
proto udp6
dev tun
client-to-client
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "redirect-gateway def1 bypass-dhcp"
server-ipv6 fd42:42:42:42::/112
tun-ipv6
push tun-ipv6
push "route-ipv6 2000::/3"
push "redirect-gateway ipv6"
dh none
ecdh-curve prime256v1
tls-crypt tls-crypt.key
crl-verify crl.pem
ca ca.crt
cert server_UUi4V4il9cI36zJJ.crt
key server_UUi4V4il9cI36zJJ.key
auth SHA256
cipher AES-128-GCM
ncp-ciphers AES-128-GCM
tls-server
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
client-config-dir /etc/openvpn/ccd
status /var/log/openvpn/status.log
verb 3
route 192.168.1.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"

push ″route 192.168.1.0 255.255.255.0″

Нет, так просто это не сработает. Вам нужно прописать ″iroute″ для клиента 1 (маршрутизация в сервере openvpn). Раз у вас есть ″client-config-dir″ и ″ifconfig-pool-persist″, значит вам понятно, куда прописывать, но можете изучить http://linux-bash.ru/mseti/51-openvpn.html .

mky ★★★★★
()
Ответ на: комментарий от anc

В /etc/openvpn/ccd/Hik1 прописал iroute 192.168.1.0 255.255.255.0 после чего выполнил service openvpn@server restart и переподключил клиентов к vpn
вот например список маршрутов на сервере где стоит OpenVPN

root@server2:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         185.129.50.1    0.0.0.0         UG    0      0        0 eth0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
185.129.50.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     10.8.0.2        255.255.255.0   UG    0      0        0 tun0

вот я пытаюсь от сервера где стоит VPN выполнить ping 192.168.1.112

root@server2:~# ping 192.168.1.112
PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data.
--- 192.168.1.112 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4089ms

Только в списке маршрутов меня почему-то смущает Gateway 10.8.0.2 Разве он не должен быть 10.8.0.3? Хотя так то же не работает если руками удалить 0.2 и прописать 0.3

Vladislav71746
() автор топика
Ответ на: комментарий от kindof

Вот таблица маршрутизации клиента где есть подсеть 192.168.1.0/24

IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.103     35
          0.0.0.0        128.0.0.0         10.8.0.1         10.8.0.3    259
         10.8.0.0    255.255.255.0         On-link          10.8.0.3    259
         10.8.0.3  255.255.255.255         On-link          10.8.0.3    259
       10.8.0.255  255.255.255.255         On-link          10.8.0.3    259
        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
        128.0.0.0        128.0.0.0         10.8.0.1         10.8.0.3    259
   185.129.50.102  255.255.255.255      192.168.1.1    192.168.1.103    291
      192.168.1.0    255.255.255.0         On-link     192.168.1.103    291
    192.168.1.103  255.255.255.255         On-link     192.168.1.103    291
    192.168.1.255  255.255.255.255         On-link     192.168.1.103    291
        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          10.8.0.3    259
        224.0.0.0        240.0.0.0         On-link     192.168.1.103    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          10.8.0.3    259
  255.255.255.255  255.255.255.255         On-link     192.168.1.103    291
===========================================================================

Что куда нужно прописать?

Vladislav71746
() автор топика
Ответ на: комментарий от Vladislav71746

Дак куда что писать я можно сказать новичек в этом всем?

https://www.google.com/search?q=enable+ip+forwarding+on+windows+10

но этого мало - нужно всем в 192.168.1 рассказать что 192.168.1.х (который 10.8.0.3) знает как пихать в 10.8.0

kindof
()
Ответ на: комментарий от Vladislav71746

А нужно для второго, а не для первого. iroute задаёт внутреннюю маршрутизацию самого сервера OpenVPN, подсеть 192.168.1.0 255.255.255.0 нужно маршрутизировать ко второму клиенту.

Итак, нужно:

  1. Добавить в client-config-dir клиента №1 push "route 192.168.1.0 255.255.255.0"
  2. Добавить в client-config-dir клиента №2 iroute 192.168.1.0 255.255.255.0
ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от ValdikSS
  1. Добавить на всех устройствах в сети 192.168.1.0/24 маршрут до 10.8.0.0/24 через компьютер #2 (если он не является шлюзом по умолчанию. Полагаю, не является)
  2. Настроить маршрутизацию трафика на компьютере #2.
ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от ValdikSS

3 пункт это уже бред какой-то. На адресе 192.168.1.112 висит камера Hikvision как я ей буду задавать роутинг. 4. Про второй компьютер полагаю рано говорить, если даже сервер не пингует 192.168.1.112

Vladislav71746
() автор топика
Ответ на: комментарий от Vladislav71746

Вы можете раздать дополнительные маршруты через DHCP. Так работает маршрутизация и это правильный вариант конфигурации.

Вы можете, конечно, включить NAT на компьютере #2 для этой подсети, чтобы не добавлять маршруты, но это усложнит конфигурацию.

Про второй компьютер полагаю рано говорить, если даже сервер не пингует 192.168.1.112

Потому что устройство (с большой вероятностью) получает ваш пинг, но отвечает на него через шлюз (домашний маршрутизатор), т.к. оно не знает о маршруте в VPN.

Есть альтернативный вариант: добавить на роутере маршрут до 10.8.0.0/24 через компьютер #2, тогда его не нужно будет прописывать на устройствах или в DHCP.

ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от ValdikSS

Потому что устройство (с большой вероятностью) получает ваш пинг, но отвечает на него через шлюз (домашний маршрутизатор), т.к. оно не знает о маршруте в VPN.

А вот это уже больше похоже на правду. Сейчас попробую прописать маршруты в роутере.

Vladislav71746
() автор топика
Ответ на: комментарий от ValdikSS

Но ведь компьютер 2 прекрасно пингует 192.168.1.1 и 192.168.1.112 разве это не говорит о том что маршрутизация для него настроена и он знает где эти устройства? Если нет что тогда прописывать на нём?

Вот его текущая таблица маршрутизации Помогите настроить OpenVPN (комментарий)

Vladislav71746
() автор топика
Ответ на: комментарий от Vladislav71746

Вы можете пожалуйста подсказать как это делается или в какую сторону копать? Я не сильно опытный человек, конкретно в этом.

Да включи уже форвардинг на 10.8.0.3 )

А еще лучше -подними клиента на своем tp-linke

kindof
()
Ответ на: комментарий от Vladislav71746

На TP-Link нашёл только режим сервера.

А какой Tp-link в наличии? А поддерживает ли он openvpn client mode с текущим софтом? А с последним? А со сторонним? А что мне еще погуглить для вас?

kindof
()
Ответ на: комментарий от Vladislav71746

В винде маршрутизация включалась запуском службы ″RemoteAccess″, отображаемое имя ″Маршрутизация и удаленный доступ″. Я не помню, но, вроде, не все версии винды содержали эту службу, всякие Home Edition были без неё. Но гуглите в этом направлении.

По идее, вам сначала нужно добиться, чтобы сервер пинговал 192.168.1.103, а уже потом пытаться достучаться до камеры. И, вроде, в винде была какая-то настройка, что она отвечает на пинги только из свой подсети, а может уже убрали.

mky ★★★★★
()
Ответ на: комментарий от bigbit

Я включил маршрутизацию и перезагрузил систему. Но пинги почему-то не идут уже отчаялся…

Скриншот 1: https://s1.hostingkartinok.com/uploads/images/2023/03/75bcaca0085e2fd1bcc6677f46162834.jpg
Скриншот 2: https://s1.hostingkartinok.com/uploads/images/2023/03/d048e68094fb20db658d2fdffb5f132d.jpg

Vladislav71746
() автор топика
Ответ на: комментарий от Vladislav71746

Меня почему-то смущает трасировка. Разве она не должна дойти хотя бы до 10.8.0.1 или 10.8.0.3 ?

root@server2:~# traceroute 192.168.1.1
traceroute to 192.168.1.1 (192.168.1.1), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
root@server2:~# traceroute 192.168.1.103
traceroute to 192.168.1.103 (192.168.1.103), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
Vladislav71746
() автор топика
Ответ на: комментарий от ValdikSS

Да именно с самого сервера где OpenVPN пытаюсь пинговать. Маршруты конечно же прописаны.

root@server2:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         185.129.50.1    0.0.0.0         UG    0      0        0 eth0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
185.129.50.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     10.8.0.3        255.255.255.0   UG    0      0        0 tun0
root@server2:~# traceroute 192.168.1.1
traceroute to 192.168.1.1 (192.168.1.1), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
Vladislav71746
() автор топика
Ответ на: комментарий от Vladislav71746

А трасероут до 10.8.0.3 работает? А то может винда отвечает только на ICMP трейсы.

Я бы попробовал дампить пакеты (tcpdump на линуксе, а лучше wireshark на винде). На каждый icmp пакет внутри тунеля должен возникать несущий udp-пакет. То есть запускаем дамп пакетов на порт 1194, запускаете ″ping 10.8.0.3″ — udp пакеты дампятся. Останавливаете ping — пакеты перестают дампиться. А потом запускаете ″ping 192.168.1.103″, если udp пакеты появляются, значит проблемы в винде, иначе в openvpn сервере.

И ещё я не понял, зачем вам ″tun-ipv6″, вы ещё хотите ipv6 внутри тунеля?

mky ★★★★★
()

Господа, всем спасибо. Разобрался все прекрасно работает. Правда я сам не понял как, но есть 1 единственное подозрение. Я все это время много баловался с маршрутами и вот когда на ночь выключил оба компа, таблица маршрутизации очистилась и после подключения к OpenVPN прописалась как положено.

Вообщем прикрепляю свои настройки…
server.conf

port 1194
proto udp6
dev tun
client-to-client
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "redirect-gateway def1 bypass-dhcp"
server-ipv6 fd42:42:42:42::/112
tun-ipv6
push tun-ipv6
push "route-ipv6 2000::/3"
push "redirect-gateway ipv6"
dh none
ecdh-curve prime256v1
tls-crypt tls-crypt.key
crl-verify crl.pem
ca ca.crt
cert server_UUi4V4il9cI36zJJ.crt
key server_UUi4V4il9cI36zJJ.key
auth SHA256
cipher AES-128-GCM
ncp-ciphers AES-128-GCM
tls-server
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
client-config-dir /etc/openvpn/ccd
status /var/log/openvpn/status.log
verb 3
push "route 192.168.1.0 255.255.255.0"

/etc/openvpn/ccd/Hik1 (10.8.0.2)

route 192.168.1.0 255.255.255.0

/etc/openvpn/ccd/Hik2 (10.8.0.3)

iroute 192.168.1.0 255.255.255.0

Маршрутизация на сервере

root@server2:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         185.129.50.1    0.0.0.0         UG    0      0        0 eth0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
185.129.50.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     10.8.0.3        255.255.255.0   UG    0      0        0 tun0

Маршрутизация на клиенте 1 (10.8.0.2)

Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
192.168.1.0          255.255.255.0         10.8.0.1       10.8.0.2    259

Маршрутизация на клиенте 2 (10.8.0.3) Добавил маршрут к камере 192.168.1.100, т.к адрес шлюза был On-link и при таком варианте, компьютер №2 может пинговать камеру, а вот уже через впн нет, т.к On-link говорит нам о том, что никаких маршрутизаторов не нужно — адрес и так находится в прямой досягаемости. Но вот когда приходит запрос на тот же пинг 192.168.1.100 из сети впн, дальше машины клиента он уже никуда не пойдёт ибо не знает маршрут, а с таким вариантом, когда указал в ручную, прекрасно работает.

Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
192.168.1.100       255.255.255.255      192.168.1.1    192.168.1.103     36

Теперь пробуем делать пинг с клиента 1 (10.8.0.2) на подсеть клиента 2 (10.8.0.3) а точнее на 192.168.1.0/24

  1. Роутер
Обмен пакетами с 192.168.1.1 по с 32 байтами данных:
Ответ от 192.168.1.1: число байт=32 время=158мс TTL=63
Ответ от 192.168.1.1: число байт=32 время=150мс TTL=63
Ответ от 192.168.1.1: число байт=32 время=155мс TTL=63
Ответ от 192.168.1.1: число байт=32 время=157мс TTL=63
  1. ПК клиента 2 (10.8.0.3), он же шлюз.
Обмен пакетами с 192.168.1.103 по с 32 байтами данных:
Ответ от 192.168.1.103: число байт=32 время=158мс TTL=63
Ответ от 192.168.1.103: число байт=32 время=151мс TTL=63
Ответ от 192.168.1.103: число байт=32 время=156мс TTL=63
Ответ от 192.168.1.103: число байт=32 время=151мс TTL=63
  1. Ну и сама камера, которая под адресом 192.168.1.100
Обмен пакетами с 192.168.1.100 по с 32 байтами данных:
Ответ от 192.168.1.100: число байт=32 время=156мс TTL=63
Ответ от 192.168.1.100: число байт=32 время=151мс TTL=63
Ответ от 192.168.1.100: число байт=32 время=155мс TTL=63
Ответ от 192.168.1.100: число байт=32 время=149мс TTL=63

Как-то так… В целом все прекрасно работает, спасибо всем за помощь и содействие, очень благодарен каждому кто писал свой ответ и варианты решения проблемы. Тему можно закрывать.

Vladislav71746
() автор топика