admin / 29.04.2018

Руководство по установке и настройке OpenVPN / СоХабр

Что такое OpenVPN технология и GUI клиент

OpenVPN – технология позволяющая на базе открытого исходного кода выстраивать сеть VPN между клиентом и сервером, сайтом и сайтом, поверх самого интернета. Созданный Джеймсом Йонаном 10 апреля 2002 года OpenVPN до сих пор широко применяется юзерами с целью шифрования трафика и безопасного использования всемирной паутины. Более того, популярность технологи растет из года в год.

Работая через TCP/UDP порты и SSL/TLS протоколы OpenVPN обладает исключительной легкостью и простотой в плане настройки и установки. Кроссплатформенность дает возможность инсталлировать клиент на любые версии Windows (включая 2000 и XP), Linux, Mac OS, Solaris, Open, Net и FreeBSD без принципиальных изменений в конфигурации и архитектуре.

Принципы работы OpenVPN:

  • Использование архитектуры клиент/сервер, где OpenVPN устанавливается на каждый узел виртуальной частной сети при условии того, что один из узлов является сервером, остальные – клиентами
  • Шифрование трафика, который проходит через туннель, созданный при участии одного из TCP или UDP портов
  • Три вида аутентификации – статические ключи, сертификация, логин/пароль

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

Использование VPN в среде частных пользователей облегчает специальный OpenVPN GUI клиент. Что такое OpenVPN GUI? Это графический интерфейс, средство позволяющее работать с VPN на персональном устройстве. GUI клиент представляет из себя устанавливаемую программу малых размеров, с помощью которой пользователь может выбрать сервер для подключения, установить соединение с виртуальной частной сетью, увидеть лог подключения и т.д. Во время работы GUI скрывается в трее и совершенно не грузит систему.

Еще немного об OpenVPN, SSL и IPSec

До появления SSL протокол IPSec являлся единственным средством, с помощью которого можно было шифровать данные в сетях типа сайт-сайт и клиент-сервер. К счастью, в 90-х монополия исчезла, т.к. кампания Netscape презентовала первую версию протокола SSL, современную версию которого чаще называют TLS. С его помощью юзерам представилась возможность шифровать данные при участии упомянутых выше открытых ключей (аутентификация или логин\пароль). И сегодня можно точно сказать, что благодаря относительной простоте OpenVPN SSL протокол используется не только для защиты данных по HTTP, но и для построения VPN типа клиент-сервер.

Что такое VPN вкратце? Это виртуальная частная сеть, представляющая из себя туннель между двумя устройствами (клиент-сервер или точка-точка) и работающая поверх еще одной сети (например, сеть Интернет). Определяющими факторами для безопасного VPN является конфиденциальность и шифрование, целостность передаваемой информации, а также аутентификация – объекты должны быть уверены в подлинности друг друга до начала передачи трафика. Именно за шифрование и аутентификацию отвечают библиотеки IPSec и SSL. Однако, не смотря на схожие задачи, протоколы имеют принципиально разные пути решения проблем.

  • В операционных системах OpenVPN и SSL ведут себя как стандартные приложения, что облегчает настройку. IPSec требует обновления ядра ОС, что приводит к очевидным трудностям – для работы с протоколом необходимо дорабатывать операционные системы на каждом используемом устройстве
  • Так как IPSec тесно связан с ядром сбой в работе или программный взлом могут привести к тяжелейшим последствиям. Система может получить критические повреждения, а взломавший злоумышленник – права администратора. С OpenVPN это невозможно, т.к. клиент работает в пространстве юзера и не затрагивает операционную систему
  • С SSL намного проще работать в плане FireWall. IPSec требует изменений правил фильтрации и решения множества иных проблем
  • OpenVPN легко перенести – во многих случаях достаточно обычного копирования, чего нельзя сказать про усложненный IPSec

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

И ещё чуть-чуть про OpenVPN и PPTP

Следующим за OpenVPN можно назвать технологию, разработанную компанией Microsoft в 1999 году — PPTP, что переводится как “Протокол Туннелирования Точка-Точка”. Это ещё один тип VPN-соединения, доступный из всех представленных на сегодняшний день. Однако сразу стоит отметить, что технология считается уязвимой и более нестабильной по сравнению с OpenVPN:

  • PPTP имеет 128-битный ключ, а OpenVPN от 1024 до 2048
  • PPTP требует поддержки протокола GRE47, а OpenVPN работает с любым интернет-соединением
  • PPTP, как и IPSec, для стабильной работы требует настройки сетевых экранов, антивирусов и firewall-ов.
  • PPTP через GRE некорректно работает под NAT-ом, а OpenVPN работает без нареканий

Многих прельщает тот факт, что для PPTP в среде Windows не требуется дополнительного программного обеспечения, но по факту из-за работы через GRE-соединение стабильность подключения намного ниже, чем в случае с OpenVPN. Причина тому заключается в NAT-е. GRE – это протокол сетевого уровня, из-за чего межсетевые экраны блокируют большую часть соединений, что вынуждает использовать такие примочки, как PPTP Passthrough посредством так называемого Port Forwarding-а, или проброса портов. Как выше уже упоминалось PPTP – технология устаревшая и изначально не рассчитывалась на использование под NAT-ом, тогда как в OpenVPN эти нюансы учтены и проблем не возникает. По итогу пользователю может потребоваться производить настройки маршрутизатора и в конечном счете времени уйдет больше, чем на установку OpenVPN клиента.

Учитывая вышеизложенное очевидно, что OpenVPN многократно превосходит “конкурирующие” решения в VPN, поскольку он разрабатывается не компаниями, а людьми для людей посредством OpenSource, в связи с чем достоин особого внимания со стороны пользователей. То, что вам мешало в других случаях здесь, наверняка, уже решено.

главная —

Команды OpenVPN

Теги: 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 — адаптивный режим.

Команды и параметры при работе с сертификатами x509 и параметрами шифрования

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
Т.е.

Настройка OpenVPN. Подключение к бесплатным серверам VPN Gate

через 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:

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

варианты аутентификации клиентов

Клиенты могут подключаться, используя различные варианты аутентификации. В простейшем случае используются только сертификаты, но возможна аутентификация по идентификатору и паролю с передачей аутентификационных параметров внешним серверам. В качестве внешних серверов аутентификации могут выступать 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

Сильные и слабые стороны. Расширение возможностей за счет использования скриптов

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

OpenVPN предполагает использование одного сервера в виртуальной сети, поэтому невозможно устанавливать связь между клиентами напрямую. Однако для решения данной проблемы существует проект CloudVPN.

список литературы

  1. OpenVPN 2.1 Manual
  2. OpenVPN Ethernet Bridging HowTo
  3. LDAP authentication and authorization plugin for OpenVPN 2.x
  4. Active Directory Authentication for OpenVPN
  5. Radiusplugin for OpenVPN
  6. OpenVPN client for Mac OS X

blog comments powered by

VPN протоколы — OpenVPN сервер

Генерация ключей OpenVPN

1. Введение

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

Для генерации сертификатов и обслуживания ключей (сервера и клиентов) используется пакет easy-rsa.

Описание файлов (директория keys):

  • Файлы *.csr — Запросы на подпись сертификатов (СЦ)
  • Файлы n.pem — Дубликаты сертификатов для базы данных (СЦ)
  • index.txt — База данных выданных сертификатов (СЦ)
  • serial — Серийный (порядковый) номер последнего выданного сертификата (СЦ)
  • crl.pem — Список отозванных сертификатов (СЦ)
  • ca.crt — Корневой сертификат (СЦ/сервер/клиент)
  • ca.key — Корневой ключ (СЦ)
  • dhn.pem — Ключ Диффи Хельмана (сервер)
  • server-name.crt — Сертификат X.509 сервера (сервер)
  • server-name.key — Секретный ключ сервера (сервер)
  • client-name.crt — Сертификат X.509 клиента (клиент)
  • client-name.key — Секретный ключ клиента (клиент)
  • ta.key — TLS-ключ (сервер/клиент)

2. Генерация ключей сервера

Примечание: операции, описанные в данном разделе выполняются только один раз, в процессе инсталляции сервера.

Перейти в директорию 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

3. Генерация и выдача ключей клиенту

Перейти в директорию 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

4. Команды администрирования

Отозвать сертификат клиента client-name:

./revoke-full client-name

Просмотреть список отозванных сертификатов:

./list-crl

Создать запрос на получение сертификата:

./build-req cert-name

Подписать запрос на получение сертификата:

./sign-req cert-name

Удаление всех ключей с сервера:

./clean-all

ВНИМАНИЕ! Данная команда выполняется только при ликвидации сервера.

Подробнее по вопросу
Другая документация

Что такое OpenVPN технология и GUI клиент

Назначение статических 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 соединения – это простота настройки у клиентов.

Твой тайный туннель. Детальный гайд по настройке OpenVPN и stunnel для создания защищенного канала

Оно настраивается буквальной в 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

Submit a Comment

Must be required * marked fields.

:*
:*