The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"L2TP IPsec VPN клиент за NAT-ом"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (VPN / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"L2TP IPsec VPN клиент за NAT-ом"  +/
Сообщение от yurybx (ok), 29-Ноя-18, 18:31 
Доброго времени суток!
Пытаюсь настроить VPN-клиент на FreeBSD 10.4, которая за NAT-ом. Настраивал по этому примеру:
https://forum.lissyara.su/freebsd-f8/nabrosok-stat-i-dlya-l2...
Соединение не устанавливается. В логах MPD-клиент пишет:
L2TP: Initiating control connection 0x803073610 0.0.0.0 0 <-> Re.mote.Server.IP 1701
Nov 29 17:22:44 TEST mpd: L2TP: Control connection 0x803073910 destroyed
Nov 29 17:23:35 TEST mpd: L2TP: Control connection 0x803073610 terminated: 6 (expecting reply; none received)
Nov 29 17:23:35 TEST mpd: [L1] Link: DOWN event
Nov 29 17:23:35 TEST mpd: [L1] LCP: Down event
В логи VPN-сервера заглянуть нету возможности, т. к. сервер не мой. Знаю только, что всё должно работать, т. к. Windows успешно подключается из этой же сети через этот же NAT.
Подозреваю, что проблема связана с тем, что мой FreeBSD находится за NAT-ом, а в статье описан пример, вроде как, для фряхи, смотрящей наружу.
Прошу ткнуть носом в ошибку в кофигах/пробел в знаниях.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "L2TP IPsec VPN клиент за NAT-ом"  +/
Сообщение от Pahanivo (ok), 29-Ноя-18, 18:46 
> В логи VPN-сервера заглянуть нету возможности, т. к. сервер не мой. Знаю
> только, что всё должно работать, т. к. Windows успешно подключается из
> этой же сети через этот же NAT.

Загляни в конфиг NAT ...

> Прошу ткнуть носом в ошибку в кофигах/пробел в знаниях.

Щас предсказатели и телепаты подойдут, и начнется представление.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "L2TP IPsec VPN клиент за NAT-ом"  +/
Сообщение от yurybx (ok), 30-Ноя-18, 10:28 
NAT на моём роутере делает Packet Filter:

    nat on $ext_if from <lan_net> to any -> $ext_if
    pass out

Конфигурацию не выкладывал, т. к. всё делал по статье один в один. Но для наглядности, вот моя конфигурация (10.1.1.99 - IP-адрес моей FreeBSD-машины):

racoon.conf:
    path include "@sysconfdir_x@/racoon";
    path pre_shared_key "@sysconfdir_x@/racoon/psk.txt";
    log debug;
    
    padding
    {
            maximum_length 20;
            randomize off;
            strict_check off;
            exclusive_tail off;
    }
    
    listen
    {
            isakmp 10.1.1.99 [7001];
            isakmp 10.1.1.99 [500];
            isakmp_natt 10.1.1.99 [4500];
    }
    
    timer
    {
            counter 5;
            interval 20 sec;
            persend 1;
            phase1 30 sec;
            phase2 15 sec;
    }
    
    remote Re.mote.Server.IP
    {
            exchange_mode main,aggressive;
            doi ipsec_doi;
            situation identity_only;
    
            my_identifier address 10.1.1.99;
            peers_identifier address Re.mote.Server.IP;
            proposal_check obey;
            passive off;
            generate_policy off;
            lifetime time 1 min;
    
            proposal {
                    encryption_algorithm aes;
                    hash_algorithm sha1;
                    authentication_method pre_shared_key;
                    dh_group modp2048;
            }
    }
    
    sainfo anonymous
    {
            pfs_group modp2048;
            encryption_algorithm 3des;
            authentication_algorithm hmac_sha1;
            compression_algorithm deflate;
    }

psk.txt:
    Re.mote.Server.IP myPresharedKey
    
ipsec.conf:
    flush;
    spdflush;
    spdadd 0.0.0.0/0 0.0.0.0/0[1701] any -P out ipsec esp/transport//require;
    spdadd 0.0.0.0/0[1701] 0.0.0.0/0 any -P in ipsec esp/transport//require;

mpd.conf:
    startup:
    log +ALL +EVENTS -FRAME -ECHO
    default:
          load L2TP_client
    
    L2TP_client:
            create bundle static B1
            create link static L1 l2tp
            set link action bundle B1
            set auth authname "myName"
            set auth password "myPassword"
            set link max-redial 0
            set link mtu 1460
            set link keep-alive 20 75
    
            set l2tp peer Re.mote.Server.IP
            open
        

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "L2TP IPsec VPN клиент за NAT-ом"  +/
Сообщение от yurybx (ok), 30-Ноя-18, 18:14 
Изменил конфиги - теперь в логах racoon-а появилось какое-то "движение". Но соединение не устанавливается:
ERROR: HASH mismatched
По-идее, эта ошибка означает несовпадение ключевой фразы. Но фраза точно правильная: проверял, подключаясь из Windows! Может быть дело в том, что в ключевой фразе присутствуют символы "{" и "_"? На всякий случай сконвертировал фразу в hexadecimal и подставил в psk.txt в виде "0x123456789abcdef" (без кавычек). Всё равно выдаёт ту же ошибку.
Куда копать, подскажите, пожалуйста!

Текущая конфигурация:
#racoon.conf:
path include "/usr/local/etc/racoon";
path pre_shared_key "/usr/local/etc/racoon/psk.txt";
log debug2;
padding
{
        maximum_length 20;      
        randomize off;          
        strict_check off;      
        exclusive_tail off;    
}

listen {
        isakmp 10.1.1.99;
        strict_address;
}

timer {
        counter 5;
        interval 20 sec;
        persend 1;
        phase1 30 sec;
        phase2 15 sec;
}

remote Re.mote.Server.IP {
        exchange_mode aggressive,main;
        lifetime time 24 hour;
        my_identifier address;
        peers_identifier address;
        passive off;
        generate_policy off;
        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2;
        }
}

sainfo anonymous {
        encryption_algorithm 3des;
        authentication_algorithm hmac_md5, hmac_sha1;
        lifetime time 1 hour ;
        compression_algorithm deflate;

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "L2TP IPsec VPN клиент за NAT-ом"  +/
Сообщение от yurybx (ok), 03-Дек-18, 15:46 
Разобрался. Нужно было изменить строку:
exchange_mode main,aggressive;
А также, добавить в секцию "remote":
nat_traversal on;
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру