"Linux Advanced Routing & Traffic Control HOWTO (fb2) " - читать интересную книгу автора (Hubert Bert, Graf Thomas, Maxwell Gregory, van Mook Remco, van Oosterhout...)

7.2.1. Теория.

Как уже говорилось ранее, в случае автоматической настройки, обновление и обмен ключевой информацией выполняется без нашего участия. Очевидно, что при этом "на лету" создаются защищенные каналы (SA), которые, как это ни странно, не обеспечиваются какой-либо политикой безопасности.

Таким образом, чтобы воспользоваться преимуществами IKE, необходимо установить для него политику безопасности. Для этого создается такая политика, которая не связана с каким-либо конкретным защищенным каналом (SA). Когда ядро обнаружит такую политику, то оно передаст ее демону IKE, который в свою очередь будет использовать ее в своей работе.

Повторюсь еще раз: Политика Безопасности определяет - ЧТО следует предпринять в том или ином случае, а Контекст Безопасности (защищенный канал) определяет - КАК производить обмен данными. Автоматическое управление ключевой информацией позволяет нам избежать неприятностей только с определением "ЧТО предпринять".


7.2.2. Пример.

Kame racoon имеет достаточно неплохие настройки по-умолчанию, так что мы не будем их касаться. Как уже говорилось выше, мы должны определить только политику безопасности, оставив право на создание защищенных каналов за демоном IKE.

В этом примере, мы опять вернемся к нашим хостам 10.0.0.11 и 10.0.0.216, и еще раз попробуем установить защищенное соединение между ними, но на сей раз с помощью racoon . Для упрощения конфигурации будем использовать предопределенные ключи, сертификаты X.509 будут обсуждаться в отдельном разделе (см. раздел Автоматизация с использованием сертификатов X.509 ).

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

path pre_shared_key "/usr/local/etc/racoon/psk.txt";

remote anonymous

{

exchange_mode aggressive,main;

doi ipsec_doi;

situation identity_only;

my_identifier address;

lifetime time 2 min; # sec,min,hour

initial_contact on;

proposal_check obey; # obey - повиноваться, требованиям и ограничениям

proposal {

encryption_algorithm 3des;

hash_algorithm sha1;

authentication_method pre_shared_key;

dh_group 2;

}

}

sainfo anonymous {

pfs_group 1;

lifetime time 2 min;

encryption_algorithm 3des;

authentication_algorithm hmac_sha1;

compression_algorithm deflate;

}

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

Кроме того, в настройках задана самоидентификация на основе собственного IP-адреса ( my_identifier address ). Затем объявляются используемые алгоритмы шифрования - 3des и sha1 и указывается, что будут использоваться предопределенные ключи, расположенные в файле psk.txt .

Содержимое файлов psk.txt с ключами приводится ниже. Для разных хостов они различны. Для хоста 10.0.0.11:

10.0.0.216 password2

Для хоста 10.0.0.216:

10.0.0.11 password2

Назначте владельцем файла суперпользователя (root), и установите права доступа 0600, в противном случае racoon откажется доверять их содержимому.

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

#!/sbin/setkey -f

flush;

spdflush;

spdadd 10.0.0.216 10.0.0.11 any -P out ipsec

esp/transport//require;

spdadd 10.0.0.11 10.0.0.216 any -P in ipsec

esp/transport//require;

На хосте 10.0.0.11:

#!/sbin/setkey -f

flush;

spdflush;

spdadd 10.0.0.11 10.0.0.216 any -P out ipsec

esp/transport//require;

spdadd 10.0.0.216 10.0.0.11 any -P in ipsec

esp/transport//require;

Теперь все готово к запуску racoon ! После того, как он будет запущен, попробуем установить сеанс связи, через telnet , с хоста 10.0.0.11 на хост 10.0.0.216, впрочем можно и наоборот. racoon тут же начнет "переговоры" с удаленным хостом:

12:18:44: INFO: isakmp.c:1689:isakmp_post_acquire(): IPsec-SA

request for 10.0.0.11 queued due to no phase1 found.

12:18:44: INFO: isakmp.c:794:isakmp_ph1begin_i(): initiate new

phase 1 negotiation: 10.0.0.216[500] «=» 10.0.0.11[500]

12:18:44: INFO: isakmp.c:799:isakmp_ph1begin_i(): begin Aggressive mode.

12:18:44: INFO: vendorid.c:128:check_vendorid(): received Vendor ID:

KAME/racoon

12:18:44: NOTIFY: oakley.c:2037:oakley_skeyid(): couldn't find

the proper pskey, try to get one by the peer's address.

12:18:44: INFO: isakmp.c:2417:log_ph1established(): ISAKMP-SA

established 10.0.0.216[500]-10.0.0.11[500] spi:044d25dede78a4d1:ff01e5b4804f0680

12:18:45: INFO: isakmp.c:938:isakmp_ph2begin_i(): initiate new phase 2

negotiation: 10.0.0.216[0] «=» 10.0.0.11[0]

12:18:45: INFO: pfkey.c:1106:pk_recvupdate(): IPsec-SA established:

ESP/Transport 10.0.0.11-» 10.0.0.216 spi=44556347(0x2a7e03b)

12:18:45: INFO: pfkey.c:1318:pk_recvadd(): IPsec-SA established:

ESP/Transport 10.0.0.216-» 10.0.0.11 spi=15863890(0xf21052)

Если теперь дать команду setkey -D , чтобы просмотреть список созданных защищенных каналов, мы получим такой вывод: