Перейти к содержимому
vpnРоссия > Гиды о VPN > Как сделать свой VPN

Как сделать свой VPN

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

Руководство для создания собственного VPN-сервера

Разобраться, как сделать свой VPN довольно легко, т.к. все нужные программы распространяются бесплатно, есть возможность арендовать облачный сервер. И буквально «с нуля», с любого ПК или мобильного устройства, настроить виртуальную частную сеть. Что такое VPN мы уже писали, поговорим о том как сделать свой домашний VPN сервер.

Как сделать свой VPN

Основные шаги для этого:

  1. Выбрать сервер, локальный или удаленный.
  2. Настроить серверную часть (установка операционки и пр.).
  3. Инсталлировать рабочий софт для поддержки ВПН.
  4. Настроить конфигурационные файлы.
  5. Протестировать систему.

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

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

VPN для дома: Необходимое оборудование и ПО

Один из основных подготовительных шагов – это выбор компьютера, где будет работать сервер ВПН. Варианта два: локальный компьютер, установленный дома/на работе, или аренда удаленной машины VPS/VDS. Если выбрать домашний/рабочий ПК, можно создать автономную сеть, которая, например, работает только внутри местной локалки. При подключении компьютера к интернету появится возможность подключения извне.

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

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

  1. Процессор – одноядерный, от 2 ГГц.
  2. Оперативная память – объем от 512 Мбайт.
  3. Скорость передачи данных – от 100 Мбит/сек.
  4. Объем накопителя – непринципиален.

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

Помимо сервера, важным элементом собственной системы VPN является программное обеспечение для работы по защищенному каналу. Отметим, что не все провайдеры VDS/VPS разрешают ставить его на свои облачные сервера. Этот момент стоит уточнить до оплаты выбранного тарифа. Чтобы иметь гарантию доступа с территории РФ, лучше выбирать провайдеров, имеющих мощности в ЦОД, размещенных внутри страны.

Программное обеспечение

Теперь о софте. Существует более десятка различных вариантов. Одни более популярны, другие менее по причине разного набора встроенных функций, наличия «дыр» в системе безопасности и по ряду иных причин. Разберем подробнее основные варианты. Общее их свойство – бесплатность без ограничений в функционале.

OpenVPN

Одно из самых известных решений – OpenVPN. Работает система по одноименному протоколу. Она способна «обходить» даже брандмауэры NAT. Есть встроенная поддержка TCP, UDP, нескольких способов шифрации передаваемых данных. Процесс установки OpenVPN легко освоить новичкам, без навыков администрирования серверов.

WireGuard

Еще один популярный вариант – WireGuard. Он, как и OpenVPN, использует в работе одноименный протокол. Система является мультиплатформенной. Выбирают ее в основном из-за безопасности, простоты использования. Выделяется поддержкой IPv4 и IPv6, маршрутизации криптографических ключей, предполагающей связь открытых ключей со списком IP-адресов в туннеле.

SoftEther

Простой инструмент с открытым исходным кодом – SoftEther VPN, имеет большой набор функций. Например, графический интерфейс, аутентификацию сертификата RSA, двойной стек IPv4/IPv6. Система поддерживает протоколы OpenVPN, L2TP, SSTP, EtherIP, Ethernet через HTTPS. Есть возможность проникновения через брандмауэры, разрешающие только пакеты DNS, ICMP. Единственный нюанс – все придется настраивать вручную, вариант не очень хорош для новичков.

Algo

Минималистичный вариант для создания ВПН – Algo, ориентирован на мобильные устройства. В софт встроена поддержка только WireGuard и IKEv2, система обходится без клиентских программ, ее легко настроить. Используют Algo преимущественно, когда нужен безопасный прокси. Обход цензуры, блокировки по географическому принципу для ее недоступен.

Streisand

Еще один максимально простой в настройке софт – Streisand. В него встроена поддержка целого перечня протоколов: OpenSSH, OpenConnect, L2TP, OpenVPN, Shadowsocks, Tor Bridge, Stunnel и WireGuard. В зависимости от выбора может понадобится установка клиентского приложения. Нет поддержки IKEv2, но обход цензуры все же возможен. Настройка простая, не требует определенных навыков и знаний.

PriTunl

Сервис PiTunl включает 5 уровней аутентификации, поддерживает настраиваемые плагины, за счет подключения которых возможно расширение функционала. Разработчик предлагает уже готовые клиенты для разных платформ, поддержку OpenVPN, AWS VPC, открытый исходный код. Еще есть поддержка шифрования, шлюзовых соединений, удаленный доступ к пользователям в локальной сети. Вариант удобен в качестве инструмента управления корпоративными ресурсами.

