Openvpn для windows и андроид. установка openvpn клиента для windows

Настройка сервера

Для установки OpenVPN-сервера выполните:

emerge openvpn

Подготовка ключей и сертификатов

Создайте директорию сертификатов:

mkdir /etc/openvpn/keys

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

cp /var/calculate/easy-rsa/pki/ca.crt /etc/openvpn/keys/

cp /var/calculate/easy-rsa/pki/dh.pem /etc/openvpn/keys/

cp /var/calculate/easy-rsa/pki/issued/server.crt /etc/openvpn/keys/

cp /var/calculate/easy-rsa/pki/private/server.key /etc/openvpn/keys/

cp /var/calculate/easy-rsa/pki/ta.key /etc/openvpn/keys/

Настройка сервера

Отредактируйте файл настроек OpenVPN-сервера следующим образом:

/etc/openvpn/openvpn.conf

# порт, протокол, устройство, метод сжатия
port 1194
proto udp
dev tun
compress lzo
# ключи и сертификаты
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh.pem
tls-auth keys/ta.key 
# диапазон выделяемых IP, маршрут по умолчанию, DNS
server 192.168.10.0 255.255.255.0
# топология сети
topology subnet
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
# перезапуск туннеля при необходимости
keepalive 10 120
# права демона openvpn
user openvpn
group openvpn
# оставлять без изменений устройство и файлы ключей при перезапуске туннеля
persist-tun
persist-key
# информация о текущих соединениях
status /var/log/openvpn-status.log

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

Важно

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

Запустите сервер и добавьте в автозапуск:

/etc/init.d/openvpn start

rc-update add openvpn

Настройка маршрутизации

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

/etc/sysctl.conf

net.ipv4.ip_forward = 1

Для принятия изменений выполните:

sysctl -p /etc/sysctl.conf

Передача клиенту опции заставит весь IP-трафик, порождаемый на клиентской машине, пройти через сервер OpenVPN. Сервер должен быть настроен на обработку этого трафика — например, путем отправки в Интернет через NAT. Чтобы направить трафик клиента в Интернет через NAT, выполните:

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

Вместо eth0 укажите локальный сетевой интерфейс сервера.

Сохраните правила маршрутизации и добавьте их в автозапуск:

/etc/init.d/iptables save

rc-update add iptables

Недостатки

Конечно, OpenVPN не является идеальным протоколом VPN — и есть некоторые недостатки, о которых вы должны помнить.

Итак, вот минусы использования OpenVPN.

  • Требует сложной ручной настройки.В общем, энтузиасты кибербезопасности — это те, кто в первую очередь заинтересован в этом протоколе VPN. Если вы решите настроить его самостоятельно, скоро столкнетесь с сотнями страниц сложных инструкций. Конечно, если вы обращаетесь к стороннему VPN-сервису, эта конфигурация выполняется в фоновом режиме — без участия пользователя.
  • Нуждается в дополнительном программном клиенте.OpenVPN не является частью какой-либо ОС.  Итак, чтобы использовать этот протокол VPN, вам придется установить дополнительное ПО на ваше устройство. Этот недостаток несколько смягчается наличием VPN-сервисов.
  • Может привести к снижению скорости соединения.Благодаря невероятно надежному шифрованию OpenVPN может иногда приводить к сбоям, связанным со скоростью вашего веб-соединения.

Настройка VPN-подключения

Итак, что нам здесь нужно. Логинимся в аккаунт Express VPN, переходим на эту страницу, и смотрим в левую часть, где перечислены все системы, куда можно поставить VPN.

Выбираем “настройка вручную”:

Справа выбираем либо Open VPN либо PPTP & L2TP-IPSec. Рассмотрим второй вариант как самый интересный (чуть ниже бегло пройдёмся и по Open VPN).

Логин пароль запоминаем – он нам пригодится (можно копировать куда-то, можно пока не трогать – они не меняются), выбираем сервер (копируем его доменное имя). Теперь идём в настройки роутера.

Итак, нам нужно создать подключение. Адрес сервера мы только что скопировали, логин/пароль я сказал, где посмотреть, а секретный ключ  – 12345678. Это у них там тоже выше списка серверов написано.

