Как стать автором
Обновить

Комментарии 8

странное решение, потому что gif интерфейс тут просто не нужен. Вместо gif интерфейса можно прописать ваши рабочие подсети в которых стоят роутеры. А если нужно мониторить, что бегает внутри ipsec, то просто добавить в ядро девайс enc и потом ifconfig enc0 up. далее смотрим на него через tcpdump, всю инкапсуляцию будет видно как на ладони.

device crypto
device enc
options IPSEC

Если ваш роутер стоит за натом, то нужно в ядро добавить опцию Nat Traversal.

options IPSEC_NAT_T

А вообще копировать старые статьи 6 летней давности некомильфо, тем более что пример привязан к локальной тестовой подсети, а в реальных сетях это просто не поднимется.
В sainfo лучше добавить связку подсетей вместо анонимного подключения и сделать generate_policy off;

Плюс ко всему нужно не забыть открыть стенку для IPSEC.
В общем на мой взгляд статья немного не доработана.
Прежде всего — спасибо за конструктивное замечание!
Согласен, что статья нуждается в доработке, сейчас как раз занимаюсь переносом всего этого на рабочую систему и думаю, что в окончательном варианте это будет немного по другому. Не сомневаюсь, что многое тут может оказаться лишним и избыточным — это же мой первый опыт в данной ОС.
Основная проблема, с которой я столкнулся, это то, что все посты на форумах на эту тему 3-4-х летней давности, в основном — с описанием проблем и без их решения.
Было бы классно, если бы нашелся спец с большим опытом во всем этом и указал бы, что неправильно и что и как надо правильно прикрутить.
Касательно настроек racoon:
Если удаленный офис имеет статичный IP, то нет никакого смысла использовать секцию remote anonymous, лучше использовать remote 10.10.10.2 (для данного случая) это упростит идентификацию удаленого хоста и даст возможность задать параметры proposal для вашего роутера DI-804HV.
В секции remote поставить generate_policy off; раз уж вы указыватаете политику в /etc/ipsec.conf. Иначе racoon будет добавлять собственную.
Секция sainfo будет выглядеть следующим образом sainfo (address 192.168.250.0/24 any address 192.160.0.0/24 any)
Попробовал на тестовой среде следовать вашим рекомендациям — удалил все про gif0 в rc.conf, добавил параметры в ядро и пересобрал его, внес в racoon.conf изменения, перегрузил машину и пытаюсь установить соединение, но вываливается ошибка в логах.

2012-02-02 20:24:13: DEBUG: getsainfo params: loc='192.168.250.0/24' rmt='192.168.0.0/24' peer='10.10.10.2' client='10.10.10.2' id=0
2012-02-02 20:24:13: DEBUG: evaluating sainfo: loc='192.168.250.0/24', rmt='192.168.0.0/24', peer='ANY', id=0
2012-02-02 20:24:13: DEBUG: check and compare ids : values matched (IPv4_subnet)
2012-02-02 20:24:13: DEBUG: cmpid target: '192.168.250.0/24'
2012-02-02 20:24:13: DEBUG: cmpid source: '192.168.250.0/24'
2012-02-02 20:24:13: DEBUG: check and compare ids : values matched (IPv4_subnet)
2012-02-02 20:24:13: DEBUG: cmpid target: '192.168.0.0/24'
2012-02-02 20:24:13: DEBUG: cmpid source: '192.168.0.0/24'
2012-02-02 20:24:13: DEBUG: selected sainfo: loc='192.168.250.0/24', rmt='192.168.0.0/24', peer='ANY', id=0
2012-02-02 20:24:13: DEBUG: Either family (2 - 2), types (4 - 0) of ID from initiator differ or matching sainfo has no id_i defined for the peer. Not filling iph2->sa_src and iph2->sa_dst.
2012-02-02 20:24:13: DEBUG: get src address from ID payload 192.168.0.0[0] prefixlen=24 ul_proto=255
2012-02-02 20:24:13: DEBUG: get dst address from ID payload 192.168.250.0[0] prefixlen=24 ul_proto=255
2012-02-02 20:24:13: ERROR: no policy found: 192.168.0.0/24[0] 192.168.250.0/24[0] proto=any dir=in
2012-02-02 20:24:13: ERROR: failed to get proposal for responder.
2012-02-02 20:24:13: [10.10.10.2] ERROR: failed to pre-process ph2 packet (side: 1, status: 1).
2012-02-02 20:24:13: DEBUG: IV freed


вот обновленный racoon.conf

freebsd# cat /usr/local/etc/racoon/racoon.conf
path include "/usr/local/etc/racoon";
path pre_shared_key "/usr/local/etc/racoon/psk.txt";

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.
}

listen
{
isakmp 10.10.10.1 [500];
}

# 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 10.10.10.2
{
exchange_mode main,base;
lifetime time 28800 sec;
generate_policy off;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
proposal_check strict;

}

sainfo address 192.168.250.0/24 any address 192.168.0.0/24 any
{
pfs_group 2;
lifetime time 28800 sec;
encryption_algorithm 3des;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}
Настраивал точно такую же связку, но без gif интерфейсов, если на стороне dlink всего она подсеть то gif и не нужен. Я так считаю.
Согласен, и без gif работает, просто в тех доках, что читал, писалось про них, вот и прописал
а я бы порекомендовал почитать в сторону strongswan, мы под гентами плавно с ракуна на стронгсван перелезли
А я по наивности думал, что только Циску и других крупных вендоров с шифрованием напрягли. Ну теперь про ipsec можно забыть окончательно. Покупайте, стало быть, российские велосипеды.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории