---
title: "Связь между сетями ISA и FreeBSD с помощью IPSEC"
description: "Достаточно интересная задачка по соединению сетей - на одной стороне шлюзом ISA 2006 на другой шлюзо..."
author: "empty_man"
published: "2009-09-26T06:53:59+00:00"
modified: "2009-09-26T06:53:59+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/svyaz-mezhdu-setyami-isa-i-freebsd-s-pomoshchyu-ipsec-18796"
markdown_url: "https://yvision.kz/post/svyaz-mezhdu-setyami-isa-i-freebsd-s-pomoshchyu-ipsec-18796/markdown"
site_name: "Yvision.kz"
---

# Связь между сетями ISA и FreeBSD с помощью IPSEC

> Достаточно интересная задачка по соединению сетей - на одной стороне шлюзом ISA 2006 на другой шлюзо...

Достаточно интересная задачка по соединению сетей - на одной стороне шлюзом ISA 2006 на другой шлюзом FreeBSD. Идеологически правильно создавать IPSEC соединение site-to-site - так пишут на M$. Ок...супер...но нигде нет про FreeBSD, везде только Linux :) Не беда...поправим - итак быстрое howto соединения сетей....

дано -

сеть 10.0.0.0/24 - шлюз ISA - внешний 1.1.1.252

сеть 172.16.172.0/24 - шлюз FreeBSD внешний 1.1.1.150

необходимо -

связать сети между собой и шифровать канал

Лирика - делаю на preshared key пока. С сертифкатами надо конкретно вдуплить...что и как....

На ISA все решается мастером за 5 минут, посему только скрины без комментариев

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/3K1rFloIvDI8FYSodQjVVswa5uPH1S.png)

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/SuYV9maRmJZN1S6KF26q5uiMLlC0tr.png)

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/FhwAFszvjD2h26fCvH2l0300vLtp75.png)

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/eYzI1a2kNA4Y0P1oz9pbnDR9eP6djo.png)

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/ivq4w2gU1yry48507TVewNlDEQF843.png)

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/y3IaHFRfp2L6LlS13CVlRLyb6xUn5o.png)

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/BE4lh70xbyAg1IRexHu1FavgGLEmQ5.png)

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/mnqT1T4V0P45lRjh17iSUa0qDws3yS.png)

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/R2J1MIV3gZY0G393Z0Yde5kZiGKn6E.png)

Итак..с ISA все...

FreeBSD - необходимо -

в ядре

option IPSEC

device crypto

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/KG8A6l3rFWtEeM2opZ7vYu3u63nE0r.png)

пересобираем ядро

ставим ipsec-tools -

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/Da1yuh56Gz4NlMga8kMWFX2JS1xrw4.png)

создаем директории для файлов racoon -

/usr/local/erc/racoon - нормальный такой выбор

/usr/local/etc/racoon/cert - для сертификатов (в будущем) и файлов presharedkeys

создем файл ipsec.conf в /etc - для политик IPSEC

копируем из /usr/local/share/examples/ipsec-tools два файла

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/qNC27SUnecpWOZifDKt708v9rK8FY1.png)

конфиг racoon в racoon и psk.txt в cert

рихтуем под себя

psk.txt - наш файл ключей - IP адрес удаленной стороны и ключ

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/2C4h4SH0p38354pUChp3WhxcDaOgH9.png)

**ПРАВА НА ФАЙЛ 0600 для root - иначе не запустися!**

racoon.conf - собственно файл конфигурации. Самый простой вариант без наворотов

path include "/usr/local/etc/racoon"; path pre_shared_key "/usr/local/etc/racoon/cert/psk.txt"; log debug;

# "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.1.1.150 [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 1.1.1.252 { exchange_mode aggressive,main; doi ipsec_doi; situation identity_only;

my_identifier address 1.1.1.150; peers_identifier address 1.1.1.252; proposal_check obey;

# obey, strict, or claim

proposal { encryption_algorithm 3des; hash_algorithm md5; authentication_method pre_shared_key; lifetime time 30 sec; dh_group 2; } }

sainfo 1.1.1.150 any address 1.1.1.252 any { pfs_group 2; lifetime time 36000 sec; encryption_algorithm 3des; authentication_algorithm hmac_md5; compression_algorithm deflate; }

sainfo anonymous { pfs_group 2; lifetime time 60 min; encryption_algorithm 3des; authentication_algorithm hmac_md5; compression_algorithm deflate; }

и наконец ipsec.conf - указываем политики связи и шифрования

spdadd 172.16.172.0/24 10.0.0.0/24 any -P out ipsec esp/tunnel/1.1.1.150-1.1.1.252/require; spdadd 10.0.0.0/24 172.16.172.0/24 any -P in ipsec esp/tunnel/1.1.1.252-1.1.1.150/require;

рихтуем rc.conf

racoon_enable="NO" - включаем racoon (пока NO, но как только все проверим ставим YES) gif_interfaces="gif0" - описываем интерфейс через который идем в туннель gifconfig_gif0="1.1.1.150 1.1.1.252" - создаем туннель ifconfig_gif0="inet 172.16.172.252 10.0.0.252 netmask 255.255.255.0" какие сети связываем ipsec_enable="YES" - шифрование ipsec_file="/etc/ipsec.conf" - его конфиг static_routes="MyContoso" - маршрут в другую сеть route_MyContoso="10.0.0.0/24 -interface gif0" - куда и через кого

перегружаем FreeBSD смотрим наш gif0

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/iGCwiTW4oGQy4sctjRbC8jY5NZLQuM.png)

А теперь пробуем взлететь со всем этим - запускаемся в отладке

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/a1fzH4NVDZKZ336Iq4TKXy52K4diUx.png)

смутило пару вещей - потом покопаюсь...

ну и пробуем пробить туннель - пингуем из сети 10.0.0.0/24 адрес в сети 172.16.172.0/24

первый пакет потерялся - устанавливалась связь, зато потом все супер

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/h6aOv3o52HE04O55FWL97hW4tHnGL1.png)

со стороны FreeBSD

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/Ap8790CAXA8MPS22QqnpcM1jb5Kezt.png)

ну и чтобы окончательно убедиться в том что все пашет - ssh соединение на ВНУТРЕННИЙ адрес FreeBSD

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/Cou2Iny5BfJBFd3TS5JgG3Krodh00z.png)

Смотрим на ISA

![Связь между сетями ISA и FreeBSD с помощью IPSEC](http://storage.yvision.kz/images/user/empty_man/1Tic92awjn7p7sTyHlj5pqzCnsPL3c.png)

ну вроде все... быстро (не совсем безопасно, не совсем правильно :) ). так сказать костыль на пару дней.

P.S.

Заметил неприятную вещь - соединение устанавливается только если инициатор в сети за ISA. Если попробовать соединиться инициировав соединение из сети за freebsd, то ничего не получится....

После ночи капания в google вроде как понял, что косяк в реализации NAT-T IPSEC в ISA.

Побороть пока не смог :( обыдно да...

---

Source: [https://yvision.kz/post/svyaz-mezhdu-setyami-isa-i-freebsd-s-pomoshchyu-ipsec-18796](https://yvision.kz/post/svyaz-mezhdu-setyami-isa-i-freebsd-s-pomoshchyu-ipsec-18796)