VPS/VDS для VPN/прокси — аренда ВПС по цене от 55 рублей

VPS/VDS для VPN/прокси — аренда ВПС по цене от 55 рублей Хостинг
Содержание
  1. Что выбрать для vpn: vds или vps
  2. Get the App
  3. Выберите VPS-провайдера
  4. . Сгенерируйте конфигурацию клиента
  5. Launch the App
  6. Установите OpenVPN и EasyRSA
  7. Поднимите центр сертификации
  8. Создайте сертификат сервера, ключ и файлы шифрования
  9. Создайте сертификат и ключевую пару клиента
  10. Настройте службу OpenVPN
  11. Настройте маршрутизацию на сервере
  12. Запустите и включите службу OpenVPN
  13. Разверните инфраструктуру конфигурации клиента
  14. Android 4.4 и другие
  15. Cyberghost
  16. Expressvpn
  17. Mikrotik
  18. Mobile app
  19. Nat для ipv4-соединений
  20. Nat и firewall
  21. Nordvpn
  22. Openvpn hosting with worry-free 24/7 support | rosehosting
  23. Sysctl
  24. Using openvpn connect app
  25. Vpn-сервисы
  26. Vps/vds для vpn/прокси — аренда впс по цене от 55 рублей
  27. Windows 7
  28. Windows xp
  29. Балансировка между серверами
  30. Балансировка нагрузки между процессами openvpn
  31. Виды протоколов vpn
  32. Выбор хостинга
  33. Изменения настроек на лету с помощью client-config-dir
  34. Кеширующий резолвер dnsmasq
  35. Когда может потребоваться услуга vps-сервер для vpn
  36. Конфигурация openvpn
  37. Настройте межсетевой экран
  38. Наши требования к vps-серверам
  39. Ограничение доступа в другие сети
  40. Перенаправьте весь трафик через vpn
  41. Поменяйте порт и протокол
  42. Разворачивание сервера
  43. Рекурсивные dns-резолверы
  44. Сломанные ос пользователей
  45. Старт сервисов
  46. Упрощаем написание правил файрволла с помощью ferm
  47. Условия сотрудничества с популярными vpn-сервисами
  48. Установка пакетов
  49. Заключение

Что выбрать для vpn: vds или vps

VDS/VPS – это услуга, в рамках которой каждому клиенту хостинга предоставляется собственная виртуальная машина, которой управляют так же, как и физической. Root-доступ дает возможность вносить изменения как в настройки, так и в состав установленного программного обеспечения.

VPS. Традиционно под Virtual Private Server подразумевается технология OpenVZ, которая реализуется на уровне ОС. Это означает, что все виртуальные машины базируются на ядре Linux. Каждая из них – это отдельный сервер (VPS), к которому имеется административный доступ. Однако технология OpenVZ накладывает определенные ограничения:

  • выбор дистрибутива – только в рамках Linux;
  •  допустимая файловая система – ext4;
  •  управление сетевым экраном и запущенными процессами ограничено, зависит от настроек корневой ОС;
  •  нельзя модифицировать ядро, поэтому исключен запуск нестандартных решений – PPTP, OpenVPN, IPSEC и ряда других;
  •  невысокая приватность – администратор имеет полный доступ ко всем файлам, размещенным на сервере VPS.

VDS. Решение ассоциируется с KVM (Kernel-based Virtual Machine). Виртуализация осуществляется за счет специального ПО (гипервизора) – менеджера виртуальных машин. Основное назначение такой программы – обеспечить доступ контейнеров к аппаратному ресурсу и их корректное функционирование. KVM имеет гораздо больший набор возможностей, чем OpenVZ. Например:

  • форматирование диска под любую файловую систему;
  •  работа со всеми ОС, в том числе Windows, FreeBSD и нестандартными сборками;
  •  возможность управлять сервером на ранних этапах загрузки (в т. ч. BIOS);
  •  возможность модификации ядра операционной системы;
  •  полный доступ к процессам и сокетам;
  •  высокая приватность – доступ к содержимому контейнера позволен только его владельцу.

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

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

