OpenVPN

May 08, 2018 23:15




OpenVPN Server Debian 12
https://www.howtoforge.com/how-to-install-and-configure-openvpn-server-on-debian-12/

1 Настройка сервера CA на своём компе
sudo apt install easy-rsa
mkdir ~/easy-rsa
ln -s /usr/share/easy-rsa/* ~/easy-rsa/
chmod 700 /home/<имя пользователя>/easy-rsa
cd ~/easy-rsa
./easyrsa инициализация-pki
cd ~/easy-rsa
vim pki/vars

раскомментировать удалив # и заменить на своё

set_var EASYRSA_REQ_COUNTRY "US"
set_var EASYRSA_REQ_PROVINCE "NewYork"
set_var EASYRSA_REQ_CITY "New York City"
set_var EASYRSA_REQ_ORG "Howtoforge"
set_var EASYRSA_REQ_EMAIL "admin@example.com"
set_var EASYRSA_REQ_OU "Community"
set_var EASYRSA_ALGO "ec"
set_var EASYRSA_DIGEST "sha512"

./easyrsa build-ca

Вам будет предложено ввести парольную фразу для вашей пары ключей. Выберите надежный пароль и запишите его на будущее. Далее вам будет предложено ввести парольную фразу PEM. Вам также будет предложено ввести общее имя (CN) вашего центра сертификации. Вы можете ввести любую строку, но для простоты нажмите ENTER, чтобы принять имя по умолчанию.

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

./easyrsa build-ca nopass

Это создаст два файла:
~/easy-rsa/pki/ca.crt - это файл общедоступного сертификата ЦС. Каждому пользователю и серверу OpenVPN потребуется копия этого файла.
~/easy-rsa/pki/private/ca.key - это закрытый ключ, используемый центром сертификации для подписи сертификатов для сервера и клиента OpenVPN.
Если злоумышленник получит доступ к вашему ЦС и, в свою очередь, к вашему файлу ca.key, вам придется уничтожить свой ЦС. Вот почему ваш файл ca.key должен находиться только на вашем компьютере ЦС и что в идеале ваш компьютер ЦС должен оставаться в автономном режиме, когда вы не подписываете запросы на сертификаты, в качестве дополнительной меры безопасности.

2. Установка OpenVPN и Easy-RSA на сервере OpenVPN.
sudo apt install openvpn easy-rsa
mkdir ~/easy-rsa
ln -s /usr/share/easy-rsa/* ~/easy-rsa/
chmod 700 ~/easy-rsa

3. Создание PKI для сервера OpenVPN.
cd ~/easy-rsa
./easyrsa init-pki
vim ~/easy-rsa/pki/vars

Найдите следующие переменные и раскомментируйте их, удалив перед ними решетку (#) и изменив их значения, как показано ниже.

set_var EASYRSA_ALGO "ec"
set_var EASYRSA_DIGEST "sha512"

4. Создайте запрос сертификата сервера OpenVPN и закрытый ключ.
cd ~/easy-rsa
./easyrsa gen-req server nopass
sudo cp pki/private/server.key /etc/openvpn/server/

5. Подписание CSR сервера OpenVPN.
scp ~/easy-rsa/pki/reqs/server.req username@your_ca_server_ip:/tmp

Если вы не хотите использовать аутентификацию по паролю, вам нужно будет сгенерировать пару ключей SSH для каждого сервера, а затем добавить открытый ключ SSH сервера OpenVPN в файл авторизованных_ключей компьютера CA и наоборот. Если вы не хотите проходить через все это, вы можете просто скопировать файлы. Откройте файл на сервере OpenVPN, скопируйте его содержимое, затем создайте файл на сервере CA и вставьте его. Снова войдите на сервер CA, перейдите в каталог ~/easy-rsa и импортируйте файл CSR.

cd ~/easy-rsa
./easyrsa import-req /tmp/server.req server
./easyrsa sign-req server server

Вам будет предложено проверить, исходит ли запрос из надежного источника. Введите «yes», затем нажмите клавишу ENTER для подтверждения.
Далее вам будет предложено ввести парольную фразу закрытого ключа CA, которую вы установили ранее.

scp ~/easy-rsa/pki/issued/server.crt username@your_vpn_server_ip:/tmp
scp ~/easy-rsa/pki/ca.crt username@your_vpn_server_ip:/tmp

На вашем сервере OpenVPN скопируйте файлы в каталог /etc/openvpn/server.

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

6. Настройка криптографического материала OpenVPN.
cd ~/easy-rsa
./easyrsa gen-dh
sudo openvpn --genkey secret ta.key
sudo cp ta.key /etc/openvpn/server
sudo cp pki/dh.pem /etc/openvpn/server

7. Создайте сертификат клиента и пару ключей.
Создайте каталог на своем VPN-сервере для хранения сертификата клиента и файлов ключей.

mkdir -p ~/client-configs/keys
chmod -R 700 ~/client-configs
cd ~/easy-rsa

Создайте ключ клиента с client1 в качестве общего имени клиента. Для клиента можно использовать любой CN.
./easyrsa gen-req client1 nopass
Нажмите ENTER, чтобы подтвердить имя

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

Перенесите файл client1.req на сервер CA.
scp pki/reqs/client1.req username@your_ca_server_ip:/tmp

Снова войдите на сервер CA и импортируйте запрос сервера.
cd ~/easy-rsa
./easyrsa import-req /tmp/client1.req client1
./easyrsa sign-req client client1

При появлении запроса введите «yes», чтобы подтвердить подписание запроса и подтверждение того, что он поступил из надежного источника.
Вам будет предложено ввести парольную фразу CA.
Перенесите созданный сертификат обратно на сервер OpenVPN.

scp pki/issued/client1.crt username@your_server_ip:/tmp

На сервере OpenVPN скопируйте сертификат клиента в каталог ~/client-configs/keys.
cp /tmp/client1.crt ~/client-configs/keys/

sudo cp ~/easy-rsa/ta.key ~/client-configs/keys/
sudo cp /etc/openvpn/server/ca.crt ~/client-configs/keys/
sudo chown username.username ~/client-configs/keys/*

8. Настройте OpenVPN.
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server/
sudo vim /etc/openvpn/server/server.conf

Найдите раздел HMAC файла, найдя директиву tls-auth. Закомментируйте строку, добавив точку с запятой (;) в начале строки. Добавьте новую строку под ней, как показано.

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

закомментировать cipher AES-256-CBC, добавить cipher AES-256-GCM и auth SHA256

;cipher AES-256-CBC
cipher AES-256-GCM
auth SHA256

Поскольку мы используем криптографию с эллиптической кривой, нам нужно отключить шифрование Диффи-Хеллмана. Закомментируйте строку dh dh2048.pem и добавьте под ней dh none.

;dh dh2048.pem
dh none

После запуска OpenVPN должен работать без каких-либо привилегий. Чтобы включить это, найдите и раскомментируйте строки ;user openvpn и ;group openvpn и измените их, как показано.

user nobody
group nogroup

Перенаправить весь трафик через VPN
Приведенные выше настройки создают VPN-соединение между клиентом и сервером, но не заставляют какие-либо соединения использовать туннель. Для этого нужно раскомментировать push "redirect-gateway def1 bypass-dhcp"

push "redirect-gateway def1 bypass-dhcp"

Найдите раздел опций DHCP. Удалите точку с запятой в начале обеих строк. Это говорит клиенту использовать преобразователи OpenDNS.

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

Изменить порт и протокол
если есть необходимость, можно заменить порт 1194 на 443

# Optional!
port 443

Найдите строку proto udp и закомментируйте ее, поставив перед ней точку с запятой. И раскомментируйте строку proto tcp, удалив точку с запятой, как показано.

proto tcp
;proto udp

Since we are using the TCP protocol, we need to change the value of the explicit-exit-notify directive from 1 to 0, as this directive is only used by UDP.

explicit-exit-notify 0

Укажите нестандартные учетные данные
Если вы ранее выбрали другое имя во время команды сервера ./easy-rsa gen-req, вам необходимо изменить строки сертификата и ключа, чтобы они указывали на соответствующие файлы .crt и .key. Поскольку мы используем имя сервера по умолчанию, значение по умолчанию является правильным.

cert server.crt
key server.key

сделаем читабельной конфигурацию сервера
sed -i -e '/^#/d' server.conf
получится нечто вроде такого

port 1194
;proto udp
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh none
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
tls-crypt ta.key
cipher AES-256-GCM
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
verb 3
;explicit-exit-notify 1
explicit-exit-notify 0

9. Настройте сетевую конфигурацию сервера OpenVPN.
sudo nano /etc/sysctl.conf
Добавьте следующую строку внизу файла.
net.ipv4.ip_forward = 1

Чтобы прочитать файл и загрузить новые значения для текущего сеанса, используйте следующую команду.
sudo sysctl -p
vm.swappiness = 0
net.ipv4.ip_forward = 1

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

10 - Настройка брандмауэра.
ip route list default
default via 69.28.90.1 dev ens3 onlink

sudo vim /etc/ufw/before.rules

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

#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
# ufw-before-input
# ufw-before-output
# ufw-before-forward
#

# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to ens3 (change to the interface you discovered!)
-A POSTROUTING -s 10.8.0.0/8 -o ens3 -j MASQUERADE
COMMIT
# END OPENVPN RULES

# Don't delete these required lines, otherwise there will be errors
*filter
. . .

sudo nano /etc/default/ufw

Найдите директиву DEFAULT_FORWARD_POLICY и измените ее значение с DROP на ACCEPT.
DEFAULT_FORWARD_POLICY="ACCEPT"

откройте порт 443, который вы ранее настроили для сервера OpenVPN, или 1194 если не меняли порт
sudo ufw allow 443/tcp

Отключите и включите брандмауэр, чтобы применить новую конфигурацию
sudo ufw disable
sudo ufw enable

11 - Start OpenVPN.
sudo systemctl start openvpn-server@server.service
sudo systemctl status openvpn-server@server.service

12. Создание конфигурации клиента.
mkdir -p ~/client-configs/files
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
vim ~/client-configs/base.conf

Найдите директиву удаленного доступа и установите ее так, чтобы она указывала на общедоступный IP-адрес вашего сервера OpenVPN. Кроме того, измените порт, чтобы он соответствовал порту, который вы выбрали ранее.

. . .
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote your_server_ip 443
. . .

Установите протокол, который вы выбрали ранее, раскомментировав его и закомментировав настройку proto udp.

proto tcp

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

# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup

Найдите директивы ca, cert и key и закомментируйте их, поставив перед ними точку с запятой. Это связано с тем, что мы добавим сертификаты и ключи в файл конфигурации клиента.

# SSL/TLS parms.
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
;ca ca.crt
;cert client.crt
;key client.key

Закомментируйте директиву tls-auth, поскольку мы добавим ta.key непосредственно в файл конфигурации клиента.

# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1

Соответствуйте настройке шифрования, установленной в файле `/etc/openvpn/server/server.conf. Также добавьте настройку аутентификации внизу файла.

cipher AES-256-GCM
....
auth SHA256

Добавьте директиву key-direction и установите для нее значение 1, чтобы VPN работал правильно.

key-direction 1

Затем добавьте несколько закомментированных строк для обработки различных методов, используемых VPN-клиентами для разрешения DNS. Добавьте следующий набор строк для клиентов, которые не используют systemd-resolved, но полагаются на утилиту resolvconf для управления DNS.

; script-security 2
; up /etc/openvpn/update-resolv-conf
; down /etc/openvpn/update-resolv-conf

Добавьте следующий набор строк для клиентов, которые используют systemd-resolved для разрешения DNS.

; script-security 2
; up /etc/openvpn/update-systemd-resolved
; down /etc/openvpn/update-systemd-resolved
; down-pre
; dhcp-option DOMAIN-ROUTE .

сделаем читабельной конфигурацию клиента
sed -i -e '/^#/d' base.conf
получится нечто вроде такого

client
;dev tap
dev tun
;dev-node MyTap
proto tcp
;proto udp
remote ip_адрес_сервера порт
;remote my-server-2 1194
;remote-random
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
;mute-replay-warnings
remote-cert-tls server
;cipher AES-256-CBC
cipher AES-256-GCM
auth SHA256
verb 3
;mute 20
key-direction 1

; script-security 2
; up /etc/openvpn/update-resolv-conf
; down /etc/openvpn/update-resolv-conf

; script-security 2
; up /etc/openvpn/update-systemd-resolved
; down /etc/openvpn/update-systemd-resolved
; down-pre
; dhcp-option DOMAIN-ROUTE .

Создайте сценарий для компиляции базовой конфигурации с соответствующими файлами сертификата, ключа и шифрования, а затем скопируйте созданный файл конфигурации в каталог ~/client-configs/files.

vim ~/client-configs/make_config.sh

#!/bin/bash

# First argument: Client identifier

KEY_DIR=$HOME/client-configs/keys
OUTPUT_DIR=$HOME/client-configs/files
BASE_CONFIG=$HOME/client-configs/base.conf

cat ${BASE_CONFIG} \
<(echo -e '') \
${KEY_DIR}/ca.crt \
<(echo -e '
\n') \
${KEY_DIR}/${1}.crt \
<(echo -e '
\n') \
${KEY_DIR}/${1}.key \
<(echo -e '
\n') \
${KEY_DIR}/ta.key \
<(echo -e '
') \
> ${OUTPUT_DIR}/${1}.ovpn

chmod 700 ~/client-configs/make_config.sh

Этот сценарий создает копию файла base.conf, собирает все файлы сертификатов и ключей, извлекает их содержимое, добавляет их в базовый файл конфигурации и экспортирует все это для создания нового файла конфигурации клиента. Каждый раз, когда вы добавляете новый клиент, вам необходимо сгенерировать для него новые ключи и сертификаты, а затем запустить этот скрипт, чтобы создать файл конфигурации клиента.
Мы уже создали сертификат клиента и файлы ключей на шаге 7. Давайте создадим для них файл конфигурации.

cd ~/client-configs
./make_config.sh client1

файл конфигурации клиента лежит в
~/client-configs/files/client1.ovpn

13. Установите и проверьте клиентское соединение.
установим на клиентском компьютере openvpn
sudo apt install openvpn

Проверьте, использует ли ваша система systemd-resolved для управления DNS-запросами, выполнив следующую команду.
cat /etc/resolv.conf

Вы получите аналогичный результат.
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4

Если система использует systemd-resolved, то указанный выше IP-адрес будет 127.0.0.53. Кроме того, комментарий вверху файла подтверждает то же самое. Если IP-адрес отличается от 127.0.0.53, значит, система не использует systemd-resolved, и вам необходимо выполнить шаги, упомянутые позже.

Но сначала загрузите файл client1.ovpn с сервера, используя следующую команду.
scp username@your_server_ip:/home/username/client-configs/files/client1.ovpn .

Для клиентов с systemd-resolved
sudo apt install openvpn-systemd-resolved
vim client1.ovpn

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

script-security 2
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
dhcp-option DOMAIN-ROUTE .

Для клиентов с update-resolve-conf
Это шаг, который вам нужно использовать, если у вас есть система Debian. Сначала убедитесь, что ваш дистрибутив использует update-resolv-conf.

$ ls /etc/openvpn
client server update-resolv-conf

Если ваша система содержит файл update-resolv-conf, откройте файл конфигурации клиента для редактирования.
vim client1.ovpn

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

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Если вы используете дистрибутив на базе CentOS, измените директиву группы с nogroup на none.

group nobody

Connect Client
sudo openvpn --config client1.ovpn

чтобы проверить соединение, посетите URL-адрес https://whatismyip.com в своем браузере, и вы увидите свой IP-адрес и местоположение вашего сервера OpenVPN
https://whatismyip.com

добавить плагин подключения в дебиане
apt install network-manager-openvpn-gnome

Начиная с Ubuntu 18.04, если у вас уже есть файл opvn, вы можете импортировать его. (sudo не требуется)
nmcli connection import type openvpn file [client].ovpn

клиент на андроид
OpenVPN Connect - OpenVPN App
https://play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=ru
OpenVPN for Android
https://play.google.com/store/apps/details?id=de.blinkt.openvpn&hl=ru

прочее
ещё рецепты
Как сделать и настроить собственный VPN

sudo apt install openvpn easy-rsa -y

В папке нашего пользователя создаем директорию с символической ссылкой и нужными правами:

mkdir ~/easy-rsa
ln -s /usr/share/easy-rsa/* ~/easy-rsa/
chmod 700 ~/easy-rsa

Создаем конфигурационный файл для Easy-RSA и инициализируем инфраструктуру открытых ключей (PKI):

cd ~/easy-rsa
echo -e 'set_var EASYRSA_ALGO ec\nset_var EASYRSA_DIGEST sha512' > vars
./easyrsa init-pki

Сгенерируем ключи удостоверяющего центра:

./easyrsa build-ca nopass

Система запросит ввести универсальное имя, здесь можно просто нажать Enter.
Выпустим и подпишем пару "ключ-сертификат" для сервера:

./easyrsa gen-req server nopass
./easyrsa sign-req server server

При выполнении первой команды вас попросят указать Common Name, здесь просто нажмите Enter. Для второй команды запрос нужно подтвердить, введя yes.

Скопируем созданные файлы в каталог OpenVPN:

sudo cp ~/easy-rsa/pki/private/server.key /etc/openvpn/server
sudo cp ~/easy-rsa/pki/issued/server.crt /etc/openvpn/server
sudo cp ~/easy-rsa/pki/ca.crt /etc/openvpn/server

Для дополнительной защиты, создадим предварительный общий ключ (PSK), который будет использоваться с директивой tls-crypt:

sudo openvpn --genkey secret /etc/openvpn/server/ta.key

Выпустим и подпишем пару "ключ-сертификат" для клиента client1:

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

В первой команде на требование указать Common Name нажмите Enter, при выполнении второй команды подтвердите запрос вводом yes.

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

mkdir ~/openvpn-clients
chmod -R 700 ~/openvpn-clients
cp ~/easy-rsa/pki/private/client1.key ~/openvpn-clients/
cp ~/easy-rsa/pki/issued/client1.crt ~/openvpn-clients/
sudo cp /etc/openvpn/server/{ca.crt,ta.key} ~/openvpn-clients/
sudo chown user ~/openvpn-clients/*

Настроим конфиг OpenVPN на основе дефолтного примера. Для этого скопируем шаблонный файл server.conf в рабочую директорию:

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

C помощью любого текстового редактора открываем файл server.conf для редактирования:

sudo vim /etc/openvpn/server/server.conf

В этом файле нужно внести следующие изменения:
заменить dh dh2048.pem на dh none
раскомментировать строку push "redirect-gateway def1 bypass-dhcp"
раскомментировать две строки с DNS серверами:
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
По умолчанию здесь указаны адреса публичных DNS серверов от OpenDNS. Рекомендую сразу их заменить на DNS сервера от CloudFlare (1.1.1.1, 1.0.0.1) или Google (8.8.8.8 и 8.8.4.4)
заменить tls-auth ta.key 0 на tls-crypt ta.key
заменить cipher AES-256-CBC на cipher AES-256-GCM и после этой строки добавить еще одну новую - auth SHA256
добавить в конце файла две строки:
user nobody
group nogroup

Чтобы включить переадресацию пакетов, раскомментируем (вручную или с помощью утилиты sed) строку net.ipv4.ip_forward=1 в файле /etc/sysctl.conf и применим изменения:

sudo sed -i '/net.ipv4.ip_forward=1/s/^#//g' /etc/sysctl.conf
sudo sysctl -p

Теперь нужно настроить форвардинг и маскарадинг в iptables, но для этого сначала посмотрим имя публичного сетевого интерфейса на сервере:

ip route list default

Пример результата выполнения команды показан ниже, в нем имя нужного нам интерфейса отображается сразу после "dev" :

default via 123.45.67.8 dev ens3 proto static onlink

Здесь интерфейс называется ens3, в вашем случае он может быть другой.

Разрешаем переадресацию и включаем маскарадинг в iptables. При необходимости имя интерфейса (ens3) в трех местах замените на нужное:

sudo apt install iptables-persistent -y
sudo iptables -A INPUT -i tun+ -j ACCEPT
sudo iptables -A FORWARD -i tun+ -j ACCEPT
sudo iptables -A FORWARD -i ens3 -o tun+ -j ACCEPT
sudo iptables -A FORWARD -i tun+ -o ens3 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/8 -o ens3 -j MASQUERADE
sudo netfilter-persistent save

Добавляем сервис OpenVPN в автозагрузку и запускаем его:

sudo systemctl enable openvpn-server@server.service
sudo systemctl start openvpn-server@server.service

Проверить, запущен ли VPN можно командой:

sudo systemctl status openvpn-server@server.service

Нам осталось создать файл конфигурации .ovpn, который клиент будет использовать для подключения к VPN.
Файл .ovpn должен содержать базовые параметры, сертификаты и ключи. Чтобы не объединять это всё вручную, напишем небольшой BASH-скрипт:

create_client_config.sh

#!/bin/bash

# Формат использования: create_client_config.sh
# Перед использованием в SERVER_IP вместо X.X.X.X необходимо указать IP адрес вашего сервера

SERVER_IP=X.X.X.X
DIR=~/openvpn-clients

cat <(echo -e \
"# Client OpenVPN config file"\
"\nclient" \
"\ndev tun" \
"\nproto udp" \
"\nremote $SERVER_IP 1194" \
"\nresolv-retry infinite" \
"\nnobind" \
"\nuser nobody" \
"\ngroup nogroup" \
"\npersist-key" \
"\npersist-tun" \
"\nremote-cert-tls server" \
"\nkey-direction 1" \
"\ncipher AES-256-GCM" \
"\nauth SHA256" \
"\nverb 3" \
) \
<(echo -e "\n") \
${DIR}/ca.crt \
<(echo -e "
\n\n") \
${DIR}/${1}.crt \
<(echo -e "
\n\n") \
${DIR}/${1}.key \
<(echo -e "
\n\n") \
${DIR}/ta.key \
<(echo -e "
") \
> ${DIR}/${1}.ovpn

В скрипте вместо X.X.X.X впишите IP адрес вашего сервера, поместите файл в любую директорию и установите исполняемые права:

chmod +x create_client_config.sh

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

./create_client_config.sh client1

Готово! В папке ~/openvpn-clients появился client1.ovpn. Скачайте его и просто импортируйте в любой OpenVPN-клиент или на роутер с поддержкой этой функции.

vpn

Previous post Next post
Up