IPSec теория и практика

Обсуждаем сайт и форум.

Модератор: f0s

ssh4
проходил мимо
Сообщения: 9
Зарегистрирован: 2012-02-14 23:09:01

Re: IPSec теория и практика

Непрочитанное сообщение ssh4 » 2012-02-14 23:19:26

Прошу прощения.
Так существует возможность настройки ipsec-tools на корректное взаимодействие с windows?

ipad и подозреваю macos коннектится из под офисного ната на фрюхе спокойно. Как и из дома из под ната на wl500gp.
Винда 7 же спотыкается:

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

2012-02-14 21:13:19: INFO: respond new phase 1 negotiation: 88.88.88.88[500]<=>77.77.77.77[500]
2012-02-14 21:13:19: INFO: begin Identity Protection mode.
2012-02-14 21:13:19: INFO: received broken Microsoft ID: MS NT5 ISAKMPOAKLEY
2012-02-14 21:13:19: INFO: received Vendor ID: RFC 3947
2012-02-14 21:13:19: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02
2012-02-14 21:13:19: INFO: received Vendor ID: FRAGMENTATION
2012-02-14 21:13:19: [77.77.77.77] INFO: Selected NAT-T version: RFC 3947
2012-02-14 21:13:19: ERROR: invalid DH group 20.
2012-02-14 21:13:19: ERROR: invalid DH group 19.
2012-02-14 21:13:19: [88.88.88.88] INFO: Hashing 88.88.88.88[500] with algo #2
2012-02-14 21:13:19: INFO: NAT-D payload #0 verified
2012-02-14 21:13:19: [77.77.77.77] INFO: Hashing 77.77.77.77[500] with algo #2
2012-02-14 21:13:19: INFO: NAT-D payload #1 doesn't match
2012-02-14 21:13:19: INFO: NAT detected: PEER
2012-02-14 21:13:19: [77.77.77.77] INFO: Hashing 77.77.77.77[500] with algo #2
2012-02-14 21:13:19: [88.88.88.88] INFO: Hashing 88.88.88.88[500] with algo #2
2012-02-14 21:13:19: INFO: Adding remote and local NAT-D payloads.
2012-02-14 21:13:19: INFO: NAT-T: ports changed to: 77.77.77.77[4500]<->88.88.88.88[4500]
2012-02-14 21:13:19: INFO: KA list add: 88.88.88.88[4500]->77.77.77.77[4500]
2012-02-14 21:13:19: INFO: ISAKMP-SA established 88.88.88.88[4500]-77.77.77.77[4500] spi:b962cbd677b18698:53db08347ac49f2f
2012-02-14 21:13:19: INFO: respond new phase 2 negotiation: 88.88.88.88[4500]<=>77.77.77.77[4500]
2012-02-14 21:13:19: INFO: Adjusting my encmode UDP-Transport->Transport
2012-02-14 21:13:19: INFO: Adjusting peer's encmode UDP-Transport(4)->Transport(2)
2012-02-14 21:13:20: INFO: IPsec-SA established: ESP/Transport 88.88.88.88[500]->77.77.77.77[500] spi=26902329(0x19a7f39)
2012-02-14 21:13:20: INFO: IPsec-SA established: ESP/Transport 88.88.88.88[500]->77.77.77.77[500] spi=2754833782(0xa4336d76)
2012-02-14 21:13:55: INFO: purged IPsec-SA proto_id=ESP spi=2754833782.
2012-02-14 21:13:55: INFO: ISAKMP-SA expired 88.88.88.88[4500]-77.77.77.77[4500] spi:b962cbd677b18698:53db08347ac49f2f
2012-02-14 21:13:55: INFO: ISAKMP-SA deleted 88.88.88.88[4500]-77.77.77.77[4500] spi:b962cbd677b18698:53db08347ac49f2f
2012-02-14 21:13:55: INFO: KA remove: 88.88.88.88[4500]->77.77.77.77[4500]
конфиги, почти как в статье тут и на форуме freebsd:

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

path pre_shared_key "/usr/local/etc/racoon/psk.txt";
log info;
padding {
        maximum_length 20;
        randomize off;
        strict_check off;
        exclusive_tail off;
}
listen {
        isakmp 88.88.88.88;
        isakmp_natt 88.88.88.88 [4500];
}
timer {
        counter 5;
        interval 20 sec;
        persend 1;
        phase1 30 sec;
        phase2 15 sec;
}
remote anonymous {
        exchange_mode main,aggressive;
        doi ipsec_doi;
        passive on;
        generate_policy off;
        proposal_check obey;
        nat_traversal on;
        ike_frag on;
        proposal {
                encryption_algorithm aes;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group modp1024;
        }
        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group modp1024;
        }
}
sainfo anonymous {
        encryption_algorithm aes;
        authentication_algorithm hmac_sha1;
        compression_algorithm deflate;
        pfs_group 2;
}
sainfo anonymous {
        encryption_algorithm 3des;
        authentication_algorithm hmac_sha1;
        compression_algorithm deflate;
        pfs_group 2;
}

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