Например, чрезмерная нагрузка на один VPS может снизить производительность всего кластера. При использовании KVM такая ситуация невозможна. Каждой VDS выделено определенное количество ресурсов, и она не может превысить их предел. Дополнительным преимуществом технологии KVM является высокая надежность, а ее условным недостатком – меньшая гибкость.

Get the App

Download and install OpenVPN Connect. You can get the app you need for your OS right here:

Выберите VPS-провайдера

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

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

Очевидно, что Veesp выигрывает благодаря безлимитному трафику.

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

После регистрации вам предстоит оформить заказ и выбрать желаемый дистрибутив Linux. Имейте в виду, что для разных дистрибутивов настройка VPN может отличаться. Выбирайте то, что вам ближе или Debian 9 «Stretch», чтобы успешно воспользоваться дальнейшими инструкциями.

Когда вы закончите, зайдите в панель управления сервером, чтобы узнать IP-адрес и рут-пароль, либо проверьте почту – туда также придёт письмо с данными для доступа к серверу:

Не показывайте никому!

. Сгенерируйте конфигурацию клиента

Если помните, вы создали сертификат и ключ proglib.crt и proglib.key. Создайте конфиг для этих реквизитов, перейдя в директорию ~/client-configs и запустив созданный ранее скрипт:

cd ~/client-configs
sudo ./make_config.sh proglib

Команда создаст файл proglib.ovpn в директории ~/client-configs/files:

ls ~/client-configs/files
proglib.ovpn

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

А в завершение нужно просто проверить скорость и убедиться, что всё работает так, как надо.

Launch the App

Once the installation completes, open up the app and read through the license to accept it.

Установите OpenVPN и EasyRSA

Зайдите на сервер под рутом, используя IP-адрес и пароль, который вы узнали в предыдущем шаге:

ssh root@IP_вашего_сервера

Кстати, если вы выбрали Veesp в качестве провайдера, можете обеспечить своему серверу доменное имя. Тогда вам не нужно будет вводить и запоминать IP-адрес VPS-сервера.

Установите OpenVPN:

sudo apt update
sudo apt install openvpn

OpenVPN работает по TLS/SSL – использует сертификаты для шифрования трафика между клиентом и сервером. Сертификаты выдаёт центр сертификации (ЦС) – отдельный сервер.

Из соображений безопасности ЦС-сервер отделён от VPN-сервера. С помощью EasyRSA вы поднимите свой ЦС и построите на нём инфраструктуру открытых ключей (ИОК).

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

На ЦС перейдите в директорию EasyRSA:

cd ~/EasyRSA-v3.0.6/

Скопируйте файл vars.example под именем vars:

cp vars.example vars

Откройте файл в текстовом редакторе:

nano 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      "me@example.net"
#set_var EASYRSA_REQ_OU         "My Organizational Unit"

. . .

Раскомментируйте и отредактируйте по вкусу. Не оставляйте строки пустыми:

Создайте сертификат сервера, ключ и файлы шифрования

Теперь вы можете сгенерировать ключи и запрос сертификата от вашего сервера. Вы отправите запрос на ЦС для подписи.

Начните с перехода в директорию EasyRSA на сервере OpenVPN:

cd ~/EasyRSA-v3.0.6/

Запустите оттуда уже знакомую команду easyrsa с опцией init-pki:

./easyrsa init-pki

Затем запустите скрипт easyrsa с опцией gen-req и с любым именем машины. Не забудьте опцию nopass – без неё файл запроса окажется на пароле, что может вызвать проблемы с доступом в дальнейшем:

./easyrsa gen-req server nopass

Команда создаст закрытый ключ и файл запроса сертификата server.req. Скопируйте ключ в /etc/openvpn/:

sudo cp ~/EasyRSA-v3.0.6/pki/private/server.key /etc/openvpn/

Передайте server.req на ЦС безопасным способом:

scp ~/EasyRSA-v3.0.6/pki/reqs/server.req proglib@IP_вашего_ЦС:/tmp

Далее, на машине ЦС перейдите в директорию EasyRSA:

cd EasyRSA-v3.0.6/

Импортируйте файл server.req с помощью скрипта easyrsa, указав общее имя:

