div.main {margin-left: 20pt; margin-right: 20pt}
Защищенное соединение между Windows 2000 и FreeBSD Автор: Станислав
Лапшанский, slapsh@kos-obl.kmtn.ru Опубликовано:
19.03.2002 Оригинал: http://www.softerra.ru/freeos/16799/
Предисловие переводчика
Тема использования протокола IPSec для соединения
узлов сети, использующих в качестве операционной системы FreeBSD, вызвала
повышенный интерес, который даже стал для меня несколько неожиданным. Однако,
немного поразмыслив и получив несколько писем от читателей, я пришел к выводу
что тему обязательно следует продолжить следующим переводом, описывающим процесс
создания защищенного соединения между Windows 2000 и FreeBSD (оригинал
опубликован на сайте http://www.daemonews.org/ по адресу http://www.daemonnews.org/200101/ipsec-howto.html, авторами
являются Josh Tiefenbach и Boris Koster). К недавно вышедшей 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;
interval 20 sec;
persend 1;
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-машине надо проделать следующие
операции:
Запустить «Start» -> «Run», там набрать «mmc.exe» и нажать «Enter».
Войти в меню «Console», затем в «Add/Remove Snap in». Добавить «IP Security
Policy Management snap-in».
Кликнуть на «IP Security Policies», затем выбрать «Action», в меню «Create
IP Security Policy».
Следуйте пунктам мастера.
Отключите галочку на «Activate the default response rule»
Поставьте галочку на «Edit properties»
Нажмите «Add». Отвечайте на вопросы мастера.
Выберите «The rule does not specify a tunnel»
Выберите «LAN»
Выберите «Use this string to protect the key exchange (preshared key).
Впишите туда тот же ключ что и в psk.txt
Далее создайте новый «IP Filter List», где «target» будет «My computer»,
а «destination» – IP-адрес FreeBSD машины. Выберите созданный список и
нажмите «Next»
Выберите «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»
Перезапустите сервис «IPSec policy agent» в панели управления службами
(«Control Panel» -> «Administrative Tools» -> «Services»). (Следует
отметить что Windows 2000 SP2 не требует перезапуска службы – прим.
переводчика).
Щелкните на вновь созданной политике правой кнопкой мыши и в появившемся
контекстном меню выберите «Assign» для активирования политики.
Запустите программу «ipsecmon.exe». При помощи этого инструмента вы
сможете отслеживать работу IPSec на Windows-машине.
Запустите сеанс командной строки и при помощи утилиты 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 соединения, попробуйте обратиться к соответствующим спискам рассылки,
существующим на сайте http://www.freebsd.org/. Там можно получить массу дельных
советов.
|