flush;
spdflush;
spdadd 0.0.0.0/0[0] 0.0.0.0/0[1701] udp -P in  ipsec esp/transport//require;
spdadd 0.0.0.0/0[1701] 0.0.0.0/0[0] udp -P out ipsec esp/transport//require;
Но ведь каким то образом l2tp/ipsec корректно работающие почти с любого девайса, хоть с ios хоть с андроид хоть с виндой народ поднимает? И явно не все на цисках.
Куда копать то?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2520 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

nnmax
рядовой
Сообщения: 42
Зарегистрирован: 2010-03-28 21:48:28

Re: IPSec теория и практика

Непрочитанное сообщение nnmax » 2012-02-15 0:00:14

log debug2;

generate_policy on; #Выше описанные политики лучше удалите при этом.

Попробуйте так, и лог детальный тоже не помешал.

ssh4
проходил мимо
Сообщения: 9
Зарегистрирован: 2012-02-14 23:09:01

Re: IPSec теория и практика

Непрочитанное сообщение ssh4 » 2012-02-15 0:42:56

прошу прощения
#Выше описанные политики лучше удалите при этом.
это что имеется ввиду?


ssh4
проходил мимо
Сообщения: 9
Зарегистрирован: 2012-02-14 23:09:01

Re: IPSec теория и практика

Непрочитанное сообщение ssh4 » 2012-02-15 0:57:09

такс. чувствую себя очень глупо.
удалил полностью spdadd оставив.
flush;
spdflush;

Вы это имели ввиду? Я еще не уловил полной взаимосвязи всех этих параметров :(

вот лог. http://privatepaste.com/ab368e7d7c

в конфиге
log debug2;
generate_policy on;

nnmax
рядовой
Сообщения: 42
Зарегистрирован: 2010-03-28 21:48:28

Re: IPSec теория и практика

Непрочитанное сообщение nnmax » 2012-02-15 1:07:37

Я бегло про смотрел лог, и ошибок там не углядел, а что за ошибка у вас на винде? И что в логе демона l2tp ?

ssh4
проходил мимо
Сообщения: 9
Зарегистрирован: 2012-02-14 23:09:01

Re: IPSec теория и практика

Непрочитанное сообщение ssh4 » 2012-02-15 1:21:30

до инициализации работы демона mpd5 l2tp дело не доходит.
Я поэтому и не парился с выкладыванием конфига mpd5.

винда радостно пишет:
Изображение

nnmax
рядовой
Сообщения: 42
Зарегистрирован: 2010-03-28 21:48:28

Re: IPSec теория и практика

Непрочитанное сообщение nnmax » 2012-02-15 1:30:25

Хм, а в мпд вы 1701 слушаете на том же ип адресе что и ипсек? Фаером его не закрываете?

Покажите setkey -Da и setkey -DP если в обчном состоянии пусто то при попытке подключения

ssh4
проходил мимо
Сообщения: 9
Зарегистрирован: 2012-02-14 23:09:01

Re: IPSec теория и практика

Непрочитанное сообщение ssh4 » 2012-02-15 1:42:37

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

setkey -Da
Invalid extension type
Invalid extension type
Invalid extension type
km33927-~# setkey -DP
0.0.0.0/0[any] 0.0.0.0/0[1701] udp
        in ipsec
        esp/transport//require
        spid=3 seq=3 pid=94910
        refcnt=1
10.168.100.2[1701] 88.88.88.88[1701] udp
        in ipsec
        esp/transport//require
        created: Feb 14 23:39:26 2012  lastused: Feb 14 23:39:26 2012
        lifetime: 3600(s) validtime: 0(s)
        spid=39 seq=2 pid=94910
        refcnt=1
0.0.0.0/0[1701] 0.0.0.0/0[any] udp
        out ipsec
        esp/transport//require
        spid=4 seq=1 pid=94910
        refcnt=1
88.88.88.88[1701] 10.168.100.2[1701] udp
        out ipsec
        esp/transport//require
        created: Feb 14 23:39:26 2012  lastused: Feb 14 23:39:26 2012
        lifetime: 3600(s) validtime: 0(s)
        spid=40 seq=0 pid=94910
        refcnt=1
Я же писал что с ipad2 коннектится без проблем как с офиса за натом на фре так и из дома за натом на роутере

nnmax
рядовой
Сообщения: 42
Зарегистрирован: 2010-03-28 21:48:28

Re: IPSec теория и практика

Непрочитанное сообщение nnmax » 2012-02-15 9:21:20

setkey -Fa
setkey -FP

И еще раз попробуйте, а кстати без ната все цепляет?

ssh4
проходил мимо
Сообщения: 9
Зарегистрирован: 2012-02-14 23:09:01

Re: IPSec теория и практика

Непрочитанное сообщение ssh4 » 2012-02-17 1:28:15

http://pastebin.com/wJmD2gp3
Изображение

правда и ipad не коннектиться в таком случае http://pastebin.com/EmQnXqsn

А вот без ната попробовал. Хотя задачка как выясняется не самая тревиальная :), провод прова каким то образом дотянуть до компа.
Походу или не пашет или конфиг ipsec в данном виде не настроен для работы без нат?

