Для объединения в сеть нескольких филиалов сегодня наиболее часто используется стандарт IPSec. Слабые места IPSec общеизвестны. Сложная структура с довольно непростой при определенных обстоятельствах конфигурацией, разные (в зависимости от производителя) реализации и «бреши» в системе безопасности, проблемы с брандмауэром — вот лишь немногие недостатки, постоянно подстегивающие разработку современных технологий виртуальных частных сетей (Virtual Private Network, VPN). Результатом стало появление проекта открытого программного обеспечения OpenVPN. Последняя его версия — 2.0 — предлагает гораздо более широкий спектр возможностей, во многом превосходящих функциональность классических VPN.

Виртуальная частная сеть позволяет связать локальные сети разных филиалов в общую, причем шифрование трафика данных является по сути обязательным. Эта сеть виртуальна, поскольку соединения строятся по открытым каналам передачи данных (см. Рисунок 1). Она называется частной, потому что информация должна быть доступна исключительно сотрудникам объединяемых подразделений. Для обеспечения конфиденциальности и достоверности данных используются мощные методы шифрования. Такое соединение в обиходной речи называется туннелем, причем технологии шифрования представляют собой те стены, которые защищают трафик от опасностей, таящихся в Internet. Сегодня существует множество разнообразных систем VPN, к примеру РРТР и свободно распространяемые StrongS/WAN и OpenS/WAN, однако, выбирая стандарт, следует убедиться, что аппаратное обеспечение будет его поддерживать. VPN на базе IPSec могут быть реализованы на всех платформах, однако лишь в Linux технологиями VPN можно пользоваться в полной мере. Оборудование крупных производителей, как правило, предусматривает конфигурацию туннелей IPSec и управление ими, однако часто, к примеру в случае серверов Windows, требуется приобрести дополнительные лицензии.

Рисунок 1. Сложная VPN с несколькими филиалами и внешними сотрудниками.
БЕСПЛАТНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ДЛЯ VPN

OpenVPN, напротив, представляет собой свободно распространяемое программное обеспечение в соответствии с лицензией GPU/GPL и потому может устанавливаться на всех распространенных аппаратных платформах. Программное обеспечение имеется для операционных систем Linux, Solaris, OpenBSD, FreeBSD, NetBSD, MacOS X и Windows 2000/XP. То, что OpenVPN может использоваться и на специализированных устройствах на базе Linux, доказывает итальянский производитель Endian — возможно, единственный, предлагающий брандмауэр с OpenVPN.

МОДУЛЬНАЯ КОНЦЕПЦИЯ БЕЗОПАСНОСТИ

OpenVPN — это технология нового поколения. Инициатор, Джеймс Йонан, хотел создать систему VPN, более простую, чем IPSec, и потому не отягощенную присущими ей проблемами. Он принял решение в пользу модульной концепции безопасности и выбрал для своего проекта распространенную криптографическую систему: SSL/TSL. Она используется в каждом браузере Web, когда вызываются защищенные страницы, начинающиеся с «https://», и считается отраслевым стандартом.

В качестве сетевого интерфейса Йонан выбрал проект Universal Tun/Tap Device Driver. Устройства Tun представляют собой виртуальные сетевые устройства, эмулирующие двухточечные соединения, в то время как устройства Tap эмулируют устройства Ethernet. Каждый отправляемый через них пакет данных передается программе, к примеру OpenVPN. В свою очередь, она обращается к программам и библиотекам проекта SSL для обеспечения безопасности передаваемых данных. Информация шифруется, и виртуальная сеть получает, таким образом, «частный» статус.

Более подробно процесс можно описать следующим образом: после аутентификации посредством квитирования SSL/TLS трафик шифруется и, соответственно, дешифруется с применением четырех различных ключей. Для критичной фазы обмена ключами OpenVPN использует квитирование RSA/DHE. Достоверность данных обычно обеспечивает алгоритм хэширования HMAC со строками SHA1 длиной 160 бит, причем возможно и более мощное шифрование. Даже на медленных системах (Pentium III с тактовой частотой менее 1 ГГц) теоретически достижимы скорости передачи данных до 20 Мбит/с.

Это обращение к испытанным и часто применяемым методам объясняет поразительный успех OpenVPN в последние годы. SSL/TLS и устройства Tun/Tap проверяются многочисленными разработчиками на наличие «дыр» в системе безопасности, обе технологии используются и постоянно дорабатываются в рамках целого ряда других проектов.

АУТЕНТИФИКАЦИЯ КЛИЕНТА

В принципе, OpenVPN позволяет использовать три метода для аутентификации клиента. Самым ненадежным является «заранее сообщенный ключ», т. е. ключ, который перед построением туннеля известен на обоих его концах. Этот метод пригоден только для проверок или обучения. В остальных случаях рекомендуется пользоваться сертификатами Х.509 со списками аннулированных сертификатов (Certificate Revocation List, CRL). Для этого понадобится соответствующее программное обеспечение, например OpenCA или XCA, для выдачи и подписи сертификатов. Лишь при наличии подписанных сертификатов клиенты виртуальной частной сети получают к ней доступ. Кроме того, путем внесения сертификата в своего рода «черный список» (CRL) можно запретить доступ какому-либо сотруднику или устройству без модификации клиента — безусловно, очень полезная возможность, позволяющая предупредить неприятности, к примеру, после краж или повреждения ноутбука.

Лишь начиная с версии 2.0 OpenVPN предлагает третий метод аутентификации: привязка OpenVPN к стандартным для Linux подключаемым модулям аутентификации (Pluggable Authentication Module, PAM). Пользователь клиента может аутентифицироваться при помощи комбинации имени и пароля, которые проверяются на сервере Linux.

СЦЕНАРИИ ПРИМЕНЕНИЯ

OpenVPN легко интегрируется в существующие структуры и при этом без больших издержек предлагает те же функции, что и любая другая VPN. Объединение в сеть двух филиалов — лишь самый простой пример. OpenVPN представляет дополнительные возможности, в некоторых отношениях превосходящие предложения конкурентов — и при заметно меньших затратах. При помощи OpenVPN туннель VPN для клиента строится в течение нескольких минут, включая определение прав доступа.

Неважно, используется ли эта технология в качестве концентратора VPN с любыми маршрутами между объединяемыми сетями или с управлением доступом на базе сертификатов х.509 для компьютеров внешних сотрудников, те функции, которые обеспечивает OpenVPN, в IPSec недоступны (см. врезки «IPSec» и «OpenVPN»).

К ним относится и распространение защиты посредством центрального корпоративного брандмауэра на внешних сотрудников. При соединении с центральным офисом предприятия компьютер может изменить свой маршрут по умолчанию после построения туннеля и таким образом направлять трафик Internet через туннель. Все, что требуется — открыть необходимый для соединения OpenVPN порт на настольном брандмауэре в окружающую локальную сеть. Сотрудник защищен полностью, даже если окружающая его сеть не заслуживает доверия.

В режиме моста OpenVPN способен передавать широковещательные пакеты и пакеты IPX, а при помощи интерфейса Tар — даже кадры Ethernet через туннель. Системы Windows получают необходимые для многих сетевых услуг (к примеру, для просмотра NetBIOS) широковещательные пакеты, пакеты же для NetWare IPX, IPv6 и AppleTalk также переправляются. Благодаря виртуальным интерфейсам к этому перечню возможностей добавляются дифференцированные правила брандмауэра: поскольку OpenVPN использует виртуальные сетевые устройства, все правила брандмауэра, какие могут быть заданы на реальных интерфейсах, будут применены к поступающему через туннель трафику данных.

Каких-либо ограничений не существует — для туннеля можно настраивать трансляцию сетевых адресов (Network Address Translation, NAT) или брандмауэр, предотвращать прохождение вирусов или троянцев. OpenVPN поддерживает выполнение сценариев в начале или конце туннеля, с помощью которых, к примеру, реализуется простое управление доступом либо сценарии на случай отказа (перевод, избыточность). На брандмауэре требуется открыть только один порт: начиная с версии OpenVPN 2.0 любое количество клиентов подключаются с привлечением всего одного серверного процесса OpenVPN. Поэтому множество портов на брандмауэрах уже не понадобится. Теоретически для всех туннелей всех внешних сотрудников и филиалов должен быть открыт и защищен всего один порт. Тем не менее администратор вправе сконфигурировать каждый отдельный клиент VPN по-своему.

Проблем при работе с DynDNS обычно не возникает. Благодаря виртуальным сетевым устройствам больше не нужны фиксированные IP-адреса. С обеих сторон туннеля можно использовать типичное соединение DSL, доступное через DynDNS. Во время сеансов, к примеру с терминальными серверами, смену IP-адреса партнера пользователь даже не заметит.

Трансляция сетевых адресов также не вызывает трудностей. Как серверы, так и клиенты OpenVPN могут находиться в сети, где используется собственное адресное пространство (NAT). Любой брандмауэр или маршрутизатор может передавать пакеты любому хосту.

ИНСТАЛЛЯЦИЯ

Инсталляция для всех операционных систем выполняется сравнительно просто: с момента установки до построения первого туннеля проходит, как правило, несколько минут. В первую очередь загружаются и инсталлируются двоичные файлы, затем осуществляется конфигурация. Для Windows на сайте http://www.openvpn.net в разделе загрузок есть ссылки на программу инсталляции с графическим пользовательским инструментом. Для Debian и систем на базе RTM от RedHat или SuSE последняя версия 2.0 сохранена на инсталляционных носителях или в оперативно доступных хранилищах. Пакеты с исходными текстами содержат новые версии для всех операционных систем.

КОНФИГУРАЦИЯ

После инсталляции пользователи Windows могут использовать для запуска OpenVPN графический интерфейс Windows. Пользователям Linux придется пока обходиться без него. Однако для всех операционных систем конфигурация сохраняется в текстовых файлах. И инструмент Windows открывает в редакторе лишь соответствующий конфигурационный файл.

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

В Windows они находятся в стартовом меню в пункте Sample Config Files. Файлы можно скопировать в каталог конфигурации OpenVPN, который также отображается в стартовом меню, и отредактировать согласно личным предпочтениям. Синтаксис в Windows, Linux или MacOS X одинаков. Для каждого клиента на сервере может быть сохранена собственная специфическая конфигурация. Этот файл в случае необходимости заимствует правила брандмауэра и сценарии регистрации. Такой файл при необходимости динамически составляется также из сценариев, поэтому в него можно включать информацию из баз данных или служб каталогов. Во врезке «Конфигурационный файл на сервере Open VPN для внешнего сотрудника» дан пример файла, когда человек аутентифицируется при помощи сертификатов и TLS-Auth и ему передаются маршруты и данные DHCP. Программное обеспечение OpenVPN из соображений безопасности выполняется с правами непривилегированного пользователя Linux «nobody». После успешно построенного туннеля выполняется сценарий брандмауэра /sbin/firewall-roadwarrior1, который активирует необходимое окружение брандмауэра для этого сотрудника.

ЗАКЛЮЧЕНИЕ

Технология OpenVPN превратилась в серьезную альтернативу IPSec. Организации, где не требуется в обязательном порядке применять IPSec, могут благодаря OpenVPN без больших затрат получить многочисленные преимущества, ранее недоступные. Опции повсеместной защиты ноутбуков посредством центрального корпоративного брандмауэра, туннелирования брандмауэров и посредников WWW, а также ретрансляции широковещательного трафика заметно превышают функциональный охват IPSec, причем используемые технологии (SSL, устройства Tap/Tun) представляют собой испытанные и проверенные стандарты. OpenVPN стала самой современной и надежной технологией VPN из доступных — при этом бесплатной и очень простой в конфигурировании.

Маркус Файльнер — независимый автор, преподаватель и консультант. С ним можно связаться по адресу: wj@lanline.awi.de.


? AWi Verlag


Конфигурационный файл на сервере OpenVPN для внешнего сотрудника

proto udp

port 5000 dev tun

ca certs/ca.crt

cert certs/server.crt

key certs/server.key

crl-verify certs/revoke.crl

dh dh1024.pem

tls-auth certs/tls-auth.key 0

server 10.8.0.0 255.255.255.0

push "route 192.168.46.0 255.255.255.0"

push "route 192.168.47.0 255.255.255.0"

push "dhcp-option DNS 192.168.47.15"

push "dhcp-option WINS 192.168.46.12"

client-to-client

keepalive 10 120

comp-lzo

user nobody

group nobody

status /var/log/openvpn/openvpn-lanline-status.log

log-append /var/log/openvpn/openvpn-lanline.log

verb 3

route-up "/sbin/firewall-roadwarrior1"


OpenVPN

+ зрелые криптографические алгоритмы (SSL/TLS)

+ SSL/TLS являются отраслевыми стандартами и входят в сферу ответственности IETF

+ простая технология, простая инсталляция, простое конфигурирование

+ TCP/UDP, для множества внешних сотрудников нужен лишь один порт

+ индивидуальная конфигурация для клиентов

+ гибкость вследствие использования устройств Tun/Tap

+ никаких проблем с NAT

+ быстрое повторное подключение, прозрачность для DynDNS, сеансы сохраняются

+ сжатие

+ высокая совместимость с брандмауэрами и посредниками WWW

+ производительность (достаточно маломощных процессоров)

+ модульная расширяемая архитектура

+ выполнение в пользовательском пространстве — в Linux не нужны привилегии администратора

+ опционально возможна среда chroot

+ высокая производительность даже на старых машинах

+ формирование трафика уже включено

- нет специализированных устройств

- отсутствие совместимости с IPSec

- дефицит обученного персонала

- отсутствие интерфейсов Web или интерфейсов для администрирования

- малая распространенность


Ссылки на материалы, посвященные OpenVPN

Страница проекта OpenVPN: http://www.openvpn.net

Материалы IETF: http://ietf.org/html.charters/tls-charter.html

Интервью с Джеймсом Йонаном: http://www.linuxsecurity.com/content/view/117363/49/

Коллекция ссылок автора на материалы, посвященные OpenVPN: http://www.openvpnbuch.de


IPSec

+ наличие на многих устройствах

+ доступность на многих платформах

+ зрелая технология

+ распространенное ноу-хау, множество специалистов

+ множество интерфейсов администрирования

- сложная модификация самого стека IP

- необходимость критичного обращения к ядру

- необходимость прав администратора

- разные реализации у разных производителей, частично друг с другом не совместимые

- сложная технология, сложная реализация

- высокие требования к обучению новичков

- частично собственные алгоритмы шифрования

- требует несколько портов брандмауэра

- в реализациях Linux с ядром версии ниже 2.6 не поддерживается NAT

- проблемы с динамическими IP-адресами