Openvpn как пользоваться

Openvpn как пользоваться

Настройка OpenVPN клиента

В данной инструкции подробно описан процесс настройки клиента OpenVPN на примере операционных систем Windows и Linux. Также, с ее помощью можно настроить скиента на Android.

Установка

Windows

Заходим на официальную страницу загрузки openvpn и скачиваем клиента для нужной Windows:

Openvpn как пользоваться

Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».

Linux CentOS

Устанавливаем репозиторий EPEL:

yum install epel-release

yum install openvpn

Linux Ubuntu

apt-get install openvpn

Android

Настройка

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

В системах Windows создаем файл config.ovpn в папке %programfiles%\OpenVPN\config.

* имя файла может быть любым, расширение должно быть .ovpn.

Для создания конфигурационного файла в Linux выполняем команду:

* чтобы служба openvpn автоматически выполняла соединение, необходимо, чтобы конфигурационный файл назывался client.conf.

Пример конфигурационного файла

client
dev tun
proto udp
remote 192.168.0.15 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
dh dh2048.pem
tls-client
tls-auth ta.key 1
float
keepalive 10 120
comp-lzo
verb 0

Параметры конфигурационного файла

ПараметрЗначенияОписание
clientСтрока говорит о том, что конфигурационный файл описывает клиентское подключение (программа сама устанавливает соединение, а не ждет, как сервер).
devtap или tunВыбор виртуального сетевого драйвера. TUN — сетевой уровень модели OSI, оперирует IP-пакетами. TAP — эмулирует Ethernet устройство и работает на канальном уровне модели OSI, оперируя кадрами Ethernet. Настраивая OpenVPN клиента, в большинстве случаев, необходимо выбирать tun. TAP необходимо использовать для работы определенных сервисов, например DHCP.
dev-nodeлюбая строкаПараметр используется в системах Windows в случаях, если имеется несколько сетевых интерфейсов. Значение этого параметра должно содержать название сетевого подключения, через который должен работать OpenVPN.
protoudp или tcpУказывает, какой протокол использовать для передачи данных. В большинстве случаев, лучше использовать UDP, так как данный протокол создает меньше нагрузки на сеть.
remoteVPN-сервер и портЗадает сервер, к которому должен подключаться клиент, а также сетевой порт (по умолчанию 1194), на котором OpenVPN принимает запросы. Можно указать несколько строк.
remote-randomЕсли указано несколько строк remote, данный параметр говорит, что необходимо подключаться к удаленным серверам в случайном порядке.
resolv-retryколичество секунд или infiniteИспользуется в тех случаях, когда в качестве сервера указано доменное имя. Параметр задает время в секундах для повторного переподключения, если не удалось узнать имя сервера. infinite — держать связь с сервером постоянно.
nobindКлиент использует динамический порт для подключения.
userучетная записьЗадает определенного пользователя для работы клиента (только для UNIX-систем).
groupгруппаЗадает определенную группу для работы клиента (только для UNIX-систем).
persist-keyНе перечитывает ключи при перезагрузке сервиса OpenVPN.
persist-tunНе перечитывает параметры туннеля при перезагрузке сервиса OpenVPN.
http-proxyсервер прокси и портИспользовать прокси-сервер для подключения.
http-proxy-retryПереподключаться к прокси-серверу, если связь была разорвана.
http-proxy-timeoutколичество секундВремя, через которое выполнять попытки переподключения к прокси-серверу.
mute-replay-warningsПараметр стоит задавать при использовании беспроводного соединения. Он отключит дублирование предупреждений пакетов.
caпут к сертификатуКорневой сертификат удостоверяющего центра. Генерируем на сервере.
certпут к сертификатуОткрытый ключ клиента. Генерируем на сервере.
keyпут к сертификатуЗакрытый ключ клиента. Генерируем на сервере.
dhпут к сертификатуКлюч с алгоритмом Diffie-Hellman (Диффи-Хеллмана).
remote-cert-tlsсерверИсключает возможность mitm атаки, включая верификацию сертификата сервера.
tls-clientУказание на то, что это клиент TLS.
tls-authta.key 1Дополнительный уровень аутентификации посредством ключа TLS.
floatУдаленный хост может менять IP-адрес в процессе соединения, при этом последнее не будет разорвано.
keepaliveсекунд1 секунд2Пинговать каждые секунд1 сервер и если в течение секунд2 не будут получены ответные пакеты, перезапустить подключение.
cipherалгоритмУказывает алгоритм шифрования. Примеры: AES-256-CBC, AES-128-CBC, BF-CBC, DES-EDE3-CBC.
comp-lzoИспользовать сжатие.
verbчисло от 0 до 9Уровень детализации лога. 0 отключает отладочную информацию.
muteчислоУказывает сколько лог-сообщений может отображаться для каждой категории события.
auth-user-passничего или путь к файлуГоворит клиенту, что необходима аутентификация. Если не указан путь к файлу, клиент выкинет окно для авторизации, иначе прочитает данные из файла.
ipchangeкоманда или путь к скриптуВыполняет команду при смене IP.
connect-retryсекундПереподключиться к серверу через указанное количество секунд, если соединение было разорвано.
connect-retry-maxчислоСколько раз повторять соединение, если оно было разорвано.
shaperбайтЗадает максимальную скорость передачи данных для исходящего трафика.
tun-mtuчислоЗадает MTU.
statusпуть к файлуПуть к фалу хранения статуса.
logпуть к файлуПуть к лог-файлу.
askpassпуть к файлуПуть к файлу с паролем для приватного ключа (private key password).

Сертификаты

Клиентские сертификаты генерируются на стороне сервера. Процедура следующая.

Источник

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

Настройка OpenVPN для Windows

Данная инструкция демонстрирует, как подключиться к серверу ретрансляции VPN Gate, используя клиент OpenVPN в системах Windows XP, Windows 7, Windows 8, 8.1, Windows 10, Windows 11, Windows Server 2003, 2008, 2012, 2016, 2019, 2022.

1. Установите клиентское приложение OpenVPN для вашей операционной системы

Запустите установочный файл. Откроется мастер установки. Следуйте подсказкам на экране, чтобы выполнить установку приложения.

2. Скачайте и загрузите файл конфигурации подключения OpenVPN (файл. ovpn)

Данная процедура требуется только при первичной настройке подключения.

Файл конфигурации формата *.ovpn понадобиться для подключения к серверу ретрансляции VPN Gate через протокол OpenVPN.

Скачать файл конфигурации OpenVPN Config File (.ovpn) можно на странице списка открытых бесплатных серверов ретрансляции http://www.vpngate.net/en/. Выберите VPN-сервер, к которому вы хотите подключиться и нажмите на соответствующий файл *.ovpn, чтобы скачать его на рабочий стол или папку загрузки.

После сохранения файла на компьютере, он будет отображаться как иконка OpenVPN. Тем не менее, вы не сможете установить подключение, просто дважды кликнув по файлу.

Нужно переместить файл *.ovpn в папку “config” основной директории установки OpenVPN.

Откройте папку C:\Program Files\OpenVPN\config и скопируйте файл *.ovpn в нее.

3. Подключение к VPN

Кликните правой кнопкой мыши по иконке “OpenVPN GUI” на рабочем столе и выберите опцию “Запустить от имени администратора”. В противном случае, установить VPN подключение не удастся.

Иконка OpenVPN GUI появится в области уведомления панели задач (системном трее). В некоторых случаях иконка может быть скрытой, нажмите по значку стрелки, чтобы показать все скрытые иконки.

Щелкните правой кнопкой мыши по иконке OpenVPN GUI и нажмите “Подключиться”.

Запуститься VPN подключение. Статус подключения будет отображаться на экране. Если вы увидите диалоговое окно запроса имени пользователя и пароля. Введите “vpn” в оба поля. Данное окно появляется очень редко.

Если VPN подключение успешно установлено, то появится всплывающее сообщение как на скриншоте.

4. Интернет без ограничений

Когда подключение VPN установлено, в системе Windows создается виртуальный сетевой адаптер TAP-Windows Adapter V9. Этот адаптер получит IP-адрес, который начинается с “10.211”. Виртуальный адаптер получит адрес шлюза по умолчанию.

Чтобы открыть Центр управления сетями и общим доступом (также доступен в меню Панель управления > Сеть и Интернет), нажмите сочетание клавиш Windows + R и в окне «Выполнить» введите следующую команду и нажмите ОК:

Вы сможете проверить конфигурацию сети, запустив команду ipconfig /all в командной строке Windows.

Когда соединение установлено, весь сетевой трафик будет проходить проходить через VPN-сервер. Убедиться в этом вы сможете с помощью команды tracert 8.8.8.8 в командной строке Windows.

Как показано на скриншоте выше, если пакеты проходят через «10.245.254.254», значит ваше подключение ретранслируется через один из серверов VPN Gate. Вы также можете перейти на основную страницу VPN Gate, чтобы посмотреть глобальный IP-адрес.

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

Настройка OpenVPN для MacOS

Данная инструкция демонстрирует, как подключиться к серверу ретрансляции VPN Gate, используя приложение Tunnelblick. Tunnelblick является версий клиента OpenVPN с графической оболочкой. для систем MacOS.

1. Установите приложение Tunnelblick

Скачайте и установите последнюю версию приложения Tunnelblick. Во время установки на экране будут показываться инструкции.

После завершения установки появится следующий экран. Выберите опцию “У меня ЕСТЬ файлы конфигурации”.

На экране будет показана инструкция по добавлению конфигурации в Tunnelblick.

Нажмите ОК, чтобы закрыть окно.

Данная процедура требуется только при первичной настройке подключения.

Файл конфигурации формата *.ovpn понадобиться для подключения к серверу ретрансляции VPN Gate через протокол OpenVPN.

Скачать файл конфигурации (OpenVPN Config file) можно на странице списка открытых бесплатных серверов ретрансляции http://www.vpngate.net/en/. Выберите VPN-сервер, к которому вы хотите подключиться и нажмите на соответствующий файл *.ovpn, чтобы его загрузить в папку загрузок (Downloads).

Чтобы установить файл конфигурации *.ovpn, перетащите его на значок Tunnelblick в строке меню, либо на список конфигураций во вкладке «Конфигурации» окна «Детали VPN». Если необходимо установить сразу несколько конфигурационных файлов – выделите их все, а затем перетащите.

Во время добавления нужно будет ввести имя пользователя и пароль от учетной записи MacOS.

3. Подключение к VPN

Нажмите по иконке Tunnelblick на верхней панели инструментов MacOS и выберите опцию “Соединить [название конфигурации]”. Будет запущено подключение к VPN.

Появится статус подключения к VPN, как показано на скриншоте. После успешной установки подключения, в основном окне Tunnelblick будет показываться состояние “Соединен”.

4. Интернет без ограничений

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

При подключении к VPN вы сможете посещать заблокированные веб-сайты и играть в заблокированные игры.

Источник

OpenVPN. Инструкция по применению

1. Введение

Виртуальные частные сети (VPN) давно вошли в повседневную жизнь. Множество технологий и реализаций сервиса приватных сетей (как для частного применения, так и для использования внутри периметра организаций), обеспечивающих определённый уровень безопасности, доступны для использования широкому кругу ИТ-специалистов.

Не смотря на обилие технологий, предлагаю остановиться на старом добром OpenVPN (в связке с EASY-RSA). Решение от Джеймса Йонана отличается гибкостью, функциональностью, надёжностью и непрерывностью разработки на протяжении приличного временного периода. Так сказать, мастодонт от мира VPN-решений.

Спойлер — ссылка на довольно функциональное решение (ничего особенного, чистый бэкэнд), написанное на bash некоторое время назад, ждёт вас в конце публикации (в виде github-репозитория под именем «openvpn_helper»), а здесь же уделю внимание общей структуре и некоторым аспектам использования набора скриптов и OpenVPN.
***
Список необходимых компонентов (используемая ОС — AlmaLinux 8):
1) OpenVPN 2.4.12;
2) EASY-RSA 3.0.8.

2. Описание общей структуры репозитория

2.1. Директория «ovpn-server»

Директория содержит файлы и поддиректории двух типов: статичные (входящие в репозитория непосредственно) и генерируемые автоматически.

Файлы и директории, формируемые на этапе полной установки VPN-сервера (full_setup_vpn_server.sh):

«STOP_OVPN-$VPN_SERVER_NAME_S.sh» (где VPN_SERVER_NAME_S — параметр из vpn.env) — полный останов VPN-сервера.

Файлы и директории, формируемые на этапе генерации клиентских сертификатов (create_cli_cert_and_conf.sh):

2.2. Директория «run_if_dnsmasq_is_not_installed»

Скрипт «run.sh». Простой скрипт, осуществляющий установку сервиса dnsmasq.

Файл конфигурации «dnsmasq.conf». Содержит пример конфигурации сервиса без вышестоящих dns-серверов.

Для использования DNS-сервера, установленного на хосте с OpenVPN, необходимо подкорректировать правила firewalld. Рекомендации по настройке смотреть в файле «readme-firewalld-rules.txt» (после развёртывания VPN-сервера).

2.3. Директория «run_if_openvpn_is_not_installed»

Скрипт «run.sh» устанавливает необходимый для работы VPN набор софта: dnf-репозиторий «epel-release», openvpn, easy-rsa.

2.4. Директория «run_if_selinux_enabled»

Директория содержит 2 файла:

скрипт «run.sh», устанавливающий пакет «selinux-policy» и применяющий selinux-модуль «ovpn_mod0».

2.5. Директория «run_if_zip_is_not_installed»

Скрипт «run.sh» устанавливает zip-архиватор, используемый при создании архивов для передачи конечному пользователю.

2.6. Файл-инструкция «if_need_another_vpnserver_on_this_host.txt»

Документ, кратко описывающий алгоритм развёртывания второго (и последующих) VPN-сервисов на одном и том же хосте.

Алгоритм таков (для примера):
1) создаём директорию, например, «ovpn-server0»;
2) переносим в неё содержание директории «ovpn-server» (исключения: cli_certs, pki_root);
3) редактируем в директории «ovpn-server0» файл «vpn.env», уделяя особое внимание параметрам: VPN_SERVER_NAME_S,
VPN_PORT_S,
VPN_NETWORK_S,
VPN_DHCP_IP_S,
VPN_INTERNAL_NETWORK_ROUTE_S,
VPN_NETWORK_MASQUERADE_SRC_S,
VPN_INTERNAL_NETWORK_MASQUERADE_DST_S,
VPN_INTERNAL_IP_DEV_NAME_S,
VPN_SERVER_INT_FIREWALLD_ZONE_S,
VPN_PORT_CL;
4) из директории «ovpn-server0» запускаем скрипт «full_setup_vpn_server.sh».

2.7. Скрипт «run_first.sh»

Разрешает форвардинг (перенаправление) трафика ipv4, что важно для осуществления доступа из VPN-сети в интранет.

3. Описание основного файла конфигурации vpn.env

Параметры, относящиеся только к генерации сертификатов и конфига (например, «/etc/openvpn/server/server.conf») VPN-сервера (full_setup_vpn_server.sh):

VPN_SERVER_NAME_S — имя VPN-сервера в контексте возможности запуска нескольких экземпляров VPN в зависимости от имени файла конфигурации. Желательно, чтобы этот параметр совпадал с частью (ovpn-XXX) имени директории, где расположен файл «vpn.env»).

IP_VPN_SERVER_S — ip-адрес интерфейса, смотрящего в Интернет.

VPN_PORT_S — порт интерфейса, смотрящего в Интернет. Должен быть уникален, если в рамках одного хоста настроено более одного VPN-сервера.

VPN_MAX_CLIENTS_S — максимальное количество клиентов VPN-сервера. В топологии «subnet» при использовании подсети для VPN с маской 24 (или 255.255.255.0) максимально возможное кол-во клиентов равно 83. Значение по умолчанию — 32.

VPN_DHCP_IP_S — адрес встроенного DHCP. Значение по умолчанию — 172.16.10.1. Должен быть уникальным в случае, если в рамках одного хоста настроено более одного VPN-сервера.

VPN_INTERNAL_NETWORK_ROUTE_S — маршрут до интранета (параметр передаётся клиентам VPN-сервера при подключении), к которой необходим доступ из VPN-сети. Заполнять в соответствии с конкретными параметрами вашей сети.

VPN_SERVER_LOG_LEVEL_S — уровень логирования VPN-сервера. Значение по умолчанию — 0.

VPN_NETWORK_MASQUERADE_SRC_S — описание подсети VPN-сервера, необходимое при отправке директив фаерволу (firewalld). Должно быть уникальным в случае, если в рамках одного хоста настроено более одного VPN-сервера.

VPN_INTERNAL_NETWORK_MASQUERADE_DST_S — описание внутренней подсети, необходимое при отправке директив фаерволу (firewalld).

VPN_INTERNAL_IP_DEV_NAME_S — имя интерфейса, смотрящего во внутреннюю сеть.

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

VPN_SERVER_INT_FIREWALLD_ZONE_S — зона фаервола, к которой должны принадлежать интерфейсы:
а) VPN_TUN_DEV_NAME_S;
б) VPN_INTERNAL_IP_DEV_NAME_S;
в) интерфейс, являющийся дефолтовым гейтвэем для VPN-сервера.
Пункт (в) необходим только в том случае, если VPN-сервер предполагается использовать как шлюз по умолчанию для VPN-клиентов.

Параметры, относящиеся только к генерации клиентских сертификатов и конфига (create_cli_cert_and_conf.sh):

IP_VPN_SERVER_CL — белый (и статичный) ip-адрес (или доменное имя), к которому необходимо обратиться VPN-клиенту для доступа к интрасети.

VPN_PORT_CL — соответствующий порт для параметра IP_VPN_SERVER_CL.

VPN_CLI_LOG_DIR_LINUX_CL — директория хранения лог-файлов, если клиент VPN-сервера — это хост с ОС Linux.

VPN_CLI_LOG_LEVEL_CL — уровень логирования VPN-клиента.

Параметры EASY-RSA (используются как при генерации сертификатов как для VPN-сервера, так и для клиента):

EASYRSA_CERT_EXPIRE_EV — время устаревания (в днях) выпущенных сертификатов (в т.ч. и корневого). Дефолтовое значение — 3654 дней (10 лет).

EASYRSA_CRL_DAYS_EV – время устаревания (в днях) списка отзыва сертификатов (CRL). Дефолтовое значение — 3654 дней (10 лет).

EASYRSA_KEY_SIZE_EV – размер ключа шифрования.

EASYRSA_REQ_OU_EV – подразделение организации.

EASYRSA_REQ_CN_EV – имя сервера.

EASYRSA_REQ_EMAIL_EV – email-адрес администратора.

4. Заключение

Не смотря на функциональность и гибкость (особенно при наличии оснастки, описанной, например, выше), у OpenVPN есть недостаток (присутствует и у аналогичных решений) — механизм списка отозванных сертификатов (который CRL).

Если удалить клиентский сертификат из директории «issued» (структура управления ключами easyrsa), то его отзыв (посредством команды revoke) при компрометации окажется недоступным, что создаёт вероятность использования такого сертификата злоумышленниками. И в этом случае единственным вариантом обезопасить интранет от посторонних глаз — перевыпуск корневого сертификата, что влечёт за собой необходимость перевыпуска остальных сертификатов.

Логично было бы генерировать не список отозванных сертификатов (CRL), а список актуальных сертификатов (например, Cert Actual List), но, видимо, разработчики OpenVPN (а также Easy-RSA), когда-то решили иначе, что создаёт необходимость очень тщательно следить за всеми выпущенными/отозванными сертификатами.

Источник

Как пользоваться OpenVPN

В одной из предыдущих статей мы рассматривали как настроить OpenVPN сервер в Ubuntu. В этой же статье более подробно остановимся на настройке подключения к серверу с помощью различных программ в Linux и Android, а также попытаемся понять как работает эта служба.

Как работает OpenVPN?

Вы уже знаете что программа организовывает виртуальную сеть между компьютерами и все данные в этой сети шифруются и недоступны для пользователей вне нее. Для достижения этой цели программа создает в системе виртуальное устройство tun0. Это такой же интерфейс, как и eth0 или wlan0, он имеет свой ip адрес. Весь трафик, который передается на этот интерфейс шифруется и передается в виртуальную сеть.

Поэтому для передачи трафика через OpenVPN будет достаточно добавить в таблицу маршрутизации несколько правил, которые будут заставлять трафик идти через интерфейс tun0.

Как пользоваться OpenVPN в Linux

sudo apt install openvpn

А далее для подключения к сети достаточно выполнить команду openvpn и передать ей в параметры нужный вам файл:

Openvpn как пользоватьсяПосле этого окно терминала закрывать нельзя и если OpenVPN сервер был настроен правильно, то он уже передал на машину правильные маршруты и ваш трафик идет через виртуальную сеть. Давайте посмотрим маршруты:

Openvpn как пользоваться

Здесь стоит обратить внимание на две строки:

0.0.0.0/1 via 192.168.243.1 dev tun0
169.254.0.0/16 dev enp2s0 scope link metric 1000

Первая направляет весь трафик системы на интерфейс tun0, а вторая более интересная, она разворачивает трафик ip сети 169.254.0.0 на реальный интерфейс. Если ее не будет, то весь трафик будет идти на tun0, в том числе и трафик от программы OpenVPN, который уже прошел этот интерфейс и получиться петля. Чтобы разорвать подключение в таком варианте достаточно нажать Ctrl+C в терминале, где вы запустили openvpn.

sudo apt-get install network-manager-openvpn

Теперь откройте апплет Network Manager, разверните «Соединение VPN» и выберите «Настроить соединение»:

Openvpn как пользоваться

В открывшемся окне нажмите кнопку «+»:

Openvpn как пользоваться

Затем выберите надпись «VPN».

Openvpn как пользоваться

Далее, вы можете взять «OpenVPN», но нас будет интересовать пункт «Импорт из файла».

Openvpn как пользоваться

Далее, просто выберите файл *.ovpn, который вы скачали на сервере. Осталось нажать кнопку «Добавить». Дальше вы можете активировать нужную сеть с помощью переключателя в окне настроек или аплета:

Openvpn как пользоваться

Снова смотрим таблицу маршрутизации:

Openvpn как пользоваться

В целом, NetworkManager создает другие правила, но они работают так же. Настройка клиента openvpn на ubuntu завершена.

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

Вы можете пользоваться OpenVPN на любой платформе, в том числе и на Android. Для устройств было выпущено официальное приложение OpenVPN Connect. С помощью него вы можете подключиться к сети, как и в предыдущем варианте, с помощью ovpn файла. Вы можете установить это приложение из Google Play:

Openvpn как пользоваться

Openvpn как пользоваться

Выберите нужный файл и нажмите «Select»:

Openvpn как пользоваться

Затем осталось нажать «Connect» для подключения к сети:

Openvpn как пользоваться

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

Openvpn как пользоваться

Правда, здесь мы не увидим такой ситуации, как в Linux, маршрутизация на VPN в Android осуществляется немного по-другому.

