Главная » Статьи » Защита информации


Создание кроссплатформенной VPN

Создание кроссплатформенной VPN

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

К счастью, кто-то уже заполнил вакуум кроссплатформных VPN и написал OpenVPN (http://openvpn.sourceforge.net). Эта программа поддерживает Linux, Solaris, OpenBSD, FreeBSD, NetBSD, Mac OS X и Windows 2000/XP. OpenVPN достигает своей цели за счет обеспечения всего шифрования, управления ключами и настройки соединений в одном пользовательском демоне, оставив работу по обеспечению действительного туннелирования операционной системе узла.

Для создания канала OpenVPN использует виртуальные устройства операционной системы (TUN или ТАР). Эти устройства экспортируют интерфейс виртуальной сети, который впоследствии используется для обеспечения интерфейса «pointto-point» между узлами, входящими в VPN, и управляется процессом openvpn.

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

OpenVPN и использование SSL

OpenVPN использует SSL и полагается на библиотеку OpenSSL (openssl.org) в вопросах обеспечения шифрования, идентификации и проверки сертификатов. Создаваемые OpenVPN каналы могут как использовать предварительно распределенные статические ключи, так и воспользоваться преимуществами динамического выделения ключей и цифровых сертификатов TSL. Поскольку OpenVPN использует OpenSSL, она может поддерживать любой шифр, поддерживаемый OpenSSL Основное преимущество здесь заключается в том, что OpenVPN сможет явно поддерживать любой новый шифр, который будет добавлен в дистрибутив OpenSSL.

При использовании ОС Windows все, что необходимо сделать, — это загрузить из Сети установщик и настроить OpenVPN. На всех остальных платформах необходимо предварительно скомпилировать саму OpenVPN. Перед компиляцией и установкой OpenVPN убедитесь, что OpenSSL уже установлена. Также необходимо установить библиотеку архивирования LZO (http://www.oberhumer.com/ opensource/lzo/). Использование LZO-сжатия позволяет более эффективно использовать полосу пропускания и при некоторых условиях даже значительно повысить производительность соединения с Интернетом.

Главная особенность этого файла заключается в том, что в нем используются параметры remote и tis-client. Также переставлены аргументы в параметре ifconfig, и в файле используются открытый и секретный ключи узла kryten. Для включения компрессии добавьте в оба файла настройки параметр comp-lzo. И наконец, создайте сценарии openvpn.up и openvpn.down на обоих концах канала. Эти сценарии устанавливают и сбрасывают действительные маршруты и прочие сетевые атрибуты. Сценарий openvpn.up выполняется при установке VPN-соединения. На узле kryten он выглядит так:
#!/bin/sh/sbin/route add -net 10.0.0.0- gw $5 netmask 255.255.255.0

Он устанавливает маршрут, указывая операционной системе, что весь трафик, предназначенный для сети 10/24, необходимо отправлять на удаленную сторону нашего VPN-соединения. Отсюда он будет маршрутизироваться на интерфейс узла zul, которому назначен адрес из диапазона 10...24. $5 в этом сценарии будет замещен IP-адресом, используемым удаленной стороной канала. Помимо добавления маршрута, в этом сценарии можно настроить nameservers (серверы имен) для сети, помещаемой в канал. Если не требуется ничего необычного, сценарий openvpn.down на kryten является пустым, поскольку маршрут автоматически сбрасывается ядром при завершении соединения.

Для zul не надо устанавливать дополнительные маршруты, поскольку уже имеется маршрут в сеть, в которую включен канал kryten. Помимо этого, поскольку tunO на zul является элементом линии «точка — точка» между самим узлом и kryten, нет необходимости добавлять маршрут для передачи трафика на kryten: маршрут узла kryten будет создан на основании связи «точка — точка». В сценарии openvpn.up на узле zul должен присутствовать следующий элемент: #!/bin/sharp -s $5 00:00:dl:lf:3f:fl permanent pub

Это заставит zul отвечать на ARP-запросы с kryten, поскольку иначе ARP-трафик не сможет достичь kryten. Такой тип настройки известен как «ARP-прокси». В данном примере на zul установлена ОС OpenBSD. При использовании ОС Linux просто удалите в ARP-команде ключевое слово permanent. Опять же, $5 будет заменен IP-адресом, используемым на удаленной стороне соединения, которой является kryten.

Сценарий openvpn.down на zul просто удаляет элемент ARP-таблицы: #!/bin/sharp -d kryten. К сожалению, поскольку сценарий запускается с использованием параметра down файла настройки, не передающего аргумент, сообщающий, с каким IP-адресомнеобходимо иметь дело, приходится явно указывать IP-адрес или имя узла, удаляемого из ARP-таблицы.

Сейчас надо лишь позаботиться о межсетевом экране. Необходимо разрешить трафик, поступающий с устройства tunO, а также с 5000-го UDP-порта. Теперь вы готовы запустить openvpn на обеих сторонах с помощью следующей команды: # openvpn --config /etc/openvpn/openvpn.conf --daemon

Windows и настройка OpenVPN

Настройка OpenVPN под Windows еще проще. Просто запустите программу установки, и все, что необходимо, будет настроено автоматически. Будут установлены OpenSSL, драйвер и сама OpenVPN. Расширение .ovpn будет связано с OpenVPN. Просто поместите настроечную информацию в файл .ovpn, дважды щелкните на нем и можете приступать к работе. Все дополнительные параметры представлены на web-сайте OpenVPN.

источник: Локхарт Э. Антихакинг в сети. Трюки.

 

Категория: Защита информации | Добавил: george27 (27.09.2014)
Просмотров: 642 | Рейтинг: 5.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *:

Последнее в Блоге

Как выбрать ноутбук? На что обратить внимание при выборе ноутбука?Как выбрать ноутбук? На что обратить внимание при выборе ноутбука?
Компактный ноутбук от Lenovo бюджетной серии IdeaPad 100-14Компактный ноутбук от Lenovo бюджетной серии IdeaPad 100-14
Обзор игрового ноутбука Acer Predator 17XОбзор игрового ноутбука Acer Predator 17X
Аркадный симулятор Smashy Road: теперь и Windows может похвастаться игрой WantedАркадный симулятор Smashy Road: теперь и Windows может похвастаться игрой Wanted