On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

Защищенное соединение между Windows 2000 и FreeBSD


Автор: Станислав Лапшанский

Тема использования протокола IPSec для соединения узлов сети, использующих в качестве операционной системы FreeBSD, вызвала повышенный интерес, который даже стал для меня несколько неожиданным. Однако, немного поразмыслив и получив несколько писем от читателей, я пришел к выводу что тему обязательно следует продолжить следующим переводом, описывающим процесс создания защищенного соединения между Windows 2000 и FreeBSD. К недавно вышедшей 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/. Там можно получить массу дельных советов.



Литература по FreeBSD