./easyrsa import-req /tmp/server.req server

Подпишите запрос, используя скрипт easyrsa с опцией sign-req, указав тип запроса и общее имя. Тип запроса может быть client или server. Для сервера OpenVPN, очевидно, server:

./easyrsa sign-req server server

Вывод проверит источник исходящего запроса. Введите yes, затем ENTER для подтверждения:

You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.

Request subject, to be signed as a server certificate for 3650 days:

subject=
    commonName                = server


Type the word 'yes' to continue, or any other input to abort.
  Confirm request details: yes

Передайте подписанный сертификат на VPN-сервер:

scp pki/issued/server.crt proglib@IP_вашего_сервера:/tmp

Прежде чем выйти из ЦС, передайте на сервер файл ca.crt:

scp pki/ca.crt proglib@IP_вашего_сервера:/tmp

Далее зайдите на сервер OpenVPN и скопируйте файлы server.crt и ca.crt в директорию /etc/openvpn/:

sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/

Затем перейдите в директорию EasyRSA:

cd EasyRSA-v3.0.6/

Создайте там ключ Диффи-Хеллмана для использования во время обмена:

./easyrsa gen-dh

Сгенерируйте подпись HMAC для усиления возможностей проверки целостности TLS сервера:

sudo openvpn --genkey --secret ta.key

Скопируйте новые файлы в директорию /etc/openvpn/:

sudo cp ~/EasyRSA-v3.0.6/ta.key /etc/openvpn/
sudo cp ~/EasyRSA-v3.0.6/pki/dh.pem /etc/openvpn/

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

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

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

Вам нужно передать скрипту уникальное имя клиента (proglib).

Для начала создайте структуру директорий в домашнем каталоге для хранения сертификатов и ключей:

mkdir -p ~/client-configs/keys

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

chmod -R 700 ~/client-configs

Далее возвращайтесь в директорию EasyRSA и запускайте скрипт easyrsa с опциями gen-req,  nopass и именем клиента:

cd EasyRSA-v3.0.6/
./easyrsa gen-req proglib nopass

Жмите ENTER, чтобы подтвердить и скопируйте файл proglib.key в созданную ранее директорию /client-configs/keys/:

cp pki/private/proglib.key ~/client-configs/keys/

Передайте файл proglib.req вашему ЦС:

scp pki/reqs/proglib.req proglib@IP_вашего_ЦС:/tmp

Зайдите на ЦС, перейдите в директорию EasyRSA, чтобы импортировать запрос сертификата:

ssh proglib@IP_вашего_ЦС
cd EasyRSA-v3.0.6/
./easyrsa import-req /tmp/proglib.req proglib

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

./easyrsa sign-req client proglib

На выводе нажмите yes, чтобы подтвердить источник сертификата:

Type the word 'yes' to continue, or any other input to abort.
  Confirm request details: yes

Команда создаёт файл proglib.crt. Отправьте его обратно на сервер:

scp pki/issued/proglib.crt proglib@IP_вашего_сервера:/tmp

Зайдите на сервер OpenVPN и скопируйте сертификат клиента в директорию /client-configs/keys/:

cp /tmp/proglib.crt ~/client-configs/keys/

А также скопируйте файлы ca.crt и ca.crt в директорию /client-configs/keys/:

sudo cp ~/EasyRSA-v3.0.6/ta.key ~/client-configs/keys/
sudo cp /etc/openvpn/ca.crt ~/client-configs/keys/

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

Настройте службу OpenVPN

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

Используйте копию шаблона конфигурации OpenVPN:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz

Откройте файл настроек сервера в текстовом редакторе:

sudo nano /etc/openvpn/server.conf

Раскомментируйте директиву tls-auth в секции HMAC и добавьте параметр key-direction в 0:

tls-auth ta.key 0 # This file is secret
key-direction 0

Затем раскомментируйте cipher:

cipher AES-256-CBC

Ниже добавьте директиву auth:

auth SHA256

После найдите строчку с директивой dh, которая описывает параметры Диффи-Хеллмана. При необходимости удалите из имени 2048, чтобы оно совпадало с ключом, сгенерированным на предыдущем шаге.

dh dh.pem

Настройте маршрутизацию на сервере

Чтобы трафик шёл в OpenVPN, нужно разрешить маршрутизацию пакетов в файле /etc/sysctl.conf:

sudo nano /etc/sysctl.conf

Раскомментируйте строчку net.ipv4.ip_forward:

net.ipv4.ip_forward=1

Сохраните, закройте и примените:

sudo sysctl -p
net.ipv4.ip_forward = 1

Запустите и включите службу OpenVPN

Наконец-то вы можете запустить службу OpenVPN на вашем сервере с помощью утилиты systemd systemctl.

Запустите сервер OpenVPN, указав имя файла конфигурации в качестве экземпляра переменной после имени unit-файла systemd. Файл конфигурации вашего сервера называется /etc/openvpn/server.conf, так что добавьте @server в конце unit-файла при вызове:

sudo systemctl start openvpn@server

Убедитесь, что сервер успешно запустился:

sudo systemctl status openvpn@server

Если всё хорошо, вы получите что-то похожее:

Разверните инфраструктуру конфигурации клиента

Создайте директории внутри каталога client-configs. Там будут храниться файлы конфигурации клиента:

mkdir -p ~/client-configs/files

Скопируйте пример конфигурации клиента в директорию client-configs:

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf

Откройте новый файл в текстовом редакторе:

nano ~/client-configs/base.conf

Перейдите к директиве remote. Она направляет клиента на публичный адрес вашего сервера OpenVPN. Если вы поменяли порт, на котором слушает OpenVPN, не забудьте поменять здесь значение по умолчанию 1194:

. . .
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote IP_вашего_сервера 1194
. . .

Убедитесь, что протокол соответствует значению в настройках сервера:

proto udp

Android 4.4 и другие

Каждый вендор ломает VPN Framework в Android по-своему. Многие сборки Android имеют проблемы, которые не поддаются объяснению, например часто жалуются на то, что при подключенном VPN DNS запросы выполняются по несколько секунд. В Android 4.4 полностью

Cyberghost

Тех. поддержка 24/7, работа с торрентами и высокая скорость трафика. Сервис доступен для 1 устройства без пакета Premium Plus. Возврат денег в течение 45 дней с момента совершения покупки. Сервис охватывает 91 страну, 114 локаций и 7 182 серверов.

Оплата 4 тарифов производится в евро ежемесячно:

Оплата производится:

CyberGhost

Expressvpn

100% гарантия возврата денег в течение 30 дней с момента заказа услуг. Компания охватывает 94 страны и 160 локаций серверов. Скорость — от 500 до 25 000 кбит/с. Компания предлагает функцию экстренного отключения от сервера VPN (понадобиться для защиты информации клиента при резком отключении от Интернета) с блокированием всего интернет-трафика.

Оплата по 3 тарифам ежемесячная:

Оплата производится:

ExpressVPN

Mikrotik


В RouterOS есть поддержка OpenVPN. К сожалению она чаще не работает, чем работает. Статья посвященная

Мы отказались ломать наши сервера, чтобы сделать их совместимыми с багами Mikrotik, и предложили пользователям писать баг-репорты в компанию Miktorik. В результате было выпущено несколько исправлений в версии RouterOS 6.40rc24.

What's new in 6.40rc24 (2022-Jun-20 09:38):
*) ovpn - added support for topology subnet for IP mode;
*) ovpn - added support for "push-continuation";
*) ovpn - fixed duplicate default gateway presence when receiving extra routes;  

Хотя по сообщениям пользователей, проблема так и не решена полностью. Советую всем заинтересованным лицам продолжить отправлять баг-репорты в Mikrotik до полного решения проблемы.

Mobile app

Looking for Linux? Follow these instructions.

Nat для ipv4-соединений

Клиентам выдается «серый» IP-адрес из диапазона 192.168.*.*, поэтому маршрутизировать его напрямую в интернет нельзя. Для того, чтобы выпустить клиентов в IPv4-интернет, нужно использовать

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

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

Nat и firewall


На серверах забороны больше двух сотен правил iptables, по несколько на каждый диапазон

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

