Информационная безопасность

       

Типичные применения IPSec


С распространением корпоративных беспроводных сетей компаниям имеет смысл озаботиться развертыванием виртуальных частных сетей VPN. Сегодня организация VPN поверх имеющейся беспроводной сетевой инфраструктуры признана лучшим способом обеспечить конфиденциальность информационного обмена.

Так как беспроводные точки доступа являются устройствами второго уровня, организация VPN-over-Wireless является столь же несложной задачей, как и развертывание VPN на базе проводной сети. Ниже мы рассмотрим пример построения такой виртуальной частной сети с помощью типичного оборудования: ноутбука с Windows XP и программного роутера под управлением популярной операционной системы FreeBSD.

Исходные данные таковы:

  • Ноутбук Samsung V30 с беспроводной PCMCIA-картой Gigabyte WLMR-101 (802.11b), Windows XP Professional SP2.
  • Точка доступа D-Link DWL-700AP.
  • Коммутатор 3Com OfficeConnect DualSpeed 8 ports.
  • Программный маршрутизатор (Intel Pentium 233MMX, RAM 160 Мбайт SDRAM, SCSI HDD 2 Гбайт), FreeBSD 5.2.1-RELEASE.

Компоненты соединены по схеме, приведенной ниже.

Задача: создать VPN на базе шифрованного туннеля между ноутбуком, имеющим IP-адрес 192.168.1.253, и сервером (192.168.1.1). Предпосылки к этому таковы: имеющиеся средства, которыми производитель предлагает защитить конфиденциальность данных, недостаточны. WEP-шифрование может быть без труда разрушено, а MAC-адрес беспроводной карты - "подслушан" и подменен злоумышленником. В этом случае, естественно, ни о какой безопасности речи быть не может - весь беспроводной трафик попадет к злоумышленнику, а уж последствия зависят от его фантазии и намерений. Поэтому единственный выход - подняться на более высокую ступень эволюции, создав VPN на основе IPSec, ну а взлом такой конфигурации - задача гораздо более сложная. В операционной системе FreeBSD технология IPSec реализована на уровне ядра - то есть, чтобы полноценно ею пользоваться, необходимо собрать ядро с поддержкой IPSec и протокола ESP:

options IPSEC #IP security options IPSEC_ESP #IP security (crypto; define w/ IPSEC) options IPSEC_DEBUG #debug for IP security


После компиляции ядра активизируем эту поддержку в основном конфигурационном файле /etc/rc.conf:

ipsec_enable="YES" ipsec_file="/файл правил"

Описанные выше процедуры уже позволяют организовать VPN на базе IPSec, но для этого нужно еще определить правила в указанном файле, на основе которых будет строиться защищенный туннель. Обычно это файл /etc/ipsec.conf.

Важно учитывать, что мы создаем туннель от ноутбука к серверу, другими словами, трафик будет шифроваться лишь на этом участке; если же сервер является еще и шлюзом для выхода в Интернет (как в описываемом примере), то за пределами сервера трафик окажется уже нешифрованным.

IPSec использует базу данных для того, чтобы решить, как обращаться с трафиком. Эта база данных содержит правила: какой трафик и как именно его шифровать. Правила делятся на два типа: Policy и Association; Security Policy Database (SPD) определяет, какой трафик шифровать, а Security Association Database (SAD) - методы шифрования этого трафика.

Основной инструмент в FreeBSD для управления этими базами данных называется setkey. Определим правила ipsec.conf для нашего случая и рассмотрим их подробнее:

add 192.168.0.1 192.168.1.253 esp 691 -E rijndael-cbc "1234567890123456"; add 192.168.1.253 192.168.0.1 esp 693 -E rijndael-cbc "1234567890123456";

spdadd 192.168.1.0/24 0.0.0.0/0 any -P in ipsec esp/tunnel/192.168.1.253-192.168.0.1 /require; spdadd 0.0.0.0/0 192.168.1.0/24 any -P out ipsec esp/tunnel/192.168.0.1 192.168.1.253 /require;

Первые два правила add - это вхождения SAD, последние два (spdadd) - SPD. Пункты add устанавливают ключи шифрования между двумя компьютерами, а spdadd непосредственно описывают сам туннель. Необходимо четко прописывать правила для каждого направления трафика, так как применительно к IPSec понятия "первый компьютер" и "второй компьютер" слишком расплывчаты, а значит, описание механизма взаимодействия должно быть максимально точным - иначе туннель просто не будет функционировать.
  • Правило 1 определяет индекс 691 и алгоритм шифрования rijndael-cbc с публичным ключом 1234567890123456 между компьютерами 192.168.0.1 и 192.168.1.253.
  • Правило 2 описывает аналогичные требования для обратного направления: от 192.168.1.253 к 192.168.1.1, но с индексом 693.
  • Правило 3: все сетевые соединения внутри 192.168.1.0/24 и "наружу" (0.0.0.0/0) обязательно проходят сквозь туннель.
  • Правило 4: то же, что и правило 3, но в обратном направлении.


Итак, мы выбрали и описали следующую стратегию: ни одного байта мимо туннеля, весь трафик шифруется. После описания правил перезагружаемся с ядром, поддерживающим IPSec, - при этом правила, описанные в /etc/ipsec.conf, загружаются автоматически. Сервер готов к "поднятию" туннеля, но необходимо описать его на ноутбке. Для этого нужно запустить службу IPSec, если она не запущена по умолчанию, и воспользоваться мастером установки сетевых соединений Windows.

Весьма желательно установить на сервере и программное обеспечение для автоматического обмена ключами шифрования - Racoon, иначе на клиентских машинах придется вручную прописывать ключи в дебрях управляющих консолей Windows.


Содержание раздела