Ключевые слова:ipsec, vpn, win, freebsd, security, (найти похожие документы)
From: Станислав Лапшанский
Subject: IpSec соединение между FreeBSD и Windows 2000
Защищенное соединение между FreeBSD и Windows 2000
Оригинал: http://slapsh.region.kostroma.net/forum/viewtopic.php?topic=45&forum=4&0
Предисловие переводчика
Тема использования протокола IPSec для соединения узлов сети,
использующих в качестве операционной системы FreeBSD, вызвала
повышенный интерес, который даже стал для меня несколько неожиданным.
Однако, немного поразмыслив и получив несколько писем от читателей, я
пришел к выводу что тему обязательно следует продолжить следующим
переводом, описывающим процесс создания защищенного соединения между
Windows 2000 и FreeBSD (оригинал опубликован на сайте www.daemonews.org
по адресу http://www.daemonnews.org/200101/ipsec-howto.html, авторами
являются Josh Tiefenbach и Boris Koester). К недавно вышедшей Windows
XP материал относится в полной мере (нюанс -- к Professional редакции,
за Home Edition я ручаться не могу). Надеюсь теперь ваша информация
станет менее доступной для любопытных глаз.
Использование IPSec в среде Windows 2000 и FreeBSD Это
возможно. Однако, в связи с тем, что установка ручного обмена
ключами с Windows-машиной невозможна, вам обязательно придется
использовать racoon для автоматического обмена. Вы должны иметь в
виду, что реализация IPSec для Windows 2000 имеет ряд ограничений
(меньше алгоритмов шифрования, короче максимальная длина ключей) по
сравнению с реализацией FreeBSD и поэтому она обеспечивает не такую
высокую степень защиты как FreeBSD (на мой взгляд это просто
традиционный плевок в сторону Microsoft, так как для практических
целей эти ограничения не так уж важны -- прим. переводчика). Для
того что бы организовать такое соединение вы должны первым делом
скачать <<High encryption pack for Windows 2000>>. Этот пакет
необходим во многих странах для включения в Windows 2000 алгоритма
шифрования 3DES. Если вы НЕ установите это дополнение, то вы не
сможете подключиться к FreeBSD-серверу и единственным, чего вы
добьетесь, будет таймаут. <<High encryption pack for Windows 2000>>
можно бесплатно скачать с сайта Microsoft.
Настройте FreeBSD как было рассказано в предыдущей статье,
перекомпилируйте ядро включив туда IPSec, добавьте записи в таблицу
SAD используя setkey, сконфигурируйте и запустите racoon. В начале
вам следует сконфигурировать основные параметры соединения
используя setkey и тогда уже можно запустить racoon. Вы не должны
запускать racoon прежде чем проведете базовую конфигурацию.
Теперь сосредоточимся на установке параметров, специфичных для
соединения с Windows 2000.
Посмотрим на конфигурационный файл, мы назовем его my-racoon.conf.
Нам придется внести в него некоторые изменения по сравнению с
оригинальным файлом racoon.conf.
Мы должны еще раз подчеркнуть важность использования самой последней
версии racoon. Racoon развивается очень быстро и между выпусками новых
версий удаляется большое количество ошибок и недочетов. Пара слов
относительно строки <<log debug4;>> (т.е. в системный журнале
будет большое количество сообщений о процессе работы защищенного
соединения -- прим. переводчика). Основной задачей этого
руководства является получение работающего защищенного соединения.
Если оно заработает, тогда мы можем начать оптимизацию конфигурации и
поменять эту строку на менее многословный вариант (например <<log
"info";>>).
Итак файл my-racoon.conf:
path pre_shared_key "/usr/local/etc/psk.txt" ;
log debug4;
{
maximum_length 20;
randomize off;
strict_check off;
exclusive_tail off;
}
{
counter 5; # maximum trying count to send.
interval 20 sec; # maximum interval to resend.
persend 1; # the number of packets per a send.
phase1 30 sec;
phase2 15 sec;
}
remote anonymous
{
exchange_mode aggressive,main;
doi ipsec_doi;
situation identity_only;
nonce_size 16;
lifetime time 1 min; # sec, min, hour
lifetime byte 5 MB; # B, KB, GB
initial_contact on;
support_mip6 on;
proposal_check obey; # obey, strict or claim
#Очень важно установить 3DES для шифрования и
#MD5 для подсчета контрольной суммы
proposal {
encryption_algorithm 3des;
hash_algorithm md5;
authentication_method pre_shared_key ;
dh_group 2 ;
}
}
sainfo anonymous
{
pfs_group 1;
lifetime time 36000 sec;
lifetime byte 50000 KB;
encryption_algorithm 3des,des,cast128,blowfish ;
authentication_algorithm hmac_sha1,hmac_md5;
compression_algorithm deflate ;
}
Одно слово относительно параметров <<времени жизни>> (lifetime).
Меньшее <<время жизни>> улучшает защищенность вашего соединения. Это
происходит от того, что ключи используемые для симметричного
шифрования трафика меняются чаще. В результате этого уменьшается
вероятность взлома защиты вашего соединения. Вот тут вступают в
действие ограничения Windows 2000. Вы не сможете задать слишком
маленькое <<время жизни>>. При задании параметра <<время жизни>>
следует помнить, что чем оно меньше, тем больше служебной информации
будет идти по вашему каналу и тем меньше будет его пропускная
способность для данных пользователя, так же при этом нельзя забывать о
излишней загрузке процессора, из-за обмена ключами.
Не забудьте создать <<секретный файл>> с разделенными ключами (т.е.
файл /usr/local/etc/racoon/psk.txt -- прим. переводчика).
Преимуществами демона racoon являются снятие с пользователя забот о
подсчете длины пароля, а так же возможность наличия у пользователя
только одного ключа и для аутентификации, и для шифрации данных. Дело
в том, что Windows 2000 не может использовать два разных ключа для
этих процедур -- она не делает различия между аутентификационным и
шифровальным ключом. Для целей отладки запустим racoon следующим
образом:
racoon -F -v -f my-racoon.conf
Таким образом racoon не демонизируется и будет выдавать отладочную
информацию прямо на экран, для того что бы мы могли быстро
идентифицировать распространенные проблемы.
На Windows-машине надо проделать следующие операции:
o Запустить <<Start>> -> <<Run>>, там набрать <<mmc.exe>> и нажать
<<Enter>>. Войти в меню <<Console>>, затем в <<Add/Remove Snap in>>.
Добавить <<IP Security Policy Management snap-in>>.
o Кликнуть на <<IP Security Policies>>, затем выбрать <<Action>>, в
меню <<Create IP Security Policy>>.
o Следуйте пунктам мастера.
o Отключите галочку на <<Activate the default response rule>>
o Поставьте галочку на <<Edit properties>>
o Нажмите <<Add>>. Отвечайте на вопросы мастера.
o Выберите <<The rule does not specify a tunnel>>
o Выберите <<LAN>>
o Выберите <<Use this string to protect the key exchange (preshared
key). Впишите туда тот же ключ что и в psk.txt
o Далее создайте новый <<IP Filter List>>, где <<target>> будет <<My
computer>>, а <<destination>> -- IP-адрес FreeBSD машины. Выберите
созданный список и нажмите <<Next>>
o Выберите <<Require security>>. Нажмите <<Edit>>, затем удалите из
списка пункты, где <<ESP Integrity>> равно <<SHA1>> и пункт <<ESP
Confidentiality>> равен <<DES>>. Далее нажмите кнопку <<Edit>> и,
далее, выберите пункт <<Custom>> и кнопку <<Settings>>, после чего
убедитесь, что пункт <<Data and address for this custom security
(AH)>> отключен, а галочка <<Data integrity and encryption (ESP)>>, в
свою очередь поставлена. Для тестирования уберите галочки над пунктами
<<Session key settings>>, по его окончании вы сможете их вернуть.
Нажимая кнопку <<OK>> вернитесь в <<Security Rule Wizard>>. Нажмите
<<Next>> и <<Finish>>, а затем кнопку <<Close>>
o Перезапустите сервис <<IPSec policy agent>> в панели управления
службами (<<Control Panel>> -> <<Administrative Tools>> ->
<<Services>>). (Следует отметить что Windows 2000 SP2 не требует
перезапуска службы -- прим. переводчика).
o Щелкните на вновь созданной политике правой кнопкой мыши и в
появившемся контекстном меню выберите <<Assign>> для активирования
политики.
o Запустите программу <<ipsecmon.exe>>. При помощи этого инструмента
вы сможете отслеживать работу IPSec на Windows-машине.
o Запустите сеанс командной строки и при помощи утилиты ping пошлите
на FreeBSD-машину запрос. Первый запрос должен не выполниться по
причине <<переговоров>> о безопасности (<<Negotiating IP Security>>).
Следующие пакеты должны успешно дойти. Во время посылки запросов на
терминале FreeBSD должно появиться большое количество отладочной
информации.
В данный момент весь трафик между FreeBSD и Windows 2000 шифруется
(ура -- прим. переводчика). На Windows-машине вы можете убедиться в
этом используя утилиту <<ipsecmon.exe>>, а на FreeBSD по большому
количеству отладочной информации мелькающей на экране.
На FreeBSD-машине вы можете попробовать запустить утилиту <<tcpdump>>:
tcpdump -i ed0 -x -X -s 14400
Где ed0 это название сетевого интерфейса, который предполагается
прослушивать. Вы сможете увидеть обмен IKE-ключами между Windows 2000
и racoon, а так же зашифрованные ESP-пакеты. Если у вас возникли
проблемы с организацией IPSec соединения, попробуйте обратиться к
соответствующим спискам рассылки, существующим на сайте
www.freebsd.org. Там можно получить массу дельных советов.