Твой Сетевичок. Openvpn ростелеком


Список серверов OpenVPN | Losst

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

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

Содержание статьи:

Как подключится?

Для начала в вашей системе должен быть установлен OpenVPN. Например, в Ubuntu его можно установить выполнив команду:

sudo apt install openvpn

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

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

sudo openvpn -config /путь/к/скачанному/файлу

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

Лучшие OpenVPN серверы

Дальше рассмотрим лучшие серверы OpenVPN, которые вы можете использовать в своей системе.

1. vpnbook.com

 

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

Сервис не блокирует никаких сайтов. Серверы OpenVPN доступны на таких портах TCP 80, 443, а из UDP на 53 и 25000. Для доступа необходим логин и пароль. На данный момент это: vpnbook и VMdc6PJ. Торренты не поддерживаются. Можно выбрать один из серверов, которые расположены в разных странах. Скачать файл конфигурации для сервера нужно сервера можно на официальном сайте.

2. freevpn.me

Это еще один полностью бесплатный VPN сервис, который дает вам еще больше свободы. Как и в предыдущем варианте, здесь используется шифрование AES SSL, поэтому ваш провайдер не сможет узнать что вы делаете в сети и какие данные передаете. Вам доступны TCP порты 80, 443 и UDP — 53, 40000. Трафик не ограничен, а пропускная способностью с резервом в 10 Гбит/сек. К тому же здесь разрешена загрузка и раздача торрентов.

Сервер доступа только один, но для доступа к нему необходимо кроме конфигурационного файла логин и пароль. На данный момент логин freevpnme, а пароль RD9PNBE3iNu. Конфигурационный файл и адреса серверов OpenVPN доступны на этой странице.

3. www.freevpn.se

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

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

4. vpnme.me

Это бесплатный OpenVPN сервис, который, как и все другие обеспечивает защиту вашего контента от посторонних глаз с помощью шифрования AES. Разработчики уверяют, что логгирование запросов не ведется, а сервис обеспечивает максимальную анонимность. Серверы OpenVPN доступен на портах 443 TCP и 1194 UDP. Параметры аутентификации вы можете посмотреть на официальной странице.

5. securitykiss.com

 

Securitykiss — отличный выбор среди других OpenVPN сервисов. Здесь, кроме бесплатного тарифа есть несколько платных планов. Вы можете выбрать один из серверов, расположенных в Великобритании, США, Франции, Германии. Подключение к интернету не ограничено. Логин и пароль пользователя не требуется, нужно только настроить конфигурационный файл для OpenVPN. Инструкцию по установке и настройке вы можете найти на официальном сайте. Сервис использует TCP порт 123.

6. cyberghostvpn.com

Это бесплатный надежный сервис OpenVPN, который позволяет создать шифрованный туннель с шифрованием AES 256-бит. Серверы размещены в 15 странах и всего доступно 58 серверов. Также есть платные тарифные планы, которые работают гораздо быстрее, без рекламы и имеют приложения для Android и iOS.

Выводы

В этой статье мы рассмотрели список серверов OpenVPN, которые можно использовать полностью бесплатно для увеличения своей безопасности. А какие OpenVPN серверы вы используете? Какие вам известны из тех, что нет в списке? Напишите в комментариях!

Оцените статью:

Загрузка...
Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.

Ваше имя тоже может быть здесь. Начните писать статьи для Losst. Это просто! Смотрите подробнее как начать писать статьи - Пишите для нас

losst.ru

Настройка OpenVPN для выхода в интернет

Настройка OpenVPN для выхода в интернет

21 September 2012

Полезно иметь под рукой VPN, настроенный для выхода через него в интернет. Мне, например, он нужен для того, чтобы спокойно лазить в инет через открытые WiFi-точки, не боясь за свои пароли (в 2012 году все еще есть сайты, которые не используют HTTPS).

Настройка сервера (Ubuntu)

Устанавливаем OpenVPN из репозитория.

$ sudo apt-get install openvpn

Генерируем сертификаты и ключи (которые надо держать в секрете). Нам понадобятся:

  • Сертификаты для сервера и для каждого клиента, а также приватные ключи для них.
  • CA-сертификат ca.crt и ключ ca.key для подписи сертификатов сервера и клиентов.
  • Ключ Diffie Hellman. Нужен для установления защищенного соединения.

В составе OpenVPN есть утилита для генерации ключей, которая лежит в /usr/share/doc/openvpn/examples/easy-rsa/2.0/. В файле vars можно поменять настройки под себя, можно оставить дефолтные.

Инициализация (обращаем внимание на то, что после первой точки есть пробел):

$ . ./vars $ ./clean-all

Генерируем ca.crt и ca.key, сертификаты и ключи для сервера/клиентов и ключ Diffie Hellman. На вопросы можно не отвечать и просто давить Enter.

$ ./build-ca $ ./build-key-server server_name $ ./build-key client_name1 $ ./build-key client_name2 $ ./build-dh

Копируем нужные на сервере файлы в /etc/openvpn/.

$ cp ./keys/ca.crt /etc/openvpn/ $ cp ./keys/server_name.crt /etc/openvpn/ $ cp ./keys/server_name.key /etc/openvpn/ $ cp ./keys/dh2024.pem /etc/openvpn/

Ключ ca.key используется только для подписи сертификатов — поэтому его можно не держать в /etc/openvpn/, но обязательно нужно сохранить в надежном месте и никому не показывать.

Разбираемся с конфигом. В /usr/share/doc/openvpn/examples/sample-config-files/ есть шаблон server.conf, в нем подробно прокомментированы все опции. Мой конфиг выглядит примерно так:

port 1194 # дефолтный порт proto upd # используемый протокол dev tun # "dev tun" --- для IP-туннеля ca ca.crt # CA-сертификат cert server_name.crt # сертификат сервера key server_name.key # приватный ключ сервера dh dh2024.pem # ключ Diffie Hellman server 10.8.0.0 255.255.255.0 # используемая подсеть ifconfig-pool-persist ipp.txt # файл с адресами клиентов push "redirect-gateway" # перенаправлять весь трафик через VPN keepalive 10 120 # пинговать каждые 10 сек, # если нет ответа 120 сек --- отваливаться comp-lzo # использовать сжатие user nobody # на всякий случай даем как можно меньше прав group nogroup persist-key # не перечитывать ключи persist-tun # не переоткрывать tun-device log-append /var/log/openvpn.log # лог-файл verb 4 # уровень детализации лога

Прописываем правила iptables. Нужно разрешить клиентам из подсети 10.8.0.0/24 доступ в интернет, разрешить принимать пакеты из интернета и пропустить трафик клиентов через NAT.

iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Чтобы правила не сбросились после перезагрузки, добавляем их в /etc/rc.local.

Включаем форвардинг в ядре: в /etc/sysctl.conf добавляем (или раскомментируем) строку

net.ipv4.ip_forward=1

Чтобы форвардинг заработал без перезагрузки, делаем

$ echo 1 > /proc/sys/net/ipv4/conf/all/forwarding

Если клиент уже находится за NAT-ом, проброс трафика не заработает, а в логах можно будет найти строки вроде "MULTI: bad source address from client [a.b.c.d], packet dropped" — так как у OpenVPN нет правил для обработки пакетов из подсети a.b.c.0/24, они дропаются. Поэтому прописываем нужные правила: в /etc/openvpn/server.conf добавляем строки

client-config-dir ccd # директория с настройками для клиентов route a.b.c.0 255.255.255.0 # обрабатывать пакеты из подсети a.b.c.0/24

а в /etc/openvpn/ccd/ создаем файл client_name1.conf и в нем пишем

iroute a.b.c.0 255.255.255.0 # разрешаем доступ к VPN из подсети a.b.c.0/24

Настройка серверной части закончена, перезапускаем OpenVPN.

$ sudo service openvpn restart

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

Во-первых, надо установить OpenVPN на клиенте.

$ sudo apt-get install openvpn

Во-вторых, с сервера надо скопировать CA-сертификат ca.crt, сертификат client_name1.crt и ключ client_name1.key.

Есть два способа настройки клиентской части OpenVPN. Первый — с использованием конфига в /etc/openvpn/. В /usr/share/doc/openvpn/examples/sample-config-files/ есть шаблон client.conf с комментариями. Мой конфиг выглядит примерно так:

client # указываем, что это клиент dev tun # на сервере и клиенте должно совпадать proto udp # на сервере и клиенте должно совпадать remote a.b.c.d 1194 # адрес и порт сервера resolv-retry infinite # пытаться достучаться до сервера бесконечно nobind # не использовать какой-то особый порт user nobody # на всякий случай даем как можно меньше прав group nogroup # на всякий случай даем как можно меньше прав persist-key # не перечитывать ключи persist-tun # не переоткрывать tun-device mute-replay-warnings # подавлять предупреждения о повторных пакетах ca ca.crt # CA-сертификат cert client_name1.crt # сертификат клиента key client_name1.key # приватный ключ клиента comp-lzo # на сервере и клиенте должно совпадать log-append /var/log/openvpn.log # лог-файл verb 4 # уровень детализации лога

Второй способ — настройка через GUI. Ставим плагин для network manager:

$ sudo apt-get install network-manager-openvpn

И добавляем VPN в Network Connections (VPN Connections → Configure VPN → Add). Там все просто и понятно: нужно вбить адрес сервера и указать путь к ca.crt и клиентскому сертификату/ключу. Остальные настройки (протокол, порт, использовать ли сжатие, etc) тоже можно поменять.

Замечание насчет DNS: домены могут не резолвиться при перенаправлении трафика через VPN, если используются DNS-сервера провайдера, доступные только из его локальной сети. Поэтому лучше использовать какие-нибудь публичные DNS-сервера, например, Google Public DNS (8.8.8.8 и 8.8.4.4).

awolf.ru

vpn подключение: что это такое и как им пользоваться?

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

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

Данный материал является своего рода вступительным словом к циклу статей, где мы расскажем, как создать vpn на различных ОС.

vpn подключение что это такое?

Итак, виртуальная частная сеть vpn – это технология, обеспечивающая защищённую (закрытую от внешнего доступа) связь логической сети поверх частной или публичной при наличии высокоскоростного интернета.

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

Также советуем ознакомиться со статьями:

Научно, такой способ соединения называется vpn туннель (или туннельный протокол). Подключиться к такому туннелю можно при наличии компьютера с любой операционной системой, в которую интегрирован VPN-клиент, способный делать «проброс» виртуальных портов с использованием протокола TCP/IP в другую сеть.

Для чего нужен vpn?

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

как сделать vpn

На схеме наглядно представлено использование vpn сетей.

Здесь, компьютеры с ip-адресами 192.168.1.1-100 подключаются через сетевой шлюз, который также выполняет функцию VPN-сервера.

Предварительно на сервере и маршрутизаторе должны быть прописаны правила для соединений по защищённому каналу.

Принцип работы vpn

Когда происходит подключение через vpn, в заголовке сообщения передаётся информация об ip-адресе VPN-сервера и удалённом маршруте.

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

Этап VPN шифрования реализуется на стороне отправителя, а расшифровываются данные у получателя по заголовку сообщения (при наличии общего ключа шифрования).

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

Что касается информационной безопасности, то интернет является крайне незащищенной сетью, а сеть VPN с протоколами OpenVPN, L2TP /IPSec ,PPTP, PPPoE – вполне защищенным и безопасным способом передачи данных.

Для чего нужен vpn канал?

как использовать vpn

vpn туннелирование используется:

 — внутри корпоративной сети;

— для объединения удалённых офисов, а также мелких отделений;

— для обслуживания цифровой телефонии с большим набором телекоммуникационных услуг;

 — для доступа к внешним IT-ресурсам;

— для построения и реализации видеоконференций.

Зачем нужен vpn?

vpn соединение необходимо для:

 — анонимной работы в сети интернет;

 — загрузки приложений, в случае, когда ip адрес расположен в другой региональной зоне страны;

— безопасной работы в корпоративной среде с использованием коммуникаций;

 — простоты и удобства настройки подключения;

 — обеспечения высокой скорости соединения без обрывов;

 — создания защищённого канала без хакерских атак.

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

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

Vpn: что это такое в телефоне?

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

VPN-клиент, установленный на любой ОС, позволяет обойти многие настройки и правила провайдера (если тот установил какие-то ограничения).

Какой vpn выбрать для телефона?

Мобильные телефоны и смартфоны на ОС Android могут использовать приложения из Google Playmarket:

  • — vpnRoot, droidVPN,
  • — браузер tor для сёрфинга сетей,он же orbot
  • — InBrowser, orfox (firefox+tor),
  • — SuperVPN Free VPN Client
  • — OpenVPN Connect
  • — TunnelBear VPN
  • — Hideman VPN

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

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

Что такое vpn в айфоне?

Рассмотрим, какой впн выбрать и как его подключить в айфоне более подробно.

В зависимости от типа поддерживаемой сети, при первом запуске конфигурации VPN в iphone можно выбрать следующие протоколы: L2TP, PPTP и Cisco IPSec (кроме того, «сделать» vpn подключение можно при помощи сторонних приложений).

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

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

Для телефона iphone из магазина appstore стоит выбрать:

  • — бесплатное приложение Tunnelbear, с помощью которого можно подключаться к серверам VPN любой страны.
  • — OpenVPN connect – это один из лучших VPN-клиентов. Здесь для запуска приложения необходимо предварительно импортировать rsa-ключи через itunes в телефон.
  • — Cloak – это условно бесплатное приложение, поскольку некоторое время продукт можно «юзать» бесплатно, но для использования программы по истечении демо-срока ее придется купить.

Создания VPN: выбор и настройка оборудования

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

что значит и нужен ли vpn

Для реализации vpn-технологий в роли сетевого шлюза могут выступать: сервера Unix, сервера Windows, сетевой маршрутизатор и сетевой шлюз на котором поднят VPN.

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

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

Настройка vpn на роутере

В общем случае настройка впн на роутере осуществляется с помощью веб-интерфейса маршрутизатора. На «классических» устройствах для организации vpn нужно зайти в раздел «settings» или «network settings», где выбрать раздел VPN, указать тип протокола, внести настройки адреса вашей подсети, маски и указать диапазон ip-адресов для пользователей.

Кроме того, для безопасности соединения потребуется указать алгоритмы кодирования, методы аутентификации, сгенерировать ключи согласования и указать сервера DNS WINS. В параметрах «Gateway» нужно указать ip-адрес шлюза (свой ip) и заполнить данные на всех сетевых адаптерах.

Если в сети несколько маршрутизаторов необходимо заполнить таблицу vpn маршрутизации для всех устройств в VPN туннеле.

Приведём список аппаратного оборудовании, используемого при построении VPN-сетей:

 — Маршрутизаторы компании Dlink: DIR-320, DIR-620, DSR-1000 с новыми прошивками или Роутер D-Link DI808HV.

 — Маршрутизаторы Cisco PIX 501, Cisco 871-SEC-K9

 — Роутер Linksys Rv082 с поддержкой около 50 VPN-туннелей

 — Netgear маршрутизатор DG834G и роутеры моделей FVS318G, FVS318N, FVS336G, SRX5308

 — Маршрутизатор Mikrotik с функцией OpenVPN. Пример RouterBoard RB/2011L-IN Mikrotik

 — vpn оборудование RVPN S-Terra или VPN Gate

 — Маршрутизаторы ASUS моделей RT-N66U, RT-N16 и RT N-10

 — ZyXel маршрутизаторы ZyWALL 5, ZyWALL P1, ZyWALL USG

 

 

Оцените статью: Поделитесь с друзьями!

tvoi-setevichok.ru

Установка OpenVPN на Centos 7. Пошаговая инструкция

Анонимность в интернете своими руками. Установка и настройка VPN сервера.

4.5 (90%) 6 голос(а)

Все настройки выполнены в VPS от hostsailor.com

Мы выполнили необходимый минимум подготовительных работ, а именно:

  • настроили SSH, как написано здесь;
  • настроили файрволл, как написано здесь.

Теперь наш сервер неплохо защищен от злонамеренных воздействий. Пора сделать то, для чего мы всё это затевали.

Немного теории, для понимания того, что мы сечас будем делать. VPN (Virtual Private Network) — виртуальная частная сеть. Идея в том, что мы строим свою сеть «поверх» других сетей.

Допустим вы решили зайти на запрещенный ресурс. Какой маршрут вашего интернет трафика? В большинстве случаев схема такая:

Безусловно, это очень упрощенная схема. Но для понимания процесса достаточна. Как видите, у провайдера есть некий-фильтр, который «просматривает» весь ваш трафик и принимает решения, пропустить или нет (настучать на вас или нет J ). Фактически ваша точка выхода в интернет – это внешние маршрутизаторы вашего провайдера. Именно тут принимается решение, увидите вы тот или иной ресурс или нет.

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

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

Хватит теории, переходим к практике.

 У вас уже запущены и соединены с сервером PuTTY и WinCSP. Переходим к консоли PuTTY и выполняем следующие команды:

yum install wget -y yum install unzip zip -y yum install openvpn -y

yum install wget -y

yum install unzip zip -y

yum install openvpn -y

Создадим папку для ключей установим её текущей. Для это выполним в консоли команды:

mkdir /etc/openvpn/keys cd /etc/openvpn/keys

mkdir /etc/openvpn/keys

cd /etc/openvpn/keys

Для генерации ключей мы используем утилиту Easy-RSA. Для начала скачем её себе:

wget https://github.com/OpenVPN/easy-rsa/archive/master.zip

wget https://github.com/OpenVPN/easy-rsa/archive/master.zip

Распакуем:

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

cd /etc/openvpn/keys/easy-rsa-master/easyrsa3

cd /etc/openvpn/keys/easy-rsa-master/easyrsa3

Создадим файл с настройками из приложенного образца:

Свернём пока консоль и развернём WinCSP. Перейдём в папку /etc/openvpn/keys/easy-rsa-master/easyrsa3.

Примечание: если в правой панели WinCSP вы вдруг не видите каких-либо файлов или папок, которые там должны быть, нажмите кнопку обновления:

Находим и открываем файл vars. Находим строчки

#set_var EASYRSA_REQ_COUNTRY    «US»

#set_var EASYRSA_REQ_PROVINCE   «California»

#set_var EASYRSA_REQ_CITY       «San Francisco»

#set_var EASYRSA_REQ_ORG        «Copyleft Certificate Co»

#set_var EASYRSA_REQ_EMAIL      «[email protected]»

#set_var EASYRSA_REQ_OU      «My Organizational Unit»

и убираем в начале каждой символ #

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

set_var EASYRSA_REQ_PROVINCE    «Moscow»

set_var EASYRSA_REQ_CITY        «Moscow»

set_var EASYRSA_REQ_ORG         «RosComNadzor»

set_var EASYRSA_REQ_EMAIL       «[email protected]»

set_var EASYRSA_REQ_OU       «Otdel besnennogo printera»

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

Строчку

#set_var EASYRSA_KEY_SIZE    2048

превращаем в:

set_var EASYRSA_KEY_SIZE     4096

Строчку

#set_var EASYRSA_DIGEST      «sha256»

превращаем в:

set_var EASYRSA_DIGEST       «sha512»

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

Возвращаемся к консоли PuTTY. Создаем инфраструктуру публичных ключей (PKI, Public Key Infrastructure). Выполним команду:

Easy-RSA отвечает нам, что создан каталог

/etc/openvpn/keys/easy-rsa-master/easyrsa3/pki/

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

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

Выполним команду:

Нас просят придумать пароль:             

Да-да, опять пароль. Требования к сложности примерно такие же, как и для пароля ключа SSH. Зачем этот пароль: если корневой сертификат вашего удостоверяющего центра попадёт в чужие руки, то любой сможет сгенерировать пользовательские сертификаты и подключиться к вашему VPN-серверу. Поэтому вы должны беречь от разглашения и закрытый ключ корневого сертификата (файл ca.key, и пароль к нему). Забывать этот пароль также не стоит. Восстановить его нельзя и придется заново создавать корневой сертификат и все пользовательские сертификаты. Не смертельно, но не приятно. В общем придумываем и вводим пароль. Нас попросят ввести его два раза. На следующий вопрос:

просто жмём Enter. У нас появились файлы ca.crt (корневой сертификат. Он открыт, мы его будем передавать клиентам)

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

Теперь создадим пару (открытый, закрытый) ключей для нашего VPN-сервера. Закрытый ключ сервера мы не будем защищать пароль, так как вводить этот пароль пришлось бы при каждой перезагрузке сервера.  Создаём запрос на сертификат:

./easyrsa gen-req server nopass

./easyrsa gen-req server nopass

На запрос ввести Common Name просто жмём Enter.

Как видите, на выходе у нас два файла: server.key – это закрытый ключ сервера; server.req – это запрос нашему CA на удостоверение (подписывание) сертификата. Скормим запрос нашему CA:

./easyrsa sign-req server server

./easyrsa sign-req server server

CA просит подтвердить, что мы в своём уме и действительно хотим подписать сертификат. Убедим его в этом: наберём yes и нажмём Enter.

Теперь введём пароль от нашего закрытого ключа CA

И вот CA создал подписанный открытый ключ нашего сервера /etc/openvpn/keys/easy-rsa-master/easyrsa3/pki/issued/server.crt

А теперь мы сделаем очень нужную штуку. Мы создадим ключ Диффи-Хелмана. Этот ключ защитит наш трафик от расшифровки даже в случае похищения ключей сервера и клиентов. Т.е. если товарищ майор записывал весь ваш шифрованный трафик, скрипя зубами от досады, что не может понять, что ж такое вы делаете. А потом он вдруг заполучит все ваши ключи, то он всё равно не сможет расшифровать тот трафик, который у него записан. Вот такая вот магия математики. Берегите математиков, они умные и защищают нас от товарища майора.

Вводим в консоли команду:

и идём пить чай ибо процесс это не быстрый. А учитывая, что процессор у VPS весьма слабенький, генерация может занять до 15 минут (а может и больше). В общем ждите, магия быстро не делается.

Когда генерация завершиться, мы получим файлик /etc/openvpn/keys/easy-rsa-master/easyrsa3/pki/dh.pem

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

Выполним команду:

 

И получим файл /etc/openvpn/keys/easy-rsa-master/easyrsa3/pki/crl.pem. В нём и будет список отозванных сертификатов. Отзывать сертификаты мы потренируемся позже, пока оставим так.

Теперь подкинем VPN-серверу все необходимые ключи. Для этого выполним несколько команд:

cp pki/ca.crt /etc/openvpn/ cp pki/dh.pem /etc/openvpn/ cp pki/crl.pem /etc/openvpn/ cp pki/issued/server.crt /etc/openvpn/ cp pki/private/server.key /etc/openvpn/

cp pki/ca.crt /etc/openvpn/

cp pki/dh.pem /etc/openvpn/

cp pki/crl.pem /etc/openvpn/

cp pki/issued/server.crt /etc/openvpn/

cp pki/private/server.key /etc/openvpn/

Получится вот так:

И сделаем текущей папку VPN-сервера:

Еще не много магии для усиления безопасности. Сделаем HMAC (ищите описание на Хабре и в Википедии). Выполним команду:

openvpn --genkey --secret ta.key

openvpn --genkey --secret ta.key

Рядом с нашими ключами в папке /etc/openvpn будет создан файл ta.key. Его мы также будем отдавать клиентам.

Теперь с помощью WinCSP поправим права на файлы: ca.crt, crl.pem, dh.pem, server.crt. Сделаем для всех 0644.

А для файлов server.key, ta.key установим права 0600 (по-идее они сразу такие и есть, но на всякий случай проверьте).

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

cd /etc/openvpn/keys/easy-rsa-master/easyrsa3

cd /etc/openvpn/keys/easy-rsa-master/easyrsa3

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

./easyrsa gen-req client_name nopass

./easyrsa gen-req client_name nopass

Для подписания запроса и создания открытого ключа команда:

./easyrsa sign-req client client_name

./easyrsa sign-req client client_name

Всё также, как и при создании ключей сервера. Если возникнут вопросы, смотри выше, как мы там это делали.

Обратите внимание на следующее:

  • ключ nopass вы можете использовать, а можете не использовать. С ключом nopass вам не потребуется придумывать пароль для закрытого ключа клиента. Тогда, при подключении к VPN-серверу, и вводить его не придётся. Но в этом случае любой, кто завладеет ключом клиента, сможет подключиться к вашему VPN-серверу. Однако, вводить каждый раз пароль не удобно. Ищите компромисс. Например, на домашнем компьютере ключ без пароля, на рабочем – с паролем. Если ваше переносное устройство не имеет дополнительных мер защиты (шифрование накопителя, контроль доступа и пр.) и есть риск потерять устройство, или иным образом скомпрометировать – сделайте ключ с паролем.
  • client_name это произвольное, понятное вам название того клиента, который будет им пользоваться. Например, для домашнего компьютера можно сделать имя my_home_pc. Тогда команды будут выглядеть так:

./easyrsa gen-req my_home_pc nopass ./easyrsa sign-req client my_home_pc

./easyrsa gen-req my_home_pc nopass

 

./easyrsa sign-req client my_home_pc

А для своего смартфона сделать ключи с именем my_smartphone и с защитой паролем. Тогда команды будут выглядеть так:

./easyrsa gen-req my_smartphone _pc ./easyrsa sign-req client my_smartphone

./easyrsa gen-req my_smartphone _pc

 

./easyrsa sign-req client my_smartphone

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

Для данной статьи я сделаю тестовые ключи для компьютера и смартфона с именами test_pc и test_smart

Сначала покажу как настроить подключение с компьютера. Мы проверим, что наш VPN работает, а потом расскажу, как настроить на смартфоне.

Клиенту нужно будет передать следующие файлы:

  • сгенерированную пару ключей клиента (в моём случае test_pc.crt и test_pc.key)
  • открытый сертификат CA (ca.crt)
  • ta.key

Никаких других ключей и сертификатов у клиента быть не должно!

Ну вот, все ключи у нас есть. Давайте уже конфигурировать и запускать.

В папке /etc/openvpn создадим файл server.conf (если он там уже есть, удалите и создайте заново). Как создавать файлы, было написано ранее. Содержимое файла будет следующее:

port 443 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh.pem crl-verify crl.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" remote-cert-eku "TLS Web Client Authentication" keepalive 10 120 tls-server tls-auth ta.key 0 tls-timeout 120 auth SHA512 cipher AES-256-CBC comp-lzo max-clients 10 user nobody group nobody persist-key persist-tun status openvpn-status.log log openvpn.log verb 4

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

port 443

proto udp

dev tun

 

ca ca.crt

cert server.crt

key server.key

dh dh.pem

crl-verify crl.pem

 

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "redirect-gateway def1"

push "dhcp-option DNS 8.8.8.8"

push "dhcp-option DNS 8.8.4.4"

remote-cert-eku "TLS Web Client Authentication"

keepalive 10 120

tls-server

tls-auth ta.key 0

tls-timeout 120

auth SHA512

cipher AES-256-CBC

comp-lzo

max-clients 10

 

user nobody

group nobody

 

persist-key

persist-tun

 

status openvpn-status.log

log openvpn.log

verb 4

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

Сохраним файл. Проверим, чтобы права были 0644.

Теперь пробуем запустить сервер. В консоли команда:

systemctl start [email protected]

systemctl start [email protected]

Проверяем, что запустился.

Сначала посмотрим на состояние службы сервера командой:

systemctl status -l [email protected]

systemctl status -l [email protected]

Если всё хрошо, то это будет выглядеть вот так:

Но может быть и плохо:

Смотрим лог (/etc/openvpn/openvpn.log) и видим там, например:

us=64300 ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)

us=64310 Exiting due to fatal error

Т.е. не найден TUN/TAP драйвер. Об этом я писал в начале статьи. В случае моего текущего хостера это решается просто. В письме (смотри раздел про аренду VPS), которое содержало IP-адрес сервера и пароль на SSH, была дана ссылка на панель управления сервером и логин-пароль к ней. Заходим в эту панель и видим:

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

Еще раз пробуем запустить службу и проверить её состояние. Всё должно стать хорошо. Если не стало, смотрим логи. Тут универсального рецепта нет. Например, может мешать SELinux (это такая система безопасности Linux). Чиним командой:

semanage port -a -t openvpn_port_t -p udp 443

semanage port -a -t openvpn_port_t -p udp 443

И опять пробуем запустить службу и проверить состояние.

Если пишет, что

semanage: command not found

semanage: command not found

Тогда сначала:

yum -y install policycoreutils-python

yum -y install policycoreutils-python

А уже потом

semanage port -a -t openvpn_port_t -p udp 443

semanage port -a -t openvpn_port_t -p udp 443

Еще проверим, что служба VPN-сервера слушает нужный порт (у нас 443):

netstat -tulnp | grep 443

netstat -tulnp | grep 443

Если напишет что-то типа: -bash: netstat: command not found, то выполняем команду:

И потом:

netstat -tulnp | grep 443

netstat -tulnp | grep 443

Должно быть так:

Убедившись, что служба стартует без проблем, добавляем её в автозагрузку:

systemctl enable [email protected]

systemctl enable [email protected]

Ну и отключим логи. На всякий случай 😉 Для этого откроем для редактирования файл /etc/openvpn/server.conf и строчку:

log openvpn.log

переделываем в:

log /dev/null

сохраняем и закрываем. Делаем:

systemctl restart [email protected]

systemctl restart [email protected]

И удаляем файл /etc/openvpn/openvpn.log

Нет у нас логов, товарищ майор.

Пришла пора подключиться к нашему серверу. Речь пойдет о компьютерах под управлением операционной системы семейства Windows. Если у вас Linux, то я не пойму, зачем вы всё это читаете.

ВНИМАНИЕ: если вы не выполните настройки портов, как написано в этой статье, у вас не получится соединиться!

Скачиваем клиента. https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.2-I601.exe

И устанавливаем. В процессе убираем галочку с OpenVPN Service

Остальное не трогаем.

После установки открываем папку C:\Program Files\OpenVPN\config\ и создаем в ней файл client_name.ovpn

В данном случае client_name это произвольное имя, можете сделать его совпадающим с именем ключей.

Содержимое файла:

client dev tun proto udp remote 123.123.123.123 443 resolv-retry infinite nobind block-outside-dns persist-key persist-tun mute-replay-warnings remote-cert-eku "TLS Web Server Authentication" remote-cert-tls server tls-client tls-auth "C:\\Program Files\\OpenVPN\\config\\ta.key" 1 auth SHA512 ca "C:\\Program Files\\OpenVPN\\config\\ca.crt" cert "C:\\Program Files\\OpenVPN\\config\\test_pc.crt" key "C:\\Program Files\\OpenVPN\\config\\test_pc.key" cipher AES-256-CBC comp-lzo verb 3

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

client

dev tun

proto udp

remote 123.123.123.123 443

resolv-retry infinite

nobind

block-outside-dns

persist-key

persist-tun

mute-replay-warnings

remote-cert-eku "TLS Web Server Authentication"

remote-cert-tls server

 

tls-client

tls-auth "C:\\Program Files\\OpenVPN\\config\\ta.key" 1

 

auth SHA512

 

ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"

cert "C:\\Program Files\\OpenVPN\\config\\test_pc.crt"

key "C:\\Program Files\\OpenVPN\\config\\test_pc.key"

 

cipher AES-256-CBC

comp-lzo

verb 3

Вместо 123.123.123.123 вписываем IP-адрес своего сервера. Вместо test_pc.crt, test_pc.key вписываем правильные названия своих клиентских ключей. В общем-то ключи совсем не обязательно должны лежать в папке C:\Program Files\OpenVPN\config\, даже было бы намного лучше, чтобы они здесь не лежали, а находились на флешке и были всегда под контролем. Тогда путь выглядел бы примерно так:

ca «E:\\my_keys\\ca.crt» 

Но мы не будем пока мудрить и сделаем так. Сохраняем файл.

При помощи WinCSP скопируем к себе на компьютер все необходимые ключи:

И запускаем OpenVPN GUI (кнопка Пуск -> OpenVPN -> OpenVPN GUI)

Так у вас всего один файл .ovpn в папке  C:\Program Files\OpenVPN\config\, то соединение должно начаться автоматически. Появится окно с логом соединения:

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

Если подключиться не получается, проверяйте настройки файрвола сервера, как это написано выше.

Проверяем, что теперь наш видимый в интернете IP совпадает с IP сервера. Например, по адресу http://myip.ru/

Всё, ваша личная VPN сеть работает, товарищ майор больше не может отслеживать ваш трафик.

со своего сайта.

secfall.com

Организация связи между серверами по OpenVPN на статических ключах

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

OpenVPN поддерживает три режима работы:

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

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

При подключении же в режиме точка-точка (site-to-site) в большинстве случаев практичнее применять заранее сгенерированные ключи (pre shared keys) в связи с тем, что в таких соединениях, как правило, обе стороны администрируются и обслуживаются одним и тем же лицом и являются доверенными, а генерация и настройка такого соединения займет меньше времени. Давайте рассмотрим настройку такого соединения на примере.

Первым делом нам нужно определить, какие ip адреса будут использоваться для организации защищённого vpn канала (как правило, это публичные ip адреса серверов), какой протокол будет использоваться, какие адреса будут использоваться внутри нашего vpn канала. Выбор протокола между TCP и UDP позволяет использовать преимущества соответствующих протоколов, но они имеют и свои недостатки. В рамках данной статьи не будем вдаваться в подробности, а в большинстве случаев оптимальным будет применение протокола UDP, более того, по умолчанию он и используется в OpenVPN. Пусть, в примере внешние адреса наших узлов будут 1.1.1.1 на server1 и 2.2.2.2 на server2, а внутри туннеля будем использовать адреса 10.99.1.2 для server1 и 10.99.2.1 для server2. Обращу внимание, что для соединения точка-точка могут использоваться любые два адреса, не обязательно принадлежащие одной сети.

И так, с адресами определились, теперь допустим, что подключаться у нас будет второй сервер к первому — не смотря на равноправие, кто то всё же должен инициировать соединение.

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

[[email protected] ~]# yum install openvpn ... Is this ok [y/N]: y ... Installing : openvpn-2.3.10-1.el6.x86_64 2/2 ... Complete! [[email protected] ~]#