Nordvpn

100% гарантия возврата денег в течение 30 дней с момента заказа услуг. Более 5500 серверов VPN на выбор. Действует гарантированная политика без логов, обусловленная отсутствием слежения за клиентом. Скорость подключения — 6730 Мбит/с. Подключение 6 устройств одновременно.

Компания предлагает 3 тарифных плана с ежемесячной оплатой:

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

NordVPN

Openvpn hosting with worry-free 24/7 support | rosehosting

Our servers are built to serve users like you with a premium, high-quality hosting experience that focuses on giving you convenience and transparency above all. You need a high-performance server that can handle the visitors and requests that are being made to your website. It comes down to three main factors: CPU, Storage, and Network. Our CPUs are the latest-generation Intel® Xeon® Gold processors. Their excellent performance lets your server handle many requests simulataneously, process data from requests that are made, and run several services at once with ease.

Storage is make-or-break for a website’s performance. A fast processor is useless if it’s always waiting for data to be loaded from the slow storage. That’s why we only pair our high-performance processors with the best enterprise-grade NVMe SSD storage on the market. With read and write speeds in excess of 3 Gigabytes per second, you’ll see load times that simply aren’t possible with a regular SSD, not to mention spinning hard drives. Storage is the largest bottleneck in a server, and we use the best hardware to give your server the best performance.

Having a high-performance and redundant network setup is also key in serving many visitors reliably. With our redundant 10Gbe uplinks and excellent data center location, we’re able to provide your VPS with excellent throughput, all while U.S. visitors enjoy faster response times.

These factors combined make for what we believe is some of the best server hardware available at this price point.

Sysctl


Файл systctl.conf с настройками ядра. В нем включаем форвардинг IP-пакетов и другие опции для оптимизации системы под VPN сервер.

Using openvpn connect app

Ready to connect to your private OpenVPN Cloud? All it takes are these three steps:

Vpn-сервисы

Работа по настройке VPN-сервера занимает много времени и требует специальных знаний. Поэтому во многих случаях выгоднее воспользоваться VPN-сервисом: услугой компании по предоставлению пользователям готовых VPN-серверов для личного использования. Наиболее известными из них являются:

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

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

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

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

Vps/vds для vpn/прокси — аренда впс по цене от 55 рублей

На нашем сайте представлено 1 727 виртуальных серверов VPS/VDS для VPN/прокси по цене от 55 рублей. Чтобы арендовать виртуальный сервер, выберите подходящий тариф и купите его на сайте хостинг-провайдера. У нас вы найдете только актуальные предложения от различных компаний, присутствующих на рынке интернет-услуг, среди которых FirstByte, uaVPS, JustHost и другие.

Windows 7

У многих пользователей отключены автоматические обновления Windows. Почему-то, в такой конфигурации на Windows 7 часто ломается IPv6. При подключении в логах OpenVPN появляется такая ошибка:

 NETSH: C:WINDOWSsystem32netsh.exe interface ipv6 set address interface=32 2a00:1838:30:7280::1149 store=active
ERROR: netsh command failed: returned error code 1

Причину этой аномалии не удалось выяснить. Зато у Microsoft есть специальная утилита на такой случай —

. Ссылка на скачивание внизу с подписью

«Re-enable IPv6 on nontunnel interfaces and on IPv6 tunnel interfaces»

Windows xp


Несмотря на то, что поддержка этой OC закончилась ВОСЕМЬ лет назад, ее по-прежнему используют. На ней не работет много современных программ, веб-браузеры, а также последняя версия OpenVPN 2.4. Этой теме посвящена

Балансировка между серверами

Мы используем самый простой способ балансировки — с помощью множественных А-записей DNS. Все клиенты подключаются к серверу через доменное имя

vpn.zaborona.help

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

image
Панель управления DNS-записями. Балансировка с помощью множественых А-записей. Малое значение TTL позволяет быстро удалять адреса из общего списка.

Балансировка нагрузки между процессами openvpn

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

statistic

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

Виды протоколов vpn

Существует много технических реализаций Virtual Private Network. Для настройки VPS/VDS чаще всего используются следующие варианты.

