PfSense OpenVPN Server + Linux-client
-
Укажите на схеме между какими сетями\клиентами проблемы.
Сеть 192.168.1.0/24 главная сеть, тут на входе стоит Pfsense и всем рулит.
Сеть 192.168.87.0/24 удаленная сеть, там на входе стоит Neatgear 3500L с последней прошивкой Tomato shybbi v133
Между этими сетями поднимается OPENVPN канал - 192.168.99.0/24 Peer to Peer SSL/TLS
Между сетями есть полный двух сторонний обмен данными.
В перспективе будет еще одна аналогичная удаленная сеть, с таким же оборудованием - в моем случае это будет дача, где разворачивается умный дом и система видео наблюдения.
Есть мобильные клиенты, планшет, смартфоны или ноуты, которые должны попадать в любую из сетей, как в главную так и в удаленные. Сейчас мобильный клиент подключен через openvpn remote access ssl/tls, туннель - 10.0.0.0/24 и имеет доступ в главную сеть, но нет доступа в удаленную.
Попробовал это нарисовать стрелками.
-
Покажите пожалуйста таблицу маршрутизации у мобильного клиента при подключении по впн (на картинке это ноут)
+1
route print в ком. строкеНа этом ноуте устанавливайте и запускайте Openpvn от имени Адм-ра, т.е. прав. кн. мыши "Запустить от имени Адм-ра"
Дистрибутив качать с родного сайта. Он там самый свежий.И еще. Если у вас ОС х64 - попробуйте исп. х32 openvpn-клиент.
-
Вот свежие данные: Клиент ноутбук сони, подключен через вайфай к телефону который раздает инет.
Вот лог подключения этого клиента:
Sun Mar 13 20:36:45 2016 OpenVPN 2.3.10 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Feb 1 2016
Sun Mar 13 20:36:45 2016 Windows version 6.2 (Windows 8 or greater)
Sun Mar 13 20:36:45 2016 library versions: OpenSSL 1.0.1r 28 Jan 2016, LZO 2.09
Enter Management Password:
Sun Mar 13 20:36:45 2016 Control Channel Authentication: tls-auth using INLINE static key file
Sun Mar 13 20:36:45 2016 UDPv4 link local (bound): [undef]
Sun Mar 13 20:36:45 2016 UDPv4 link remote: [AF_INET]ххх.ххх.ххх.ххх199
Sun Mar 13 20:36:46 2016 [16_VPN_S] Peer Connection Initiated with [AF_INET]ххх.ххх.ххх.ххх:1199
Sun Mar 13 20:36:48 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Sun Mar 13 20:36:48 2016 open_tun, tt->ipv6=0
Sun Mar 13 20:36:48 2016 TAP-WIN32 device [Ethernet 2] opened: \.\Global{DAEA41DA-4D2C-46D8-9CF7-73E9ACDAF1B2}.tap
Sun Mar 13 20:36:48 2016 Notified TAP-Windows driver to set a DHCP IP/netmask of 10.0.0.10/255.255.255.252 on interface {DAEA41DA-4D2C-46D8-9CF7-73E9ACDAF1B2} [DHCP-serv: 10.0.0.9, lease-time: 31536000]
Sun Mar 13 20:36:48 2016 Successful ARP Flush on interface [30] {DAEA41DA-4D2C-46D8-9CF7-73E9ACDAF1B2}
Sun Mar 13 20:36:53 2016 Initialization Sequence CompletedЧуть ниже скрины tracert на машину в удаленной сети (это принтер он точно в сети и из главной сети на пинги отвечает) и route print после поднятия ovpn канала.
OVPN клиент на ноуте запущет от имени администратора, сам пользователь то же администратор.
Клиент последний не давно скачан с оф. сайта.
Версия на мой взгляд значение не имеет, поскольку такая же проблема на планшете.
Так же выкладываю текущую конфигурацию Client Specific Overrides этого клиента-16_VPN_C3![Route print client_sony.PNG](/public/imported_attachments/1/Route print client_sony.PNG)
![Route print client_sony.PNG_thumb](/public/imported_attachments/1/Route print client_sony.PNG_thumb)
![Tracert from client to 87net.PNG](/public/imported_attachments/1/Tracert from client to 87net.PNG)
![Tracert from client to 87net.PNG_thumb](/public/imported_attachments/1/Tracert from client to 87net.PNG_thumb)
-
Имеем pfSense, на нём OpenVPN сервер (Remote Access TLS/SSL). Имеем клиента на CentOS, он подключен к серверу (tun0-интерфейс) всё ок, пингует, видит. А вот машинки за этим шлюзом на CentOS не видят и не пингуют "серверную" сетку, хотя вроде все правила не запрещают это. Куда копать? Читал, что вроде как нужно уйти с "tun" на "tap", если это шлюз, за которым будут "жить" клиенты, так ли это?
P.S. почему-то на "tap'ax" не работает туннель, т.е. он устанавливается, но пинги не ходят…
Маршруты на клиентском CentOS (шлюзе)[root@server log]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface inet_ip 0.0.0.0 255.255.255.252 U 0 0 0 eth0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3 10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0 192.168.0.0 10.10.10.1 255.255.240.0 UG 0 0 0 tun0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth3 0.0.0.0 inet_gateway 0.0.0.0 UG 0 0 0 eth0
Т.е. исходя из этого видно, что сервер "знает" о туннельной сети 192.168.0.0/20 и видит/пингует её, всё ок.
Вот маршруты клиента на Win 7 за этим CentOS сервером:
C:\Users\ПК>route print =========================================================================== Список интерфейсов 11...bc 5f f4 60 70 e7 ......Realtek PCIe GBE Family Controller 1...........................Software Loopback Interface 1 12...00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP 13...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface =========================================================================== IPv4 таблица маршрута =========================================================================== Активные маршруты: Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика 0.0.0.0 0.0.0.0 192.168.100.1 192.168.100.82 10 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.100.0 255.255.255.0 On-link 192.168.100.82 266 192.168.100.82 255.255.255.255 On-link 192.168.100.82 266 192.168.100.255 255.255.255.255 On-link 192.168.100.82 266 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 192.168.100.82 266 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 192.168.100.82 266 =========================================================================== Постоянные маршруты: Отсутствует IPv6 таблица маршрута =========================================================================== Активные маршруты: Метрика Сетевой адрес Шлюз 1 306 ::1/128 On-link 11 266 fe80::/64 On-link 11 266 fe80::959a:37c9:fa8a:3744/128 On-link 1 306 ff00::/8 On-link 11 266 ff00::/8 On-link =========================================================================== Постоянные маршруты: Отсутствует C:\Users\ПК>
И при пинге с клиента хоста за туннелем, например
C:\Users\ПК>ping 192.168.1.58 Обмен пакетами с 192.168.1.58 по с 32 байтами данных: Превышен интервал ожидания для запроса. Превышен интервал ожидания для запроса.
Видим фигу, в то время, как с самого клиентского CentOS'a:
[root@server log]# ping 192.168.1.58 PING 192.168.1.58 (192.168.1.58) 56(84) bytes of data. 64 bytes from 192.168.1.58: icmp_seq=1 ttl=127 time=73.0 ms 64 bytes from 192.168.1.58: icmp_seq=2 ttl=127 time=72.8 ms 64 bytes from 192.168.1.58: icmp_seq=3 ttl=127 time=73.1 ms 64 bytes from 192.168.1.58: icmp_seq=4 ttl=127 time=75.2 ms
Где затык?
-
Добрый день!
Вот свежие данные: Клиент ноутбук сони, подключен через вайфай к телефону который раздает инет.
Если чесно, я не пользуюсь OpenVPN Client specific overrides.
Для експеримента попробуйте удалить всех юзеров из OpenVPN Client specific overrides, заново экспортировать настройки для подключения и проверить.
(Сначало сделать, чтоб нормально любой клиент мог достучаться в удаленную сеть при подключении по ВПН, а уже потом для каждого клиента определять настройки.)
ВВиду того, что https://doc.pfsense.org/index.php/OpenVPN_multi_purpose_single_server#OpenVPN_Client_specific_overridesМаршруты из вашего ноута правильные, т.е. конфигурация OpenVPN-сервера для мобильных клиентов правильная. Теперь вопрос настроек и конфигов ПФсенсы.
Покажите еще правила фаервола на LAN, OpenVPN, а также Firewall: NAT: Outbound -
2 Tano
Версия на мой взгляд значение не имеет, поскольку такая же проблема на планшете.
О, еще как имеет.
Так же выкладываю текущую конфигурацию Client Specific Overrides этого клиента-16_VPN_C3
Если вашим машинам за сервером (к-ые в сети 192.168.1.0/24) не нужен доступ в сеть за этим Win-клиентом, то Client Specific Overrides
не нужно.
И еще, чтобы дать доступ за win-клиент нужно некоторое шаманство - https://community.openvpn.net/openvpn/wiki/NatOverWindows20081. Enabling IP forwarding Press Windows+R and type:
regedit.exeNow navigate to the:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parametersand set
IpEnableRouterto 1
И перезагрузить клиента.
-
И еще, чтобы дать доступ за win-клиент нужно некоторое шаманство
Верно подмечено!!!!!!
-
tap или tun? Если Site-to-Site?
-
Добрый день!
Вот свежие данные: Клиент ноутбук сони, подключен через вайфай к телефону который раздает инет.
Если чесно, я не пользуюсь OpenVPN Client specific overrides.
Для експеримента попробуйте удалить всех юзеров из OpenVPN Client specific overrides, заново экспортировать настройки для подключения и проверить.
(Сначало сделать, чтоб нормально любой клиент мог достучаться в удаленную сеть при подключении по ВПН, а уже потом для каждого клиента определять настройки.)
ВВиду того, что https://doc.pfsense.org/index.php/OpenVPN_multi_purpose_single_server#OpenVPN_Client_specific_overridesМаршруты из вашего ноута правильные, т.е. конфигурация OpenVPN-сервера для мобильных клиентов правильная. Теперь вопрос настроек и конфигов ПФсенсы.
Покажите еще правила фаервола на LAN, OpenVPN, а также Firewall: NAT: OutboundЕсли для клиента не использовать OpenVPN Client specific overrides то как я передам клиенту информацию об удаленной сети, в этом случае клиент получит доступ только в главную сеть, который по сути сейчас и имеет, но у него не появится маршрут в удаленную сеть.
Поэтому в моём случае думаю Client specific overrides придется использовать.
Или на сервере можно прописать удаленную сеть??? как локальную сеть? это будет верно?Настройки фаервола на LAN, OpenVPN, а также Firewall: NAT: Outbound я выложил в самом начале обсуждения вопроса.
-
Или на сервере можно прописать удаленную сеть??? как локальную сеть? это будет верно?
В настроках openvpn сервера для мобильных клиентов (см скрин):
В разделе Tunnel Settings -> IPv4 Local Network/s допишите через запятую в какие сети хотите предоставить доступ аля: 192.168.1.0/24,192.168.12.0/24,192.168.87.0/24. Пускай openvpn сервер сам определяет маршрутизацию.
Для експеримента попробуйте удалить всех юзеров из OpenVPN Client specific overrides, заново экспортировать настройки для подключения и проверить.В данном случае все клиенты, которые будут подключаться к openvpn для мобильных клиентов будт иметь одинаковые настройки, это имеет смысл для правильной настройки, когда все получиться, тогда делать для каждого клиента OpenVPN Client specific overrides - тем самым нарезая доступы как нравиться.
![Remote Access (SSL_TLS)2.jpg](/public/imported_attachments/1/Remote Access (SSL_TLS)2.jpg)
![Remote Access (SSL_TLS)2.jpg_thumb](/public/imported_attachments/1/Remote Access (SSL_TLS)2.jpg_thumb) -
Если для клиента не использовать OpenVPN Client specific overrides то как я передам клиенту информацию об удаленной сети, в этом случае клиент получит доступ только в главную сеть, который по сути сейчас и имеет, но у него не появится маршрут в удаленную сеть.
Вы ошибаетесь. Client specific overrides исп-ся для сети за сервером для доступа к сети за клиентом.
Для доступа к сети за сервером клиенту сервером отдаются марш-ты директивой push route …..; -
Если для клиента не использовать OpenVPN Client specific overrides то как я передам клиенту информацию об удаленной сети
При подключении клиент запрашивает у сервера лист маршрутизации, а сервер ему выдает куда можно ходить клиенту исходя из списка В разделе Tunnel Settings -> IPv4 Local Network/s. Я б не советовал, но у меня таким образом настроенно, и работает все прекрасно.
Суть таковая, клиент подключаеться к ПФ-ке, ПФ-ка выдает клиенту маршруты из "Tunnel Settings -> IPv4 Local Network/s" (смотрим маршрутизацию после подключения впн). Дальше клиент посылает запрос на удаленню сеть .87.0/24, и пакет по таблице идет локально – в тунель впн -- на ПФ-ку (пф-ка уже знает где ваша сеть .0.87/24) -- сново впн тунель в удаленку -- УДАЛЕНКА, А вот будет ли ответ здесь, зависит от того знает ли ваш роутер на удаленке где сеть с которой клиент посылает запрос.
Вот и все шаманство на двух пальцах.Дело за вами, как плясать с бубном))))))))
-
Если для клиента не использовать OpenVPN Client specific overrides то как я передам клиенту информацию об удаленной сети, в этом случае клиент получит доступ только в главную сеть, который по сути сейчас и имеет, но у него не появится маршрут в удаленную сеть.
Вы ошибаетесь. Client specific overrides исп-ся для сети за сервером для доступа к сети за клиентом.
Для доступа к сети за сервером клиенту сервером отдаются марш-ты директивой push route …..;Спасибо за подсказку, я забыл про этот момент.
Сейчас доеду до удобного места и поэкспериментирую. -
@Electric^shock:
tap или tun? Если Site-to-Site?
tun - для маршрутизации между разными сетями. tap - объединения сетей в одну L2\Ethernet-сеть, как будто у сетей один свитч.
https://ru.wikipedia.org/wiki/TUN/TAP -
Если для клиента не использовать OpenVPN Client specific overrides то как я передам клиенту информацию об удаленной сети, в этом случае клиент получит доступ только в главную сеть, который по сути сейчас и имеет, но у него не появится маршрут в удаленную сеть.
Вы ошибаетесь. Client specific overrides исп-ся для сети за сервером для доступа к сети за клиентом.
Для доступа к сети за сервером клиенту сервером отдаются марш-ты директивой push route …..;Спасибо за подсказку, я забыл про этот момент.
Сейчас доеду до удобного места и поэкспериментирую.Общее замечание:
По поводу Client specific overrides я настраивал OPEN VPN режим Remote access SSL/TSL все по этой "ИНСТРУКЦИИ https://forum.pfsense.org/index.php?topic=99694.0"
Там как раз мобильному клиенту (по аналогии с удаленным шлюзом) настраивается Client specific overrides, вот я и посчитал, что основная цель этого раздела для передачи маршрутов, а оказалось, что в действительности все маршруты может дать сервер, и лишь если надо конкретному клиенту создать особые правила, можно/нужно применить Client specific overrides для этого клиента.В моём случае:
Теперь удалил по вашим советам все Client specific overrides кроме одного, который для роутера, где и нужно обеспечить двухсторониий обмен данными и чтобы все машины за сервером и за роутером могли обмениваться данными друг с другом. Сейчас это реализовано, обмен есть.
Роутер получает инструкцию от сервера и поднимает два маршрута в главную сеть, у меня их две сети LAN, в итоге он впускает и выпускает пакеты из/в главной сети.
При подключении мобильного клиента, он получает все инструкции от сервера, в том числе три маршрута и один из них в сеть …87.0/24, без использования Client specific overrides, однако доступа в удаленную сеть 192.168.87.0/24 нет.
Затык идет на pfsense, он не заворачивает запрос из туннеля openvpn мобильного клиента в туннель между pfsense-роутер.
В FW OPENVPN правило Pv4 * * * * * * none
В FW LAN правило IPv4 * LAN net * 192.168.87.0/24 * * none
Floating ничего нет
WAN открыт нужные порты иначе не было бы соединения.
OutBound WAN 127.0.0.0/8 192.168.1.0/24 192.168.12.0/24 192.168.1.80/32 10.0.0.0/24 10.87.0.0/24 10.12.0.0/24 * * * WAN address * NO -
Главное не бояться экспериментов, так и учимся.
Отлично, ковыряем дальше NAT или Firewall-rulesПри подключении мобильного клиента, он получает все инструкции от сервера, в том числе три маршрута и один из них в сеть …87.0/24, без использования Client specific overrides, однако доступа в удаленную сеть 192.168.87.0/24 нет.
Затык идет на pfsense, он не заворачивает запрос из туннеля openvpn мобильного клиента в туннель между pfsense-роутер.
В FW OPENVPN правило Pv4 * * * * * * none
В FW LAN правило IPv4 * LAN net * 192.168.87.0/24 * * noneОбратно же, для понимания в чем затык, предлагаю поставить первым правило
В FW LAN правило IPv4 * * * 192.168.87.0/24 * * noneДелаем трасерт на .87.0\24 с мобильго клиента, ложим скрин на форум.
Если проблема в этом, тогда изменим на (но только тогда)
В FW LAN правило IPv4 * VPN mobile net * 192.168.87.0/24 * * noneЕсли проблема не решена, пишем на форум и думаем дальше.
И забегая наперед, покажите таблицу маршрутизации вашего удаленного роутера, интересует вопрос, знает ли он, где ваша сеть для мобильных клиентов (в идеале должен знать, когда подключился по впн к ПФ-ке в центральном офисе)Теперь удалил по вашим советам все Client specific overrides кроме одного, который для роутера
Этот момент смущает немного, но вначале разберемся с заворотом трафика из впн в впн. Там парочка отдельных вопросов.
-
timon12
Спасибо за помощь.
Правило было первым, добавил еще два правила с туннелями, как вы предложили, два потому, что у меня два туннеля.
Выложил скрин FW LAN.
Все равно трасерт не проходит, так же как не проходил без этих дополнительных правил.
Скрины во вложении, в том числе и таблица маршрутизации на удаленном роутере.![Route print client_sony1.PNG](/public/imported_attachments/1/Route print client_sony1.PNG)
![Route print client_sony1.PNG_thumb](/public/imported_attachments/1/Route print client_sony1.PNG_thumb)
![Tracert1 from client to 87net.PNG](/public/imported_attachments/1/Tracert1 from client to 87net.PNG)
![Tracert1 from client to 87net.PNG_thumb](/public/imported_attachments/1/Tracert1 from client to 87net.PNG_thumb)
![Routes-tomato router1.JPG](/public/imported_attachments/1/Routes-tomato router1.JPG)
![Routes-tomato router1.JPG_thumb](/public/imported_attachments/1/Routes-tomato router1.JPG_thumb)
![FW LAN.JPG](/public/imported_attachments/1/FW LAN.JPG)
![FW LAN.JPG_thumb](/public/imported_attachments/1/FW LAN.JPG_thumb) -
Последний скрин.
На LAN работают правила, относящиеся только к LAN. Никакие др. запреты\разрешения , касающиеся др. сетей не работают.
Так что всякие там 10.x.x.x и т.д. , если это на virtual ip LAN, работать не будут. Откл. их. -
На LAN работают правила, относящиеся только к LAN.
Тоже верно, но на всякий случай проверить стоило, мое мнение.
Tano!
На скрине Routes-tomato router1.JPG нет маршрута к сети мобильных клиентов, по идее пф-ка должна была выдать томато еще и такой маршрут (при поднятии коннекта между офисами):
Destination Gateway Subnet Metric Inteface
192.168.1.0 10.87.0.5 /24 0 tun11 - этот маршрут у томато есть
10.0.0.0 10.87.0.5 /24 0 tun11 - а вот этого не хватаетКак вариант, можно дописать в настройках "впн-сервера между офисами" Tunnel Settings -> IPv4 Local Network/s - сеть мобильных клиетнов (10.0.0.0\24), или в client cpecific overrides (что менее практично, и для томато я бы тоже удалил настройки в client cpecific overrides)
-
Потерял сюжетную линию саги pfSense OpenVPN Server + Linux-client.
Возможно - не к месту, но в свое время столкнулся с тем, что OVPN-клиент Микротик при работе c pfSense упорно не получал маршруты в удаленные OpenVPN сети.
Помогло явное указание шлюза в Client Specific Overrides, т.е.
push route "xx.0.3.0 255.255.255.0 10.11.12.1";push route "xx.0.5.0 255.255.255.0 10.11.12.1";
где 10.11.12.1 - "серверный" IP туннеля.либо статическое прописывание этого шлюза в клиенте.