IPSEC между FreeBSD и  OpenBSD

 

 Поскольку в FreeBSD ipsec по умолчанию отсутствует , необходимо предпринять ряд шагов .

 

1.Включить поддержку IPSEC в ядро.

Для этого надо добавить следующие опции 

 

options         IPSEC                   #IP security

options         IPSEC_ESP               #IP security crypto

options         IPSEC_DEBUG             #debug for IP security

в ядро и пересобрать его.

2.Установить сам демон Isakmpd .

Можно установит его из портов , я собирал его из исходников , которые взял здесь - ftp://ftp.netbsd.org/pub/NetBSD/packages/distfiles/LOCAL_PORTS/isakmpd-20021118.tar.gz

Для правильной сборки надо сделать небольшой патч в заголовке ~/isakmpd/sysdep/freebsd/sysdep-os.h . Необходимо добавить след. определения  

                              

#ifndef CPI_RESERVED_MAX      

#define CPI_RESERVED_MIN 1    

#define CPI_RESERVED_MAX 255  

#define CPI_PRIVATE_MIN  61440

#define CPI_PRIVATE_MAX  65536

#endif                        

Плюс сделать ссылку на заголовок /usr/include/openssl/des.h в /usr/include . Все это необходимо для нормальной сборки из исходников под FreeBSD.

Теперь приступаем к собственно сборке. Скрипт configure отсутствует , вместо этого надо раскомментировать строчку в Makefile, определяющую тип системы – в нашем случае freebsd.

После этого согласно README выполняем make obj && make depend && make   

&& make install

В результате мы получаем собранный демон Isakmpd , который пока еще лучше не запускать , так как отсутствуют файлы конфигурации , чем мы и займемся.

 

                  Конфигурация Isakmpd

 

Итак , мы хотим настроить IPSEC-туннель между сервером OpenBSD и сервером FreeBSD .

Оба сервера имеют реальные адреса , “смотрят” в Интернет и являются gate для подключенным к ним локальным сетям .Собственно , обьединение   локальных сетей по Ipsec VPN и есть конечная цель .

После изучения примеров и чтения приведенных источников создаем конфигурационные файлы

Для FreeBSD он содержит след. строки :

 

#--------------------------------------------------------------------

#       $OpenBSD: singlehost-east.conf,v 1.10 2000/11/23

#       $EOM: singlehost-east.conf,v 1.10 2000/11/23 12:24:43 niklas  

# A configuration sample for the isakmpd ISAKMP/Oakley (aka IKE) #daemon.      

                                                                              

[General]

Listen-on=              195.284.181.12

#Shared-SADB=           Defined

Policy-File=            policy

                                                                              

[Phase 1]

194.84.181.85=          host2

#Default=host2-agressive                                                       

                                                                              

[Phase 2]                                                                     

Connections=            host1-host2                                                                               

[host2]

Phase=                  1

Transport=              udp

Local-address=          195.284.181.12

Address=                193.84.181.85

Configuration=          Default-main-mode                                     

Authentication=         здесь пароль                                                  

[host2-agressive]                                 

Phase=                  1                         

Transport=              udp                       

Local-address=          195.284.181.12             

Address=                193.84.181.85             

Configuration=          Default-aggressive-mode   

Authentication=         здесь пароль                

                                                  

[host1-host2]                                      

Phase=                  2                         

ISAKMP-peer=            host2                     

Configuration=          Default-quick-mode        

Local-ID=               Net1                      

Remote-ID=              Net2                      

                                                  

[Net1]                                            

ID-type=                IPV4_ADDR_SUBNET          

Network=                10.0.0.0                  

Netmask=                255.255.255.0             

                                                  

[Net2]                                            

ID-type=                IPV4_ADDR_SUBNET            

Network=                10.0.1.0                    

Netmask=                255.255.255.0               

                                                    

[Default-main-mode]                                 

DOI=                    IPSEC                       

EXCHANGE_TYPE=          ID_PROT                      

Transforms=             3DES-SHA                    

                                                    

[Default-aggressive-mode]                           

DOI=                    IPSEC                       

EXCHANGE_TYPE=          AGGRESSIVE                  

Transforms=             3DES-SHA-RSA                

                                                    

[Default-quick-mode]                                

DOI=                    IPSEC                       

EXCHANGE_TYPE=          QUICK_MODE                  

Suites=                 QM-ESP-AES-SHA-PFS-SUITE    

 

Здесь 195.284.181.12 – адрес нашего сервера , 193.84.181.85 – адрес удаленного OpenBSD сервера , 10.0.0.0 – адрес местной локальной сети , 10.0.1.0 – адрес удаленной локалки .

Для OpenBSD файл конфигурации выглядит так :

#       $OpenBSD: singlehost-east.conf,v 1.10 2000/11/23 12:56:25 niklas Exp $

#       $EOM: singlehost-east.conf,v 1.10 2000/11/23 12:24:43 niklas Exp $    

                                                                               

# A configuration sample for the isakmpd ISAKMP/Oakley (aka IKE) daemon.      

[General]

Listen-on=              193.84.181.85

#Shared-SADB=           Defined

Policy-File=            policy

                                                                               

[Phase 1]

194.84.181.12=          host2

#Default=               host2-agressive

[Phase 2]

Connections=            host1-host2                                                                               

[host2]

Phase=                  1

Transport=              udp

Local-address=          193.84.181.85

Address=                195.284.181.12

Configuration=          Default-main-mode

Authentication=         пароль здесь

[host2-agressive]

Phase=                  1                      

Transport=              udp                    

Local-address=          193.84.181.85          

Address=                195.284.181.12          

Configuration=          Default-aggressive-mode

Authentication=         здесь пароль            

                                               

[host1-host2]                                  

Phase=                  2                      

ISAKMP-peer=            host2                  

Configuration=          Default-quick-mode     

Local-ID=               Net1                   

Remote-ID=              Net2                   

                                               

[Net1]                                         

ID-type=                IPV4_ADDR_SUBNET        

Network=                10.0.1.0               

Netmask=                255.255.255.0          

                                               

[Net2]                                         

ID-type=                IPV4_ADDR_SUBNET       

Network=                10.0.0.0               

Netmask=                255.255.255.0            

                                                 

[Default-main-mode]                              

DOI=                    IPSEC                    

EXCHANGE_TYPE=          ID_PROT                  

Transforms=             3DES-SHA                 

                                                 

[Default-aggressive-mode]                        

DOI=                    IPSEC                    

EXCHANGE_TYPE=          AGGRESSIVE               

Transforms=             3DES-SHA-RSA             

                                                 

[Default-quick-mode]                             

DOI=                    IPSEC                    

EXCHANGE_TYPE=          QUICK_MODE               

Suites=                 QM-ESP-AES-SHA-PFS-SUITE  

 

                                           

После размещения конфигурационных файлов в /etc/isakmpd/ уже можно запускать IPSEC демон примерно так – для отладки –

IsakmpddDA=8 .

Окончательно в работоспособности установленного туннеля убеждаемся при помощи “ping удаленная локалка” и tcpdump-a

tcpdump: listening on xl0                                                     

08:53:39.384971 esp 193.84.181.12 > 195.284.181.85 spi 0xF0A1A6AC seq 5 len 100

08:53:39.386442 esp 193.84.181.85 > 195.284.181.12 spi 0x54E1850B seq 5 len 100

 

                   Результаты

 

Для оценки скорости прохождения пакетов через туннель попробуем копировать файлы с локальной на удаленную машину и обратно . Напомню , что при установленном туннеле удаленная локальная сеть становится доступно в сетевом окружении сети Windows .

Картинки чтения с удаленного диска

 

И записи на него

 

Как видно , туннель IPSEC обеспечивает неплохие скорости обмена .

Сайт управляется системой uCoz