fe
проходил мимо

Re: IPSec теория и практика

Непрочитанное сообщение fe » 2012-02-19 23:46:00

А вот проблема не много иного типа, все работает нормально и подключается тоже нормально, используется десятками виндовых клиентов, НО.. каждые 8 часов l2tp клиент (сделано через mpd5) отваливается без возможности быстрого переподключения, т.е. нужно минут 2-5 чтобы клиенты смогли снова переподключиться, конфиг такойже как в статье описан, может кто знает как это "вылечить"?
в логах:

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

Feb 19 21:29:15 gw11 racoon: INFO: IPsec-SA expired: ESP/Transport 10.10.0.123[500]->10.10.0.1[500] spi=240888277(0xe5ba9d5)
Feb 19 21:30:58 gw11 racoon: INFO: ISAKMP-SA expired 10.10.0.1[500]-10.10.0.123[500] spi:f90371dd5aa206e6:90f61ed25040a1e3
Feb 19 21:30:58 gw11 racoon: INFO: ISAKMP-SA deleted 10.10.0.1[500]-10.10.0.123[500] spi:f90371dd5aa206e6:90f61ed25040a1e3
Feb 19 21:31:19 gw11 racoon: INFO: IPsec-SA expired: ESP/Transport 10.10.0.123[500]->10.10.0.1[500] spi=90388711(0x56338e7)
Feb 19 21:31:21 gw11 racoon: INFO: respond new phase 1 negotiation: 10.10.0.1[500]<=>10.10.0.123[500]
Feb 19 21:31:21 gw11 racoon: INFO: begin Identity Protection mode.
Feb 19 21:31:21 gw11 racoon: INFO: received broken Microsoft ID: MS NT5 ISAKMPOAKLEY
Feb 19 21:31:21 gw11 racoon: INFO: received Vendor ID: RFC 3947
Feb 19 21:31:21 gw11 racoon: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02.
Feb 19 21:31:21 gw11 racoon: INFO: received Vendor ID: FRAGMENTATION
Feb 19 21:31:21 gw11 racoon: ERROR: invalid DH group 20.
Feb 19 21:31:21 gw11 racoon: ERROR: invalid DH group 19.
Feb 19 21:31:21 gw11 racoon: INFO: ISAKMP-SA established 10.10.0.1[500]-10.10.0.123[500] spi:8e0e99590668a8e5:c7b7d358c223ebd9
...
Так-же клиент может быстро переподключиться только в случае если сразу после этого выполнить setkey -Fa и setkey -F.

ssh4
проходил мимо
Сообщения: 9
Зарегистрирован: 2012-02-14 23:09:01

Re: IPSec теория и практика

Непрочитанное сообщение ssh4 » 2012-02-27 23:06:07

Ребятки.

Может кто нить таки подтвердить возможность работы l2tp/ipsec на FreeBSD с виндовыми клиентами из под NAT!?

win7 -> NAT (freebsd или openwrt/ddwrt на asus) -> internet -> (freebsd server 8.2-STABLE, ipsec-tools/mpd5)