Аналогично повторяем установку и на server2. Теперь сгенерируем ключ шифрования для нашего соединения и запишем его в файл myvpn.key.

[[email protected] ~]# openvpn --genkey --secret myvpn.key

Содержимое файла ключа можно посмотреть любым тектовым редактором или отображающей текст утилитой. Например, так:

[[email protected] ~]# cat myvpn.key## 2048 bit OpenVPN static key#——BEGIN OpenVPN Static key V1——2f833e678521f3b74c9bd80c6b5a99479fba79967ca80764b968ecf1ac2e6d0e3d0412ba958eadcc6c0390678b84dcd2fb54a3d130b8f6cf2cb1bd0028dc7fbf1fc5e9670dc20bf548d7285deda369a609c3a974817b109d5519c8893d8712a55809a2bcdc39ef69528f889e1a772efd7d3fedc71c078c01f28ca1d3c2b5ad157b6ec33b340ef5f66030979aea61427b24215df95f65375dd93d92164835dfbcf6f61660b09aae94181786263517ff9d892d61fe5d5a11361a8f660fd7fa096b443f867377efecdf86de48ec2c9360a126bf04b5aaf85a385f88c0448f1498ff378abc18e3346f688b359df41d24dd5ed113c77803a9b9ab2ec010e2ca6001c2——END OpenVPN Static key V1——[[email protected] ~]#

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

Теперь можно приступить к конфигурированию OpenVPN на обоих сторонах нашего соединения — назовём их условно сервер и клиент (хотя настраиваем мы режим site-to-site, что рассматривалось выше).

Конфигурационные файлы должны находиться в /etc/openvpn. В эту же папку рекомендуется скопировать и ключи. Пример рекомендуемого конфига для server1, являющегося сервером для данного подключения:

[[email protected] ~]# cat /etc/openvpn/myvpn.confport 10001proto udpdev tun-srv1ifconfig 10.99.1.2 10.99.2.1cipher aes-128-cbcauth sha1secret /etc/openvpn/myvpn.keykeepalive 10 120persist-tun

И, соответственно, для server2, являющегося в данном соединении клиентом:

[[email protected] ~]# cat /etc/openvpn/myvpn.confport 10001proto udpremote 1.1.1.1dev tun-myvpnifconfig 10.99.2.1 10.99.1.2cipher aes-128-cbcauth sha1secret /etc/openvpn/myvpn.keykeepalive 10 120persist-tun

Теперь необходимо запустить либо перезапустить службу openvpn на обоих сторонах туннеля:

[[email protected] ~]# service openvpn restart

После запуска туннелей должна установиться связь и начать проходить трафик между узлами. Убедиться в этом можно с помощью команды ping:

[[email protected] ~]# ping 10.99.2.1PING 10.99.2.1 (10.99.2.1) 56(84) bytes of data.64 bytes from 10.99.2.1: icmp_seq=1 ttl=127 time=1.45 ms64 bytes from 10.99.2.1: icmp_seq=2 ttl=127 time=1.40 ms64 bytes from 10.99.2.1: icmp_seq=3 ttl=127 time=1.23 ms64 bytes from 10.99.2.1: icmp_seq=4 ttl=127 time=1.39 ms64 bytes from 10.99.2.1: icmp_seq=5 ttl=127 time=1.63 ms^C— 10.99.2.1 ping statistics —5 packets transmitted, 5 received, 0% packet loss, time 4742msrtt min/avg/max/mdev = 1.230/1.422/1.634/0.138 ms[[email protected] ~]#

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

[[email protected] ~]# service iptables stop

После успешной проверки работы туннеля стоит добавить сервис openvpn в автозагрузку командой

[[email protected] ~]# chkconfig openvpn on

Всё, настройка завершена! Если вам требуется несколько туннелей — просто создайте необходимое количество конфигурационных файлов в /etc/openvpn. Если после прочтения статьи остались вопросы — я с радостью отвечу на них в комментариях!

tech4fun.ru

Простая настройка OpenVPN с фиксированными адресами клиентов

В этой заметке подробно описана процедура настройки OpenVPN (virtual private network – виртуальная частная сеть), в рамках модели сервер-клиент и способ фиксации адресов клиентов в виртуальной сети, на базе сертификатной аутентификации. Эта технология позволяет быстро и экономично поднимать виртуальные локальные сети на базе существующих физических или интернета.

Стоит заметить, что компания OpenVPN предлагает использовать свой продукт OpenVPN Access Server (пакет openvpn-as) – сервер с возможностью настройки и контроля доступа через web-интерфейс, но, к сожалению, количество клиентов для него ограничено лицензией, поэтому опишем процедуру настройки пакета openvpn.

Прежде всего определимся с адресным диапазоном.Необходим один внешний фиксированный IP адрес для VPN-сервера (в том случае если VPN будет работать через интернет), условно обозначим его 9.9.9.9Диапазон внутренних адресов виртуальной сети мы предлагаем использовать такой: 192.168.10.2 — 192.168.10.99

Часть I – настройка сервера

Установим пакет из репозиториев, в Debian/Ubuntu это:

sudo apt-get install openvpn

После установки перейдем в папку со скриптами генерации ключей (в различных дистрибутивах путь может различаться: /usr/share/easy-rsa, /usr/share/doc/openvpn/examples/easy-rsa/2.0):

cd /usr/share/easy-rsa

Отредактируем файл переменных:

sudo nano vars

В файле vars измените следующие значения:

export KEY_DIR="/etc/openvpn/keys" # путь к папке где будут лежать ключиexport KEY_COUNTRY="RU" # это и следующие значения изменяйте по-собственному усмотрениюexport KEY_PROVINCE="MS"export KEY_CITY="Moscow"export KEY_ORG="СompanyName"export KEY_EMAIL="[email protected]"

Следующие команды рекомендуем выполнять под root’ом, дабы не возникло проблем с правами:

sumkdir /etc/openvpn/keysmkdir /etc/openvpn/ccdsource ./vars./clean-all./build-dh./pkitool --initca./pkitool --server server./pkitool clientopenvpn --genkey --secret ta.keymv ./ta.key /etc/openvpn/keys

Эти команды создают необходимые папки и генерируют сертификаты для сервера и клиентов с данными введенными в файл vars.Создадим файл настроек:

nano /etc/openvpn/openvpn.conf

В него добавьте следующий текст:

mode server # указывает программе работать в режиме сервераtls-server # активирует работу Transport Layer Security (криптографический протокол) сервераproto tcp-server # выбираем протокол TCP (если необходим UDP, тогда: proto udp)dev tap # используемый тип интерфейса - L2 туннель (для L3-туннеля: dev tun)port 1200 # указываем порт, по которому будет работать OpenVPNdaemon # программа будет работать в режиме демона, если нет в этом необходимости - просто раскомментируйте строкуtls-auth /etc/openvpn/keys/ta.key 0 # активирует дополнительный уровень аутентификацииca /etc/openvpn/keys/ca.crt # путь к корневому сертификатуcert /etc/openvpn/keys/server.crt # путь к сертификату сервераkey /etc/openvpn/keys/server.key # ключ сервераdh /etc/openvpn/keys/dh3048.pem # файл алгоритма Diffie-Hellmanclient-config-dir /etc/openvpn/ccd # путь к каталогу индивидуальных клиентских конфигурацийifconfig 192.168.10.1 255.255.255.0 # устанавливает виртуальный адрес сервераifconfig-pool 192.168.10.2 192.168.10.99 # устанавливает диапазон виртуальных адресов для клиентовpush "route 192.168.10.0 255.255.255.0 192.168.10.1" # эта команда будет выполняться на клиентских компьютерах, во время инициализации OpenVPN, она будет активировать роутинг так, чтобы клиенты автоматически использовали openvpn-сервер как шлюз для этой подсетиduplicate-cn # включает возможность использования одного ключа несколькими клиентамиverb 3 # указывает уровень отладкиcipher DES-EDE3-CBC # шифрование по алгоритму DES-EDE3-CBCpersist-key # будет загружать ключи в режиме persist, то есть их перезагрузка не потребуется в случае разрыва соединенияlog-append /var/log/openvpn.log # путь к файлу логаpersist-tun # активирует работу tun/tap устройств в режиме persistcomp-lzo # активирует использование сжатия

Всё, если процедура прошла без ошибок, то сервер готов. В случае init перезапустите его командой:

sudo /etc/init.d/openvpn restart

В последних версиях openvpn требуется указать точное расположение конфигурационного файла при запуске:

sudo openvpn --config /etc/openvpn/openvpn.conf

Часть II – настройка клиента

Прежде всего установим пакет и создадим папку для хранения ключей:

sudo apt-get install openvpnsudo mkdir /etc/openvpn/keys

С сервера надо взять 4 файла:

ca.crtclient.crtclient.keyta.key

и скопировать их в папку /etc/openvpn/keys клиента.

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

sudo nano /etc/openvpn/client.conf

Добавляем в него следующий текст:

tls-client # указывает программе работать в режиме клиентаproto tcp-client # активирует протокол TCPremote 9.9.9.9 # внешний адрес сервераdev tap # используемый тип интерфейса - L2 туннельport 1200 # номер openvpn-порта сервераcd /etc/openvpn # указывает на директорию по-умолчаниюpull # указывает принимать команды от сервераtls-auth /etc/openvpn/keys/ta.key 1 # активирует дополнительный уровень аутентификацииca /etc/openvpn/keys/ca.crt # путь к корневому сертификату сервераcert /etc/openvpn/keys/client.crt # путь к сертификату клиентаkey /etc/openvpn/keys/client.key # путь к ключу клиентаcipher DES-EDE3-CBC # шифрование по алгоритму DES-EDE3-CBClog-append /var/log/openvpn.log # путь к файлу логаcomp-lzo # активирует использование сжатия

Клиент готов, в случае установленного init можно запускать:

sudo /etc/init.d/openvpn restart

В последних версиях openvpn требуется указать точное расположение конфигурационного файла при запуске:

sudo openvpn --config /etc/openvpn/client.conf

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

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

sudo route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.10.1 tap0

Также необходимые подсети вы можете добавить в конфигурационный файл сервера /etc/openvpn/openvpn.conf, добавив строки подобно этой:

push "route 192.168.5.0 255.255.255.0 192.168.10.1"

Это даст возможность не поднимать каждую подсеть вручную.

Часть III – настройка фиксированных адресов

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

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

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0source ./vars./pkitool client1./pkitool client2

Создаем файл для client1:

sudo nano /etc/openvpn/ccd/client1

В него добавляем строку:

ifconfig-push 192.168.10.51 255.255.255.0

Аналогичным образом сделаем и для client2:

sudo nano /etc/openvpn/ccd/client2

Где добавим строку:

ifconfig-push 192.168.10.52 255.255.255.0

Такая настройка сделает адрес client1 – 192.168.10.51, а client2 – 192.168.10.52.К этому стоит добавить, что эти файлы в папке ccd (параметр – client-config-dir) являются отдельными конфигурационными файлами клиентов, можете добавить в них какие-либо параметры по-своему усмотрению.

Настройка клиента для использования фиксированного адреса производится аналогично тому, как описано выше, единственное отличие в шагах, это то, что вместо client.crt и client.key вам надо скопировать и указать в файле конфигурации client1.crt и client1.key или client2.crt и client2.key соответственно.

О настройке OpenVPN-клиентов в системе Windows читайте здесь. Описание возможных параметров и команд по настройке OpenVPN вы можете найти здесь.

oss-it.ru


Смотрите также