StrongSwan

Многоплатформенное программное обеспечение StrongSwan – решение на базе IPsec, с поддержкой IKEv1, IKEv2, инкапсуляции UDP и плавающих портов для NAT-Traversal. Еще система способна работать с Online Certificate Status Protocol, с модульными плагинами для расширения возможностей шифрования. Единственное ограничение заключается в относительной сложности инсталляции и настройки сервиса. Огромное количество опций сбивает с толку новичков.

VyOS

Интересное решение – VyOS, представляет собой полноценную сетевую операционную систему на базе ядра Linux. Ее разрабатывали специально для брандмауэров и маршрутизаторов. Сервис имеет поддержку веб-прокси, фильтрации сайтов, IPsec для IPv4 и IPv6, OpenVPN. Еще поддерживаются протоколы динамической маршрутизации, CLI. Система интересна тем, кто предпочитать работать с продуктами, обладающими собственными графическим интерфейсом и пр.

Outline

Своеобразный инструмент Outline сам по себе не является ВПН-сервером. Но он поддерживает протокол Shadowsocks, красивый графический интерфейс менеджера и позволяет запустить пусть и простейший, но все-таки защищенный туннель.

Freelan

Сервис Freelan – бесплатный инструмент с открытым исходным кодом. Мультиплатформенный и простой в освоении софт, написанный на C и C++, предназначен для абстрагирования локальных сетей при работе через Интернет. «Чистым» ВПН его назвать сложно.

Дополнительные инструменты

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

Популярные SSH-клиенты для организации домашнего VPN-сервера:

  1. PuTTY. Обладает простым, логичным интерфейсом, поддерживает прокси. Открытый код позволяет использовать решение в собственных разработках.
  2. KiTTY. Софт основан на коде PuTTY, но имеет ряд дополнений вроде хранения настроек в специальном файле, выставления собственных фильтров для отдельных сессий и пр.
  3. MobaXtrem. Высокоскоростной, удобный клиент с собственным браузером файлов, массой подключаемых плагинов и portable-версией, позволяющей обойтись без инсталляции.

В интернете можно найти и еще несколько вариантов – Solar-PUTTY, SmarTTY, Xshell, Tera Term и т.д., но перечисленных 3 вполне достаточно для выбора наиболее удобной утилиты для коннекта с сервером ВПН.

Плюсом к SSH-клиент стоит добавить текстовый редактор. Он поможет в ручном редактировании конфигурационных файлов. Можно ограничиться утилитой, встроенной в операционную систему «по умолчанию». Здесь выбор исключительно индивидуальный.

Шаг №1. Выбор сервера для создания VPN

Перейдем к практике, как сделать свой ВПН на базе удаленного сервера. Использование своего ПК отметаем, т.к. провайдеры обеспечивают круглосуточный доступ к VPS/VDS независимо от того, где находится пользователь. Там есть резервные линии электропитания, интернета и т.д., чего нет и не будет в домашних или офисных условиях.

создание VPN

Плюсы VPS/VDS:

  1. Полный контроль сервера через панель управления.
  2. Возможность создать несколько серверов в разных локациях.
  3. Конфигурацию, дополнительные возможности определяет пользователь.
  4. Отсутствует привязка к какому-то конкретному провайдеру.
  5. Можно бесплатно открыть доступ знакомым и пр.

Выбор провайдера прост. Нужно убедиться, что он разрешает настраивать VPN-сервера, изучить тарифы и выбрать наиболее интересный по соотношению цена/параметры. Еще стоит убедиться в доступности сервисов из России (оптимально выбирать тех, кто предлагает локацию сервера в РФ). Что это будет за сервис – AWS, Google Cloud или DigitalOcean, непринципиально.

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

Шаг №2. Настройка VPN-сервера

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

настройка VPN

Возьмем в качестве примера CentOS 7. Она несколько проще более популярной Ubuntu и подобных операционок. Перед установкой VPN-сервера нужно установить обновления, пакеты, необходимые для инсталляции, например, OpenVPN. Выполняется процедура командой:

yum update -y

При запросе, устанавливать ли обновления, нужно ответить утвердительно нажатием кнопки «Y». По завершении процедуры следует перезагрузить сервер:

reboot

Открыть окно для ввода текстовых команд можно несколькими способами. Например, комбинация клавиш Ctrl+Alt+T запускает терминал, при нажатии Alt+F2 будет открыто окно «Выполнить», где можно ввести команду gnome-terminal или konsole.

Шаг №3. Установка программного обеспечения для VPN

Перед инсталляцией софта OpenVPN необходимо подготовить систему установкой расширенного репозитория Extra Packages for Enterprise Linux (EPEL). Выполняется это командой:

yum install epel-release -y

Затем стоит еще раз обновить операционную систему:

yum update -y

Теперь можно инсталлировать OpenVPN:

yum install -y openvpn

собственный VPN сервер

Следующим шагом нужно инсталлировать утилиты Easy RSA, CLI и PKI Certificate Authority. Они понадобятся для создания PKI, Public Key Infrastructure. Вводим команду:

yum install -y wget

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

wget https://github.com/OpenVPN/easy-rsa/archive/v3.0.8.tar.gz

Распаковываем скачанный архив:

tar -xf v3.0.8.tar.gz

И создаем новый каталог:

cd /etc/openvpn/

В нем создаем подкаталогeasy-rsa и переносим извлеченные файлы по пути /etc/openvpn/easy-rsa. В строке команда будет выглядеть так:

mv /root/easy-rsa-3.0.8 /etc/openvpn/easy-rsa

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

Шаг №4. Настройка конфигурационных файлов VPN

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

Последовательность настройки такова:

  1. Скопируйте шаблон файла server.conf:

cp /usr/share/doc/openvpn-2.4.9/sample/sample-config-files/server.conf /etc/openvpn

Если файл расположен нестандартно, его можно предварительно найти командой find.

2. Откройте шаблон при помощи текстового редактора. Чаще пользуются программой Nano или Vim (их нужно инсталлировать заранее):

vi etc/openvpn/server.conf

Отметим, что строки с хэштегом # или точкой с запятой – это комментарии, а не команды.

3. Снимите комментирование с нескольких строк:

  • topology subnet – выполняет инсталляцию OpenVPN в качестве подсети;
  • push «redirect-gateway def1 bypass-dhcp» – перенаправляет трафик через OpenVPN;
  • push «dhcp-option DNS ХХХ.ХХХ.ХХХ.ХХХ» – назначает преобразователь OpenDNS для работы с OpenVPN;
  • push «dhcp-option DNS ХХХ.ХХХ.ХХХ.ХХХ» – указывает преобразователь OpenDNS для работы с OpenVPN;
  • user nobody – запускать OpenVPN без привилегий;
  • group nobody – то же, что и предыдущий пункт.

Следом создайте статический ключ шифрования. Это необходимо для активации аутентификации TLS. Найдите и закомментируйте строку tls-auth ta.key 0. Ниже добавьте tls-crypt myvpn.tlsauth. В графах ХХХ.ХХХ.ХХХ.ХХХ укажите DNS, которые планируется использовать для подключения. Сама генерация ключа запускается командой:

openvpn —genkey —secret /etc/openvpn/myvpn.tlsauth

Последующие шаги с ключами и сертификатами включают действия:

  1. Создайте файл vars при помощи vars.example, расположенного по пути /easy-rsa/easyrsa3:

cd /etc/openvpn/easy-rsa/easyrsa3

cp vars.example vars

2. Откройте файл в текстовом редакторе, например, командой vi vars и найдите там строки:

#set_var EASYRSA_REQ_COUNTRY «Russia»

#set_var EASYRSA_REQ_PROVINCE «Moscow District»

#set_var EASYRSA_REQ_CITY «Moscow»

#set_var EASYRSA_REQ_ORG «Certificate Company»

#set_var EASYRSA_REQ_EMAIL «me@example.net»

#set_var EASYRSA_REQ_OU «Orgname»

установка VPN

3. Снимите комментарии с них. Затем в строке KEY_NAME измените значение на server, а в KEY_CN укажите домен, разрешенный для вашего сервера.

4. Закройте файл с сохранением изменений и очистите предыдущие ключи с одновременным созданием центра сертификации:

./easyrsa clean-all.

./easyrsa build-ca

./easyrsa build-ca nopass

./easyrsa build-server-full server

5. Сгенерируйте файл обмена ключами:

./easyrsa gen-dh

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

./easyrsa build-client-full client1

7. Скопируйте сгенерированные ключи и сертификаты в каталог openvpn:

cd /etc/openvpn/easy-rsa/easyrsa3/pki

Нужны 4 файла: ca.crt, dh.pem, ca.key, server.key:

cp ca.crt dh.pem /etc/openvpn

cd private и cp ca.key server.key/etc/openvpn