А то моё гугление начинает меня наводить на мысль о поиске черной кошки в темной комнате, тогда как ее там нет. :(
Так как постоянно натыкаюсь на обсуждения о неполной реализации, а точнее отсутствии реализации IPSEC позволяющей отработать кривизну виндовой реализации NAT-T.

yai73w
проходил мимо
Сообщения: 9
Зарегистрирован: 2011-05-16 8:42:07

Re: IPSec теория и практика

Непрочитанное сообщение yai73w » 2012-02-29 10:58:37

Знает ли кто как изменить порт подключения для WinXP клиента l2tp, чтоб не на 1701, а скажем на 1702

Kaspian
рядовой
Сообщения: 22
Зарегистрирован: 2008-12-08 20:00:10

Re: IPSec теория и практика

Непрочитанное сообщение Kaspian » 2012-03-18 12:35:52

ssh4,

У меня была такая же проблема, когда соединение в Windows 7 "зависало".
Вылечилось прибиванием секции listen из racoon.conf (у меня динамический IP)
В логе по прежнему появляется упоминание "ERROR: invalid DH group XX." но соединение успешно устанавливается. Замечено что проблема с установкой соединения проявляется когда пытаешься подключится из внутренней сети к внешнему IP и тому подобное. Я не пробовал работает ли нормально тунель, т.к. нужно подключатся с виндовой машиной извне но само соединение устанавливается.
Если не получится - я выложу свои конфиги racoon + mpd. Удачи.

P.S.
Всё нормально работает при подключении Android телефона извне.

ssh4
проходил мимо
Сообщения: 9
Зарегистрирован: 2012-02-14 23:09:01

Re: IPSec теория и практика

Непрочитанное сообщение ssh4 » 2012-03-21 21:36:33

да. конфиг был бы уместен.

попробовал удалить секцию listen. стало больше ошибок в логе. ipad коннектиться по прежнему нормально а винда так и не хочет.

Обнаружил еще одну проблему. Во первых нельзя законнектится из под одного ната двум устройствам, тем же двум ipad не удается работать одновременно.
И если я пытаюсь законнектится виндой, то сразу после этого не могу законнектиться ipad, пока не сделаю
/usr/local/sbin/setkey -f /usr/local/etc/racoon/setkey.conf

или еще хуже service restart racoon.

Короче если бы ни ipadы на которых ну нельзя поставить openVPN то точно бы забил на попытки чтолибо сделать с ipsec :(

Kaspian
рядовой
Сообщения: 22
Зарегистрирован: 2008-12-08 20:00:10

Re: IPSec теория и практика

Непрочитанное сообщение Kaspian » 2012-03-21 22:00:41

mpd.conf

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

startup:

default:
    ...
    load l2tp_server
...
l2tp_server:
# Define dynamic IP address pool.
    set ippool add pool_l2tp aa.bb.cc.dd aa.bb.cc.254

# Create clonable bundle template named B_l2tp
    create bundle template B_l2tp
    set iface enable proxy-arp
    set iface enable tcpmssfix

    set ipcp yes vjcomp
# Specify IP address pool for dynamic assigment.
    set ipcp ranges aa.bb.cc.1/24 ippool pool_l2tp
    set ipcp dns aa.bb.cc.1

# The five lines below enable Microsoft Point-to-Point encryption
# (MPPE) using the ng_mppc(8) netgraph node type.
        set bundle enable compression
        set ccp yes mppc
        set mppc yes e40
        set mppc yes e128
        set mppc yes stateless

# Create clonable link template named L_l2tp
    create link template L_l2tp l2tp
# Set bundle template to use
    set link action bundle B_l2tp
# Multilink adds some overhead, but gives full 1500 MTU.
    set link enable multilink
    set link no pap chap eap
    set link enable chap
    set link keep-alive 0 0
# We reducing link mtu to avoid ESP packet fragmentation.
    set link mtu 1280
# Configure L2TP
    set l2tp self briz_vpn
    set l2tp enable length
# Allow to accept calls
    set link enable incoming

racoon.conf

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

path pre_shared_key "/usr/local/etc/racoon/psk.txt";

remote anonymous
{
        exchange_mode    main;
        passive          on;
        proposal_check   obey;
        support_proxy    on;
        nat_traversal    on;
        ike_frag         on;
        dpd_delay        20;

        proposal
        {
                encryption_algorithm  aes;
                hash_algorithm        sha1;
                authentication_method pre_shared_key;
                dh_group              modp1024;
        }

        proposal
        {
                encryption_algorithm  3des;
                hash_algorithm        sha1;
                authentication_method pre_shared_key;
                dh_group              modp1024;
        }
}

sainfo anonymous
{
        encryption_algorithm     aes,3des;
        authentication_algorithm hmac_sha1;
        compression_algorithm    deflate;
        pfs_group                modp1024;
}

Да, с l2tp/IPSec тупня страшная, он далеко не из всех сетей пролазит (я не знаю особенности NAT или блокируются протоколы). Собственно единственная причина по которой я подня l2tp/IPSec - не желание root-ать android телефон и перспектива поддержки других мобильных устройств.

Kaspian
рядовой
Сообщения: 22
Зарегистрирован: 2008-12-08 20:00:10

Re: IPSec теория и практика

Непрочитанное сообщение Kaspian » 2012-03-21 22:02:29

ещё правила для ipfw

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

# L2TP Vpn
${ipfw} add allow udp from any to me 500,1701,4500 keep-state
${ipfw} add allow log esp from any to any
${ipfw} add allow log ah from any to any
${ipfw} add allow log ipencap from any to any
${ipfw} add allow all from any to any via ng*

agrloki
рядовой
Сообщения: 25
Зарегистрирован: 2009-11-18 23:07:41

Re: IPSec теория и практика

Непрочитанное сообщение agrloki » 2012-05-21 10:27:00

Немного по теме ipsec через нат в винде:
The default behavior of Windows XP SP2 was changed to no longer have NAT-T enabled by default, because of a rare and controversial security issue. This prevents most home users from using IPsec without making adjustments to their computer configuration. To enable NAT-T for systems behind NATs to communicate with other systems behind NATs, the following registry key needs to be added and set to a value of 2:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPsec\AssumeUDPEncapsulationContextOnSendRule

В колхозном переводе, исходя из соображений безопасности по умолчанию фича выключена, чтоб включить нужно добавить в реестр ключик:

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPsec\AssumeUDPEncapsulationContextOnSendRule
со значением "2"

Гость
проходил мимо

Re: IPSec теория и практика

Непрочитанное сообщение Гость » 2012-06-27 12:24:06

привет. тоже мучаюсь с ipsec+l2tp

есть офисная сетка. интернет приходит через роутер netgear wnr3500l 192.168.1.1, там включен DMZ перенаправление на 192.168.1.109 это хост freebsd + mpd + ipsec-tools + racoon.

pptp работает: клиент(dynamic IP) > провайдер > интернет > провайдер > (static IP) роутер wnr3500l (192.168.1.1) > freebsdVPN(192.168.1.109)
l2tp по этой схеме не работает. если клиент находится внутри сети 192.168.1.0 то соединение срабатывает, если клиент находится за роутером - нет.

подключаюсь с айфона. через вайфай внутри офисной сетки l2tp коннект срабатывает и телефон подключается к 192.168.1.109. через 3G интернет на внешний статический IP офиса подключается только по pptp.

на роутере включен режим DMZ т.е. все пакеты пересылаются на 192.168.1.109(freebsdvpn)
фактически vpn сервер напрямую в интернет не светит, только через nat роутера.
сам роутер практически не настраивается, можно только включить пересылку по портам или как у меня сейчас - пересылать все порты на внутренний хост сервера vpn.
по логам видно что порты снаружи открыты и соединение есть. почему не получается коннект ума не приложу.

вкомпилена поддержка NAT-T IPSEC

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

freebsdvpn# uname -a
FreeBSD freebsdvpn 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Mon Jun 25 11:13:37 MSK 2012     kamaz@freebsdvpn:/usr/obj/usr/src/sys/MYKERNEL  i386
racoon.log

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

2012-06-27 12:56:23: INFO: respond new phase 1 negotiation: 192.168.1.109[500]<=>217.118.66.85[22200]
2012-06-27 12:56:23: INFO: begin Identity Protection mode.
2012-06-27 12:56:23: INFO: received Vendor ID: RFC 3947
2012-06-27 12:56:23: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-08
2012-06-27 12:56:23: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-07
2012-06-27 12:56:23: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-06
2012-06-27 12:56:23: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-05
2012-06-27 12:56:23: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-04
2012-06-27 12:56:23: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-03
2012-06-27 12:56:23: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02
2012-06-27 12:56:23: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02

2012-06-27 12:56:23: INFO: received Vendor ID: DPD
2012-06-27 12:56:23: [217.118.66.85] INFO: Selected NAT-T version: RFC 3947
2012-06-27 12:56:23: [192.168.1.109] INFO: Hashing 192.168.1.109[500] with algo #2 
2012-06-27 12:56:23: INFO: NAT-D payload #0 doesn't match
2012-06-27 12:56:23: [217.118.66.85] INFO: Hashing 217.118.66.85[22200] with algo #2 
2012-06-27 12:56:23: INFO: NAT-D payload #1 doesn't match
2012-06-27 12:56:23: INFO: NAT detected: ME PEER
2012-06-27 12:56:23: [217.118.66.85] INFO: Hashing 217.118.66.85[22200] with algo #2 
2012-06-27 12:56:23: [192.168.1.109] INFO: Hashing 192.168.1.109[500] with algo #2 
2012-06-27 12:56:23: INFO: Adding remote and local NAT-D payloads.
2012-06-27 12:56:23: INFO: NAT-T: ports changed to: 217.118.66.85[12439]<->192.168.1.109[4500]
2012-06-27 12:56:23: INFO: KA list add: 192.168.1.109[4500]->217.118.66.85[12439]
2012-06-27 12:56:23: [217.118.66.85] INFO: received INITIAL-CONTACT
2012-06-27 12:56:23: INFO: ISAKMP-SA established 192.168.1.109[4500]-217.118.66.85[12439] spi:db519f485041bdc2:b89568b879752140
2012-06-27 12:56:24: INFO: respond new phase 2 negotiation: 192.168.1.109[4500]<=>217.118.66.85[12439]
2012-06-27 12:56:24: INFO: no policy found, try to generate the policy : 10.194.247.240/32[60288] 81.95.28.158/32[1701] proto=udp dir=in
2012-06-27 12:56:24: INFO: Adjusting my encmode UDP-Transport->Transport
2012-06-27 12:56:24: INFO: Adjusting peer's encmode UDP-Transport(4)->Transport(2)
2012-06-27 12:56:24: INFO: IPsec-SA established: ESP/Transport 192.168.1.109[500]->217.118.66.85[500] spi=136667385(0x82560f9)
2012-06-27 12:56:24: INFO: IPsec-SA established: ESP/Transport 192.168.1.109[500]->217.118.66.85[500] spi=255411533(0xf39454d)
mpd.log

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

Jun 27 12:56:24 freebsdvpn mpd: Incoming L2TP packet from 217.118.66.85 60288
Jun 27 12:57:24 freebsdvpn mpd: L2TP: Control connection 0x28807c08 terminated: 6 (expecting reply; none received)
Jun 27 12:57:35 freebsdvpn mpd: L2TP: Control connection 0x28807c08 destroyed

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

freebsdvpn# /usr/local/sbin/setkey -DP
10.194.110.56[49177] 81.95.28.158[1701] udp
	in ipsec
	esp/transport//require
	created: Jun 27 13:01:58 2012  lastused: Jun 27 13:01:58 2012
	lifetime: 3600(s) validtime: 0(s)
	spid=53 seq=1 pid=6836
	refcnt=1
81.95.28.158[1701] 10.194.110.56[49177] udp
	out ipsec
	esp/transport//require
	created: Jun 27 13:01:58 2012  lastused: Jun 27 13:01:58 2012
	lifetime: 3600(s) validtime: 0(s)
	spid=54 seq=0 pid=6836
	refcnt=1
freebsdvpn# /usr/local/sbin/setkey -Da
192.168.1.109[4500] 217.118.66.58[12027] 
	esp-udp mode=transport spi=135696123(0x08168efb) reqid=0(0x00000000)
	E: aes-cbc  570d14f0 7f422c90 61617e13 b74c120a 58d73014 9fc5f7e6 660a1748 2372f0c1
	A: hmac-sha1  d6335fdf f1952321 dce9b7e2 09cad488 c68abd06
	seq=0x00000000 replay=4 flags=0x00000000 state=mature 
	created: Jun 27 13:01:58 2012	current: Jun 27 13:02:17 2012
	diff: 19(s)	hard: 3600(s)	soft: 2880(s)
	last:                     	hard: 0(s)	soft: 0(s)
	current: 0(bytes)	hard: 0(bytes)	soft: 0(bytes)
	allocated: 0	hard: 0	soft: 0
	sadb_seq=1 pid=6837 refcnt=1
217.118.66.58[12027] 192.168.1.109[4500] 
	esp-udp mode=transport spi=173712183(0x0a5aa337) reqid=0(0x00000000)
	E: aes-cbc  a9c4c632 f441bc39 a98dfe72 0fb40c7f e88eeaab f2e15f99 49c4358b 4f198c02
	A: hmac-sha1  ef818eab 2ff90a7d 46018b2c 415fd60f c141f4e2
	seq=0x00000006 replay=4 flags=0x00000000 state=mature 
	created: Jun 27 13:01:58 2012	current: Jun 27 13:02:17 2012
	diff: 19(s)	hard: 3600(s)	soft: 2880(s)
	last: Jun 27 13:02:13 2012	hard: 0(s)	soft: 0(s)
	current: 528(bytes)	hard: 0(bytes)	soft: 0(bytes)
	allocated: 6	hard: 0	soft: 0
	sadb_seq=0 pid=6837 refcnt=1

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

freebsdvpn# cat /usr/local/etc/racoon/racoon.conf
# $KAME: racoon.conf.in,v 1.18 2001/08/16 06:33:40 itojun Exp $

# "path" affects "include" directives.  "path" must be specified before any
# "include" directive with relative file path.
# you can overwrite "path" directive afterwards, however, doing so may add
# more confusion.
#path include "@sysconfdir_x@/racoon";
#include "remote.conf";

# the file should contain key ID/key pairs, for pre-shared key authentication.
path pre_shared_key "/usr/local/etc/racoon/psk.txt";

# racoon will look for certificate file in the directory,
# if the certificate/certificate request payload is received.
#path certificate "@sysconfdir_x@/cert";

# "log" specifies logging level.  It is followed by either "notify", "debug"
# or "debug2".
log info;

# "padding" defines some padding parameters.  You should not touch these.
padding
{
	maximum_length 20;	# maximum padding length.
	randomize off;		# enable randomize length.
	strict_check off;	# enable strict check.
	exclusive_tail off;	# extract last one octet.
}

# if no listen directive is specified, racoon will listen on all
# available interface addresses.
listen
{
	#isakmp ::1 [7000];
	isakmp 192.168.1.109 [500];
	isakmp_natt 192.168.1.109 [4500];
	#admin [7002];		# administrative port for racoonctl.
	strict_address; 	# requires that all addresses must be bound.
}

# Specify various default timers.
timer
{
	# These value can be changed per remote node.
	counter 5;		# maximum trying count to send.
	interval 20 sec;	# maximum interval to resend.
	persend 1;		# the number of packets per send.

	# maximum time to wait for completing each phase.
	phase1 30 sec;
	phase2 15 sec;
}

remote anonymous
{
	exchange_mode main;
	lifetime time 24 hour;
	passive on;
	generate_policy on;
	support_proxy on;
	nat_traversal on;
	ike_frag on;
	dpd_delay 20;
	
	proposal_check obey;	# obey, strict, or claim

	proposal {
		encryption_algorithm aes;
		hash_algorithm sha1;
		authentication_method pre_shared_key;
		dh_group modp1024;
	}
}

sainfo anonymous
{
	pfs_group modp1024;
	encryption_algorithm aes;
	authentication_algorithm hmac_sha1;
	lifetime time 1 hour;
	compression_algorithm deflate;
}

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

freebsdvpn# cat /usr/local/etc/mpd5/mpd.conf
#################################################################
#
#	MPD configuration file
#
# This file defines the configuration for mpd: what the
# bundles are, what the links are in those bundles, how
# the interface should be configured, various PPP parameters,
# etc. It contains commands just as you would type them
# in at the console. Lines without padding are labels. Lines
# starting with a "#" are comments.
#
# $Id: mpd.conf.sample,v 1.46 2009/04/29 11:04:17 amotin Exp $
#
#################################################################

startup:
	# configure mpd users
	set user rooter
	set user bar1
	# configure the console
	set console self 0.0.0.0 5005
	set console open
	# configure the web server
	set web self 0.0.0.0 5006
	set web open

#
# Default configuration is "dialup"

default:
	load pptp_server
	load l2tp_server


pptp_server:
#
# Mpd as a PPTP server compatible with Microsoft Dial-Up Networking clients.
#
# Suppose you have a private Office LAN numbered 192.168.1.0/24 and the
# machine running mpd is at 192.168.1.1, and also has an externally visible
# IP address of 1.2.3.4.
#
# We want to allow a client to connect to 1.2.3.4 from out on the Internet
# via PPTP.  We will assign that client the address 192.168.1.50 and proxy-ARP
# for that address, so the virtual PPP link will be numbered 192.168.1.1 local
# and 192.168.1.50 remote.  From the client machine's perspective, it will
# appear as if it is actually on the 192.168.1.0/24 network, even though in
# reality it is somewhere far away out on the Internet.
#
# Our DNS server is at 192.168.1.3 and our NBNS (WINS server) is at 192.168.1.4.
# If you don't have an NBNS server, leave that line out.
#

# Define dynamic IP address pool.
	set ippool add pool1 192.168.1.50 192.168.1.74

# Create clonable bundle template named B
	create bundle template B
	set iface enable proxy-arp
	set iface idle 1800
	set iface enable tcpmssfix
	set ipcp yes vjcomp
# Specify IP address pool for dynamic assigment.
	set ipcp ranges 192.168.1.5/32 ippool pool1
	set ipcp dns 192.168.1.10
	set ipcp nbns 192.168.1.121
# The five lines below enable Microsoft Point-to-Point encryption
# (MPPE) using the ng_mppc(8) netgraph node type.
	set bundle enable compression
	set ccp yes mppc
	set mppc yes e40
	set mppc yes e128
	set mppc yes stateless

# Create clonable link template named L
	create link template L pptp
# Set bundle template to use
	set link action bundle B
# Multilink adds some overhead, but gives full 1500 MTU.
	set link enable multilink
	set link yes acfcomp protocomp
	set link no pap chap eap
	set link enable chap-msv2
# We can use use RADIUS authentication/accounting by including
# another config section with label 'radius'.
#	load radius
	set link keep-alive 10 60
# We reducing link mtu to avoid GRE packet fragmentation.
	set link mtu 1460
# Configure PPTP
        set pptp self 192.168.1.109
# Allow to accept calls
        set link enable incoming

l2tp_server:
	set ippool add pool2 192.168.1.75 192.168.1.99
	create bundle template C
	set iface enable proxy-arp
	set iface idle 1800
	set iface enable tcpmssfix
	set ipcp yes vjcomp
	set ipcp ranges 192.168.1.5/24 ippool pool2
	set ipcp dns 192.168.1.10
	set ipcp nbns 192.168.1.121
	set bundle enable compression
	set ccp yes mppc
	set mppc yes e40
	set mppc yes e128
	set mppc yes stateless
	create link template M l2tp
	set link action bundle B
	set link enable multilink
	set link yes acfcomp protocomp
	set link no pap chap eap
	set link enable chap-msv2
	set link keep-alive 10 60
	set link mtu 1460
	set l2tp self 192.168.1.109
	set link enable incoming

Вовкааа
проходил мимо

Re: IPSec теория и практика

Непрочитанное сообщение Вовкааа » 2012-10-11 16:15:05

Привет всем.
Скажу тоже, т.к. тема болезненная
Настраивал по этой статье на FreeBSD 8.2 stable
В итоге заработало но осталось 2 е проблемы
1 Из-за одного ната не законнектиться одновременно двум клиентам.
2 Плавующая и сильно раздражающая. В какой то момент клиент перестает подключаться из-за одного и того же ната (не важно чего за клиент винда или мобильное устройство), Из-за другого ната на ура. Помогает только setkey -Fa и setkey -F.

Бился полгода не победил. Туповат :)Юзаю mpd+pptp

На Cisco связка l2tp+ipsec работает без проблем. IOS только поновее воткнуть и усё.
Но назревает всё таки вопрос. ПОЧЕМУ на циске работает а на Фре через то самое место??????????????????
Вобщем понятно куда камень....

razor0ne
проходил мимо

Re: IPSec теория и практика

Непрочитанное сообщение razor0ne » 2012-11-15 18:00:26

Добрый день!

Прочитал всю тему, но так и не понял - для того шоб заработалО WinXP L2TP/IPSEC - клиент и сервер freebsd 8.3 + racoon + mpd5 нужно применять патч kern/146190, ага?

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: IPSec теория и практика

Непрочитанное сообщение Al » 2012-11-22 20:30:55

Когда писал статью, никакого патча, насколько помню, не применял.

Kaspian
рядовой
Сообщения: 22
Зарегистрирован: 2008-12-08 20:00:10

Re: IPSec теория и практика

Непрочитанное сообщение Kaspian » 2012-11-22 23:52:58

Я тоже о kern патчах не помню. recoon патчил - было дело.

alex_471
проходил мимо
Сообщения: 3
Зарегистрирован: 2010-08-24 13:33:05

Re: IPSec теория и практика

Непрочитанное сообщение alex_471 » 2012-12-25 1:47:44

Ух и головняк настроить NAT-T из под WinXP с динамического IP. Рекомендую англоязычный аналог данной темы - http://forums.freebsd.org/showthread.php?t=26755&page=3

Собирал на 8.3-p5

Итого просуммирую
1. Нужен kernel patch kern/146190
2 . после пересборки ядра активировать net.inet.esp.esp_ignore_natt_cksum=1
3. И пересобрать ipsec-tools c 3 разными патчами

Все это целиком нигде не выложено
Убил весь вечер сегодня.
Автору и всем участникам спасибо !