URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 2620
[ Назад ]

Исходное сообщение
"Тематический каталог: Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"

Отправлено auto_topic , 06-Окт-03 12:05 
Обсуждение статьи тематического каталога: Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)

Ссылка на текст статьи: http://www.opennet.me/base/net/vpn_ipsec_racoon.txt.html


Содержание

Сообщения в этом обсуждении
"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено fdm , 06-Окт-03 12:05 
А какие адреса на реальных (физических) интерфейсах смотрящих во внутреннюю сеть?

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено Rabid , 06-Окт-03 15:17 
Странный вопрос. Что значит "на реальных". Я ж подробно описал ситуацию. На внутреннем интерфейсе Шлюза 1 - 10.1.1.1, на Шлюзе 2 - 10.1.1.2 Имелись ввиду именно адреса на реальных интерфейсах.

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено Crow , 27-Окт-03 20:33 
Вроде бы как все сделал правильно, но не работает. Не идет пинг между шлюзами. Т.е. если со шлюза 1 дать команду ping 10.1.2.1, то пинг не проходит, пишет arplookup yyy.yyy.yyy.yyy failed: host is not in local subnet.
Где я сделал неправильно?
Заранее спасибо

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено VVS , 28-Окт-03 14:57 
наверняка где-то дефолтовый шлюз забыл. он же явно пишет, что не может пакет отроутить.

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено Crow , 28-Окт-03 19:10 
Спасибо за ответ.
Да, действительно забыл шлюз. Забыл поставить в  /etc/rc.conf разрешение на создание gif-интерфейса. Сейчас поставил на обоих машинах, в ifconfig и  netstat сети вижу, с одной сети в другую пинг идет, а наоборот - нет :(((((
Racoon пока отключил, пробую без него.....

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено Crow , 29-Окт-03 17:29 
Все, разобрался. Все работает.
Еще раз спасибо за ответ.

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено Andrew , 17-Июн-04 01:36 
Собствено у меня не получается что-то с раконом он пишет после запуска следующее:
2004-06-16 21:29:40: INFO: main.c:172:main(): @(#)package version freebsd-200307
11a
2004-06-16 21:29:40: INFO: main.c:174:main(): @(#)internal version 20001216 saka
ne@kame.net
2004-06-16 21:29:40: INFO: main.c:175:main(): @(#)This product linked OpenSSL 0.
9.7c 30 Sep 2003 (http://www.openssl.org/)
2004-06-16 21:29:40: DEBUG: algorithm.c:614:alg_oakley_dhdef(): hmac(modp1024)
2004-06-16 21:29:40: DEBUG: pfkey.c:2310:pk_checkalg(): compression algorithm ca
n not be checked because sadb message doesn't support it.
2004-06-16 21:29:40: INFO: isakmp.c:1358:isakmp_open(): 213.130.2.247[500] used
as isakmp port (fd=5)
2004-06-16 21:29:40: DEBUG: pfkey.c:195:pfkey_handler(): get pfkey X_SPDDUMP mes
sage
2004-06-16 21:29:40: DEBUG: pfkey.c:195:pfkey_handler(): get pfkey X_SPDDUMP mes
sage
2004-06-16 21:29:40: DEBUG: policy.c:184:cmpspidxstrict(): sub:0xbfbff978: 192.1
68.0.0/24[0] 192.168.1.0/24[0] proto=any dir=out
2004-06-16 21:29:40: DEBUG: policy.c:185:cmpspidxstrict(): db :0x80a1c08: 192.16
8.1.0/24[0] 192.168.0.0/24[0] proto=any dir=in
2004-06-16 21:30:13: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:13: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:13: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:13: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:13: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:13: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:14: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:14: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:14: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:14: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:14: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:14: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:14: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:14: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:14: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:14: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:15: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:15: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:15: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:15: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:15: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:15: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:15: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:15: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:15: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:15: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:16: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:16: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:16: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:16: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list
2004-06-16 21:30:16: DEBUG: grabmyaddr.c:441:update_myaddrs(): msg 1 not interes
ting
2004-06-16 21:30:16: DEBUG: grabmyaddr.c:447:update_myaddrs(): caught rtm:2, nee
d update interface address list

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено tall , 17-Ноя-03 14:56 
Подскажите плиз как настроить Racoon при такой ситуации
WIN-192.168.0.0/24<-->192.168.0.1-BSD-81.151.8.92-->212.119.170.30 т.е машина с маской 255.255.255.0 должна попадать в тунель
двух внешних сетевых карт.  
Если можно по подробней.
Спасибо.

"Тематический каталог: Создание VPN во FreeBSD на базе IPSEC ..."
Отправлено ArmanT , 07-Янв-04 09:04 
Здравствуйте,

Можно использовать статью за базу для модификации, есть несколько дополнений и пару картинок. Буду ссылаться на оригиналю. Спасибо


"Тематический каталог: Создание VPN во FreeBSD на базе IPSEC ..."
Отправлено Andrew , 04-Июн-04 18:18 
Можно. Да и все что здесь написано просто компиляция прочитанного мной.

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено jeka , 05-Фев-04 10:59 
у меня все тормознулось на этапе запуска racoon
: could not parse configuration file
попробовал racoon -F
вот что получил:
1. ERROR: pfkey.c:2394:pk_checkalg(): Must get supported algorithms list first.
2  ERROR: cftoken.l:494:yyerror(): /usr/local/etc/racoon/racoon.conf:102: ";" algorithm 3DES not supported

Попробовал перекомпилить openssl
- тоже
выхода пока не нашел


"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено anonymous , 06-Фев-04 23:56 
> 2  ERROR: cftoken.l:494:yyerror): /usr/local/etc/racoon/racoon.conf:102: ";" algorithm 3DES not supported

Ядро пересобери с опцией
options  IPSEC_ESP


"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено driffire , 22-Мрт-04 17:50 
Ув. автор. А не наблюдается ли проблемм если понадобится делать NAT на gateways? Допустим, что помимо связи сетей 2-х удаленных офисов надо еще чтобы каждый оффис (разумеется в каждом офисе приватная сеть) имел бы доступ в интернет посредством NAT.

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено Andrew , 04-Июн-04 18:26 
>Ув. автор. А не наблюдается ли проблемм если понадобится делать NAT на
>gateways? Допустим, что помимо связи сетей 2-х удаленных офисов надо еще
>чтобы каждый оффис (разумеется в каждом офисе приватная сеть) имел бы
>доступ в интернет посредством NAT.

Не наблюдается. Счас семь VPN-ов и наты на два интерфейса глядящих в инет - все работает. Да и почему бы не работать. Нат настраивается на физические интерфейсы, а VPN юзает gif-ы.


"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено B00StER , 14-Май-04 11:55 
Неплохо бы еще в rc.conf добавлять строку:
    gif_interfaces="gif0"

Иначе интерфейс gif0 не появляется.


"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено Andrew , 04-Июн-04 18:21 
Да. Очень дельное замечание. И как я позабыл :(

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено Mikhael , 24-Июн-04 14:19 
мдааа у меня не заработалло хотя сделал все как сказанно только  у меня не ipf  а ipfw не подскажите рулы для него ????

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено Алексей , 20-Июл-04 09:46 
Еще в виде рекомендации
1)использовать на gifX маски /32. Это интерфейсы типа point-to-point и более широкие маски тут не к чему. Или вобще обходиться без адресов на этих интерфейсах.
2) Поставить mtu по меньше.. где нить 1460. есть сообщения что path mtu в FreeBSD 4.x не учитывает ipsec заголовки.

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено Valentin Nechayev , 20-Июл-04 11:00 
Статья, если честно, грубо ошибочная в месте описания создания туннеля. Это можно извинить совершенно неясным и туманным описанием в handbook, и безнадёжно бардачными KAME'шными описалками, но тем не менее. Хотя на качество работы настроенной сети это _почти_ не влияет... см. ниже.

А суть ситуации следующая: gif в данном случае противоречит туннельному ipsec'у и просто не используется. Он имел бы смысл, если бы строился транспортный IPSEC между шлюзами (как я и посоветовал бы в данном случае - см.ниже), но в случае туннельного IPSEC до него дело просто не доходит:
правила IPSEC SPD - в частности, правило "криптовать всё с 10.0.1.0/24 на 10.0.2.0/24" срабатывает до раутинга (это принципиально в IPSEC), и тут туннельный ipsec реализует по сути свой gif: строит такой же пакет, как в случае  ipip туннелирования gif'ом, и криптует по ESP содержимое этого пакета. На стороне получателя происходит обратное: обнаружив ESP и адекватную его содержимому SP, расшифровывает, снимает ipip-оболочку и отправляет пакет в стек.

(продолжить попробую в следующем письме, а то такие большие тексты не хочет постить)


"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено Valentin Nechayev , 20-Июл-04 11:02 

К чему же тут явный gif? А к попыткам автора (не данной статьи, а скорее той мягкой бумажки, что в старом handbook'е) восстановить конфигурацию, которая у него хоть как-то работала. При отсутствии работающего SP (KMPD в лице racoon не установил SA) и при вариантах правил в SP use вместо require это даст то, что туннелирование не будет сделано, и пакет отправится далее - по раутингу - попадёт в gif и пойдёт абсолютно идентичным путём, но без криптования содержимого. На приёмной стороне, при отсутствии признака ESP, правила SP вообще не будут применяться, с пакета будет снята туннельная оболочка средствами gif и он пойдёт в сеть. Всё будет работать, но без шифрования ;)                                            
Если же оставить текущие require, и поставить на обе стороны такие настройки как сейчас... всё снова будет работать. Но в обход gif ;))                        
                                                                                
Чем плох такой вариант? Тем, что с туннелями есть проблемы с MTU. Например, мне жаловались, что при MTU 1500 на внешнем линке, IPSEC отправляет обратно ICMP NEEDFRAG с указанием допустимого MTU опять же 1500:( Явный gif честнее в этом плане.

(опять продолжение следует)


"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено Valentin Nechayev , 20-Июл-04 11:03 
Поэтому, рекомендуемый вариант будет следующий: поставить gif точно так же как в статье, обмен ключами - точно так же, но правила в SPD заменить на следующие (для первого шлюза; для второго - аналогично):                                    
                                                                                
spdadd 10.1.1.1 10.1.2.1 any -P out ipsec esp/transport//require;              
spdadd 10.1.2.1 10.1.1.1 any -P in ipsec esp/transport//require;                
                                                                                
С точки зрения формата и содержимого пакетов вообще ничего не поменяется (так что менять можно даже на одной из сторон;)), но будет меньше проблем с MTU. Проблема с MTU будет решаться в драйвере gif (который на порядок более прозрачен и в котором это решено), остаётся только выставить там разумное MTU (например, 1440). Другое преимущество этого варианта - возможность поддержки динамического раутинга дополнительных сетей (средствами zebra/quagga/gated/routed/аналогов): IPSEC SPD не содержит маршруты сетей они пишутся вместо этого  в таблицу раутинга, где с ними значительно легче разбираться. В варианте же с туннельным IPSEC требуется продираться через глупости конструкции SPD (принципиально требуемый по RFC последовательный порядок правил и отсутствие возможности вставлять правила в начало/середину).                                                                      
                                                                                
И вариант с транспортным IPSEC и gif внутри - я проверял и он работает, лучше, чем с туннелем :)

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено jonik , 15-Авг-04 08:33 
ты чего ?
думаешь о чем ? о настройке ИПСЕКА или защите сети ?

так жеж нельзя
ты предлагаешь защищать транспортом траффик между маршрутизаторными внутренними интерфейсами ? если я правильно понял ...

так нельзя делать
в инете будет видно, твою внутреннюю сеть, потому что в гиф0 будет инкапсулирован внутренний пакет , а потом его тело зашифровано, но заголовок его будет виден !!!

если использовать транспортный режим, то правильнее всего шифровать протокол инкапсуляции между внешними интерфейсами (х.х.х.х у.у.у.у)

(если зашифруешь весь, то ракун не сможет инициировать обмен ключами, если скажешь не шифровать трафик ракунов, то ракуну будет тяжело понять какую из записей СПД брать и т.д.)


"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено Valentin Nechayev , 15-Авг-04 17:08 
>так жеж нельзя
>ты предлагаешь защищать транспортом траффик между маршрутизаторными внутренними интерфейсами ? если я
>правильно понял ...
Нет, внешними, конечно. Внутренними - или работать вообще не будет, или как гланды автогеном вырезать :)

>если использовать транспортный режим, то правильнее всего шифровать протокол инкапсуляции между внешними
>интерфейсами (х.х.х.х у.у.у.у)
Кто бы спорил - я не буду :)

>(если зашифруешь весь, то ракун не сможет инициировать обмен ключами, если скажешь
>не шифровать трафик ракунов, то ракуну будет тяжело понять какую из
>записей СПД брать и т.д.)

Ну, у меня ISAKMP демоны и так договаривались (за счёт use вместо
require). Хотя исключить из шифрования порты 22, 443, 500 и прочих отдельными SP перед основным - действительно полезная настройка.


"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено Valentin Nechayev , 20-Июл-04 11:06 
Вроде все. Осталось только заметить, что racoon теряет память и при длительной работе его не мешало бы подпереть перезапускалкой и ulimit'ами.;)) Но на пару статических линков и средний аптайм железки в несколько месяцев это не страшно.    
                                                                                
Sorry за некоторый сумбур изложения. И просьба к вебмастерам - сделать постинг как-то более разумно, чем передавать весь текст комментария в URL'е. ;(

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено Bani , 25-Сен-06 15:00 
а как быть с racoon2? синтаксис тот же?

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено junk , 23-Июн-07 19:56 
а как быть, если FreeBSD находится за NAT ? что-то у меня не поехало никак это дело...

"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)"
Отправлено veranyon , 10-Авг-07 19:58 
Кто-нибудь делал такую конфу, но из трех сетей, вместо двух, как здесь?

Отличий много?


"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено veranyon , 11-Авг-07 22:45 
racoon -F
Foreground mode.
2007-08-11 22:32:07: INFO: @(#)ipsec-tools 0.6.7 (http://ipsec-tools.sourceforge
.net)
2007-08-11 22:32:07: INFO: @(#)This product linked OpenSSL 0.9.7e-p1 25 Oct 2004
(http://www.openssl.org/)
2007-08-11 22:32:07: WARNING: /usr/local/etc/racoon/racoon.conf:65: "support_mip
6" it is obsoleted.  use "support_proxy".
2007-08-11 22:32:07: ERROR: /usr/local/etc/racoon/racoon.conf:74: "}" no exchang
e mode specified.

2007-08-11 22:32:07: ERROR: fatal parse failure (1 errors)
racoon: failed to parse configuration file.

видимо, много чего нового появилось и удалилось. Люди. Что racoon.conf нужно поменять?


"Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipse..."
Отправлено akocherov , 28-Авг-07 04:44 
ну вопервых заменить фразу support_mip6 на support_proxy
ну и конечно     exchange_mode main;  или     exchange_mode aggressive; в секцию remote XXX