pfsense и Keenetic Extra site-to-site OpenVPN
-
Добрый день!
Есть следующий кейс: объединить 2 удалённые подсети через OpenVPN. На одной стороне pfSense 2.4.4, на другой Keenetic Extra c NDMS 3.3.15. Обе сети на шлюзе имеют белый IP адрес.
Офис 1 (pfSense):
LAN 10.10.66.0/24
WAN 101.X.X.XОфис 2 (Keenetic):
LAN 192.168.1.0/24
WAN 102.X.X.XСеть OpenVPN: 1.1.1.0/24
Для решения этой задачи выбор пал на решение Site-to-site (P2P SSL/TLS). Этот вариант подходит для дальнейшего масштабирования, офисов всего 7. После изучения нескольких мануалов (раз, два, три) было сделано следующее:
- Через мастер создан OpenVPN Server, CA, сертификат сервера и клиента на pfSense (открыты порты, созданы правила FW).
Настройки сервера:
Peer to Peer (SSL/TLS) UDP on IPv4 Only tun WAN 1199 Use a TLS Key TLS Authentication CA-CERT SERVER-Cert DH 1024 bit AES-256-CBC SHA1 IPv4 Tunnel Network: 1.1.1.0/24 IPv4 Local Network: 10.10.66.0/24, 192.168.1.0/24 IPv4 Remote Network: 192.168.1.0/24 Custom: client-to-client
- В Client Specific Override для клиента было добавлено
iroute 192.168.1.0 255.255.255.0
- Экспортировал CA, Client Cert, Clienk Key, TLS key (из сервера), добавил это всё в клиент на Keenetic Extra. Конфиг такой:
client dev tun proto udp remote 101.X.X.X 1199 resolv-retry infinite persist-key persist-tun remote-cert-tls server cipher AES-256-CBC comp-lzo verb 3 <ca> -----BEGIN CERTIFICATE----- *************************************** -----END CERTIFICATE----- </ca> <cert> -----BEGIN CERTIFICATE----- *************************************** -----END CERTIFICATE----- </cert> <key> -----BEGIN PRIVATE KEY----- *************************************** -----END PRIVATE KEY----- </key> <tls-auth> # # 2048 bit OpenVPN static key # -----BEGIN OpenVPN Static key V1----- *************************************** -----END OpenVPN Static key V1----- </tls-auth>
- По мануалу на сайте Keenetic сделал через CLI эти изменения:
interface OpenVPN0 no ip global interface OpenVPN0 security-level private no isolate-private
- В Keenetic в логах висит вот это вот, соединение не устанавливается:
Мар 20 15:44:59 OpenVPN0 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity) Мар 20 15:44:59 OpenVPN0 TLS Error: TLS handshake failed
На другом форуме находил аналогичную проблему, решилась она добавлением client-to-client на сервер. Не помогло.
Пробовал перевод сервера на Remote Access - линк был, сеть Офиса 2 видела сеть Офиса 1, в обратную сторону нет.Возможно, что-то упускаю, взгляд уже замылился. Буду рад любым идеям, согласен даже на платную помощь, лишь бы ткнули носом, что я делаю не так.
- Через мастер создан OpenVPN Server, CA, сертификат сервера и клиента на pfSense (открыты порты, созданы правила FW).
-
Добрый
@dTinsideЭкспортировал CA, Client Cert, Clienk Key, TLS key (из сервера)
Для этого есть отдельный пакет для пф. Вы его пользовали?
В конфиг клиента добавить:
ниже cipher:
tls-clientи в самый низ:
key-direction 1Сеть OpenVPN: 1.1.1.0/24
Надеюсь, что сеть ВПН у вас не такая. Это РЕАЛЬНЫЕ внешние IP.
Офис 2 (Keenetic):
LAN 192.168.1.0/24Рекомендую не пользовать такую адресацию в работе. Потому как след. офис\клиент с такой же адресацией в его ЛАН поломает вам связность работы по ВПН.
-
@werter said in pfsense и Keenetic Extra site-to-site OpenVPN:
Для этого есть отдельный пакет для пф. Вы его пользовали?
Вы о Client Export Utility?
Если да, то Site-to-site (P2P SSL/TLS) ею не поддерживается.@dTinside said in pfsense и Keenetic Extra site-to-site OpenVPN:
Пробовал перевод сервера на Remote Access - линк был, сеть Офиса 2 видела сеть Офиса 1, в обратную сторону нет.
Делал такое на Асус.
На сервере в Advanced Configuration->Custom options добавил
route 10.168.1.0
10.168.1.0 - сеть за клиентом. -
На сервере в Advanced Configuration->Custom options добавил
А там Remote networks нет для этого? Чтобы в Адвансед не лезть. Не помню есть оно в P2P.
route 10.168.1.0
тогда уж route X.X.X.X Y.Y.Y.Y;
где Y.Y.Y.Y - маска подсети удален. клиента.И я бы еще разреш. правило fw на ЛАН на сервере добавил, где в Dst будет удален. сеть клиента. И поставил бы это правило выше всех.
-
@dTinside
Для вашего Кинетика должен быть Padavan, к-ый гораздо интереснее, чем родная прошивка. Поищите на 4pda. -
@werter said in pfsense и Keenetic Extra site-to-site OpenVPN:
А там Remote networks нет для этого?
В Remote Access сервере нет этого поля, поэтому и использовал Advanced.
@werter said in pfsense и Keenetic Extra site-to-site OpenVPN:
тогда уж route X.X.X.X Y.Y.Y.Y;
Естественно. Недоскопировал и недовставил.
-
В Remote Access сервере нет этого поля, поэтому и использовал Advanced.
Да? А у ТС-а этот пункт имеется ) В 1-м сообщении есть:
IPv4 Remote Network: 192.168.1.0/24
-
IPv4 Local Network: 10.10.66.0/24, 192.168.1.0/24
IPv4 Remote Network: 192.168.1.0/24А чего это у вас 192.168.1.0/24 в обоих пунктах-то? Это неправильно.
-
@werter said in pfsense и Keenetic Extra site-to-site OpenVPN:
Да? А у ТС-а этот пункт имеется ) В 1-м сообщении есть:
IPv4 Remote Network: 192.168.1.0/24
Цитируемые вами настройки ТС - это Site-to-site (P2P SSL/TLS).
В настройках Remote Access сервера поля для Remote networks нет. -
@pigbrother
Вы правы.@dTinside
Разберитесь с конфигом ОВПН на сервере. -
This post is deleted! -
Огромное спасибо! Выполнил все ваши рекомендации, сдвинулся с места.
Теперь в журнале Keenetic вижу это
Мар 21 06:49:16 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_CONTROL_V1) Мар 21 06:49:16 OpenVPN0 OpenSSL: error:1416F086:lib(20):func(367):reason(134) Мар 21 06:49:16 OpenVPN0 TLS_ERROR: BIO read tls_read_plaintext error Мар 21 06:49:16 OpenVPN0 TLS Error: TLS object -> incoming plaintext read error Мар 21 06:49:16 OpenVPN0 TLS Error: TLS handshake failed Мар 21 06:49:16 OpenVPN0 SIGTERM[soft,tls-error] received, process exiting Мар 21 06:49:16 ndm Service: "OpenVPN0": unexpectedly stopped. Мар 21 06:49:19 OpenVPN0 OpenVPN 2.4.6 [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [AEAD] Мар 21 06:49:19 OpenVPN0 library versions: OpenSSL 1.1.1d 10 Sep 2019, LZO 2.10 Мар 21 06:49:19 OpenVPN0 UDP link local (bound): [AF_INET][undef]:1199 Мар 21 06:49:19 OpenVPN0 UDP link remote: [AF_INET]101.X.X.X:1199 Мар 21 06:49:19 OpenVPN0 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay Мар 21 06:49:20 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_ACK_V1) Мар 21 06:49:21 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_CONTROL_V1) Мар 21 06:49:21 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_CONTROL_V1) Мар 21 06:49:21 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_ACK_V1) Мар 21 06:49:25 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_CONTROL_V1) Мар 21 06:49:25 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_ACK_V1) Мар 21 06:49:29 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_CONTROL_V1) Мар 21 06:49:34 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_CONTROL_V1) Мар 21 06:49:34 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_ACK_V1) Мар 21 06:49:45 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_CONTROL_V1) Мар 21 06:49:49 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_CONTROL_V1) Мар 21 06:49:50 OpenVPN0 TLS Error: Unroutable control packet received from [AF_INET]101.X.X.X:1199 (si=3 op=P_ACK_V1)
После очередных мучений я решил зайти с другой стороны.
Не меняя конфигурацию севера, я настроил Site-to-Site с другим pfSense - всё завелось с пол-пинка (и в режиме Shared Key и в P2P SSL/TLS).
То есть причина вот этого непотребства видимо в самом Keenetic. -
Для вашего Кинетика должен быть Padavan, к-ый гораздо интереснее, чем родная прошивка. Поищите на 4pda.