admin / 29.04.2018
Содержание
OpenVPN – технология позволяющая на базе открытого исходного кода выстраивать сеть VPN между клиентом и сервером, сайтом и сайтом, поверх самого интернета. Созданный Джеймсом Йонаном 10 апреля 2002 года OpenVPN до сих пор широко применяется юзерами с целью шифрования трафика и безопасного использования всемирной паутины. Более того, популярность технологи растет из года в год.
Работая через TCP/UDP порты и SSL/TLS протоколы OpenVPN обладает исключительной легкостью и простотой в плане настройки и установки. Кроссплатформенность дает возможность инсталлировать клиент на любые версии Windows (включая 2000 и XP), Linux, Mac OS, Solaris, Open, Net и FreeBSD без принципиальных изменений в конфигурации и архитектуре.
Принципы работы OpenVPN:
Первый вариант в настройке довольно простой, но подразумевает, что единственный ключ будет шифровать и расшифровывать трафик. А значит, в случае потери ключа злоумышленник сможет легко дешифровать данные. В случае с сертификацией и логином/паролем для защиты информации используется встроенная в OpenVPN технология SSL. Сложнее в настройке и чуть медленнее в работе, т.к. сервер ждет подтверждения при передаче пакетов, зато предельно надежно.
Использование VPN в среде частных пользователей облегчает специальный OpenVPN GUI клиент. Что такое OpenVPN GUI? Это графический интерфейс, средство позволяющее работать с VPN на персональном устройстве. GUI клиент представляет из себя устанавливаемую программу малых размеров, с помощью которой пользователь может выбрать сервер для подключения, установить соединение с виртуальной частной сетью, увидеть лог подключения и т.д. Во время работы GUI скрывается в трее и совершенно не грузит систему.
До появления SSL протокол IPSec являлся единственным средством, с помощью которого можно было шифровать данные в сетях типа сайт-сайт и клиент-сервер. К счастью, в 90-х монополия исчезла, т.к. кампания Netscape презентовала первую версию протокола SSL, современную версию которого чаще называют TLS. С его помощью юзерам представилась возможность шифровать данные при участии упомянутых выше открытых ключей (аутентификация или логин\пароль). И сегодня можно точно сказать, что благодаря относительной простоте OpenVPN SSL протокол используется не только для защиты данных по HTTP, но и для построения VPN типа клиент-сервер.
Что такое VPN вкратце? Это виртуальная частная сеть, представляющая из себя туннель между двумя устройствами (клиент-сервер или точка-точка) и работающая поверх еще одной сети (например, сеть Интернет). Определяющими факторами для безопасного VPN является конфиденциальность и шифрование, целостность передаваемой информации, а также аутентификация – объекты должны быть уверены в подлинности друг друга до начала передачи трафика. Именно за шифрование и аутентификацию отвечают библиотеки IPSec и SSL. Однако, не смотря на схожие задачи, протоколы имеют принципиально разные пути решения проблем.
Все это давно привело к тому, что в сегменте VPN сервисов типа клиент-сервер OpenVPN окончательно вытеснил протокол IPSec. Можно сказать, что IPSec является одним из этапов развития VPN технологий и на данный момент на порядок уступает более безопасному, современному и удобному OpenVPN. В сухом остатке никаких существенных преймуществ у IPSec на данный момент по сравнению с OpenVPN попросту нет. Настройка OpenVPN клиента занимает не более минуты, а создание подключений и вовсе считанные секунды – необходимо лишь скачать клиентские конфиги и разместить их в соответствующей папке программы. К тому же при использовании OpenVPN не требуется настраивать антивирусные программы и сетевые экраны для стабильного обмена трафиком с VPN сервером, чего не скажешь про IPSec. Все пользователи, обеспокоенные конфиденциальностью своих данных должны понимать это и отдавать предпочтение более надежным решениям.
Следующим за OpenVPN можно назвать технологию, разработанную компанией Microsoft в 1999 году — PPTP, что переводится как “Протокол Туннелирования Точка-Точка”. Это ещё один тип VPN-соединения, доступный из всех представленных на сегодняшний день. Однако сразу стоит отметить, что технология считается уязвимой и более нестабильной по сравнению с OpenVPN:
Многих прельщает тот факт, что для PPTP в среде Windows не требуется дополнительного программного обеспечения, но по факту из-за работы через GRE-соединение стабильность подключения намного ниже, чем в случае с OpenVPN. Причина тому заключается в NAT-е. GRE – это протокол сетевого уровня, из-за чего межсетевые экраны блокируют большую часть соединений, что вынуждает использовать такие примочки, как PPTP Passthrough посредством так называемого Port Forwarding-а, или проброса портов. Как выше уже упоминалось PPTP – технология устаревшая и изначально не рассчитывалась на использование под NAT-ом, тогда как в OpenVPN эти нюансы учтены и проблем не возникает. По итогу пользователю может потребоваться производить настройки маршрутизатора и в конечном счете времени уйдет больше, чем на установку OpenVPN клиента.
Учитывая вышеизложенное очевидно, что OpenVPN многократно превосходит “конкурирующие” решения в VPN, поскольку он разрабатывается не компаниями, а людьми для людей посредством OpenSource, в связи с чем достоин особого внимания со стороны пользователей. То, что вам мешало в других случаях здесь, наверняка, уже решено.
главная —
Теги: OpenVPN
OpenVPN — очень гибкое, удобное, а главное быстрое и безопасное, решение для построения виртуальных частных сетей VPN. В данной статье я попытаюсь наиболее подробно описать основные команды, используемые в OpenVPN.
Приведенные в статье команды без "—" (двумя знаками дефиса) перед командой должны быть использованы в конфигурационном файле, команды с "—" в начале используются только из командной строки. Подробности использования команд и их параметры — man openvpn.
remote< host > — определяет удаленный конец туннеля. Могут использоваться записи IP и DNS.
local< host > — определяет локальный ip или имя хоста, на котором будет работать OpenVPN. Актуально, если на локальной машине несколько адресов.
dev< device > — определяет какой использовать тип устройства tun или tap. Например:
dev tun
или
dev tap
При одном из таких указаний будет использован свободный интерфейс tun или tap. Так же можно явно указывать номер виртуального интрефейса, например tun0.
port< port number > — указывает на каком порту будет работать OpenVPN (локально и удаленно).
proto< proto > — какой протокол будет использоваться. Возможные значения: udp, tcp, tcp-client, tcp-server. С первыми двумя все ясно, а на последних двух остановимся чуть подробнее:
tcp-client — сам пытается установить соединение
tcp-server — только ждет подключений
Примечательно, что с использованием протокола udp VPN будет работать чуть быстрее, чем tcp. Но в плане стабильности работы лучше выбирать tcp (как показывает практика, VPN-соединение более устойчиво)
remote-random — если указана данная опция и в random перечисленно несколько удаленных хостов, то OpenVPN в случайном порядке будет к ним подключаться. Применяется для балансировки нагрузки.
float — позволяет удаленному хосту изменять IP во время работы туннеля. Соединение при этом не разрывается.
ipchange< cmd > — выполняет скрипт или команду указанную в < cmd >, если IP сменился. Пример:
ipchange script-ip.sh
connect-retry< seconds > — пробует переподключиться через указанное время в секундах, если соединение было разорвано.
connect-retry-max< n > — максимальное количество повторов если соединение было разорвано
resolv-retry< seconds > — если OpenVPN не удалось узнать имя удаленного хоста по DNS, то через указанное количество секунд попытаться переподключиться.
lport< port > — указывает на локальный порт для использования OpenVPN
rport< port > — аналогично для удаленного порта. Пример:
rport 8000 — OpenVPN будет пытаться подключится к удаленному порту 8000
nobind — использовать динамический порт для подключения (только для клиента)
shaper< bytes > — указывает скорость передачи данных в байтах для исходящего трафика (только для клиента)
tun-mtu< mtu size > — устанавливает максимальный размер MTU. По умолчанию tun-mtu равен 1500. Использование:
tun-mtu 1200
dev-node< interface name > — устанавливает имя виртуального интерфейса. Например:
dev-node openvpn1
ifconfig — устанавливает локальный IP и маску подсети для туннельного интерфейса. Например:
ifconfig 10.3.0.1 255.255.255.0
server< network > < mask > — автоматически присваивает адреса всем клиентам (DHCP) в указанном диапазоне с маской сети. Данная опция заменяет ifconfig и может работаеть только с TLS-клиентами в режиме TUN, соответственно использование сертификатов обязательно. Например:
server 10.3.0.0 255.255.255.0
Подключившиеся клиенты получат адреса в диапазоне между 10.3.0.1 и 10.3.0.254.
server-bridge< gateway > < mask > < pool > — сервер в режиме моста для TAP устройств. Пример:
server bridge 10.3.0.1 255.255.255.0 10.3.0.128 10.3.0.254
Клиентам будут выданы адреса в диапазоне 10.3.0.128 — 10.3.0.254, в качестве шлюза будет указан 10.3.0.1.
mode server — переключает OpenVPN в режим сервера (начиная с 2-й версии)
mode p2p — данная опция идет по умолчанию.
push< options > — передача клиенту конфигурационных параметров. Пример:
push "route 192.168.0.0 255.255.255.0"
Аналогично с помощью push клиенту могут передаваться следующие параметры:
route
route-gateway
route-delay
redirect-gateway
inactive
ping, ping-exit, ping-restart
persist-key, persist-tun
comp-lzo
dhcp-option
ip-win32
Последние две опции применимы только для Window-клиентов. Например передадим Windows-клиенту адрес DNS-сервера 11.11.11.11:
push "dhcp-option DNS 11.11.11.11"
comp-lzo — параметр сжатия трафика, идущего через виртуальный туннель. Может принимать значения yes, no, adaptive. Последнее используется по умолчанию.
Например:
comp-lzo yes — принудительно включить сжатие
comp-lzo no — принудительно отключить сжатие
comp-lzo adaptive — адаптивный режим.
cipher< alg > — указываем алгоритм шифрования. Например:
cipher AES-256-CBC
Рекомендуется использование шифров в режиме CBC (Cipher Block Chaining).
keysize< n > — размер ключа в битах. Например:
keysize 128
auth< alg > — алгоритм хэширования. Пример:
auth SHA1
df< file > — файл с ключем Диффи-Хелмана
ca< file > — файл сертификата для CA
cert< file > — сертификат локальной машины
key< file > — локальный ключ машины
tls-server — явно указывает, что данный хост является tls-server
tls-client — соответственно tls-client
pkcs12< file > — указываем файл (PKCS12), который содержит в себе сертификат, ключ и CA в одном файле. Пример:
pkcs12 /file
crl-verify< file > — список отозванных сертификатов, т.е. blacklist.
no-replay — отключает защиту OpenVPN от атаки повторного воспроизведения (replay attack). Крайне не рекомендуется отключать!
no-iv — отключает использование вектора инициализации шифра (IV). Крайне не рекомендуется отключать!
Последние две опции очень сильно снижают безопасность OpenVPN, крайне не рекомендуется их использование.
secret< file > — включает режим шифрования и аутентификации на статических ключах. В качестве параметра использует заранее сгенерированный, командой —genkey, файл. Например:
secret key.txt
Все доступные алгоритмы шифрования можно просмотреть выполнив из командной строки:
openvpn —show-ciphers
Алгоритмы хэширования:
openvpn —show-digests
Показать все доступные TLS-шифры (TLS используется только для шифрования канала управления)
openvpn —show-tls
Показать все доступные крипто-устройства в системе (если такие имеются):
openvpn —show-engines
Для улучшения безопасности рекомендовано запускать все сервисы с минимальными правами. Следующими двумя командами мы укажем с правами какого пользователя и группы будет работать openvpn:
user nobody
group nogroup
Где, соответственно, nobody и nogroup имена пользователя и группы.
Обозначение: VPN-хост — удаленная сторона (удаленный хост)
route< network > — устанавливает указанную маршрутизацию на VPN-хосте, после успешного запуска туннеля. Пример:
route 10.0.10.0 255.255.255.252
route-gateway< IP > — устанавливает шлюз на VPN-хосте. Пример:
route-gateway 192.168.0.22
После успешного запуска виртуального туннеля клиенту будет задан шлюз 192.168.0.22
route-delay< seconds > — указывает подождать n-секунд перед установкой маршрутов. Пример:
route-delay 5
Т.е.
через 5 секунд после установки туннеля будут заданы маршруты.
route-up< cmd > — выполнить скрипт или программу < cmd > после установки маршрутов. Пример:
route-up /script.sh
redirect-gateway — установить шлюзом по умолчанию удаленный сервер. Т.е. когда удаленный пользователь подключается к нашему серверу, то ему будет задан шлюз по умолчанию на наш сервер.
ping< seconds > — указывает отсылать ping на удаленный конец тунеля после указанных n-секунд, если по туннелю не передавался никакой трафик. Пример:
ping 10
ping-restart< seconds > — если за указанное время не было получено ни одного пакета с удаленной стороны, то перезапускать туннель. Пример:
ping-restart 60 — если в течении 60 секунд не было получено ни одного пакета, то туннель будет перезапущен.
ping-timer-rem — позволяет перезапускать туннель, только когда указан удаленный адрес.
persist-tun — данная опция оставляет без изменения устройства tun/tap при перезапуске OpenVPN.
persist-key — указывает не перечитавать файлы ключей при перезапуске туннеля.
resolv-retry< seconds > — устанавливает время в секундах для запроса об удаленном имени хоста. Актуально только если используется DNS-имя удаленного хоста. Пример:
resolv-retry 86400
inactive< seconds > — после n-секунд неактивности устройство TUN/TAP автоматически отключется. Пример:
inactive 120
ping-exit< seconds > — если за указанные n-секунд не было получено ни одного пакета, то отключать OpenVPN. Пример:
ping-exit 120
keepalive< seconds > < seconds > — является совмещением сразу двух команд — ping и ping-restart. Использует сразу два параметра в секундах, перечисленных через пробел. Пример:
keepalive 10 180
Означает следующее: каждые 10 секунд посылать ping на удаленный хост, и, если за 180 секунд не было получено ни одного пакета — то перезапускать туннель.
persist-local-ip< IP > — оставлять неизменными локальный IP адрес и номер порт, если туннель был перезапущен.
persist-remote-ip< IP > — оставлять неизменными удаленный IP адрес и номер порт, если туннель был перезапущен.
persist-remote-ip 192.168.50.1
auth-user-pass-verify< script > < method > — указывается только на серверной стороне.
< script > — путь к скрипту, который будет производить авторизацию. Скрипт должен возвращать 0 если авторизация успешна, и соответственно, 1 если авторизация не успешна.
< method > — метод авторизации, может быть двух типов: via-env и via-file
auth-user-pass< file >— указывается на клиентской стороне. Параметр
Авторизуйтесь для добавления комментариев!
Евгений Косаржевский, Минск, phaoost@phaoost.net
LVEE 2009
В докладе представляется использование технологии туннелирования с использованием OpenVPN в различных конфигурациях. Рассмотрены проблемы с производительностью и совместимостью под управлением различных операционных систем. Отмечены сильные стороны и существующие ограничения данной технологии.
краткое описание OpenVPN. Возможности. Область применения
OpenVPN является открытым проектом. Программа позволяет создавать туннели между двумя точками в сети по протоколам TCP или UDP используя шифрование SSL. Одно из неоспоримых преимуществ — возможность соединять две точки сети через любой порт, что существенно затрудняет обнаружение и блокировку туннеля.
Туннели OpenVPN можно применять для безопасного объединения сетей или серверов через интернет, обхода блокировок локальных сетевых экранов или ограничений провайдеров, контроля за использованием сетевого трафика в рамках одной сети, безопасного доступа на сервер или в сеть.
туннели Layer2 и Layer3
С помощью OpenVPN можно создавать туннели второго (канального) и третьего (сетевого) уровня. Планирование уровня туннеля осуществляется на начальном этапе конфигурирования и выбирается исходя из потребности.
использование
Возможны следуюище варианты использования OpenVPN:
варианты аутентификации клиентов
Клиенты могут подключаться, используя различные варианты аутентификации. В простейшем случае используются только сертификаты, но возможна аутентификация по идентификатору и паролю с передачей аутентификационных параметров внешним серверам. В качестве внешних серверов аутентификации могут выступать LDAP, ActiveDirectory, Radius.
производительность на протоколах TCP и UDP.
Оптимизация использования пропускного канала
Скорость передачи и время задержки может варироваться в зависимости от параметров канала для каждого клиента. Как правило, UDP является наиболее предпочтительным протоколом из-за меньшей задержки пакетов, однако соединение по UDP не всегда возможно установить (например в случае если клиент находится за прокси-сервером). При использовании TCP можно получить хорошие результаты, понижая значение MTU до достижения оптимальной скорости либо времени задержки. Для уменьшения времени отклика на TCP-соединении рекомендуется использовать параметр сокета TCP_NODELAY.
Также OpenVPN поддерживает сжатие lzo для понижения объема используемого трафика.
совместимость. Нюансы использования на различных ОС (GNU/Linux, Windows, Mac OS X, маршрутизаторы)
Некоторые параметры OpenVPN специфичны для конкретных операционных систем. Так, режим fast-io, ускоряющий UDP-соединение, может использоваться только в GNU/Linux.
В Windows системах часто возникают проблемы с изменениями маршрутов, для решения которых существует опция route-method.
OpenVPN портирован в MacOS X — существует свободно распространяемый проект tunnelblick. Параметр TCP_NODELAY не поддерживается ядром этой системы. Существует также коммерческий проект viscocity для этой операционной системы.
OpenVPN также может использоваться на маршрутизаторах некоторых производителей (например, Linksys и Mikrotik).
заключение.
Сильные и слабые стороны. Расширение возможностей за счет использования скриптов
Основный достоинства OpenVPN — это гибкость использования, высокая степень защиты передаваемых данных за счет шифрования SSL, совместимость со всеми широко используемыми операционными системами и трудность обнаружения туннелей.
Из-за существующих ограничений невозможно использовать один процесс одновременно для соединений TCP и UDP.
OpenVPN предполагает использование одного сервера в виртуальной сети, поэтому невозможно устанавливать связь между клиентами напрямую. Однако для решения данной проблемы существует проект CloudVPN.
список литературы
blog comments powered by
Взаимодействие между сервером и клиентом OpenVPN осуществляется по защищенному каналу связи. Для авторизации и передачи данных используется протокол SSL. Исходя из этого необходима процедура генерации и выдачи ключей сертификатов (как клиенту, так и серверу).
Для генерации сертификатов и обслуживания ключей (сервера и клиентов) используется пакет easy-rsa.
Описание файлов (директория keys):
Примечание: операции, описанные в данном разделе выполняются только один раз, в процессе инсталляции сервера.
Перейти в директорию easy-rsa OpenVPN сервера. Убедиться, что файлы ca.crt и ca.key присутствуют в директории сертификационного центра (СЦ) сервера.
Перейти в командную оболочку sh:
sh
Установить переменные окружения:
. vars
Создать сертификат сервера server-name:
./build-key-server server-name
Примечание: наименование сервера должно совпадать с именем хоста сервера (см. uname -a).
Создать файл параметров Диффи-Хелмана:
./build-dh
Создать TLS-ключ:
openvpn —genkey —secret ta.key
Создать файл отзыва сертификатов (CRL):
export KEY_CN=»»
export KEY_OU=»»
openssl ca -config openssl.cnf -gencrl -out keys/crl.pem
Перейти в директорию easy-rsa OpenVPN сервера. Убедиться, что файлы ca.crt и ca.key присутствуют в директории сертификационного центра (СЦ) сервера.
Перейти в командную оболочку sh:
sh
Установить переменные окружения:
. vars
Создать сертификат клиента client-name:
./build-key client-name
Создать базовый файл конфигурации клиента openvpn.conf со следующим содержанием:
client
dev tun0
proto tcp
remote SERVER_IP PORT_NUMBER
resolv-retry infinite
nobind
script-security 3 system
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/client-name.crt
key /usr/local/etc/openvpn/keys/client-name.key
tls-auth /usr/local/etc/openvpn/keys/ta.key 1
comp-lzo
verb 3
Выдать клиенту client-name следующие файлы:
ca.crt
client-name.crt
client-name.key
ta.key
openvpn.conf
Отозвать сертификат клиента client-name:
./revoke-full client-name
Просмотреть список отозванных сертификатов:
./list-crl
Создать запрос на получение сертификата:
./build-req cert-name
Подписать запрос на получение сертификата:
./sign-req cert-name
Удаление всех ключей с сервера:
./clean-all
ВНИМАНИЕ! Данная команда выполняется только при ликвидации сервера.
Подробнее по вопросу
Другая документация
Назначение статических IP-адресов клиентам OpenVPN
Данная заметка является дополнением к статье Настройка OpenVPN с использованием сертификатов X.509 и описывает назначение статических IP-адресов клиентам OpenVPN. Этот вопрос уже обсуждался в комментариях к вышеназванной статье, однако, посетители сайта не перестают задавать его.
Назначение статических IP-адресов клиентам OpenVPN облегчает организацию систем учета трафика и упрощает настройку брандмауэра сервера OpenVPN как в направлении ограничения прав доступа к сетевым службам, так и в направлении управления полосой пропускания.
Назначение статических IP-адресов клиентам OpenVPN описано в HOWTO, не представляет каких-либо сложностей и не требует изменения файлов конфигурации клиентского программного обеспечения. Процедура назначения статических IP-адресов клиентам OpenVPN состоит в добавлении строки ifconfig-push <IP-адрес клиента> <IP-адрес сервера> в файлы конфигурации клиентов, которые содержат команды, выполняемые сервером при подключении клиентов, и находятся в папке /usr/local/etc/openvpn/ccd (определяется параметром client-config-dir файла конфигурации сервера OpenVPN). Выбранные пары IP-адресов, во-первых, должны быть уникальными, во-вторых, должны входить в состав последовательных подсетей, ограниченных маской /30 (255.255.255.252), и, в-третьих, должны находиться в пределах пула IP-адресов, выделенного для виртуальной частной сети (определяется параметром server файла конфигурации сервера OpenVPN). С учетом перечисленных условий для клиентов и сервера подойдут пары IP-адресов со следующими парами последних октетов:
[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18] [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38]
[ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58] [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78]
[ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98] [101,102] [105,106] [109,110] [113,114] [117,118]
[121,122] [125,126] [129,130] [133,134] [137,138] [141,142] [145,146] [149,150] [153,154] [157,158]
[161,162] [165,166] [169,170] [173,174] [177,178] [181,182] [185,186] [189,190] [193,194] [197,198]
[201,202] [205,206] [209,210] [213,214] [217,218] [221,222] [225,226] [229,230] [233,234] [237,238]
[241,242] [245,246] [249,250] [253,254]
Рассмотрим процедуру назначения статических IP-адресов клиентам OpenVPN на примере виртуальной частной сети, которая была описана в статье Настройка OpenVPN с использованием сертификатов X.509:
Для назначения филиалу №1 статического адреса 10.0.0.1 необходимо добавить в файл /usr/local/etc/ccd/client1 строку:
ifconfig-push 10.0.0.1 10.0.0.2
Для назначения филиалу №2 статического адреса 10.0.0.5 необходимо добавить в файл /usr/local/etc/ccd/client2 строку:
ifconfig-push 10.0.0.5 10.0.0.6
Для назначения сисадмину статического адреса 10.0.0.9 необходимо добавить в файл /usr/local/etc/ccd/client3 строку:
ifconfig-push 10.0.0.9 10.0.0.10
После редактирования файлов конфигурации клиентов необходимо перезапустить сервер OpenVPN командой /usr/local/etc/rc.d/openvpn restart. При этом произойдет переподключение всех активных клиентов и назначение им IP-адресов, которые были заданы выше.
http://www.sergeysl.ru/freebsd-openvpn-client-static-ip/
Обновлено: 12.03.2015
Вот здесь я обещал, что расскажу поподробнее о настройке OpenVPN. Пришло время выполнить это обещание.
VPN и OpenVPN – это такая замечательная штука, которая позволяет объединить несколько компьютеров в одну общую сеть через открытые каналы; и при этом обеспечивается высокая безопасность соединения – за счет шифрования передаваемых данных.
Основное преимущество VPN соединения – это простота настройки у клиентов.
Оно настраивается буквальной в 3-4 клика мыши под Windows XP; поэтому в компаниях, которые могут предоставлять доступ в свою корпоративную сеть, предпочитают давать своим сотрудникам именно VPN соединения.
Минусов у VPN соединения тоже достаточно. Например, оно не всегда работает при соединении через GPRS (проверено на МТС, без услуги Реальный IP Адрес VPN не работает).
Для себя я предпочел настроить OpenVPN соединение. На мой взгляд, оно удобнее – во-первых, оно позволяет не только шифровать трафик, но и неплохо его сжимать. Во вторых, я сам могу решать, по какому соединению будет работать OpenVPN (TCP или UDP), и могу выбрать тот порт, который мне нужен. В третьих, длину ключа шифрования и периодичность смены ключа я тоже определяю сам. Такая гибкость настройки мне очень нравится.
Недостатки у OpenVPN тоже есть. Наппример, если установлен антивирус Касперского, то OpenVPN может не работать. Меня это не расстраивает, поскольку я в основном использую Linux.
И все-таки мне удалось настроить VPN соединение поверх GPRS от МТС без услуги Реальный IP адрес.
Все оказалось просто, надо сначала установить OpenVPN соединение поверх GPRS, и уже поверх OpenVPN установить соединение VPN. Звучит страшно, выглядит тоже не очень… Но работает.
В этом случае вышестощий провайдер не сможет помешать установке VPN-соединения, поскольку он не будет знать о используемых портах и передаваемых данных.
Дополнено 12.09.2008
Пример конфигурационных файлов OpenVPN:
### Конфигурация клиента
remote xxx.yyy.zzz.aaa 1194
dev tap
ifconfig 192.168.20.11 255.255.255.0
route-gateway 192.168.20.13
redirect-gateway
push “dhcp-option DNS 192.168.20.13″
secret key.txt
comp-lzo
### Конфигурация сервера
dev tap
ifconfig 192.168.20.13 255.255.255.0
push “redirect-gateway def1″
push “dhcp-option DNS xxx.yyy.zzz.aaa”
secret key.txt
comp-lzo
Ключ key.txt надо сгенерировать самостоятельно, например, на сервере, и передать по безопасному каналу клиенту (через sftp или scp). После этого надо перезапустить OpenVPN на сервере и на клиенте, все будет работать.
Надеюсь, мой опыт окажется полезным и для Вас.
Эта запись опубликована в рубриках: Uncategorized автором Ed. Постоянная ссылка.
FILED UNDER : IT