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. После изучения нескольких мануалов (раз, два, три) было сделано следующее:

    1. Через мастер создан 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
    
    1. В Client Specific Override для клиента было добавлено
    iroute 192.168.1.0 255.255.255.0
    
    1. Экспортировал 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>
    
    
    1. По мануалу на сайте Keenetic сделал через CLI эти изменения:
    interface OpenVPN0 no ip global
    interface OpenVPN0 security-level private
    no isolate-private
    
    1. В 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, в обратную сторону нет.

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



  • Добрый
    @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;

    Естественно. Недоскопировал и недовставил.



  • @dTinside

    В Remote Access сервере нет этого поля, поэтому и использовал Advanced.

    Да? А у ТС-а этот пункт имеется ) В 1-м сообщении есть:

    IPv4 Remote Network: 192.168.1.0/24



  • @dTinside

    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!


  • @werter @pigbrother

    Огромное спасибо! Выполнил все ваши рекомендации, сдвинулся с места.

    Теперь в журнале 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.



  • @dTinside

    Для вашего Кинетика должен быть Padavan, к-ый гораздо интереснее, чем родная прошивка. Поищите на 4pda.


Log in to reply