Страница 1 из 1

Ищу freebsd клиент для Windows-VPN (l2tp+ipsec)

Добавлено: 2021-12-26 1:24:19
walik55
Привет всем!
Нужно подключиться из-под Freebsd 13 к виндовой l2tp+ipsec vpn, причем, комп за NAT'ом.
Решение для Linux через strongswan + xl2tpd нашлось практически сразу, и заработало на Linux'e "с пол-пинка".
Для Freebsd же по этой проблеме в сети информации очень немного.
Находил вариант через strongswan + mpd5, но заставить работать эту связку не удалось.
Попадались варианты через racoon и mpd5, но они достаточно древние.
Удалось ли кому-нибудь найти решиение для Freebsd?

Ищу freebsd клиент для Windows-VPN (l2tp+ipsec)

Добавлено: 2022-01-04 18:09:56
walik55
Всех с Новым годом!

В общем, удалось запустить связку strongswan + mpd5. Вся проблема оказалась конфиге mpd5. Итак, если кому интересно.

FreeBSD 13.0, ядро GENERIC. strongswan-5.9.4 и mpd5-5.9_4 из пакетов. Клиентский комп во внутренней сети за NATом.
WinVPN_IP - наружный (белый) адрес сервера VPN.

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

# cat /usr/local/etc/ipsec.conf
config setup
        # strictcrlpolicy=yes
        # uniqueids = no

conn %default
      ikelifetime=60m
      keylife=20m
      rekeymargin=3m
      keyingtries=1
      keyexchange=ikev1
      authby=secret
      esp=aes128-sha1!
      ike=3des-sha1-modp1024!

conn l2tp
      keyexchange=ikev1
      left=%defaultroute
      auto=add
      authby=secret
      type=transport
      leftprotoport=17/%any
      rightprotoport=17/1701
      rightid = %any
      right = WinVPN_IP

      auto = start

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

# cat /usr/local/etc/ipsec.secrets
# ipsec.secrets - strongSwan IPsec secrets file
: PSK "Pre-SharedKey"

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

# cat /usr/local/etc/mpd5/mpd.conf
startup:  
        # configure mpd users
        set user foo bar admin
        set user foo1 bar1
        # configure the console
        set console self 127.0.0.1 5005
        set console open
        # configure the web server
        set web self 0.0.0.0 5006
        set web open

#       log +ALL +EVENTS -FRAME -ECHO

default:
        load l2tp

l2tp:
        create bundle static L2TP
        set iface mtu 1480
        set iface idle 0
        set iface up-script /usr/local/etc/mpd5/up.sh
        set iface down-script /usr/local/etc/mpd5/down.sh
        create link static L2 l2tp
        set link action bundle L2TP
        set link latency 0
        set link max-redial 1
        set link disable incoming acfcomp protocomp magicnum check-magic shortseq
        set link deny chap-msv1 eap acfcomp protocomp shortseq
        set link accept pap
        set link keep-alive 10 75
        set l2tp peer WinVPN_IP
        set auth authname "user"
        set auth password "Password"
        open
В скриптах up.sh и down.sh добавляется и удаляется маршрут к внутренней сети WinVPN.
Адрес рутера внутренней сети WinVPN можно "подсмотреть" в параметрах поднявшегося туннеля ng командой ifconfig.

В конфиг IPFW добавлено правило:

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

${fwcmd} add pass udp from WinVPN_IP to me in frag
Запуск клиента:

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

# /usr/local/etc/rc.d/strongswan onestart
# /usr/local/etc/rc.d/mpd5 onestart
Для комфорта в /etc/resolv.conf после установления соединения можно добавить адрес внутреннего DNS сети WinVPN.

Вот, собственно, и все.