Настройка ВПН

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

Перечень вводимых команд:

sudo yum install firewalld

sudo systemctl enable firewalld

sudo reboot

Теперь нужно установить правила применения файрволла:

firewall-cmd —zone=public —add-service openvpn

Эта команда добавит службу openvpn в список служб, разрешенных в пределах общедоступной зоны. Следующие сделают настройку постоянной:

firewall-cmd —zone=public —add-service openvpn –permanent

firewall-cmd —add-masquerade

firewall-cmd —add-masquerade –permanent

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

  1. Создайте переменную для интерфейса личной сети:

VAR=$(ip route get ХХХ.ХХХ.ХХХ.ХХХ| awk ‘NR==1 {print $(NF-2)}’)

2. Добавим правило маршрутизации:

firewall-cmd —permanent —direct —passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $VAR -j MASQUERADE

3. Перезагрузим систему:

firewall-cmd –reload

Теперь нужно перенести трафик на IP-адрес сервера. Откройте файл the sysctl.conf: vi /etc/sysctl.conf и добавьте строку:

net.ipv4.ip_forward = 1

Остается перезапустить сервис, чтобы настройки приватности VPN вступили в силу:

systemctl restart network.service

Шаг №5. Запуск и тестирование собственного VPN-сервера

Последний шаг – запуск сервера OpenVPN. Он выполняется при помощи команды:

systemctl -f start openvpn@server.service

systemctl -f enable openvpn@server.service

Проверить запуск сервера можно командой: systemctl status openvpn@server.service. Если в ответе будет отмечена активность, значит, система функционирует.

Настройка и подключение клиента включает следующие команды:

  1. Скопируйте файлы на клиентскую машину:

/etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt

/etc/openvpn/easy-rsa/easyrsa3/pki/client.crt

/etc/openvpn/easy-rsa/easyrsa3/pki/private/client.key

/etc/openvpn/myvpn.tlsauth

2. Создайте файл конфигурации:

vi client.ovpn

3. Внесите в него строки:

client

tls-client

ca /path/to/ca.crt

cert /path/to/client.crt

key /path/to/client.key

remote-cert-eku «TLS Web Client Authentication»

proto udp

remote your_server_ip 1194 udp

dev tun

topology subnet

pull

user nobody

group nobody

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

Так, в Linux достаточно ввести команду openvpn —config /path/to/client.ovpn. В Windows требуется установить приложение OpenVPN и там нажать кнопку «Подключиться» (предварительно нужно в нее скопировать конфигурационный файл client.ovpn). Запуск программы обязателен от «имени администратора».

Провести тестирование VPN можно классическим способом – запуском сервиса Speed Test. Он даст понимание скорости приема/передачи, значения пинга, вообще доступности внешних сервисов при подключении через защищенный канал.

Обеспечение безопасности VPN

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

Желательно прибегать к следующему:

  1. Регулярно проверяйте, не вышли ли новые версии программного обеспечения. Если да, то сразу устанавливайте обновления.
  2. Систематически изучайте лог-файлы сервера, нет ли там явных признаков попыток взлома или «положить» систему.
  3. Избегайте доверять критически важную информацию даже шифрованному каналу. Он не дает 100% защиты, т.к. методы взлома постоянно совершенствуются.

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

Заключение

Мы завершили рассмотрение вопроса по запуску собственного ВПН на базе OpenVPN. Если взять за основу другую систему, последовательность действий будет схожей. Так, настройка WireGuard занимает примерно столько же времени.

Чаво

Как сделать свой ВПН на айфоне

Создать собственный VPN-сервер на iOS можно при помощи сторонних приложений. Например, Codembo VPN. Оно послужит платформой для последующей настройки того же WireGuard, который включает поддержку протокола, необходимого для активации защищенного канала. Конфигурация VPN создается через телеграмм-бота https://t.me/CodemboVPNbot. Готовые файлы ключей достаточно подключить в приложение WireGuard и система готова к запуску и эксплуатации.

Как сделать свой ВПН на андроиде

Опция создания собственного VPN-сервера доступна на всех смартфонах с установленным Android (независимо от версии). Все, что требуется от пользователя, это зайти в настройки, перейти в раздел VPN и нажать кнопку «Новая сеть VPN». Там остается внести любое название, тип подключения, указать IP-адрес сервера и заполнить поля: общий ключ IPsec, имя пользователя, пароль. Сразу после сохранения ВПН будет доступен для подключения извне.

Как сделать свой ВПН на ПК

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

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