Настройка защищенных соединений
В этой главе:
Варианты стека io-pkt-v4-hc и io-pkt-v6-hc обеспечивают полную встроенную поддержку протокола IPsec.
В справочной системе NetBSD имеется страница с полезной информацией общего характера о протоколе IPsec. Некоторые изложенные в ней аспекты (например, пересборка ядра) неприменимы к ЗОСРВ «Нейтрино», однако общие принципы использования протокола IPsec вполне актуальны.
Следующие примеры иллюстрируют настройку протокола IPsec.
Соединение двух узлов вручную
Допустим, что необходимо установить соединение IPsec между двумя узлами – BoxA и BoxB. Выполните следующие действия:
#!/bin/ksh# args: Этот сценарий принимает два аргумента:# - Первый аргумент - IP-адрес узла, на котором выполняется сценарий.# - Второй аргумент - IP-адрес узла, с которым устанавливается соединение по# протоколу IPsec.Myself=$1Remote=$2# В следующих двух строках выполняется очистка базы данных. Они демонстрируют# создание простейшего соединения.setkey -FPsetkey -F# Ввод всех параметров безопасного соединения с помощью утилиты setkey.setkey -c << EOFspdadd $Myself $Remote any -P out ipsec esp/transport/$Myself-$Remote/require;spdadd $Remote $Myself any -P in ipsec esp/transport/$Remote-$Myself/require;add $Myself $Remote esp 1234 -m any -E 3des-cbc "KeyIsTwentyFourBytesLong";add $Remote $Myself esp 1234 -m any -E 3des-cbc "KeyIsTwentyFourBytesLong";EOF
Теперь можно проверить соединение с помощью команды ping на каждом узле. Команда setkey -PD отображает состояние IPsec.
Соединение с аутентификацией методом предопределенного ключа
Рассмотрим следующую простейшую ситуацию. Имеется узел BoxA с пользователем UserA и узел BoxB с пользователем UserB. У этих пользователей имеется общий пароль hello_world
.
psk.txt
со следующими взаимосвязанными строками:
usera@kpda.ru "Hello_world"userb@kpda.ru "Hello_world"
С помощью этого файла демон управления ключами ( IPsec IKE daemon) racoon будет выполнять аутентификацию и устанавливать соединение по протоколу IPsec.
root
должен являться владельцем файла psk.txt
и иметь исключительные права на его чтение и запись. Чтобы назначить эти права, выполните команду:
chmod 0600 psk.txt
racoon.conf
), в котором указаны его рабочие параметры. В удаленном сеансе укажите, что мы будем выполнять аутентификацию методом предопределенного ключа, и сообщите демону racoon, где находится пароль. Пример:
...# Указываем демону racoon местонахождение предопределенных ключей:path pre_shared_key "полный_путь_к_ключам_psk.txt" ;remote anonymous{exchange_mode aggressive,main;doi ipsec_doi;situation identity_only;#my_identifier address;my_identifier user_fqdn "usera@kpda.ru";peers_identifier user_fqdn "userb@kpda.ru";nonce_size 16;lifetime time 1 hour; # sec,min,hourinitial_contact on;proposal_check obey; # obey, strict or claimproposal {encryption_algorithm 3des;hash_algorithm sha1;authentication_method pre_shared_key ;dh_group 2 ;}}...
#!/bin/sh# Простая конфигурация для проверки согласования, выполняемого демоном racoon.#Myself=$1Remote=$2setkey -FPsetkey -Fsetkey -c << EOF#spdadd $Remote $Myself any -P in ipsec esp/transport/$Remote-$Myself/require;spdadd $Myself $Remote any -P out ipsec esp/transport/$Myself-$Remote/require;#EOF
Запустите этот сценарий на узле BoxA командой ./my_script BoxA BoxB.
Для работы с протоколом IPsec в сетевой стек ЗОСРВ «Нейтрино» интегрированы следующие инструменты NetBSD:
PF_KEY
.
Порт проекта OpenSSL и его клиентских библиотек поддерживается в актуальном состоянии.
Менеджеры io-pkt-v4-hc и io-pkt-v6-hc содержат аппаратно-независимую инфраструктуру, с помощью которой аппаратно-зависимый драйвер может быстро выполнять операции кодирования с применением специализированного оборудования. Этот механизм не только ускоряет кодирование (например, при использовании IPsec), но и уменьшает нагрузку на процессор.
Указанный интерфейс разработан таким образом, что при выполнении операций кодирования стек не блокируется — он продолжает работу, а драйвер возвращает ему обработанные данные по мере готовности с помощью обратного вызова. Этот механизм идеально подходит для устройств кодирования с прямым доступом к памяти (DMA).
Драйвер devnp-mpcsec.so поддерживает аппаратные средства кодирования MPCSEC E-series PowerQUICC III и PowerQUICC-II PRO процессоров Freescale. Этот драйвер загружается из командной строки так же, как обычный драйвер Ethernet:
io-pkt-v6-hc -d mpcsec -d mpc85xx
где devnp-mpc85xx.so – драйвер Ethernet для аппаратного блока Freescale TSEC (Triple Speed Ethernet Controller).
Предыдущий раздел: перейти