Идём в настройки роутера, вкладку “Подключения” или “Другие подключения” (на новой прошивке – второе). Создаём подключение, обязательно указываем, что оно должно выводить нас в интернет, указываем любое имя подключения (это просто для нашего удобства – можно вводить туда имя провайдера VPN или что угодно), тип (в данном случае – L2TP/IPSec). Тут стоит отметить, что по умолчанию в роутере может не быть L2TP/IPSec (именно с IPSec) – тогда нужно установить в компонентах с той же вкладки, где обновляется прошивка роутера. Там есть кнопка “Изменить набор компонентов”.

Настройка списка компонентов в старых прошивкахНастройка списка компонентов в прошивке 2.12

Смотрим список компонентов, ищем строчку с L2TP/IPSec, устанавливаем, ждём пока роутер всё настроит и перезагрузится, возвращаемся к настройке подключения.

Выделенные стрелочками компоненты нам нужны. Серверные компоненты можно не качать (мы настраиваем клиент).

Логин/пароль/имя сервера вводим по тем данным, что выдал провайдер.

Настраиваем подключение в старой прошивкеНастраиваем подключение в новой прошивке

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

Приоритеты подключений

Теперь мы вплотную подошли к кардинальной разнице между старой и новой прошивкой Keenetic. В старой мы видим список подключений и должны вручную управлять их приоритетом. У какого подключения приоритет выше – то и… приоритетнее. Всё просто. Роутер будет использовать первое доступное подключение с наивысшим приоритетом и все устройства, которым роутер раздаёт интернет, будут работать через это подключение.

Приоритет подключений

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

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

Для этого мы должны сделать две вещи. Первая – на странице “список устройств” найти нужное нам устройство (компьютер, ноутбук, игровая консоль), подключёное к роутеру, и зарегистрировать его. Вы можете не присваивать ему постоянный внутренний IP-адрес, но эта регистрация нужна, чтобы мы могли работать с настройкой доступа устройства к сети в дальнейшем. Поэтому здесь имеет смысл дать ему какое-то понятное имя.

Вверху – незарегистрированные устройства, снизу – зарегистрированные

Второе – идём на вкладку “Приоритеты подключений” и создаём новый профиль. Назовём его, например, VPN. Здесь мы должны указать, какие подключения в нём используются.

Создаём новый профиль

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

Теперь кликаем на вкладку “Привязка устройств к профилям”. Там вы можете управлять как целыми сегментами сети (например, группой незарегистрированных устройств), либо отдельным зарегистрированными устройствами. Здесь просто берём драг-н-дропом плашку с нужным нам устройством и “кидаем” его на название профиля с VPN.

Я взял PS4 Pro и “перетащил” её на профиль VPN, где уже активно подключениек VPNРезультат

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

Объединение офисов с помощью openvpn

У нас имеется офис с шлюзом CentOS 7, на который мы будем устанавливать openvpn сервер. И есть филиал с таким же шлюзом, где будет установлен openvpn client для подключения сети филиала к офису:

Описание схемы сети
Имя Centos-server PC1 Centos-client PC2
Внешний ip 192.168.1.25 192.168.1.26
Локальный ip 192.168.10.1 192.168.10.50 192.168.20.1 192.168.20.50
Комментарий Сервер openvp и шлюз в офисе Компьютер с Windows 7 в офисе Клиент openvp и шлюз в филиале Компьютер с Windows 7 в филиале

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

Наша задача в данном случае будет сводиться к тому, чтобы компьютеры PC1 и PC2 увидели друг друга и могли совместно использовать свои сетевые ресурсы в обе стороны. То есть как за сервером, так и за клиентом openvpn мы должны видеть сеть.

Хочу отметить, что конфигурация openvpn кроссплатформенная и отлично переносится с одной системы на другую, необходимо только пути проверить, так как в каждой системе они свои. Моя инструкция подойдет для настройки openvpn сервера на любой операционной системе, отличаться будут только специфичные для каждой системы команды установки и проверки, но сама суть настройки vpn будет такой же.

Данный материал я создавал на тестовом стенде, который специально собрал для написания статьи. Но все настройки взяты с реально работающих серверов, причем разных систем, в том числе и freebsd. Для практического применения нужно просто поменять IP адреса на свои. У меня на стенде 192.168.1.25 и 192.168.1.26 по сути внешние IP адреса, которые смотрят в интернет.

Комментарии

adw0rd

Дополнение: у меня были проблемы с качеством работы wifi, я грешил на многое, в том числе аппартаные проблемы (перегрев, флюс проводящий эл-во и т.д.). В итоге все было проще, в БЦ мешали друг-другу сети, а авто-режим выбирал всегда 1-ый канал. Но с помощью программы wifi-radar я выявил какой канал мне использовать (рекомендую выбирать из «неперекрывающихся» каналов 1/6/11):

А также оставил только 802.11n, выбрал короткую преамбулу и уменьшил мощность сигнала до 12%. После чего исчезли коллизии.

CJ1

Вы не могли бы мне скинуть tun.ko ?
У меня ошибка
insmod: cannot insert ‘/media/DISK_A1/system/lib/modules/2.6.23-rt/tun.ko’: invalid module format (-1): Exec format error

Но альтернативных модулей нет!

Дмитрий

Помогите разобраться. Кинетик белый, при запуске демона пишет : Starting OpenVPN in daemon mode….failed. Где посмотреть в чем ошибка чего не хватает? Тунель не поднимает, модуль tun загружен.

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

Сервер

Большинство устанавливаемых программ в ОС Linux имеют так называемые sample-файлы. Эти файлы содержат примеры настройки и объяснения их. OpenVPN не стал исключением. Распакуем серверный конфигурационный файл в директорию /etc/openvpn:

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

Для начала, проверяем какие файлы оказались в директории /etc/openvpn:

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

И проверяем соответствие файлов прописанных в конфигурации с файлами находящимися в каталоге. Интересны строки после “SSL/TLS root certificate (ca), certificate (cert), and private key (key).”

Если имена отличаются от существующих, следует внести необходимые исправления. Выходим из редактора сочетанием клавиш Ctrl + X.

Запускаем сервер:

Проверим результат запуска:

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

Предполагается, что на стороне клиента уже установлен пакет OpenVPN.

1. Копируем файл клиентских настроек в домашний каталог пользователя:

2. Копируем сгенерированные ключи — client1.key, client1.crt, ca.crt:

3. Редактируем файл конфигурации клиента:

4. Находим закомментированные строки “# The hostname/IP and port of the server”. Для параметра remote меняем my-server-1 на IP-адрес сервера или его доменное имя.

5. В том же файле, ниже, находим блок “#SSL/TLS parms.”. Редактируем имена ключей.

6. Выходим из редактирования сочетанием Ctrl + X. На вопрос о сохранении изменений отвечаем “Y”. Имя файла оставляем неизменным.

7. Переносим файлы client1.key, client1.crt, ca.crt и client.conf на компьютер клиента с которого будет происходить подключение к серверу OpenVPN.

Важно! Некоторые клиентские реализации OpenVPN работают только с файлами *.ovpn. В подобных случаях достаточно изменить расширение файл (переименовать) с client.conf на client.ovpn

8. Подключаемся к серверу командой:

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

Связано это с тем, что созданный адаптер TUN, а в месте с ним и сам сервер, являются шлюзом по умолчанию.

Настройка маршрутизации.

1. На сервере редактируем файл server.conf:

2. В файле находим следующую строку и удаляем перед ней символ “;”, таким образом раскомментируем ее:

3. Сохраняем и закрываем редактор.

4. Редактируем файл /etc/sysctl:

5. В конец файла добавляем следующую строку:

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

6. Разрешаем форвардинг пакетов без перезагрузки сервера:

7. Настроим NAT в iptables. Поочередно вводим команды:

Также их можно просто вписать в файл /etc/rc.local до строки “exit 0” или выполнить настройку firewall как это указано в нашей статье.

Сервер уже готов к использованию. Однако, задача проксировать весь трафик, а следовательно необходимо настроить форвардинг DNS-запросов. Настроим.

1. Устанавливаем dnsmasq

Если установка выполняется в ОС Ubuntu:

Несмотря на то, что в большинстве современных версий ОС Ubuntu dnsmasq уже предустановлен, в старых версиях необходимо выполнить так:

Возможно запустится диалоговое окно мастера установки. В нем будет 2 вопроса. В первом случае, на вопрос “prepare /etc/resolv.conf for dynamic updates” отвечаем “Yes”, а на следующий — “Append original file to dynamic file?” отвечаем “No”.

Для ОС Debian 7:

2. Отредактируем файл настроек dnsmasq:

Добавим следующие параметры:

Сохраняем файл и закрываем редактор.

3. Редактируем файл сетевых настроек:

Требуется указать адрес DNS-серверов в соответствующих секциях настроек адаптера:

Возможно это действие уже произведено,. Повторно его выполнять не нужно.

4. Учитывая особенность запуска и последующей работы dnsmasq — возможность аварийного завершения до инициализации виртуального tun-адаптера, добавим следующую строчку в файл rc.local, перед “exit 0”:

5. Теперь разрешим клиентам OpenVPN-сервера использовать DNS. С помощью редактора nano раскомментируем строку:

Фиксируем изменения в файле.

6. Перезагружаем сервер:

Проверка работы

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

191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А

+7 (812) 443-85-60

700
300

ООО «ИТГЛОБАЛКОМ ЛАБС»

700
300

Делитесь с родными и друзьями

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

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

UPD

1 мая 2018 начали появляться комментарии, что некоторые российские провайдеры блокируют Digital Ocean. Есть отличная альтернатива — Linode (сравнение).

  1. Регистрируемся на главной странице.
  2. После ввода e-mail, логина и пароля (нужно придумать), придет письмо со ссылкой для подтверждения, переходим по ней
  3. Откроется расширенная форма регистрации, нужно ввести фамилию, имя, адрес, промо код и данные карты
    • промокод на $10 или $20 легко ищется в google, 01.05.2018 работал на $20
    • карта подойдет любая, нет особых требований как у DigitalOcean
    • в самом низу выбираем первоначальное пополнение, минимум $5
  4. После оправки формы, сразу попадаем на страницу создания сервера, в самом низу выбираем Linode 1024 (стоит те же $5 в месяц), ниже выбираем локацию, для Европейской части России ближе всего Frankfurt, DE
  5. После создания сервера, выбираем его из списка и нажимаем Deploy an Image
    • выбираем дистрибутив, например Fedora 27 или Debian 9
    • придумываем, запоминаем и вводим пароль сервера
    • жмем Deploy
  6. Нажимаем кнопку Boot чтобы запустить сервер
  7. Переключаемся на вкладку Remote Access копируем самый первый Public IP, например
  8. Запускаем SSHeller, нажимаем Add
    • придумываем и вводим Name
    • в Host вставляем скопированный IP
    • в User вводим
    • в Password вводим пароль, придуманный на шаге 5
  9. Сервер грузится не мгновенно, если быстро ввели параметры доступа к серверу, то придется подождать секунд 30

Дальше все по основной инструкции.

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

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

Настройка сервера

Открываем конфигурационный файл openvpn:

vi /etc/openvpn/server/server.conf

И добавляем следующие строчки:

username-as-common-name
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login

* где username-as-common-name указывает на то, что openvpn должен использовать логины, как основные идентификаторы клиента; plugin указывает на путь к самому плагину и для чего он используется.
* как путь, так и название файла openvpn-plugin-auth-pam.so могут отличаться. Это зависит от версии Linux и OpenVPN. Чтобы найти путь до нужного файла, можно воспользоваться командой find / -name «openvpn-*auth-pam*» -print.

Перезапускаем сервер:

systemctl restart openvpn-server@server

При необходимости, создаем учетную запись для авторизации:

useradd vpn1 -s /sbin/nologin

И задаем ей пароль:

passwd vpn1

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

В конфигурационный файл клиента добавляем:

auth-user-pass

Теперь при подключении программа будет запрашивать логин и пароль.

Вход без ввода пароля (сохранение пароля)

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

auth-user-pass auth.txt

* где auth.txt — файл, в котором мы будем хранить логин и пароль.

Создаем текстовый файл auth.txt в той же папке, где находится файл конфигурации со следующим содержимым:

username
password

* где username — логин пользователя, а password — пароль.

Переподключаем клиента.

Описанный метод аутентификации является базовым и требует наличие обычной системной учетной записи. Если необходима более сложная авторизация на базе LDAP, можно воспользоваться инструкцией настройка OpenVPN сервера с аутентификацией через LDAP (написана на базе Linux Ubuntu).

Импорт конфигураций OpenVPN

Чтобы подключиться к SECRETVPN вам понадобятся файлы конфигурации OpenVPN клиента с расширением ovpn. Мы отправили эти файлы вам на электронную почту вместе с данными VPN подписки. Вы также можете скачать и/или сгенерировать файлы конфигурации в личном кабинете.

Если вы не получили письмо от нас, пожалуйста проверьте папку нежелательной почты.

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

Иконка OpenVPN в области задач

Шаг 2.  Щелкните правой кнопкой мышки по значку OpenVPN. Воспользуйтесь пунктом меню «Импорт конфигурации» и импортируйте только что скаченные файлы конфигурации OpenVPN.  Конфигурации импортированные таким образом помещаются в домашний каталог вашего пользователя C:\Users\»имя пользователя»\OpenVPN\config и доступны только вам

Если меню «Импорт конфигурации …» отсутвует переходите к следующему шагу

Импорт конфигурации OpenVPN

Шаг 3. Необязательно! Если вы хотите, чтобы к VPN могли подключаться все пользователи вашего компьютера вместо импорта конфигурации (пункт 2) скопируйте их вручную в папку C:\Program Files\OpenVPN\config

Импортированные конфигурации OpenVPN

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

Настройка центра сертификации

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

Обратите внимание, что все секретные ключи должны находится в надежном месте. В OpenVPN открытый ключ называется сертификатом и имеет расширение .crt, а закрытый ключ так и называется ключом, его расширение — .key

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

Затем скопируем в эту папку все необходимые скрипты easy-rsa:

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

Первой командной мы переключаемся в консоль от имени суперпользователя, второй загружаем переменные окружения из файла ./vars. Команда ./clear-all создает папку keys если ее нет и очищает ее содержимое. И последняя команда инициализирует наш центр сертификации. Теперь в папке .keys появились все необходимые ключи:

Приоритеты подключений

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

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

На скриншоте наивысший приоритет отдан интерфейсу ISP. Это стандартная настройка для доступа к интернету по сетевому кабелю.

Следующим идет Yota: подключение по беспроводному каналу связи. Если первый вариант перестанет работать, роутер автоматически перейдет на указанный режим. Таким образом настраиваются резервные каналы связи и VPN-соединения.

Создание сертификатов

Если вы создаёте OpenVPN сервер (любого типа), вы должны создать сертификаты безопасности
по нижеприведённым инструкциям. Если вы используете OpenVPN как клиент, требуемые сертификаты должны были быть предоставлены вам с вашими конфигурационными данными.

build-ca
build-dh
build-key-server my-server
build-key-pkcs12 my-client

Вышеприведённые команды создадут сертификат сервера с именем my-server и сертификат клиента с именем my-client. Вы можете создать несколько клиентских сертификатов, запустив несколько раз и указав разные имена.

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

Настройка OpenVPN сервера для второго примера

Подключаемся к нашему серверу, входим под рутом и скачиваем openvpn:

aptitude install openvpn openssl

После установки копируем скрипты в папку программы:

cp -r /usr/share/easy-rsa /etc/openvpn/

Далее переходим в папку /etc/openvpn/easy-rsa и открываем файл vars текстовым редактором. Здесь нас интересуют следующие опции:

export KEY_SIZE=1024

export KEY_COUNTRY="RU"

export KEY_PROVINCE="CA"

export KEY_CITY="Moscow"

export KEY_ORG="barnak VPN"

export KEY_EMAIL="test"

export KEY_OU="test"

Соответственно что делать с этими полями вы уже знаете 🙂

export KEY_SIZE=1024 — длина ключа. Можно указать 2048, но особого смысла в этом не будет, только VPN медленнее станет работать.

Теперь эти переменные надо инициировать:

source ./vars

Мы получим предупреждение, что при запуске скрипта clean-all оно удалит все содержимое папки с ключами (а это папка с программой). Но нам ничего чистить не нужно, так что не обращаем внимания.

Теперь создаем сертификат УЦ:

./build-ca

После этого ключи DH:

./build-dh

Сертификат и ключи сервера:

./build-key-server debian-srv

И клиента:

