Персональный VPN сервер пригодится всем, независимо от того, где вы предпочитаете работать — дома, в офисе или в дороге. Если вы работаете дома или в офисе, то собственный VPN нужен, если необходимо скрыть свой
Почему бы не оплатить
Любой человек, кто хоть раз задумывался о том, как создать собственный VPN сервер, пытался найти информацию о расходах на эту процедуру. Ясно, что отдельный виртуальный сервер будет стоить дороже, чем оплата безлимитного сервиса (без ограничения трафика), но все равно цена будет доступной. Учитывая, если клиентов будет немного (например, вы и еще несколько человек), то хватит минимальной конфигурации (2 ядра, 3 Гб оперативной памяти,
Не нужно заказывать для собственного VPN сервера огромный диск (при желании всегда объем диска можно увеличить), не нужны большие объемы оперативки
Рис. 1. Минимальная конфигурация сервера для VPN
Перед тем, как создать собственный VPN сервер, вам надо будет выбрать ОС и установить нужные для этого процесса программы. Далее описана настройка виртуальной частой сети на базе Ubuntu 16.04, поэтому при заказе серверного компьютера на xelent.cloud нужно выбрать именно эту операционную систему. Создание
Первым делом нужно установить необходимое программное обеспечение:
sudo
Мы устанавливаем два пакета. Первый — это сам OpenVPN, а второй —
OpenVPN использует TLS/SSL, поэтому нам нужны сертификаты для шифрования трафика между серверным компьютером и клиентом. Чтобы не покупать сертификаты, мы создадим собственный центр сертификации.
Скопируем шаблонную директорию
Откройте файл vars (файловый менеджер уже установлен по умолчанию, если вы используете виртуальные машины от xelent.cloud):
mcedit vars
Вместо редактора mcedit можете использовать тот, который вам больше нравится. В конце файла будут описаны переменные, используемые при создании сертификатов. Установите свои значения, например:
export KEY_COUNTRY="US"
export KEY_PROVINCE="NY"
export KEY_CITY="Albany"
export KEY_ORG="My Company"
export KEY_EMAIL="admin@company.com"
export KEY_OU="MyWorkgroup"
Также найдите и отредактируйте переменную KEY_NAME:
export KEY_NAME="server"
Для простоты можно использовать просто «server» (или любую другую строку, но запомните, какую именно). Если вы будете использовать название, отличное от «server», тогда вам придется изменить некоторые команды, в которых встречается это название. Теперь можно приступить к созданию центра сертификации:
cd ~/
source vars
Вывод будет примерно таким:
NOTE: If you run./
После этого введите команды:
./
Первая команда выполнит очистку имеющихся ключей, а вторая начнет процесс создания ключа и сертификата корневого центра сертификации. Поскольку все значения уже указаны в файле vars, вам нужно будет только нажимать Enter для подтверждения выбора. Теперь у нас есть собственный центр сертификации, который мы будем использовать для создания сертификата, ключа и файлов шифрования для сервера.
Для создания ключей для своего
./
Процесс создания ключей очень прост — нажимайте Enter в ответ на предлагаемые значения. Значение challenge password задавать не нужно. В конце процесса нужно два раза ввести y — для подписи и для подтверждения создания сертификата:
Certificate is to be certified until Jan 22 19:24:16 2028 GMT (3650 days) Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Осталось досоздать остальные файлы:
./
openvpn -genkey -secret keys/ta.key
Первая команда создает ключи протокола
Следующий шаг — это создание сертификата и пары ключей для клиента. Это можно сделать и на клиенте, а затем подписать полученный ключ центром сертификации сервера, но для простоты мы все будем делать на сервере.
Мы создадим ключ и сертификат только для одного клиента. Если клиентов несколько, вы можете повторять этот процесс до бесконечности — пока не сгенерируете сертификаты и ключи для каждого клиента.
Команда
cd ~/
source vars
./
Если нужны файлы, защищенные паролем, используйте команду
cd ~/
./
Вот только теперь можно приступить к процессу настройки персонального VPN. В самом начале процесса нужно скопировать сгенерированные ранее файлы из каталога
cd ~/
sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
Пример файла конфигурации можно взять из файла /usr/share/doc/openvpn/examples/
После того, как распакуете шаблон файла конфигурации можно приступить к его редактированию. Откройте /etc/openvpn/server.conf в любимом текстовом редакторе.
Далее приведен фрагмент этого файла. Внимательно читайте комментарии:
Теперь нужно немного настроить сам сервер. Первым делом разрешить пересылать трафик, если вы этого еще не сделали. Откройте файл sysctl.conf:
sudo mcedit /etc/sysctl.conf
Раскомментируйте строчку:
net.ipv4.ip_forward=1
Чтобы изменения вступили в силу, введите команду:
sudo sysctl -p
Осталось только настроить брандмауэр и можно запускать свой
ip route | grep default
Данное название нужно добавить в файл /etc/ufw/before.rules. В самое начало этого файла нужно добавить строки (также укажите
Вместо ens33 нужно указать имя вашего публичного интерфейса. Теперь откройте файл nano /etc/default/ufw и найдите директиву DEFAULT_FORWARD_POLICY:
DEFAULT_FORWARD_POLICY=«ACCEPT»
Откроем порт для OpenVPN:
sudo ufw allow 443/tcp
или
sudo ufw allow 1194/udp
Первую команду нужно вводить, если вы используете протокол TCP, вторую, если используется протокол UDP. Чтобы изменения вступили в силу, брандмауэр нужно перезапустить:
sudo ufw disable
sudo ufw enable
Все готово для запуска
sudo systemctl start openvpn@server
Проверить состояние сервера можно так:
sudo systemctl status openvpn@server
Вы должны увидеть
openvpn@server.service — OpenVPN connection to server
Loaded: loaded (/lib/systemd/system/openvpn@.service; disabled; vendor preset: enabled)
Active: active (running) since Tue
Если все нормально, тогда обеспечим автоматический запуск сервера:
sudo systemctl enable openvpn@server
Прежде, чем клиенты смогут подключиться, нужно позаботиться об инфраструктуре настройки клиентов. Создадим каталог для хранения файлов:
Такие права доступа нужны, поскольку данный каталог будет содержать ключи клиентов. Далее установим базовую конфигурацию:
cd /usr/share/doc/openvpn/examples/
Откройте файл ~/clients/base.conf. В нем нужно сделать несколько изменений:
Теперь создадим сценарий генерации файлов конфигурации (листинг 1.1):
Листинг 1.1. Файл make_config
#!/bin/bash
# First argument: Client identifier
KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/clients/files
BASE_CONFIG=~/clients/base.conf
cat ${BASE_CONFIG} \
<(echo -e '<ca>') \
${KEY_DIR}/ca.crt \
<(echo -e '</ca>\n<cert>') \
${KEY_DIR}/${1}.crt \
<(echo -e '</cert>\n<key>') \
${KEY_DIR}/${1}.key \
<(echo -e '</key>\n<tls-auth>') \
${KEY_DIR}/ta.key \
<(echo -e '</tls-auth>') \
> ${OUTPUT_DIR}/${1}.ovpn
Используя этот сценарий, вы сможете легко генерировать файлы конфигурации клиентов:
Если все прошло успешно, то в ~/clients/files вы найдете файл user1.ovpn.
После того, как создание собственного VPN сервера будет вами завершено, нужно передать файлы конфигурации клиентам. Как вы это сделаете — значения не имеет. Желательно передавать по безопасному каналу связи, например, по электронной почте с шифрованием или через sFTP.
В Windows полученный.
После запуска OpenVPN он должен автоматически увидеть ваш профиль. Щелкните на пиктограмме клиента на панели быстрого запуска правой кнопкой мыши и выберите команду Подключиться (рис. 2).
Рис. 2. OpenVPN для Windows
В Linux первым делом установите openvpn:
sudo
Откройте файл user1.ovpn, полученный с серверного компьютера. Раскомментируйте следующие строки:
Если в вашем дистрибутиве нет файла /etc/openvpn/
Теперь подключитесь к своему VPN серверу:
sudo openvpn -config user1.ovpn
Собственно, на этом настройка сервера и клиентов окончена. Теперь вы знаете, как быстро создать собственный VPN сервер, и можете пользоваться безопасным Интернетом.