OpenVPN. Распространяется по лицензии GNU GPL. Данное решение имеет открытый код, а для шифрования используются библиотека OpenSSL и доступные в ней алгоритмы шифрования. При установке соединения может применяться как TCP-, так и UDP-протокол, в том числе для вариантов «сервер-клиент» или «точка-точка».

OpenVPN может также использоваться для защиты Wi-Fi. На VPS для OpenVPN с помощью данного протокола организуется доступ в Интернет. Например, связка OpenVPN VDS KVM дает возможность клиенту получить внешний маршрутизируемый адрес, если провайдер его не предоставляет.

PPTP. Это один из старейших туннельных протоколов VPN типа «точка-точка». Он появился еще на Windows 95 и стал стандартным для всех последующих версий данной ОС. PPTP прост в настройке, имеет высокую скорость и чаще всего используется в приложениях, где скорость имеет больший приоритет, чем безопасность. Например, при потоковой передаче видеофайлов или при работе на старых маломощных компьютерах.

Выбор хостинга

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

В качестве серверной операционной системы лучше выбирать Debian последней версии. Изначально она разрабатывалась именно как серверная операционная система. По установке и настройке Debian в Интернете находится множество доступной информации. Хостинг арендуется у специализированных компаний: хостинг-провайдеров. Наиболее популярными из них являются:

Цена хостинга может быть разной в зависимости от количества памяти, мощности виртуального сервера и других технических параметров. Например, 512 МБ оперативной памяти виртуального сервера в компании AWS обойдется пользователю в 3,5 доллара ежемесячно. Кроме того, компания зарекомендовала себя как надежный поставщик услуг виртуальных серверов, которыми пользуется

Изменения настроек на лету с помощью client-config-dir

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

Решением этой проблемы стала опция client-config-dir. Она используется для того, чтобы назначит индивидуальные настройки поименно каждому пользователю. Так как у нас все пользователи подключаются от имени одного клиента public, то файл один на всех <b>

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

Кеширующий резолвер dnsmasq


По-умолчанию dnsmasq принимает запросы только с локального интерфейса 127.0.0.1, поэтому разрешаем запросы с адресов VPN клиентов и устанавливаем размер DNS-кеша.

/etc/dnsmasq.d/zaborona

listen-address=127.0.0.1,192.168.224.1,192.168.228.1
cache-size=1000

Когда может потребоваться услуга vps-сервер для vpn

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

При работе с открытыми Wi-Fi-точками. В этом случае VPN не роскошь, а необходимость. Если Вы работаете через открытый Hot Spot, данные могут быть перехвачены злоумышленниками. VPN-канал делает использование Wi-Fi-точек безопасным.

Чтобы скрыть реальный IP-адрес устройства. При подключении весь интернет-трафик будет идти через VPN-сервер. Поэтому конечный узел будет видеть его IP-адрес, а не Вашего устройства.

В бизнесе VPN-сервер чаще всего используется в следующих случаях:

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

Конфигурация openvpn

Так как все сервера настроены идентично, просто копируем конфиги вместе с файлами ключей и сертификатам в папку

/etc/openvpn

. Никакой генерации ключей/сертификатов не выполняется. Число процессов OpenVPN настраивает по числу ядер на сервере, в нашем случае 2. Каждый отдельный процесс имеет свой конфиг: zaborona1.conf и zaborona2.conf.

Чтобы избежать путаницы, я буду называть процессы OpenVPN демонами, но сути это несколько отдельных серверов, запущенных внутри одного VPS.

Список файлов в /etc/openvpn

/etc/openvpn/zaborona1.conf  # конфиг первого демона
/etc/openvpn/zaborona2.conf  # конфиг второго демона

/etc/openvpn/ccd/DEFAULT # файл с изменяемым на лету настройками для первого демона
/etc/openvpn/ccd2/DEFAULT #  файл с изменяемым на лету настройками для второго демона

/etc/openvpn/logs # папка с логами


/etc/openvpn/ca.crt # корневой сертификат
/etc/openvpn/zaborona.help.crt # сертификат сервера
/etc/openvpn/zaborona.help.key # ключ сервера
/etc/openvpn/dh2048.pem # файл с Diffie-Hellman группами (необходим для шифрования)

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

zaborona1.conf
mode server
# Несмотря на то, что протокол UDP быстрее, мы используем TCP для экономии трафика и аккумулятора мобильных уcтройств, так как в режиме UDP  клиент вынужден чаще посылать keep-alive пакеты, чтобы поддерживать NAT-трансляцию на роутере или CGNAT.
proto tcp

# Тип инкапсуляции L3, то есть ip уровень. Нам не нужен L2 уровень.
dev-type tun
# Имя tun-интерфейса на сервере
dev zaborona1

# Раздавать клиенту адреса из общей /24, а не резать на подсети /30.
topology subnet

# Диапазон "серых" ipv4-адресов, выдаваемых клиентам. 
server 192.168.224.0 255.255.252.0
# Диапазон реальных ipv6-адресов, выдаваемых клиентам. Уникален для каждого сервера.
server-ipv6 2a00:1838:32:200::/112

txqueuelen 250
keepalive 300 900
persist-tun
persist-key

cipher AES-128-CBC
ncp-ciphers AES-128-GCM

#user nobody
duplicate-cn

log logs/zaborona1.log
status logs/status1.log 30

# Путь к папке с конфигами пользователей. Эта опция позволяет назначить индивидуальные опции для каждого пользователя. Файл перечитывается заново при каждом подключении клиента, поэтому изменения можно выполнять без перезапуска сервера.
client-config-dir ccd

ca ca.crt
cert zaborona.help.crt
key zaborona.help.key
dh dh2048.pem


Конфиги разных демонов отличаются только номером порта для входящих соединений и диапазоном IP-адресов, выдаваемых клиентам.

Настройте межсетевой экран

Установите ufw:

sudo apt update
sudo apt install ufw

Узнайте публичный сетевой интерфейс:

ip route | grep default

Он будет указан после слова «dev» (eth0):

default via 203.0.113.1 dev eth0 onlink

Наши требования к vps-серверам

  • Виртуализация XEN или KVM. OpenVZ в большинстве случаев не позволяет нормально управлять IPv6-адресами, имеет ограничения на настройку переменных ядра (sysctl). Для некоторых нужд OpenVZ вполне пригоден, но не для большого и высоконагруженного VPN-сервера.
  • Мощный серверный процессор. Некоторые провайдеры, вроде Scaleway, предлагают бюджетные VPS-серверы на маломощных процессорах ARM или Intel Atom. Бывают даже серверы на процессорах VIA. На таких системах OpenVPN работает медленно, но не из-за шифрования, как можно было бы предположить. Модуль tun, который используется OpenVPN для создания сетевого интерфейса, не оптимизирован под высокие нагрузки: он принимает или отдает только один пакет за системный вызов, из-за чего происходит большое количество переключений контекста между режимом ядра и пользователя. Чем медленнее частота памяти и дешевле процессор, тем медленнее происходит переключение. Кроме того, в коде OpenVPN используются системные вызовы recv и send, оперирующие единичными сетевыми пакетами, из-за чего отправка зашифрованных пакетов тоже происходит не самым оптимальным образом. Поэтому для нормальной работы OpenVPN важно иметь быстрый процессор и память.
  • Безлимитный трафик и хорошие каналы. Пользователи потребляют много медиа-контента в социальных сетях, трафик расходуется очень быстро. Тарифы с низкой квотой трафика (1ТБ) расходуются за сутки.
  • Отдельная маршрутизируемая сеть IPv6 необходима для прямого выделения реальных адресов клиентам. Большинство хостеров даже не понимают, что это значит, и просто назначают на сетевом интерфейсе гипервизора требуемую подсеть, а не создают запись в таблице маршрутизации через существующую (или через link-local-адрес). Это не позволяет без костылей назначить выданный диапазон на сетевой интерфейс VPN и выдавать IPv6-адреса напрямую клиентам: гипервизор хостера отправит NDP-запрос (аналог ARP для IPv6) виртуальной машине, виртуалка не найдет у себя этот адрес, не ответит на запрос, и ничего не заработает. Существуют NDP-прокси, которые позволяют обойти эту проблему, но это неудобно, и из-за этого может создаваться дополнительная нагрузка на гипервизор и маршрутизаторы хостера.


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