Как пользоваться OpenVPN в Windows

Нельзя было не рассказать в этой статье как пользоваться OpenVPN GUI в Windows, тем более что это ненамного сложнее чем в Android. Нам нужно установить клиент OpenVPN. Вы можете скачать его на официальном сайте:

Openvpn как пользоваться

После загрузки запустите программу от имени администратора и пройдите все шаги мастера:

Openvpn как пользоваться Openvpn как пользоваться Openvpn как пользоваться Openvpn как пользоваться Openvpn как пользоваться

Далее, запустите программу, найдите ее значок в трее, кликните по нему и выберите «Import»:

Openvpn как пользоваться

Далее, просто выберите файл конфигурации *.ovpn для нужного VPN сервера:

Openvpn как пользоваться

Затем еще раз кликните по значку OpenVPN на панели, начнется инициализация и вы будете подключены к сети VPN, значок программы изменится на зеленый:

Openvpn как пользоваться Openvpn как пользоваться

Теперь ваш трафик в операционной системе Windows тоже направлен через VPN. Как видите, использование OpenVPN очень просто во всех операционных системах.

Выводы

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

Источник

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

Openvpn как пользоваться

Когда у нас появились сотрудники, работающие удаленно, пришлось думать над тем, как обеспечить им защищенный доступ к нашим хостинговым серверам, виртуальным выделенным серверам разработчиков Virtual Dedicated Server (VDS), сайтам обеспечения и сопровождения разработки и к другим ресурсам.

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

Выход нашелся довольно быстро — это использование технологии виртуальных частных сетей Virtual Private Network (VPN) и ее свободной реализации OpenVPN. Эта реализация доступна практически для всех распространенных платформ, в том числе для планшетов и смартфонов. История развития OpenVPN насчитывает уже 12 лет (компания OpenVPN Technologies, Inc. была создана Francis Dinha и James Yona в 2002 году), так что это надежное и проверенное временем решение.

В нашей компании сеть VPN позволила предоставить защищенный доступ сотрудников к VDS, играющей роль сервера OpenVPN. И уже для фиксированного IP этого сервера был разрешен доступ к другим ресурсам компании. Попутно на сервере OpenVPN был установлен прокси Squid, что решило все проблемы доступа сотрудников с динамическими IP к защищенным ресурсам компании.

Теме OpenVPN посвящены многочисленные статьи и сообщения на форумах. Тем не менее, нужную информацию мне пришлось собирать по частям из разных мест. Попутно приходилось разбираться с многочисленными терминами и технологиями. В качестве серверов OpenVPN были использованы VDS на базе FreeBSD и Debian Linux, в качестве клиентов — рабочие станции FreeBSD, Debian Linux, Ubuntu и Microsoft Windows.

Надеюсь, что эта статья будет полезна тем, кто впервые столкнулся с необходимостью создания сети VPN или уже использует ее для решения тех или задач, а также тем, кто ищет замену коммерческим реализациям VPN.

С благодарностью приму замечания и предложения по содержимому статьи.

Оглавление

Немного теории

Если раньше для создания безопасного канала передачи данных крупным компаниям и организациям приходилось прокладывать (либо арендовать) кабели и защищать их от физического доступа злоумышленников, то теперь в этом нет необходимости. С помощью VPN можно создавать защищенные виртуальные каналы, работающие через безопасный «туннель» в Интернете. Такое решение может позволить себе любая, даже очень небольшая компания.

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

Openvpn как пользоваться

Почему сеть VPN называется виртуальной и частной?

Виртуальная она потому, что узлы сети объединяются не физическими линиями, а виртуальными соединениями, которые создаются программным обеспечением (ПО) VPN.

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

Таким образом, сеть VPN может объединять ресурсы (серверы и рабочие станции) компании в единую безопасную виртуальную сеть, созданную на базе Интернета. И теперь сотрудники, работающие удаленно (из дома или из другой страны) будут находиться как бы в общей сети своей компании. Сеть VPN подходит и для консолидации территориально разделенных офисов компании.

Обмен данными по сети

ПО OpenVPN передает данные по сети с помощью протоколов UDP или TCP с применением драйвера TUN/TAP. Протокол UDP и драйвер TUN позволяет подключаться к серверу OpenVPN клиентам, расположенным за NAT.

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

Безопасность и шифрование

Безопасность и шифрование в OpenVPN обеспечивается библиотекой OpenSSL и протоколом транспортного уровня Transport Layer Security (TLS). Вместо OpenSSL в новых версиях OpenVPN можно использовать библиотеку PolarSSL. Протокол TLS представляет собой усовершенствование протокола защищенной передачи данных уровня защищенных сокетов Secure Socket Layers (SSL).

В OpenSSL может использоваться симметричная и ассиметричная криптография.

В первом случае перед началом передачи данных на все узлы сети необходимо поместить одинаковый секретный ключ. При этом возникает проблема безопасной передачи этого ключа через небезопасный Интернет.

Во втором случае у каждого участника обмена данными есть два ключа — публичный (открытый) и приватный (секретный).

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

Приватный ключ секретный, и должен оставаться в пределах узла, на котором он создан. Публичный ключ должен передаваться участникам обмена данными.

Для безопасной передачи данных необходимо идентифицировать стороны, принимающие участие в обмене данными. В противном случае можно стать жертвой так называемой «атаки посредника» (Man in the Middle, MITM). В ходе такой атаки злоумышленник подключается к каналу передачи данных и прослушивает его. Он также может вмешиваться, удалять или изменять данные.

Чтобы обеспечить аутентификацию (проверку подлинности пользователя) протокол TLS использует инфраструктуру публичных ключей (Public Key Infrastructure, PKI) и асимметричную криптографию.

Нужно осознавать, что расшифрование данных без наличия приватного ключа тоже возможно, например, методом последовательного перебора. Хотя такой метод и требует больших вычислительных ресурсов, это только вопрос времени, когда данные смогут быть расшифрованы.

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

Шифрование данных увеличивает трафик и замедляет обмен данными. Чем больше длина ключа, применяемого для шифрования данных, тем труднее будет его подобрать, но и тем заметнее получится замедление обмена данными.

Сертификаты и удостоверяющий центр CA

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

Сертификат должна заверить организация, которой доверяют. Эта организация играет роль удостоверяющего центра (Certification authority, CA).

Если создается открытый ключ для публичного использования, в качестве удостоверяющего центра должна выступать коммерческая или государственная организация с неоспоримой репутацией. Эта организация публикует собственный открытый ключ, доступный всем.

Существует немало коммерческих организаций, выпускающих сертификаты, пригодные, например, для создания HTTPS-сайтов, для цифровой подписи сообщений электронной почты или документов, для систем мгновенного обмена сообщениями, такими как Jabber. Эти сертификаты выдаются на ограниченный срок и стоят денег.

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

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

Сертификаты создаются в соответствии со стандартом X.509. Этот стандарт определяет форматы данных и процедуры распределения открытых ключей с помощью сертификатов, снабженных электронными подписями.

Сертификат X.509 — это публичный ключ, содержащий такие данные, как субъект, владеющий сертификатом, имя узла, период действия, алгоритм и значение подписи сертификата, и т.д. Сертификат должен быть подписан приватным ключом удостоверяющего центра (Certification authority, CA).

Когда наш узел рабочей станции подключается к удаленному узлу (серверу) с использованием протокола TLS, сервер отправляет ему сертификат X.509. На нашем узле есть публичный ключ удостоверяющего центра CA, который подписал этот сертификат. Этот ключ используется для проверки подписи.

Таким образом, имеется способ проверки удаленного узла (сервера), к которому наш узел собирается подключиться, чтобы исключить «атаки посредника» MITM.

Список отзыва сертификатов

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

Для упрощения этой процедуры в OpenVPN предусмотрен список отзыва сертификатов (Сertificate Revocation List, CRL) и простые средства для управления этим списком.

Список CRL создается в удостоверяющем центре CA и потом копируется на сервер OpenVPN. После внесения изменений в список CRL его необходимо повторно скопировать на сервер OpenVPN.

Файл Диффи-Хелмана

Файл Диффи-Хелмана (Diffie-Hellman) необходим для реализации одноименного протокола, позволяющего использовать небезопасный канал для получения общего секретного ключа. Этот ключ будет в дальнейшем использоваться для защищенного обмена данными с помощью алгоритмов симметричного шифрования.

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

Файл Диффи-Хелмана создается на сервере OpenVPN.

Статический ключ HMAC

Статический ключ (хэш-код) аутентификации сообщений (Hash-based Message Authentication Code, HMAC) обеспечивает проверку подлинности информации, передаваемой между сторонами. Этот ключ создается на сервере OpenVPN с целью дополнительной защиты от DoS-атак и флуда.

Компоненты сети OpenVPN

Прежде чем мы перейдем от теории к практике, перечислим основные компоненты сети OpenVPN и объекты, с которыми нам придется иметь дело.

Удостоверяющий центр CA

Выдает сертификаты по запросу узлов сети VPN, подписанные сертификатом удостоверяющего центра. Предоставляет узлам сети VPN свой собственный сертификат для проверки удостоверяющей стороны. Управляет списком отзыва сертификатов CRL.

ПО сервера OpenVPN создает туннель внутри незащищенной сети, например, Интернета. Этот туннель обеспечивает безопасный зашифрованный трафик между узлами — участниками обмена данными в сети OpenVPN.

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

Сертификаты (публичные ключи) X.509

Сертификаты X.509 представляют собой публичные ключи, заверенные удостоверяющим центром CA. Они используются для зашифровывания данных. Факт заверения сертификата удостоверяющим центром CA позволяет идентифицировать сторону, передающую зашифрованные данные.

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

Приватные ключи секретные. Они должны создаваться и храниться на каждом узле сети OpenVPN, предназначены для расшифрования данных и никогда не должны передаваться по сети.

Приватные ключи создаются на узлах сети OpenVPN одновременно с файлом запроса на получение сертификата.

Список отзыва сертификатов CRL

Содержит список сертификатов, утративших доверие. Он создается и редактируется на узле удостоверяющего центра CA. Чтобы отключить узел от сети, достаточно занести его сертификат в список CRL.

После создания и каждого изменения список CRL переносится на серверы OpenVPN.

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

Статический ключ HMAC

Служит для проверки подлинности передаваемой информации. Обеспечивает защиту от DoS-атак и флуда. Создается на сервере OpenVPN.

Готовим оборудование для установки OpenVPN

Если вы впервые настраиваете сеть VPN, лучше всего экспериментировать на виртуальных машинах VDS. Это могут быть VDS, созданные локально на вашем компьютере или на сервере в вашей сети, либо арендованные у провайдера. Перед арендой VDS поинтересуйтесь, поддерживается ли драйвер TUN/TAP. Некоторые провайдеры требуют дополнительной оплаты для подключения TUN/TAP.

На рис. 1. мы показали схему стенда, на котором будем устанавливать компоненты и узлы OpenVPN (имена и адреса IP хостов могут быть другими).

Openvpn как пользоваться

Рис. 1. Стенд для изучения OpenVPN.

Здесь изображены три узла (хоста), для каждого из которых потребуется отдельный VDS:

Хосты клиента и сервера VPN соединены обычным, небезопасным каналом. В случае макета это может быть локальная сеть, в реальной жизни — канал сети Интернет. ПО OpenVPN создает в этой сети канал, обозначенный на рис. 1 красным цветом, внутри которого устанавливается безопасный шифрованный канал (обозначен зеленым цветом).

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

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

Мы проводили установку серверов OpenVPN в среде ОС Debian Linux и FreeBSD, клиентов OpenVPN в ОС Debian Linux, FreeBSD и Microsoft Windows.

Основная часть статьи посвящена установке компонентов OpenVPN для Debian Linux. Далее мы рассмотрим особенности установки для FreeBSD и Microsoft Windows.

По возможности на узлах сети OpenVPN используйте новые версии ОС. Перед тем как приступить к работе с OpenVPN, обновите пакеты Linux:

Установите на всех узлах пакет пакет zip, если он не был установлен ранее:

Этот пакет будет нужен для распаковки архива утилиты Easy-RSA, с помощью которой мы будем создавать ключи и сертификаты.

На всех узлах настройте обновление и синхронизацию времени.

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

Дальнейшие работы мы начнем с подготовки хоста удостоверяющего центра CA. Затем установим хосты сервера и клиента OpenVPN.

Создание удостоверяющего центра CA

Как мы уже говорили, задача удостоверяющего центра CA — выдача подписанных сертификатов для сервера и клиентов OpenVPN.

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

Одновременно с запросом сертификата создается приватный ключ. Приватные ключи создаются для всех узлов сети OpenVPN: для удостоверяющего центра CA, для сервера и всех клиентов OpenVPN.

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

На рис. 2 показан процесс получения подписанного сертификата для сервера OpenVPN.

Openvpn как пользоваться

Рис. 2. Получение сертификата для сервера OpenVPN

Сервер OpenVPN создает свой приватный ключ и файл запроса на получение сертификата. Файл запроса передается в удостоверяющий центр, например, на USB флеш-диске.

Удостоверяющий центр на основе запроса создает подписанный сертификат, который затем требуется перенести на сервер OpenVPN, также на USB флэш-диске.

Если к безопасности не предъявляется особых требований или вы только изучаете OpenVPN, можно подключить машину удостоверяющего центра к сети и передавать запросы и сертификаты, например, с помощью утилит SFTP или SCP. Можно даже совместить функции CA и, например, сервера OpenVPN в одном хосте.

Аналогичным образом необходимо получить сертификаты для всех клиентских узлов (рис. 3).

Openvpn как пользоваться

Рис. 3. Получение сертификата для клиента OpenVPN

Установка утилиты Easy-RSA

Все операции по созданию ключей и сертификатов можно выполнить с помощью утилиты openssl. Однако проще воспользоваться специально созданной для этого программой Easy-RSA, которая использует openssl для выполнения действий с ключами и сертификатами.

Ранее утилита Easy-RSA поставлялась вместе с OpenVPN, но теперь это отдельный проект.

Все операции с удостоверяющим центром и сертификатами можно (и нужно) проводить от имени непривилегированного пользователя.

Создайте пользователя с именем, например, ca и перейдите в его домашний каталог:

Загрузите дистрибутив программы утилитой wget.

После загрузки распакуйте архив master.zip:

В табл. 1 перечислены файлы и каталоги, входящие в дистрибутив Easy-RSA.

Таблица 1. Состав дистрибутива Easy-RSA.

Источник

Что такое OpenVPN? Как работает OpenVPN и как им пользоваться?

Openvpn как пользоваться

Даже если вы новичок в теме VPN, то наверняка уже слышали об OpenVPN. Большинство поставщиков VPN-услуг предлагают его потому, что он очень безопасный и надёжный. Если вдаваться в подробности, что же такое OpenVPN? Как на самом деле работает OpenVPN?

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

Содержание

Что такое OpenVPN?

OpenVPN — это VPN-протокол и ПО, которое использует методы VPN для защиты соединений типа “точка-точка” и “сайт-сайт”. В настоящее время это один из самых популярных VPN-протоколов среди пользователей VPN.

Он был разработан Джеймсом Йонаном и выпущен в 2001 году. OpenVPN — один из VPN-протоколов с нативным приложением с открытым исходным кодом (собственное приложение есть и у SoftEther).

Как работает OpenVPN?

Протокол OpenVPN отвечает за поддержание коммуникации между клиентом и сервером. Как правило, он используется для создания защищённого “туннеля” между VPN-клиентом и VPN-сервером.

Для шифрования и аутентификации OpenVPN использует библиотеку OpenSSL. Кроме того, для передачи данных OpenVPN может использовать UDP (User Datagram Protocol) или TCP (Transmission Control Protocol).

Если вы не знакомы с TCP и UDP, то это протоколы транспортного уровня, которые используются для передачи данных в интернете. TCP считается более стабильным, так как предлагает функцию исправления ошибок (после отправки сетевого пакета TCP ожидает подтверждения перед его повторной отправкой или отправкой нового пакета). UDP исправляет ошибки, что делает его менее стабильным, но намного быстрее.

OpenVPN лучше всего работает по UDP (согласно данным OpenVPN.net), поэтому сервер доступа OpenVPN сначала пытается установить UDP-соединения. Если это не удаётся, только тогда сервер пробует создать соединение по протоколу TCP. Большинство VPN-Сервисов по умолчанию предоставляют OpenVPN через UDP.

Благодаря своей структуре кода (это кастомный протокол безопасности), протокол OpenVPN может легко обходить HTTP и NAT.

В отличие от большинства VPN-протоколов, OpenVPN — это протокол с открытым исходным кодом. Это означает, что код никому не принадлежит, и третьи стороны всегда могут его проверить или модернизировать (улучшить).

Принцип работы OpenVPN — Общие технические характеристики

Безопасность OpenVPN. Безопасно ли им использоваться?

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

Openvpn как пользоваться

Протокол прошёл два аудита безопасности в 2017 году — при первом проявились только незначительные проблемы, которые не подвергали опасности пользовательские данные. Во время второго аудита обнаружили только две ошибки (которые вскоре были исправлены).

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

Скорость OpenVPN. Насколько быстро он работает?

На самом деле, скорость — далеко не сильная сторона OpenVPN, но если у вас скоростной интернет, то скорость будет приемлемой. Как правило, скорость интернета падает из-за сильного уровня шифрования в OpenVPN. При этом могут влиять и другие факторы.

Можете добиться более высокой скорости, если будете использовать OpenVPN через UDP вместо TCP.

Как пользоваться OpenVPN?

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

В этом разделе мы рассмотрим процесс настройки на Windows, так как эта ОС наиболее востребована. Процедура настройки на Android и в iOS очень похожа на ту, что мы приводим ниже. Установка и использование OpenVPN на Linux ещё сложнее, но вы можете ознакомиться с процедурой здесь (дополнительную информацию можно найти здесь).

Прежде чем мы продолжим, следует отметить, что для настройки OpenVPN-соединения вам понадобится подписка на VPN-Сервис. Хотя вы можете настроить собственный сервер OpenVPN, это невероятно сложно. К тому же, большинство доступных в интернете руководств посвящены настройке на Linux.

Итак, вот основные тезисы, которые вам следует учитывать при использовании протокола OpenVPN:

1. Во-первых, скачайте файлы конфигурации

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

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

2. Установите клиент OpenVPN

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

По завершении установки перед вами может появиться текстовый файл с инструкциями или техническими сведениями. Вы можете ознакомиться с ним или просто закрыть. Это ни на что не влияет.

3. Импортируйте данные VPN

Для запуска OpenVPN необходимо запустить GUI-приложение OpenVPN. Он добавит службу в трей (небольшая панель задач в правом нижнем или верхнем углу). Теперь скопируйте все скачанные файлы OVPN в подпапку “Config” в папке установки OpenVPN.

Теперь, если нажать по OpenVPN в трее, вы сможете увидеть названия всех только что скопированных файлов. Если вам потребуется, то файлы можно переименовать.

4. Установка соединения

Чтобы подключиться к серверу, просто нажмите на OVPN-файлы в приложении OpenVPN. При возникновении необходимости укажите свои данные для входа. Если все пойдет хорошо, вы увидите экран журнала с некоторыми командами состояния. Они должны исчезнуть при установке соединения.

На рабочем столе выскочит уведомление, что соединение прошло успешно. Кроме того, на иконке OpenVPN должен загореться зелёный экран. При наведении курсора появится всплывающая подсказка с указанием названия сервера и нового IP-адреса.

На этом этапе вы можете протестировать соединение, чтобы убедиться, что всё в порядке

Чтобы отключиться от сервера, просто нажмите на значок OpenVPN, укажите сервер, к которому вы подключены, и нажмите “Отключиться”.

5. Настройки (базовые и расширенные)

У приложения OpenVPN не так много настроек, но с некоторыми из них можно немного поиграть.

Openvpn как пользоваться

К примеру, в “Настройках” можно поставить галочку, чтобы OpenVPN автоматически запускалась вместе с операционной системой. Вы также можете включить опцию “Бесшумное подключение”, чтобы при подключении к серверу не отображался экран состояния. Однако будьте осторожны с пунктом “никогда”, так как он отключает уведомления на рабочем столе.

Если вам нужны более глубокие настройки соединения, то можно открыть сами файлы OVPN (мы рекомендуем делать это при помощи WordPad) и просмотреть, какие там заданы команды. Если у вас достаточно знаний в этой области, то можете отредактировать эти команды по своему усмотрению или добавить новые. Давайте посмотрим, какие команды могут быть вам интересны:

Кроме того, можете просмотреть подпапку “doc” в папке установки OpenVPN, если вам требуется более подробная документация. Там вы сможете узнать, как пользоваться другими функциями (например, настраивать сценарии отключения VPN или блокировать DNS-утечки). Дополнительную информацию можно найти в Справочном руководстве, доступном на сайте OpenVPN.net.

Преимущества и недостатки OpenVPN

Преимущества

Недостатки

Ищете надёжный VPN-Сервис?

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

Openvpn как пользоваться

И если вы захотите попробовать другие способы разблокировки веб-сайтов, мы также предлагаем услугу Smart DNS, которая открывает доступ к более 300 сайтов. Кроме всего прочего, все наши VPN-серверы дополняются прокси-серверами.

Специальное предложение! Получите CactusVPN за 3.5$ в месяц!

И как только вы станете клиентом CactusVPN, у вас будет 30-дневная гарантия возврата денег.

Насколько хорош OpenVPN в сравнении с другими VPN-протоколами?

На данный момент OpenVPN считается лучшим VPN-протоколом. Кажется, единственный, кто может составить конкуренцию OpenVPN, это протокол SoftEther. И вы сами скоро в этом убедитесь.

OpenVPN или SSTP

SSTP и OpenVPN довольно похожи, поскольку в обоих случаях используется SSL 3.0 и при этом оба протокола могут использовать порт 443. Они также обеспечивают идентичный уровень безопасности, так как оба протокола используют 256-битное шифрование и шифр высокого уровня AES.

Тем не менее, OpenVPN распространяется с открытым исходным кодом. Это означает, что он гораздо надежнее SSTP, который принадлежит Microsoft — корпорации, которая, как известно, сотрудничает с АНБ и ФБР.

Кроме того, когда дело доходит до фаерволов, OpenVPN очевидно имеет больше преимуществ, нежели SSTP. Почему? К примеру, есть не столь известный факт о SSTP. Как заявляют в Microsoft, протокол на самом деле не поддерживает аутентифицированные веб-прокси. Это означает, что администратор сети теоретически может обнаружить SSTP-заголовки и сбросить соединение, если используется не аутентифицированный прокси-сервер.

С точки зрения скорости поговаривают, что SSTP быстрее OpenVPN, но обоснованных доказательств этому пока нет. Безусловно, OpenVPN может быть довольно ресурсоёмким, но обычно так происходит при использовании TCP-порта (который также использует SSTP). Но при этом OpenVPN также может использовать порт UDP, который обеспечивает гораздо более высокую скорость.

OpenVPN также имеет преимущество по части кросс-платформенной поддержки, поскольку он работает на значительно большем количестве платформ. В свою очередь SSTP доступен только на Windows, Linux, Android и на маршрутизаторах. Тем не менее, стоит отметить, что SSTP изначально интегрирован в Windows, поэтому его проще настроить, чем OpenVPN.

В целом, как OpenVPN, так и SSTP являются достойным выбором, просто OpenVPN эффективнее.

Если вы хотите узнать больше о SSTP, ознакомьтесь с этой статьей.

OpenVPN или Wireguard

OpenVPN использует библиотеку OpenSSL для реализации всевозможных криптографических алгоритмов (наиболее популярным из них является AES-256). WireGuard использует современные фиксированные алгоритмы (вы не можете их изменить), чтобы якобы избежать неправильной конфигурации, которая приводит к уязвимостям безопасности. В целом они оба обеспечивают отличную безопасность.

WireGuard, без сомнения, быстрее OpenVPN. Его кодовая база намного легче (примерно 4000 строк по сравнению с 70000-600000 строк), и он более эффективно использует ядра ЦП. В наших тестах WireGuard был быстрее, даже когда мы использовали OpenVPN с UDP.

OpenVPN или SoftEther

Можно с уверенностью говорить, что и OpenVPN, и SoftEther являются действительно безопасными протоколами. Они распространяются с открытым исходным кодом, используют шифры военного уровня (AES), используют 256-битное шифрование, а также SSL 3.0. Основное различие между ними — их возраст. SoftEther намного новее OpenVPN. Из-за этого некоторым кажется, что OpenVPN намного надежнее.

С точки зрения скорости OpenVPN немного уступает SoftEther. На самом деле, согласно исследованию университета Цукуба (люди, стоящие за SoftEther VPN, поэтому не субъективный источник 100%), протокол SoftEther должен быть в 13 раз быстрее, чем протокол OpenVPN.

Оба протокола работают на приличном количестве платформ, но SoftEther кажется немного проще настраивать. Тем не менее, вам следует знать, что даже если вы пользуетесь услугами VPN-провайдера, который предлагает SoftEther, вам придётся скачивать дополнительный софт для работы этого протокола. В то время как в случае с OpenVPN это опционально.

Как и OpenVPN, SoftEther может запускать собственный сервер. Но при этом сервер SoftEther может работать как с протоколом OpenVPN, так и с другими протоколами, включая IPSec, L2TP/IPSec, SSTP и SoftEther. Сервер OpenVPN может работать только с собственным протоколом.

Вместо вердикта можно сказать, что SoftEther является хорошей альтернативой OpenVPN. Если по какой-либо причине вы не можете использовать OpenVPN, попробуйте SoftEther.

Если хотите узнать об этом больше, перейдите по этой ссылке.

OpenVPN или PPTP

Начать следует с того, что PPTP значительно слабее OpenVPN по части безопасности. В то время как OpenVPN может работать с 256-битными ключами шифрования и шифрами типа AES, PPTP может использовать только 128-битные ключи в связке с шифром MPPE. К сожалению, шифрование MPPE очень легко взломать. Ниже вы можете видеть лишь которые слабые места:

Кроме того, для аутентификации PPTP использует MS-CHAP-v1 (который не считается безопасным) или MS-CHAP-v2 (опять же, совсем небезопасным). OpenVPN намного безопаснее, так как для аутентификации использует лучшее шифрование (например SHA-256, SHA-384 или SHA-512).

Кроме того, PPTP довольно легко заблокировать с помощью фаервола. OpenVPN не может быть заблокирован системный администратором, поскольку использует порт HTTPS. Также не стоит забывать, что скорее всего АНБ может взломать PPTP-трафик.

По сути, единственное, в чём PPTP может быть лучше OpenVPN, это скорости интернета. А также в том, что протокол по умолчанию доступен на многих платформах. PPTP работает так быстро из-за низкого уровня шифрования. И хотя OpenVPN также поддерживает множество платформ, охват у него не настолько широкий, как у PPTP.

Тем не менее, стоит отметить, что в дальнейшим на новых операционных системах и устройствах уже может не быть поддержки PPTP. Например, этого протокола уже нет на устройствах macOS и iOS, начиная с macOS Sierra и iOS 10.

Если вы хотите узнать больше о протоколе PPTP, то у нас есть подробная статья на эту тему.

OpenVPN или L2TP/IPSec

Как и PPTP, L2TP/IPSec изначально доступен на многих платформах. Соответственно, настроить его намного проще, чем OpenVPN. Хотя, если вы используете VPN-Сервис, то вряд ли ощутите разницу. С другой стороны, L2TP/IPSec использует меньше портов, чем OpenVPN, и при этом не использует порт 443. Таким образом, протокол больше подвержен блокировке посредством фаервола NAT.

Openvpn как пользоваться

Хотя L2TP/IPSec не полностью принадлежит Microsoft (поскольку был разработан компанией Cisco), ему всё же нельзя доверять настолько, как OpenVPN, который распространяется с открытым исходным кодом. Кроме того, ранее Эдвард Сноуден заявлял, что L2TP был намеренно ослаблен по указанию АНБ.

И если уж говорить о безопасности, то вы должны знать, что сам по себе протокол L2TP предлагает абсолютно нулевое шифрование. Вот почему он всегда идёт в связке с IPSec. Кроме того, несмотря на то, что OpenVPN на TCP иногда может требовать достаточно много ресурсов, связка L2TP/IPSec также получается достаточно “тяжёлой” (в зависимости от того, насколько мощное у вас устройство). Это потому что протокол инкапсулирует данные дважды

Если вы хотите узнать больше о L2TP/IPSec, то вам поможет эта ссылка.

OpenVPN или IPSec

IPSec часто идёт в связке с L2TP и IKEv2, но вы можете найти VPN-Сервисы, которые предлагают эти протоколы по отдельности.

Итак, насколько он конкурирует с OpenVPN? Оба они предлагают одинаково достойный уровень безопасности. Тем не менее, вы должны быть более осторожны при настройке IPSec, поскольку небольшая ошибка может нарушить защиту. Кроме того, поскольку IPSec занимает пространство ядра (пространство на устройстве, зарезервированное для ОС), его уровень безопасности может быть ограничена производителем устройства. Это также делает IPSec менее совместимым, чем OpenVPN. Последний использует дисковое пространство (системная память, выделенная на приложения).

Как правило, IPSec доступен на многих платформах. Даже на тех, где OpenVPN нужно настраивать вручную. Естественно, это не проблема, если вы пользуетесь проверенным VPN-Сервисом. Также стоит отметить, что трафик IPSec иногда может блокироваться некоторыми фаерволами, в то время как UDP- или TCP-пакеты при OpenVPN не подвержены таким проблемам.

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

Хотите узнать больше об IPSec? Читайте эту статью.

OpenVPN или IKEv2/IPSec

OpenVPN и IKEv2 являются безопасными протоколами, но стоит отметить, что OpenVPN для защиты данных на транспортном уровне использует TLS/SSL, в то время как IKEv2 защищает данные на уровне IP. В принципе, разница незначительная, но об этом не будет лишним знать. И хотя IKEv2 был разработан Cisco совместно с Microsoft, это не такая уж большая проблема, так как есть реализации IKEv2 с открытым исходным кодом.

OpenVPN даёт преимущество в плане кросс-платформенной совместимости, но IKEv2 обычно является фаворитом среди мобильных пользователей, потому что он изначально был интегрирован в устройства BlackBerry. Кроме того, IKEv2, как правило, обеспечивает лучшую стабильность, чем OpenVPN, поскольку может противостоять изменениям в сети. Что это значит? Если, например, вы случайно переключились с WiFi на мобильный интернет, IKEv2 продолжит работать не обрывая соединения.

Кроме того, вам следует знать, что IKEv2 работает быстрее OpenVPN, но при этом его проще блокировать. Почему? Поскольку IKEv2 использует 500-й UDP-порт, системный администраторам легче вычислить его, чем порт 443, который обычно используется в OpenVPN.

В целом, мы бы сказали, что IKEv2 будет лучше OpenVPN, если вы часто пользуетесь мобильным телефоном. Особенно в путешествия за рубеж. В остальных случаях лучше все же пользоваться OpenVPN.

Если хотите узнать больше об IKEv2, перейдите по этой ссылке.

Итак, зачем вообще использовать OpenVPN и когда стоит это делать?

Основная причина использования протокола OpenVPN заключается в том, что он очень безопасный, действительно стабильный и работает на многих платформах. Большинство экспертов по безопасности рекомендуют всегда использовать OpenVPN при подключении к интернету. Как минимум потому, что это “прозрачный” протокол, то есть распространяется с открытым исходным кодом).

Openvpn как пользоваться

Подытожим — Что же такое OpenVPN?

OpenVPN — это и VPN-протокол с открытым исходным кодом, и VPN-программа, которая позволяет пользователям безопасно подключаться к интернету. Большинство VPN-Провайдеров предоставляют этот протокол, потому что он очень безопасен (использует библиотеку OpenSSL и 256-битное шифрование). При этом он отлично работает на множестве платформ. OpenVPN считается лучшим среди VPN-протоколов, и только SoftEther способен конкурировать с ним.

Как правило, мы рекомендуем выбирать поставщика VPN-услуг, который предлагает подключение через OpenVPN. Однако желательно, чтобы в его ассортименте были и другие VPN-протоколы на выбор.

Источник

OpenVPN, о котором вы так мало знали

OpenVPN, как много в этом слове. Мультиплатформенный, гибко настраиваемый, бесплатный VPN сервер с открытым исходным кодом, являющийся фактически стандартом «defacto» для организации доступа к внутренним корпоративным сетям. Большинство администраторов используют его с настройками по умолчанию или с типовыми конфигурациями широко описанными в разных HOW-TO. Но так ли прост OpenVPN, как он кажется на первый взгляд? В данной статье мы рассмотрим скрытые от глаз внутренние механизмы OpenVPN, которые кардинально меняют представление о его возможностях.

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

Большинство конфигураций для связи клиентов с сервером, а также между серверами, предполагает использование связки приватных или приватно/публичных ключей для обеспечения безопасности внутреннего трафика. Для корпоративных сетей в режиме MultiPoint-To-SinglePoint обычно используется свой центр сертификации PKI, который легко строится либо при помощи easy-rsa, либо на основе XCA. Для межсервенной коммуникации типа Point-to-point, в основном используется конфигурация с общим ключом. Вспомним основные, всем известные механизмы и возможности.

Основные механизмы и возможности

Сертификатная аутентификация

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

Приватные point-to-point ключи

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

Во всех случаях подключения для безопасности «рукопожатия» handshake между клиентом и сервером используется протокол Diffie-Hellmann.

Внешняя аутентификация пользователей

Для упрощения контроля за подключением пользователей, вместо схемы со своим PKI, можно использовать схему с внешней аутентификацией пользователей по логину/паролю. Данная схема удобна для аутентификации пользователей скажем по доменному логину/паролю. Для подключения к серверу в конфигурационный файл клиента добавляется сертификат сервера и ключ подписи передаваемых пакетов HARDENING OPENVPN SECURITY.
пример клиентского конфига

Часть серверного конфига для аутентификации клиентов через файл
Using alternative authentication methods

Данная схема удобна, но очень небезопасна.

Для повышения безопасности можно использовать подключаемые модули обеспечивающие проверку логина/пароля во внешних системах. Самым распространённым методом является системный PAM(Pluggable Authentication Modules).
В конфигурационный файл OpenVPN необходимо добавить строку

Маршрутизация

Т.к. основной задачей сервера является обеспечение доступа удалённых пользователей/серверов к внутренним ресурсам, сервер позволяет определять статическую маршрутизацию от клиентов к серверу и от сервера к клиентам. С точки зрения доступа клиентов к внутренним ресурсам, сервер при помощи протокола DHCP и директив «route» или «push route» позволяет передать клиенту маршруты внутренних сетей. Для оповещения самого сервера об удалённых сетях на стороне клиента используется «client config dir» (ccd), механизм позволяющий описать при помощи директивы «iroute» список внутренних сетей клиента, которые должны попасть в таблицу маршрутизации сервера для транзита в них трафика.

На этом «штатные» широкоиспользуемые возможности заканчиваются и начинается локальная кастомизация для каждого конкретного случая.

Дополнительные возможности OpenVPN

Рассмотрим дополнительные возможности OpenVPN, о которых может кто-то и слышал, но в реальности не видел или не использовал.

Безопасность сетей/Packet Filtering

Директивы блока (ACCEPT/DENY) задают действие по умолчанию для всех клиентов не указанных внутри блока.
Например файл для клиента user2

заблокирует трафик ко всем пользователям и сетям, но разрешит трафик в сторону клиента user1. Если у user1 не будет явным образом описано разрешение передачи трафика в сторону user2, то трафик будет ходить только в одну сторону user2->user1.

Или другой пример.
Отключить всё кроме доступа между пользователями и DNS сервером находящимся в локальной сети и тестовым контуром в сети 192.168.0.0/24

Механизм фильтрации активируется через конфигурационный файл, либо при подключении плагина «выставившего» флаг «OPENVPN_PLUGIN_ENABLE_PF».
Данную возможность мы обсудим позже.
Вторым режимом фильтрации трафика является встроенный в систему пакетный фильтр. Для его активации в конфиге не должно быть директивы «client-to-client». С точки зрения автоматизации включения/выключения необходимых правил при подключении/отключении клиентов удобнее всего использовать отдельные вставки в список правил, реализуемые либо через CHAINS в Iptables(Linux), либо в Anchors в PF(FreeBSD). Активация/деактивация правил обычно осуществляется через директивы client-connect/client-disconnect в конфигурационном файле сервера, вызывающие соответствующие скрипты при подключении/отключении пользователя.

Расширенная PAM аутентификация

Под расширенной PAM аутентификацией подразумевается изменение логики работы проверки логина и пароля пользователя. Достигается это либо установкой соответствующих плагинов для OpenVPN, обеспечивающих чтение и проверку данных во внешних источниках, либо подключением в систему библиотек позволяющих скриптовать любую логику. Одной из такой библиотек является pam_python, которая помогает скриптовать любую логику проверки логина/пароля через Python скрипты.
В случае её использования строка проверки пользователя меняется следующим образом.

Так как «под капотом» PAM находятся алгоритмы диалогов системы с пользователем или внешними библиотеками, то этими диалогами можно управлять. Например подключить OTP токены в систему. Библиотека LinOTP взята просто для примера, т.к. свою самописную библиотеку написанную во время тестирования я где-то потерял ¯\(ツ)
Также примеры легко гуглятся по слову «pam_python».
Основной проблемой при работе с внешними PAM модулями является невозможность получить сессионное окружение OpenVPN внутри вызываемого Python или любого другого скрипта, вызываемого через системный pam. Т.е. скрипт обеспечивает только те функции по проверке логина/пароля, которые на него возложены.

«Отложенная» аутентификация

Сервер OpenVPN поддерживает так называемую «отложенную» аутентификацию. «Отложенная» аутентификация используется в случаях, когда сервис аутентификации не может обслужить запрос проверки логина/пароля в реальном режиме времени.

Плагины OpenVPN

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

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

Остановимся поподробнее на каждой группе. Логику работы мы будем рассматривать на основе парольной аутентификации пользователя.
При старте сервера, после чтения конфигурационного файла, сервер вызывает функции OPENVPN_PLUGIN_UP и OPENVPN_PLUGIN_ROUTE_UP. В переменном окружении вызываемых функций передаются основные параметры запущенного сервера.

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

Как видно из дампа, появилась переменная pf_file. В данном файле должны находиться правила внутреннего пакетного фильтра для текущей обрабатываемой сессии.
Далее проверяется логин и пароль пользователя в функции OPENVPN_PLUGIN_AUTH_USER_PASS_VERIFY

Это единственное место где пароль в переменном окружении присутствует в открытом виде.
Результатом работы данной функции должны быть три варианта ответа.

Если сервер получает ответ OPENVPN_PLUGIN_FUNC_DEFERRED, то в работу вступает механизм «отложенной» аутентификации. Как мы видим, в переменном окружении появилась переменная «auth_control_file», содержимое данной переменной содержит имя файла, в котором будет ожидаться ответ от системы аутентификации. Ответом является помещённый в указанный файл символ 0(для разрешения доступа), 1(для запрета доступа). Параметр сервера «hand-window» определяет таймаут в секундах, в течении которого сервер будет ожидать ответ. Во время ожидания трафик от других клиентов не прерывается.

Так как мы работаем с парольной аутентификацией, то функции проверки сертификатов OPENVPN_PLUGIN_TLS_VERIFY не вызывается. Вместо этого сразу вызывается OPENVPN_PLUGIN_TLS_FINAL, подтверждающий установление сессии.

Далее срабатывает вызов OPENVPN_PLUGIN_IPCHANGE, вызываемый перед сменой ip адреса клиента.

Функция OPENVPN_PLUGIN_CLIENT_CONNECT_V2, вызывается при установке IP адреса внутренним DHCP сервером.

В переменном окружении появляются переменные содержащие параметры туннеля «ifconfig_pool_local_ip» и «ifconfig_pool_remote_ip».

Функция OPENVPN_PLUGIN_LEARN_ADDRESS вызывается при обучении OpenVPN сервером, связки IP адресов и маршрутов к ним. После выхода из этой функции активируется процедура применения настроек пакетного фильтра из файла. Переменное окружение OPENVPN_PLUGIN_LEARN_ADDRESS при этом соответствует фазе OPENVPN_PLUGIN_CLIENT_CONNECT_V2.

При отключении клиента вызывается функция OPENVPN_PLUGIN_CLIENT_DISCONNECT.

В переменном окружении добавляются длительность соединения и трафик пользователя.

Как вы успели заметить, в связи с обилием данных в разных вызовах, написание и отладка плагина на языке программирования C(C++) будет довольно трудоёмкой задачей.
Для расширения функционала было решено сделать «чудо» сначала для внутреннего проекта, а потом выложить его в свободный доступ 🙂
После долгого чтения исходных кодов OpenVPN и различных примеров узкоспециализированных плагинов, был написан проект, который в качестве языка программирования логики обработки сессии использует Python. Код представляет собой подключаемый к OpenVPN плагин на языке C, который все запросы поступающие в плагин, отправляет в Python модуль через c-api reference.

Python c-api reference работая с python файлами напрямую, некорректно работает с загрузкой python библиотек.

При инициализации плагина в OpenVPN, плагин возвращает масочный список всех функций, которые может обслужить. При наступлении очередной фазы подключения или внутреннего события, OpenVPN вызывает соответствующие функции из плагина. Плагин преобразует переменное окружение и параметры переданные функции в структуру, инициализирует python и передаёт структуру в соответствующую процедуру python модуля. Процедура возвращает плагину один из трёх ответов (0 — Success, 1 — Error, 2 — Deferred). Ответ транформируется и возвращается OpenVPN.

Обратите внимание, что все вызовы модуля являются «stateless», это означает, что процедуры не помнят и не знают, что происходило ранее в других вызовах. Ориентироваться можно только на переменное окружение передаваемое плагину из OpenVPN.

Внутри python модуля вы можете реализовать любую логику, подключая нужные библиотеки и ресурсы. Если вы не уверены в скорости выполнения проверок, то используйте «отложенные» подтверждения.

Используя группировку пользователей подключаемых к сервису, через pf_file можно довольно тонко настроить сетевое взаимодействие между пользователями и другими ресурсами. В свою очередь подключив плагин на мониторинг, всегда можно будет через management интерфейс OpenVPN управлять сессиями клиентов.

Во время тестирования проекта был разработан механизм генерации паролей, аналогичный jwt токенам, но имеющим меньший размер.

Суть проста. Токен содержит в себе идентификатор клиента и срок окончания доступа. Для подписи токена используется HMAC_SHA1 с закрытым ключом. После подписи токена, текстовое содержимое ксорится подписью и конвертится в base64. Таким образом получается «запечатывание» токена. «Запечатанный» токен используется в качестве пароля пользователя. При несанкционированном изменении блока с данными, поломается xor, если поломается xor, значит поломается проверка подписи. Без закрытого ключа подпись изменить не получится.

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

Надеюсь информация в данной статье была вам полезна.
Спасибо за потраченное на её прочтение время.
Если есть вопросы, попробую ответить на что смогу.

© Aborche 2019
Openvpn как пользоваться

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Инструкция по настройке сервера и клиента OpenVPN

Оглавление

Обход блокировок с помощью российских VPS

Начнём с небольшого лайф-хака: если у вас уже есть VPS (виртуальный частный сервер – разновидность хостинга, когда в отличие от совместного (shared-хостинга) вам в аренду дают не папку на сервере, а целую виртуальную машину, в которую вы можете установить любую операционную систему и настроить её как вам заблагорассудится), так вот, если у вас уже есть VPS и даже если виртуальный сервер находится в РФ, то весьма вероятно, что он подойдёт для обхода блокировок Роскомнадзора.

Чтобы это проверить, необязательно настраивать VPN – подключитесь к вашему удалённому серверу (например, по SSH) и попробуйте выполнить что-то вроде:

Вполне вероятно, что вы получите HTML код страницы заблокированного ресурса – это означает, что на вашем российском VPS можно настроить VPN для обхода блокировок.

В принципе, причина очевидна: оборудование для блокировок заставили установить только провайдеров «последней мили». Т.е. это разные ростелекомы, билайны и т.п. – те, кому вы платите за Интернет.

У кого есть российские VPS – пишите в комментариях, у вас через VPS открываются заблокированные сайты или нет? Будет интересно собрать некоторую статистику. Также указывайте, настроен ли IPv6 – возможно, дело просто в этом.

Только не думайте, что я агитирую арендовать именно российские VPS для обхода блокировок – нет, просто если вы веб-мастер и у вас УЖЕ ЕСТЬ такой сервер, то вы можете сэкономить несколько долларов в месяц, обойдясь без аренды зарубежного VPS под VPN.

Для чего нужен VPN, что он даёт

VPN создаёт соединение между одним или несколькими компьютерами. Это соединение использует надёжное шифрование. В результате чего, можно безопасно передавать данные используя ненадёжные соединения. Например, при подключении к открытой Wi-Fi сети, ваш трафик подвержен сниффингу, как со стороны других устройств локальной сети, так и со стороны тех, кто даже не подключился к этой сети – достаточно перехватывать беспроводной трафик, не подключаясь к ней. Но если вы после подключения к открытой сети начинаете использовать VPN, то ваш трафик передаётся в зашифрованном виде.

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

Как работает VPN

Технология VPN позволяет объединять несколько устройств в безопасную сеть.

В своей работе VPN использует разделение на сервер и клиент. У одного сервера может быть несколько клиентов, которые объединены в виртуальную частную сеть, где они могут безопасно обмениваться данными.

Если какому-то клиенту нужно получить доступ к глобальной сети, то он обращается к серверу VPN, этот сервер получает для него данные и перенаправляет запросившему клиенту. Благодаря такой работе, VPN часто используется для сокрытия IP и для обхода блокировки.

