Доброго времени суток!
Пытаюсь настроить 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-ом, а в статье описан пример, вроде как, для фряхи, смотрящей наружу.
Прошу ткнуть носом в ошибку в кофигах/пробел в знаниях.
> В логи VPN-сервера заглянуть нету возможности, т. к. сервер не мой. Знаю
> только, что всё должно работать, т. к. Windows успешно подключается из
> этой же сети через этот же NAT.Загляни в конфиг NAT ...
> Прошу ткнуть носом в ошибку в кофигах/пробел в знаниях.Щас предсказатели и телепаты подойдут, и начнется представление.
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
Изменил конфиги - теперь в логах 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;
Разобрался. Нужно было изменить строку:
exchange_mode main,aggressive;
А также, добавить в секцию "remote":
nat_traversal on;