ЕДИНСТВЕННОГО

хостинг-провайдера, удовлетворяющего всем нашим нуждам.

Ограничение доступа в другие сети

Любой пользователь может добавить опцию

redirect-gateway

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

Перенаправьте весь трафик через vpn

Чтобы направить трафик в туннель, нужно «продвинуть» свои настройки маршрутов и DNS на клиентские машины.

В файле server.conf расскоментируйте redirect-gateway:

push "redirect-gateway def1 bypass-dhcp"

И dhcp-option:

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

Это поменяет настройки DNS на клиенте и заставит использовать VPN туннель в качестве маршрута по умолчанию.

Поменяйте порт и протокол

По умолчанию OpenVPN принимает клиентов на 1194 порте по протоколу UDP. Поменяйте порт и протокол, если предстоит подключаться к VPN из сетей с ограничениями. Порт 443 не фильтруется файерволами.

port 443

Измените протокол на TCP, если фильтруется UDP:

proto tcp

При этом отключите директиву explicit-exit-notify – она нужна только для UDP. Иначе служба OpenVPN не запустится с указанными протоколом TCP:

explicit-exit-notify 0

Если вам необязательно менять протокол и порт, не трогайте эти настройки.

Разворачивание сервера


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

Конфиги максимально унифицированы и могут быть без изменений развернуты на сервере. Это удобно при использоватии инструментов автоматического деплоя, вроде Ansible.

Единственное уникальные данные для каждого сервера — подсеть IPv6, подписанная в конфигурационном файле OpenVPN.

На серверах используется Ubuntu 16.04 LTS с ядром 4.4.0.

Рекурсивные dns-резолверы

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

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

Для решения этой проблемы ValdikSS написал патч для OpenVPN, блокирующий утечки DNS в Windows. Он использует Windows Filtering Platform — специальный слой файрволла Windows, позволяющий блокировать запросы к сторонним DNS, пока запущен OpenVPN.

Сломанные ос пользователей


У значительной доли пользователей оказались устаревшие, сломанные ОС. Очень часто в системе сломана поддержка IPv6, например во многих сборках Windows 7 «от Васяна с rutracker», где отключены автоматические обновления системы. Мы завели

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

Вот наиболее типичные случаи кривого пользовательского окружения:

Старт сервисов

После того, как все сервисы настроены, можно добавить их старт в автозагрузку.

Предварительно увеличиваем лимит на число открытых файловых дескрипторов для процессов OpenVPN, иначе при большом числе клиентов мы их превысим и получим ошибку Too many open files из-за большого числа открытых сокетов.

systemctl edit openvpn@.service 

[Service]       
LimitNOFILE=8192
# Перечитываем стартовые скрипты, чтобы изменения вступили в силу.
systemctl daemon-reload

# Добавляем в автозагрузку и сразу стартуем оба процесса OpenVPN.
systemctl enable --now openvpn@zaborona1
systemctl enable --now openvpn@zaborona2  

# Перезапускаем сервисы dnsmasq и ferm. Они добавлены в автозагрузку по умолчанию после установки.
systemctl restart dnsmasq
systemctl restart ferm

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

Упрощаем написание правил файрволла с помощью ferm

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

Простой пример: мы хотим заблокировать входящие соединения из нескольких тысяч сетей на трех сетевых интерфейсах eth0, eth1, eth2. В обычном случае нужно было бы написать тысячи одинаковых правил для каждого интерфейса.

Вот как эта задача решается через ferm:

Условия сотрудничества с популярными vpn-сервисами

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

Установка пакетов

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

Заключение

Описываемые компании заслужили репутацию надежных поставщиков VPN-сервисов во всем мире. Они предлагают готовые решения для быстрого и безопасного подключения к серверу VPN для устройств на популярных платформах — Windows, MacOS, Linux, Android. Услугами пользуются физические и юридические лица.

Оцените статью
Хостинги