К примеру, если вы настроили VPN сервер на компьютере (к примеру, на VPS – виртуальном частном сервере), находящемся не в РФ, то при выходе в Интернет, этот сервер будет запрашивать для вас информацию, в результате, ваш IP адрес будет скрыт (будет показываться IP адрес удалённого сервера), а поскольку для зарубежных компьютеров не работают российские блокировки, то вы сможете получить доступ к любому сайту, который вы не можете открыть напрямую.

Что такое OpenVPN

OpenVPN – это бесплатная программа с открытым исходным кодом, которая реализует технологию VPN. Эта программа имеет и клиентскую часть, и серверную. Работает на различных операционных системах, в том числе на Linux и Windows.

Благодаря распространённости, даже существуют роутеры, которые поддерживают OpenVPN.

Понятная и рабочая инструкция по настройке OpenVPN

Я попытался максимально понятно описать каждый шаг. Если у вас возникли вопросы, то пишите их в комментариях.

Я не поленился и проверил работоспособность OpenVPN сервера на двух VPS’ках под управлением Arch Linux (мой основной виртуальный сервер) и Debian (специально арендовал для написания инструкции), а также проверил клиенты под управлением Windows, Debian (Kali Linux, Ubuntu), Arch Linux.

Т.е. если у вас не получается или возникают ошибки, то попробуйте выполнять операции более внимательно. Если это не помогает – то пишите в комментариях – попробуем разобраться вместе.

При всей своей детальности, эта инструкция не для полных нубов, как минимум вы:

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

Сертификаты OpenVPN

Мы будем настраивать OpenVPN так, что в своей работе программа будет использовать сертификаты. Это очень надёжный способ как зашифровать передаваемый трафик, так и защитить подключение к серверу.

Настройка OpenVPN будет понятнее, если уяснить криптографические основы.

В криптографии есть понятие симметричного шифрования и асимметричного шифрования.

Пример симметричного шифрования: для шифрования используется пароль, для расшифровки используется этот же самый пароль.

При ассиметричном шифровании, данные зашифровываются одним ключом, а расшифровываются другим.

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

Если у двух сторон имеется по своему собственному приватному ключу, и они обменялись публичными ключами, то перед отправкой данных они шифруют их публичным ключом другой стороны. Такие зашифрованные данные может расшифровать только истинный получатель – владелец приватного ключа.

Но это не всё. Пары ключей нельзя создавать просто так – они должны быть подписаны центром авторизации (certification authority (CA)). Для подписания сертификатов, центр сертификации использует свой собственный приватный ключ. А чтобы можно было проверить, что сертификат действительно подписан уполномоченным центром сертификации, распространяется публичный ключ (сертификат) этого CA.

Итак, получается что:

Сертификаты при этом не являются секретными, а приватные ключи должны быть секретными!

Получается уже семь обязательных файлов.

Именно это количество файлов и может вызвать путаницу. Но если понимать, какой файл для чего используется, то проблем не возникает.

Если кому-то интересно, посмотрите соответствующие статьи в Википедии (если вам это не совсем понятно, то не переживайте, свой VPN мы всё равно настроем):

После создания всех сертификатов, нужно настроить непосредственно сервер и клиент. Эта настройка заключается в том, что сгенерированные файлы ключей нужно скопировать в правильное расположение на сервере и клиентах (у каждого из клиентов по своей паре публичный-приватный ключ) и указать путь до файлов с ключами, указать IP подключения и некоторые другие опции.

Как установить OpenVPN

В разные системы OpenVPN ставится чуть по-разному. В Linux мы одновременно устанавливаем и сервер, и клиент. В Windows мы будем работать только с клиентом. Т.е. вам нужно выполнить установку и на сервер, и на клиентскую машину. Например, если у вас VPS с Linux, а пользоваться VPN вы будете с домашнего компьютера под управлением Windows, то устанавливайте OpenVPN на оба компьютера как это писано для каждой системы ниже.

Установка OpenVPN в Debian, Ubuntu, Linux Mint, Kali Linux

Для установки пакетов достаточно выполнить следующие команды (рекомендуется, чтобы предварительно система была обновлена и перезагружена):

Установка OpenVPN в Arch Linux, BlackArch

Установка выполняется следующей командой:

Установка OpenVPN в Windows

Для Windows имеется OpenVPN с графической оболочкой. Перейдите на страницу https://openvpn.net/community-downloads/, найдите там файл «WINDOWS INSTALLER (NSIS)» и скачайте установщик с расширением .exe. Или скачайте последнюю версию по прямой ссылке http://build.openvpn.net/downloads/releases/latest/openvpn-install-latest-stable.exe

Установка выполняется как обычно для Windows программ с мастером установки.

Обратите внимание, что при желании вы можете поставить галочку напротив «EasyRSA 2 Certificate Management Scripts». Это программа и скрипты для генерирования ключей. В этой инструкции ключи мы будем генерировать на Linux машине, т.е. эти скрипты нам не понадобятся, но при желании вы можете их установить.

Openvpn как пользоваться

Решение проблемы с ошибкой «OpenVPN GUI не поддерживает более 50 конфигураций. Пожалуйста свяжитесь с автором, если вам нужно больше.»

Возможно возникновение ошибки:

Для её исправления зайдите в папку C:\Program Files\OpenVPN\config\ и удалите оттуда файлы. Эти файлы могла оставить сборка на основе OpenVPN.

Создание ключей OpenVPN

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

Для простоты, я буду выполнять действия на одной системе (на OpenVPN сервере), а потом перенесу клиентские ключи на нужный компьютер.

Имя файлаНужен дляЦельСекретный
ca.crtсервер + все клиентыПубличный ключ (сертификат) корневого центра сертификации (CA)НЕТ
ca.keyтолько для машины, подписывающей ключиПриватный ключ корневого центра сертификации (CA)ДА
dh.pemтолько серверПараметры Диффи ХеллманаНЕТ
ta.keyсервер + все клиентыHMAC подпись к пакетам SSL/TLSДА
server.crtтолько серверСертификат (публичный ключ) сервераНЕТ
server.keyтолько серверПриватный ключ сервераДА
client1.crtтолько client1Сертификат (публичный ключ) Client1НЕТ
client1.keyтолько client1Приватный ключ Client1ДА
client2.crtтолько client2Сертификат (публичный ключ) Client2НЕТ
client2.keyтолько client2Приватный ключ Client2ДА
client3.crtтолько client3Сертификат (публичный ключ) Client3НЕТ
client3.keyтолько client3Приватный ключ Client3ДА

Ключи могут генерироваться на любой операционной системе – они будут работать также на любой ОС. Например, сервер работает на Arch Linux и ключи созданы на нём, а затем клиентские ключи передаются в ОС под управлением Windows или Ubuntu.

В зависимости от вашей системы, выберите нужную инструкцию: для производных Debian или для производных Arch Linux.

Создание ключей OpenVPN в Debian, Ubuntu, Linux Mint, Kali Linux

Начинаем с инициализации центра сертификации:

Нужно будет придумать и два раза ввести пароль от 4 до 1023 символов.

Будет создано два файла:

Первый (ca.crt) – это сертификат, т.е. открытый ключ центра сертификации. Он нужен и для сервера и для каждого клиента – с помощью него они будут проверять, что публичные ключи других действительно подписаны центром сертификации и что не появился кто-то «левый», не одобренный центром сертификации.

Создаём папку, где будут все сертификаты сервера OpenVPN:

и сразу копируем туда первый файл:

Создание ключей OpenVPN сервера

Теперь нам нужно сгенерировать пару ключей OpenVPN сервера.

Нужно подписать сертификат ключами Центра Сертификации, для этого:

Будет задан вопрос, точно ли мы хотим подписать, наберите yes, затем введите пароль от Центра Сертификации (CA).

Когда появится фраза:

Нужно будет ввести пароль Центра Регистрации, который установили на предыдущем шаге.

Копируем в нужную папку файлы, которые нужны для запуска сервера OpenVPN:

Файл параметров Diffie-Hellman (DH) нужен для протокола обмена публичными ключами.

Создайте ключ HMAC:

Теперь у нас 5 файлов, необходимые для запуска сервера OpenVPN, размещены в папке /etc/openvpn/certs/. Проверьте, все ли файлы на месте:

Openvpn как пользоваться

Создание и подпись ключей клиентов OpenVPN

Аналогично нужно будет ответить на вопрос yes и ввести пароль вашего Центра Сертификации.

Теперь с сервера скачайте файл /etc/openvpn/certs/ca.crt и разместите его по этому же пути, т.е. /etc/openvpn/certs/ca.crt на клиентской машине.

С сервера скачайте файл /etc/openvpn/certs/ta.key и разместите его по этому же пути, т.е. /etc/openvpn/certs/ta.key на клиентской машине.

С сервера скачайте файл /usr/share/easy-rsa/pki/issued/client1.crt, но в клиентской машине разместите его по пути /etc/openvpn/certs/client1.crt.

С сервера скачайте файл /usr/share/easy-rsa/pki/private/client1.key, но в клиентской машине разместите его по пути /etc/openvpn/certs/client1.key.

Файлы можно открывать текстовым редактором и копировать-вставлять на клиентскую машину.

Проверьте, все ли файлы на месте (на клиенте должно быть четыре файла):

Итак, если вы создали ключи в Debian (или производных), то вам не нужно создавать ключи в Arch Linux, т.е. пропустите следующий раздел.

Если вышеприведённые команды вызвали ошибку, значит у вас старая версия easy-rsa, в ней должны работать следующие команды:

Будет создано два файла:

Первый (ca.crt) – это сертификат, т.е. открытый ключ центра сертификации. Он нужен и для сервера и для каждого клиента – с помощью него они будут проверять, что публичные ключи других действительно подписаны центром сертификации и что не появился кто-то «левый», не одобренный центром сертификации.

Создаём папку, где будут все сертификаты сервера OpenVPN:

и сразу копируем туда первый файл:

Создание ключей OpenVPN сервера

Теперь нам нужно сгенерировать пару ключей OpenVPN сервера.

Все значения можно оставить по умолчанию. Положительно отвечаем на два запроса:

Копируем в нужную папку файлы, которые нужны для запуска сервера OpenVPN:

Файл параметров Diffie-Hellman (DH) нужен для протокола обмена публичными ключами.

Создайте ключ HMAC:

Теперь у нас 5 файлов, необходимые для запуска сервера OpenVPN, размещены в папке /etc/openvpn/certs/. Проверьте, все ли файлы на месте:

Openvpn как пользоваться

Создание ключей клиентов OpenVPN

Все значения можно оставить по умолчанию. Положительно отвечаем на два запроса:

Теперь с сервера скачайте файл /etc/openvpn/certs/ca.crt и разместите его по этому же пути, т.е. /etc/openvpn/certs/ca.crt на клиентской машине.

С сервера скачайте файл /etc/openvpn/certs/ta.key и разместите его по этому же пути, т.е. /etc/openvpn/certs/ta.key на клиентской машине.

С сервера скачайте файл /usr/share/easy-rsa/keys/client1.crt, но в клиентской машине разместите его по пути /etc/openvpn/certs/client1.crt.

С сервера скачайте файл /usr/share/easy-rsa/keys/client1.key, но в клиентской машине разместите его по пути /etc/openvpn/certs/client1.key.

Файлы можно открывать текстовым редактором и копировать-вставлять на клиентскую машину.

Проверьте, все ли файлы на месте (на клиенте должно быть четыре файла):

Итак, если вы создали ключи в Debian (или производных), то вам не нужно создавать ключи в Arch Linux, т.е. пропустите следующий раздел.

Создание ключей OpenVPN в Arch Linux, BlackArch