./build-key client

Теперь создаем файл конфигурации сервера:

vim.tiny /etc/openvpn/server.conf

Добавляем туда следующее:

port 1194

proto tcp

dev tun

ca ca.crt

cert debian-srv.crt

key debian-srv.key

dh dh1024.pem

server 10.10.20.0 255.255.255.0

keepalive 10 120

cipher AES-128-CBC # AES

comp-lzo

max-clients 10

persist-key

persist-tun

client-to-client

status openvpn-status.log

log /var/log/openvpn.log

verb 4

mute 20

sndbuf 0

rcvbuf 0

push "route 10.10.20.0 255.255.255.0"

push "redirect-gateway def1"

Из новых настроек здесь следующие:

  • persist-key, — позволяет избежать некоторых проблем с доступностью при понижении прав (только для Linux);
  • persist-tun, — аналогично;
  • client-to-client, — позволяет клиентам видеть друг друга. Без этой опции клиенты смогут видеть только сервер и его ресурсы, но не других клиентов (аналог AP Isolation);
  • log /var/log/openvpn.log, — где будет храниться журнал событий openvpn;
  • push «redirect-gateway def1», — добавляет клиентам маршрут к VPN серверу, чтобы весь трафик ходил через него.

Теперь, чтобы мы все-таки могли открывать сайты, будучи подключенным к VPN, надо на сервере прописать правило NAT:

iptables -t nat -A POSTROUTING -s 10.10.20.0/24 -o eth0 -j MASQUERADE

Где 10.10.20.0/24 — ваша виртуальная VPN подсеть.

Сохраняем правило NAT в файл:

iptables-save > /etc/network/iptables.conf

Теперь открываем текстовым редактором настройки сетевых интерфейсов:

vim.tiny /etc/network/interfaces

И добавляем к интерфейсу eth0 (или какой вы используете) строчку для автозагрузки правила:

post-up /sbin/iptables-restore < /etc/network/iptables.conf

Вот как это выглядит у меня:

Это нужно для того, чтобы при перезагрузке сервера правила NAT не удалилось.

И последний штрих. нужно включить IP Forwarding. Без этого скорее всего ваш NAT не заработает. Открываем текстовым редактором файл  /etc/sysctl.conf, находим строчку net.ipv4.ip_forward=1, раскомментируем ее (либо выставляем 1) и применяем командой:

sysctl -p

Теперь можно запускать OpenVPN. делается это довольно просто командой:

openvpn server.conf

Теперь сервер настроен и переходим к клиенту.

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

Сверху-справа нажимаем ->

Откроется страница создания сервера. Нужно задать 3 основных параметра.

Операционная система: . Это самая маленькая, быстрая и стабильная из доступных. Хотя — тоже хороший выбор. Более того, поддерживаются все доступные ОС, кроме и .

Размер: будет достаточно самого маленького за $5.

Регион — нужно выбрать тот, который территориально к вам ближе. Для Европейской части России — это .

Установка SSHeller

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

  • Для Windows:
  • Для macOS:
  • Для Linux: — после загрузки сделать исполняемым и запустить

Теперь SSHeller можно запустить из списка приложений.

Установка сервера OpenVPN

Письмо от DigitalOcean уже должно было прийти. Из него нам нужны 4 параметра.

Запускаем и жмем

Копируем параметры из письма:

  • ->
  • ->
  • ->
  • ->

Нажатием возвращаемся к списку серверов.

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

На экране OpenVPN, достаточно нажать зеленую кнопку и подождать.

Сколько нужно ждать — невозможно предсказать. Иногда это может быть 3 минуты, а иногда — доходить до получаса. Зависит от сервера, на котором запускается ваша виртуальная машина. Чем меньше у сервера заполнен пул энтропии — тем дольше ждать. Если простыми словами: компьютер очень медленно создает новые случайные числа, но делает это постоянно и копит их. А для создания ключей шифрования нужно очень много случайных чисел. Если их кто-то уже использовал — придется подождать.

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

Сразу будет создан профиль по умолчанию и соответствующий ему файл настроек — . Можно скачать его, а можно создать еще один, или несколько, введя имя нового профиля и нажав кнопку .

Для загрузки достаточно кликнуть на соответствующий файл профиля.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий