Настройка IPSec



Как настроить ISAKMP (IKE)

В данном примере рассматривается настройка IPSec для защиты трафика между двумя хостами с использованием протокола обмена ключами ISAKMP (RFC 2407, RFC 2408, RFC 2409). Здесь рассматривается один вариант настройки ISAKMP для защиты трафика между двумя хостами. Более подробную информацию о других вариантах настройки можно получить по указанным ниже ссылкам. Смотрите также вопрос Настройка IPsec с помощью ipsecctl.

Создаем файл /etc/isakmpd/isakmpd.policy на каждом хосте. Этот файл будет одинаковым для хостов A и B:


KeyNote-Version: 2
Authorizer: "POLICY"
Licensees: "passphrase:mekmitasdigoat"
Conditions: app_domain == "IPsec policy" &&
            esp_present == "yes" &&
            esp_enc_alg == "aes" &&
            esp_auth_alg == "hmac-sha" -> "true";

Вместо "mekmitasdigoat" следует указать фразу, которая будет использоваться в качестве ключа для установки соединения. Эта фраза должна совпадать для хостов A и B. Далее нам потребуется файлы /etc/isakmpd/isakmpd.conf для каждого из хостов:

[General]
Listen-on=		192.168.64.1
Shared-SADB=		Defined

[Phase 1]
192.168.64.15=		ISAKMP-peer-B
Default=		ISAKMP-peer-B-aggressive

[Phase 2]
Connections=		IPsec-A-B

[ISAKMP-peer-B]
Phase=			1
Transport=              udp
Local-address=		192.168.64.1
Address=		192.168.64.15
Configuration=		Default-main-mode
Authentication=		mekmitasdigoat

[ISAKMP-peer-B-aggressive]
Phase=			1
Transport=		udp
Local-address=		192.168.64.1
Address=		192.168.64.15
Configuration=		Default-aggressive-mode
Authentication=		mekmitasdigoat

[IPsec-A-B]
Phase=			2
ISAKMP-peer=		ISAKMP-peer-B
Configuration=		Default-quick-mode
Local-ID=		Net-A
Remote-ID=		Net-B

[Net-B]
ID-type=		IPV4_ADDR_SUBNET
Network=		192.168.64.15
Netmask=		255.255.255.255

[Net-A]
ID-type=		IPV4_ADDR_SUBNET
Network=		192.168.64.1
Netmask=		255.255.255.255

[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/isakmpd.conf для хоста B:


[General]
Listen-on=		192.168.64.15
Shared-SADB=		Defined

[Phase 1]
192.168.64.1=		ISAKMP-peer-A
Default=		ISAKMP-peer-A-aggressive

[Phase 2]
Connections=		IPsec-B-A

[ISAKMP-peer-A]
Phase=			1
Transport=		udp
Local-address=		192.168.64.15
Address=		192.168.64.1
Configuration=		Default-main-mode
Authentication=		mekmitasdigoat

[ISAKMP-peer-A-aggressive]
Phase=			1
Transport=		udp
Local-address=		192.168.64.15
Address=		192.168.64.1
Configuration=		Default-aggressive-mode
Authentication=		mekmitasdigoat

[IPsec-B-A]
Phase=			2
ISAKMP-peer=		ISAKMP-peer-A
Configuration=		Default-quick-mode
Local-ID=		Net-B
Remote-ID=		Net-A

[Net-B]
ID-type=		IPV4_ADDR_SUBNET
Network=		192.168.64.15
Netmask=		255.255.255.255

[Net-A]
ID-type=		IPV4_ADDR_SUBNET
Network=		192.168.64.1
Netmask=		255.255.255.255

[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

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

# chmod 600 /etc/isakmpd/isakmpd.conf /etc/isakmpd/isakmpd.policy

Теперь остается только запустить isakmpd на каждом из хостов:

# isakmpd -4

Для автоматического запуска isakmpd следует отредактировать файл /etc/rc.conf.local:
   

isakmpd_flags="-4"

Для гарантии защиты трафика следует также добавить правила pf(4), разрешающие трафик между данными хостами только по протоколам ESP и UDP (порты источника и приемника 500).

Смотрите также по данной теме: isakmpd.conf(5), isakmpd.policy(5), isakmpd(8), vpn(8), http://www.openbsdsupport.org/vpn-ipsec.html, /usr/share/ipsec/isakmpd.

Как связать OpenBSD и Windows 2000/XP

В данном примере рассказывается как установить защищенное IPSec соединение между OpenBSD и Windows 2000/XP с использованием протокола ISAKMP. Пример описывает соединение с Windows XP, однако тем же способом можно настроить Windows 2000 (возможно с небольшими изменениями).

Исходные данные: хост A (OpenBSD, адрес 192.168.64.1), хост B (Windows XP, адрес 192.168.64.15).

Информацию о настройке OpenBSD хоста A смотрите в описании вопроса как настроить ISAKMPD (IKE). Для настройки Windows XP хоста B выполните следующие действия:

Проверьте результат настройки командой ping (на Windows хосте) - она должна ругнуться несколько раз "Negotiating IP Security", после чего все должно заработать.

Как связать OpenBSD и Cisco PIX

В данном примере рассказывается как установить защищенное IPSec соединение между OpenBSD и Cisco PIX с использованием протокола ISAKMP. Пример описывает соединение с Cisco PIX (Cisco PIX Firewall Version 6.3(4)).

Исходные данные: хост A (OpenBSD, адрес 192.168.64.1), хост B (Cisco PIX, адрес 192.168.64.15).

Информацию о настройке OpenBSD хоста A смотрите в описании вопроса как настроить ISAKMPD (IKE). Для настройки Cisco PIX хоста B выполните следующие команды:


pix(config)# access-list to_hostA permit ip host 192.168.64.15 host 192.168.64.1

pix(config)# sysopt connection permit-ipsec

pix(config)# crypto ipsec transform-set set_hostA esp-aes esp-sha-hmac

pix(config)# crypto map newmap 10 ipsec-isakmp
pix(config)# crypto map newmap 10 match address to_hostA
pix(config)# crypto map newmap 10 set peer 192.168.64.1
pix(config)# crypto map newmap 10 set transform-set set_hostA
pix(config)# crypto map newmap interface outside

pix(config)# isakmp enable outside
pix(config)# isakmp key mekmitasdigoat address 192.168.64.1 netmask 255.255.255.255
pix(config)# isakmp identity address
pix(config)# isakmp policy 10 authentication pre-share
pix(config)# isakmp policy 10 encryption 3des
pix(config)# isakmp policy 10 hash sha
pix(config)# isakmp policy 10 group 2
pix(config)# isakmp policy 10 lifetime 86400

pix(config)# exit

Проверьте результат настройки командой ping (на Cisco PIX) - она должна ругнуться несколько раз "No response received", после чего все должно заработать.
OpenBSD.ru www@openbsd.ru
$RuOBSD: ipsec.html,v 1.21 2010/11/01 10:57:48 dinar Exp $