Создание ключей центра сертификации

Начинаем с инициализации центра сертификации:

Следующей командой мы инициализируем инфраструктуру открытых ключей:

Нас предупредят, что предыдущая инфраструктура будет удалена, и что если мы хотим продолжить, то должны набрать yes.

Генерируем ключи центра сертификации:

Нужно будет придумать и два раза ввести пароль от 4 до 1023 символов.

Будет создано два файла:

Первый (ca.crt) – это сертификат, т.е. открытый ключ центра сертификации. Он нужен и для сервера и для каждого клиента – с помощью него они будут проверять, что публичные ключи других действительно подписаны центром сертификации и что не появился кто-то «левый», не одобренный центром сертификации.

На серверной машине этот файл должен быть по пути /etc/openvpn/certs/ca.crt, поскольку у меня CA и сервер это одна машина, то я создаю папку, где будут все сертификаты сервера OpenVPN:

и сразу копирую туда первый файл:

Создание ключей OpenVPN сервера

Теперь нам нужно сгенерировать пару ключей OpenVPN сервера. Если вы это делаете на другой машине, то необходимо выполнить начальную инициализацию:

Я все операции делаю на одном компьютере, поэтому перехожу сразу к следующему шагу:

Нужно будет ввести имя сервера – я оставляю значение по умолчанию.

Будут созданы два файла:

Первый – это приватный ключ сервера OpenVPN, который нужно хранить в секрете и который можно сразу переместить в нужное место, поскольку он не требует каких-либо дальнейших обработок. Если у вас OpenVPN сервер на другой машине, то разместите этот файл в папке /etc/openvpn/certs/, для этого создайте её:

Поскольку у меня CA и сервер это одна машина, то я сразу перемещаю файл в нужное место:

Но файл servername.req является файлом запроса, который будет подписан центром сертификации. Поэтому если у вас центр сертификации на другом компьютере, то перенесите его туда в папку /etc/easy-rsa/pki/reqs/, если у вас центр сертификации на этом же компьютере, то оставьте их где они лежат.

Файл параметров Diffie-Hellman (DH)

Этот файл нужен для протокола обмена публичными ключами.

На серверной машине OpenVPN создайте файл dh2048.pem командой:

Помните: можно использовать значения большие чем 2048 (например, 4096), но для создания требуется значительно больше времени, а для безопасности особо ничего не добавляется; рекомендуется иметь длину главного номера DH соответствующей длине RSA ключа.

Опять же на серверной OpenVPN машине создайте ключ HMAC:

Он будет использоваться для добавления дополнительной HMAC подписи к пакетам SSL/TLS рукопожатия. Как результат, любые UDP не имеющие корректной HMAC подписи будут немедленно отброшены, защищая от:

Создание ключей клиентов OpenVPN

Клиентские файлы можно генерировать на любой машине. Если ещё не инициализирован центр сертификации, то делаем это:

Генерируем клиентский приватный ключ и файл запроса:

Будет создано два файла:

Первый – это приватный ключ, его нужно скачать на компьютер клиента сервера OpenVPN, а второй – файл запроса, его нужно подписать, чтобы был создан сертификат клиента. Поэтому если у вас центр сертификации на другом компьютере, то перенесите его туда в папку /etc/easy-rsa/pki/reqs/, если у вас центр сертификации на этом же компьютере, то оставьте их где они лежат.

Можно создать столько пар для клиентов, сколько нужно – у каждого клиента должны быть свои собственные пары публичный-приватный ключ.

Подписывание сертификатов центром сертификации

Теперь нам нужно подписать файлы запросов сервера и клиентов, чтобы получились сертификаты (публичные ключи), а также разместить файлы по нужным папкам. Начнём с подписи.

Если у вас центр сертификации расположен на отдельной машине, то перенесите на неё файлы запросов .req в папку /etc/easy-rsa/pki/reqs/

Теперь в центре сертификации выполните:

Openvpn как пользоваться

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

В результате будут созданы следующие файлы:

Ставшие ненужными файлы запросов можно удалить:

Перемещаем файлы сервера:

В результате на сервере файлы ключей размещены в правильной директории.

Проверьте, все ли файлы на месте (на клиенте должно быть пять файлов):

Загрузка файлов на клиентские машины

Файлы можно открывать текстовым редактором и копировать-вставлять на клиентскую машину.

Проверьте, все ли файлы на месте (на клиенте должно быть четыре файла):

Размещение файлов ключей на сервере и на клиенте

Итак, всего на сервере должно быть пять файлов и они должны быть размещены в следующих директориях:

Проверьте, все ли файлы на месте:

Openvpn как пользоваться

На клиентской машине должны быть следующие файлы, и в случае Linux разместите их так:

Проверьте, все ли файлы на месте:

Openvpn как пользоваться

Файлы можно скачать используя программу scp или любым другим способом. Также их содержимое можно копировать-вставлять, поскольку они представляют собой обычный текст.

Для Windows машин создайте папку C:\Program Files\OpenVPN\certs\ и разместите там эти файлы:

Openvpn как пользоваться

Запуск сервера OpenVPN

Это универсальная инструкция для Debian, Ubuntu, Linux Mint, Kali Linux, Arch Linux и их производных.

Конфигурационный файл OpenVPN

В архиве /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz или в папке /usr/share/openvpn/examples/ имеются примеры файлов настройки. Оттуда можно взять файл server.conf и настроить его под свои нужды. Если вы действовали по этой инструкции, то можете просто создать новый файл /etc/openvpn/server/server.conf

и скопируйте туда:

Сохраните и закройте файл.

Тестирование и запуск сервера OpenVPN

Протестировать настройки OpenVPN сервера можно так:

Если есть ошибки в файле конфигурации, то программа сразу завершиться с ошибкой. Для решения проблем включите логи в файле настроек, увеличьте вербальность до 6 и изучайте журнал ошибок:

А если всё в порядке запустите OpenVPN сервер и добавьте его в автозагрузку

Openvpn как пользоваться

Если вы следовали этой инструкции и не меняли название файла, то вышеприведённые команды вам подойдут, их не нужно менять.

Если вы столкнулись с ошибкой:

То из файла /etc/openvpn/server/server.conf

Причина ошибки в том, что поддержка директивы explicit-exit-notify 1 была добавлена в OpenVPN начиная с версии 2.4. А на вашей машине, очевидно, OpenVPN более старой версии.

Если вы столкнулись с ошибкой «Address already in use», например:

Это означает, что порт занят другой программой. Проверить, какая программа использует порт, можно командой:

К примеру, для проверки порта 53:

Используйте любой другой, не занятый порт – для этого в конфигурационных файлах OpenVPN сервера и клиента отредактируйте директиву port 53.

Включение маршрутизации трафика на OpenVPN сервере

На данном этапе, если бы кто-то подключился к OpenVPN серверу, то он не сможет подключаться к глобальной сети. Чтобы это стало возможным нужно настроить маршрутизацию трафика.

Для этого создайте файл vpn_route.sh.

Обратите внимание, что я создаю скрипт в папке /root/bin/, если у вас её нет, то создайте её предварительно

Если вы хотите разместить скрипт в другой папке, то отредактируйте последующие данные под свои.

B этот файл скопируйте следующее содержимое, отредактировав его под свои нужды. Обратите внимание на:

Если вы не впишите имя, то есть вероятность, что при загрузке компьютера скрипт не сможет автоматически получить имя сетевого интерфейса и поэтому маршрутизация трафика не будет работать правильно!

Сделайте файл исполняемым:

Чтобы изменения вступили прямо сейчас, до перезапуска компьютера, выполните:

Если всё нормально, то для добавления его в автозагрузку создайте файл /etc/systemd/system/enable-openvpn-routing.service:

Со следующим содержимым:

Обратите внимание на строку /root/bin/vpn_route.sh – замените её на свой путь, если мы разместили файл в другом месте или назвали его по-другому.

И активируйте автозапуск этого файла:

Настройка клиентов OpenVPN сервера

Настройка Windows для использования OpenVPN

Как уже было сказано, необходимые ключи должны быть размещены в следующих папках:

Теперь в папке C:\Program Files\OpenVPN\config\ создайте файл client.ovpn со следующим содержимым:

ВНИМАНИЕ: замените в строке remote 185.117.153.79 IP адрес на свой.

Теперь выберите подключение «client» и нажмите «Подключиться»:

Openvpn как пользоваться

Свой IP вы можете проверить на сайте https://suip.biz/ru/?act=myip

Openvpn как пользоваться

Настройка Debian (Ubuntu, Linux Mint, Kali Linux), а также Arch Linux( BlackArch) для использования OpenVPN

Это универсальная инструкция для всех производных Debian и Arch Linux по подключению к OpenVPN.

Теперь настроем клиента, который будет пользоваться OpenVPN на Linux. Как это было сказано почти в самом начале, пакет OpenVPN у вас уже должен быть установлен.

Сгенерированные ключи должны быть в этих файлах:

Если у вас нет папки /etc/openvpn/certs/, то создайте её:

И скопируйте туда все необходимые ключи.

Проверьте, все ли файлы на месте (4 файла):

Создайте файл /etc/openvpn/client/client.conf

И скопируйте туда (обязательно поменяйте IP адрес в строке remote 185.117.153.79 на IP адрес ВАШЕГО OpenVPN сервера) :

Протестировать настройки OpenVPN клиента можно так:

Openvpn как пользоваться

Слова «Initialization Sequence Completed» говорят о том, что подключение прошло успешно.

Если по каким-то причинам нет Интернета, то проверьте, пингуются ли IP

и пингуются ли имена хостов:

Если пинг к IP проходит, а к именам хостов – нет, то откройте файл /etc/resolv.conf:

И замените его содержимое на:

А если всё в порядке запустите клиент OpenVPN в фоне и при желании добавьте его в автозагрузку. Это необязательно – вы можете подключаться к OpenVPN только по мере необходимости.

Openvpn как пользоваться

Добавление в автозагрузку:

Если нужно остановить, то введите:

Если нужно отключить из автозапуска, то выполните:

Сертификаты необязательно должны быть в отдельных файлах. Сертификат можно внедрить прямо в файл .ovpn и, на самом деле, это очень удобно! То есть для распространения конфигурации среди клиентов OpenVPN сервера не нужно передавать пять файлов (настройки и четыре сертификата) достаточно передать только один файл настроек, в который уже встроены сертификаты.

Openvpn как пользоваться

OpenVPN позволяет включать файлы в главный конфигурационный файлы, которые указываются опциями —ca, —cert, —dh, —extra-certs, —key, —pkcs12, —secret, —crl-verify, —http-proxy-user-pass, —tls-auth и —tls-crypt.

Пример использования встроенного сертификата:

Рассмотрим конкретно для нашей конфигурации. Мы используем четыре сертификата:

Эти четыре строки нужно удалить из конфигурационного файла. Обратите внимание, что с tls-auth после имени файла стоит цифра один – это дополнительная опция и чтобы она не была потеряна, к уже имеющимся опциям добавьте в ваш .ovpn файл строку:

Теперь прямо в файл .ovpn добавьте:

Где вместо многоточий […] вставьте соответствующие сертификаты/ключи полностью, вместе с комментариями. Получается примерно так:

Теперь файл настроек .ovpn можно загружать в различные клиенты OpenVPN: на телефон, например, или на другой компьютер – отдельные файлы сертификатов больше не нужны.

Информация о выходе новых версий OpenVPN

Информация о выходе новых версий, а также другой интересный материал об OpenVPN на форуме.

Заключение

Если у вас нет своего VPS, и вы хотите его купить прямо сейчас, то пара ссылок:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *