Как мне настроить OpenVPN и Nginx, чтобы разрешить общий порт 443?

Как настроить OpenVPN и Nginx, чтобы разрешить общий порт 443? Я хочу быть в состоянии использовать VPN, но в то же время обслуживать веб-запросы с того же сервера. : -)

0
задан 7 June 2019 в 22:33

2 ответа

Вы не можете. Если обе программы хотят использовать порт 443, и вы не можете настроить одну из них для использования другого порта, вам не повезло.

Представьте себе один Ethernet-пакет, поступающий в вашу систему и направленный на порт 443. Какая программа это обрабатывает?

0
ответ дан 7 June 2019 в 22:33

Здесь это ужасно отформатировано, но работает отлично!

Шаг 1 — установка OpenVPN и EasyRSA

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

sudo apt update
sudo apt install openvpn
sudo apt install easy-rsa

Шаг 2: Создайте Центр сертификации

Сервер OpenVPN использует сертификаты для шифрования трафика между сервером и различными клиентами. Таким образом мы должны настроить центр сертификации (CA) на VPS, чтобы создать и управлять этими сертификатами.

Каталог изменения к каталогу Easy-RSA

cd /usr/share/easy-rsa/

В этом каталоге файл, названный vars.example. Сделайте копию этого файла и назовите копию Варом без расширения файла: CP sudo vars.example Вар Открывает этот новый файл с помощью предпочтительного текстового редактора: Вар нано sudo Находит настройки, которые устанавливают полевые значения по умолчанию для новых сертификатов. Это будет выглядеть примерно так:

/usr/share/easy-rsa/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"

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

/usr/share/easy-rsa//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        "DigitalOcean"
set_var EASYRSA_REQ_EMAIL      "admin@example.com"
set_var EASYRSA_REQ_OU         "Community"

. . .

Когда Вы закончены, сохраняете и закрываете файл. В EasyRSA каталог является сценарием, названным easyrsa, который называют для выполнения множества задач, связанных с созданием и управлением Приблизительно. Запустите этот скрипт с init-pki опцией инициировать инфраструктуру открытых ключей на сервере CA:

sudo ./easyrsa init-pki

Вывод

. . .
Note: using Easy-RSA configuration from: ./vars

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /usr/share/easy-rsa/pki

После этого назовите easyrsa сценарий снова, после него с опцией сборки приблизительно. Это создаст CA и создаст два важных файла — ca.crt и ca.key — которые составляют общедоступные и частные стороны сертификата SSL. • ca.crt является общедоступным файлом сертификата CA, который, в контексте OpenVPN, сервера и клиентского использования, чтобы сообщить друг другу, что они - часть той же сети доверия и не кого-то выполняющего атаку "человек посередине". Поэтому Вашему серверу и всем Вашим клиентам будет нужна копия ca.crt файла. • ca.key является закрытым ключом который использование машины CA подписать ключи и сертификаты для серверов и клиентов. Если взломщик получит доступ к Вашему CA и, в свою очередь, Вашему ca.key файлу, то они смогут подписать запросы сертификата и получить доступ к Вашей VPN, препятствуя ее безопасности. Поэтому Ваш ca.key файл должен только быть на Вашей машине CA и что, идеально, Ваша машина CA должна быть сохранена в режиме офлайн если не запросы сертификата подписания как дополнительные меры безопасности. Если Вы не хотите быть предложенными пароль каждый раз, когда Вы взаимодействуете со своим CA, можно выполнить команду сборки приблизительно с nopass опцией, как это: sudo./easyrsa создают приблизительно nopass В выводе, Вас попросят подтвердить общее название для Вашего CA: Вывод... Общее название (например: Ваш пользователь, хост или имя сервера) [Легкий-RSA CA]: общее название является именем, используемым для обращения к этой машине в контексте центра сертификации. Можно ввести любую строку символов для общего названия CA, но для пользы простоты, нажмите ENTER для принятия имени по умолчанию. С этим существует Ваш CA, и это готово начать подписывать запросы сертификата.

Шаг 3 — создание сертификата сервера, ключа и файлов шифрования

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

sudo ./easyrsa gen-req server nopass

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

sudo cp /usr/share/easy-rsa/pki/private/server.key /etc/openvpn/

Затем подпишите запрос путем запущения easyrsa скрипта с опцией знака-req, сопровождаемой типом запроса и общим названием. Тип запроса может или быть клиентом или сервером, таким образом, для запроса сертификата сервера OpenVPN, убедиться использовать тип запроса к серверу: sudo./easyrsa подписывают-req сервер-серверный n вывод, Вас попросят проверить, что запрос прибывает из надежного источника. Введите да, затем нажимают ENTER для подтверждения этого: Вы собираетесь подписать следующий сертификат. Проверьте детали, показанные ниже для точности. Обратите внимание, что этот запрос не был криптографически проверен. Убедитесь, что это прибыло из надежного источника или что Вы проверили контрольную сумму запроса с отправителем.

Предмет запроса, чтобы быть подписанным как сертификат сервера в течение 3 650 дней:

subject=
    commonName                = server

Введите слово 'да' для продолжения, или любой другой вход для прерывания. Подтвердите детали запроса: да при шифровании ключа CA Вам предложат Ваш пароль в этой точке. Затем, скопируйте server.crt и ca.crt файлы в Ваш/etc/openvpn/каталог:

sudo cp /usr/share/easy-rsa/pki/issued/server.crt /etc/openvpn/
sudo cp /usr/share/easy-rsa/pki/ca.crt /etc/openvpn/

Оттуда, создайте сильный ключ Diffie-Hellman для использования во время ключевого обмена путем ввода:

sudo ./easyrsa gen-dh

Это может занять несколько минут для завершения. После того как это делает, генерируйте подпись HMAC для укрепления возможностей проверки целостности TLS сервера:

sudo openvpn --genkey --secret ta.key

Когда команда закончится, скопируйте два новых файла в свой/etc/openvpn/каталог:

sudo cp ta.key /etc/openvpn/
sudo cp pki/dh.pem /etc/openvpn/

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

Шаг 4 — генерация клиентского сертификата и пары ключей

Хотя можно генерировать закрытый ключ и запрос сертификата на клиентской машине и затем отправить его в CA, который будет подписан, это руководство обрисовывает в общих чертах процесс для генерации запроса сертификата на сервере. Преимущество этого - то, что мы можем создать сценарий, который автоматически генерирует клиентские конфигурационные файлы, которые содержат все необходимые ключи и сертификаты. Это позволяет Вам избежать необходимости передавать ключи, сертификаты и конфигурационные файлы клиентам и оптимизировало процесс присоединения к VPN. Мы генерируем единственный клиентский ключ и пару сертификата для этого руководства. Если у Вас есть больше чем один клиент, можно повторить этот процесс для каждого. Обратите внимание, тем не менее, что необходимо будет передать значение уникального имени сценарию для каждого клиента. Всюду по этому учебному руководству первый сертификат/пара ключей упоминается как client1. Начните путем создания структуры каталогов в рамках корневого каталога для хранения клиентского сертификата и файлов ключей:

mkdir -p ~/client-configs/keys

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

chmod -R 700 ~/client-configs

Затем, перейдите назад к каталогу EasyRSA и запустите easyrsa скрипт с генералом-req и nopass опциями, наряду с общим названием для клиента:

sudo ./easyrsa gen-req client1 nopass

НАЖМИТЕ ENTER для подтверждения общего названия. Затем скопируйте client1.key файл в/client-configs/keys/каталог, который Вы создали ранее:

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

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

sudo ./easyrsa sign-req client client1

При подсказке введите да, чтобы подтвердить, что Вы намереваетесь подписать запрос сертификата и что это прибыло из надежного источника: Выходной Тип слово 'да' для продолжения, или любой другой вход для прерывания. Подтвердите детали запроса: да Снова при шифровании ключа CA Вам предложат Ваш пароль здесь. Это создаст клиентский файл сертификата, названный client1.crt. Возвратите этот файл к серверу: SSH назад в Ваш сервер OpenVPN и копию клиентский сертификат/client-configs/keys/каталогу:

sudo cp /usr/share/easy-rsa/pki/issued/client1.crt ~/client-configs/keys/

Затем, скопируйте ca.crt и ta.key файлы к/client-configs/keys/каталог также:

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

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

Шаг 5 — конфигурирование услуг 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/etc/openvpn/server.conf Находит раздел HMAC путем поиска tls-подлинной директивы. Эта строка должна уже быть не прокомментирована, но если не, затем удаляют""; не прокомментировать это. Ниже этой строки добавьте параметр ключевого направления, установите на "0": tls-автор/etc/openvpn/server.conf ta.key 0 #, Этот файл является секретным ключевым направлением 0 Затем, находит раздел по криптографическим шифрам путем поиска прокомментированного строки шифра. Шифр AES-256-CBC предлагает хороший уровень шифрования и хорошо поддерживается. Снова, эта строка должна уже быть не прокомментирована, но если это не, затем просто удаляют""; предшествование ему: шифр/etc/openvpn/server.conf AES-256-CBC Ниже этого, добавляет подлинная директива для выбора алгоритма выборки сообщений HMAC. Для этого SHA256 является хорошим выбором: SHA256 автора/etc/openvpn/server.conf Затем, находят строку, содержащую горячекатаную директиву, которая определяет параметры Diffie-Hellman. Из-за некоторых недавних изменений, внесенных в EasyRSA, имя файла для ключа Diffie-Hellman может отличаться, чем, что перечислено в конфигурационном файле сервера в качестве примера. При необходимости измените имя файла, перечисленное здесь путем удаления 2048, таким образом, оно выравнивается с ключом, который Вы генерировали на предыдущем шаге: Изменение/etc/openvpn/server.conf Строка К Строке

dh dh2048.pem
dh dh.pem
server 10.8.0.0 255.255.255.0
server 192.168.253.0 255.255.255.0
dev tun
dev tun0

Наконец, найдите пользователя и настройки группы и удалите""; в начале каждого для некомментария этих строк:/etc/openvpn/server.conf

user nobody                               
group nogroup

Изменения Вы сделали к образцу server.conf файл до этой точки, необходимы для OpenVPN для функционирования. Изменения, обрисованные в общих чертах ниже, являются дополнительными, хотя они также необходимы для многих случаев общего использования. (дополнительно) Нажатие Изменения DNS для Перенаправления Всего Трафика Через VPN настройки выше создадут соединение VPN между этими двумя машинами, но не вынудят соединений использовать туннель. Если Вы хотите использовать VPN для маршрутизации всего трафика, то Вы, вероятно, захотите продвинуть настройки DNS к клиентским компьютерам. Существует несколько директив в server.conf файле, который необходимо изменить для добавления этой функциональности. Найдите, что шлюз перенаправления разделяет и удаляет точку с запятой""; с начала строки шлюза перенаправления не прокомментировать это: шлюз перенаправления "нажатия/etc/openvpn/server.conf def1 обход-dhcp" Чуть ниже этого, найдите раздел dhcp-опции. Снова, удалите""; от перед обеими из строк для некомментария их: dhcp-опция "нажатия/etc/openvpn/server.conf DNS 208.67.222.222" нажатия "dhcp-опция DNS 208.67.220.220" Это поможет клиентам в реконфигурировании их настроек DNS использовать туннель VPN для в качестве шлюза по умолчанию. (дополнительно) Скорректируйте Порт и Протокол По умолчанию, сервер OpenVPN использует порт 1194 и протокол UDP для принятия соединений клиента. Если необходимо использовать другой порт из-за строгой сетевой среды, в которой могли бы быть клиенты, можно изменить опцию порта. Если Вы не размещаете веб-контент на своем сервере OpenVPN, порт 443 является популярным выбором, так как он обычно позволяется через правила брандмауэра./etc/openvpn/server.conf

Дополнительный!

порт 443 Часто, протокол ограничивается тем портом также. Если так, изменитесь первичный от UDP до TCP:/etc/openvpn/server.conf

Дополнительный!

первичный tcp при переключении протокола на TCP необходимо будет изменить значение explicit-exit-notify директивы с 1 до 0, поскольку эта директива только используется UDP. Отказ сделать так при использовании TCP вызовет ошибки при запуске услуг OpenVPN:/etc/openvpn/server.conf

Дополнительный!

explicit-exit-notify 0, Если у Вас нет потребности использовать другой порт и протокол, лучше оставлять эти две настройки как их значения по умолчанию.

Шаг 6 — корректировка сетевой конфигурации сервера

Существуют некоторые аспекты сетевой конфигурации сервера, которую нужно настроить так, чтобы OpenVPN мог правильно направить трафик через VPN. Первым из них является передача IP, метод для определения, где трафик IP должен быть направлен. Это важно для функциональности VPN, чтобы Ваш сервер обеспечил. Удостоверьтесь, что Вам включили IP, передающий. Затем, изменение Ваш rc.local файл для разрешения трафика в интерфейсе VPN tap_soft:

!/bin/bash
# /etc/rc.local
# Default policy to drop all incoming packets.
iptables -P INPUT DROP
iptables -P FORWARD DROP

#Accept incoming packets from localhost and the LAN interface.
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i enp3s0 -j ACCEPT
#Accept incoming packets from openvpn
iptables -A INPUT -i tun0 -j ACCEPT

#Allow forwarding at the highest levels!
sudo sysctl -w net.ipv4.ip_forward=1

# Accept incoming packets from the WAN if the router initiated the
#connection
iptables -A INPUT -i enp2s0 -m conntrack \
--ctstate ESTABLISHED,RELATED -j ACCEPT

# Forward LAN packets to the WAN.
iptables -A FORWARD -i enp3s0 -o enp2s0 -j ACCEPT
# Forward packets Between the LAN and WAN to VPN
iptables -A FORWARD -i tun0 -o enp2s0 -j ACCEPT
iptables -A FORWARD -i tun0 -o enp3s0 -j ACCEPT
# Forward WAN packets to the LAN if the LAN initiated the connection.
iptables -A FORWARD -i enp2s0 -o enp3s0 -m conntrack \
--ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i enp2s0 -o tun0 -m conntrack \
--ctstate ESTABLISHED,RELATED -j ACCEPT

# NAT traffic going out the WAN interface.
iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE

#Sleep for a little bit to allow the VPN interface to come up
sleep 30
#Restart the DHCP server to begin serving for the new interface
systemctl restart isc-dhcp-server

# rc.local needs to exit with 0
exit 0

Позвольте 443 на всякий случай, это уже не там

sudo ufw allow 443

Измените server.conf для OpenVPN для добавления следующей строки: нано sudo/etc/openvpn/server.conf

port-share 127.0.0.1 9001

Затем в Вашем изменении конфигурации Nginx порт для поддержки этого 9 001 значения: Измените файл с этой командой: нано sudo сервер /etc/nginx/sites-enabled/yoursite.com {удаляет эту строку-> #listen 443 ssl http2; добавьте, что эта строка-> слушает 9 001 ssl http2; После того, чтобы заставлять все изменения перезагрузить сервер: перезагрузка sudo

Шаг 7 — запуск и включение услуг OpenVPN

Вы наконец готовы запустить услуги OpenVPN на свой сервер. Это сделано с помощью systemd утилиты systemctl. Запустите сервер OpenVPN путем определения имени конфигурационного файла как переменной экземпляра после systemd имени файла единицы. Конфигурационный файл для Вашего сервера называют/etc/openvpn/server.conf, поэтому добавьте @server к концу Вашего файла единицы при вызове его: sudo systemctl запускают Перепроверку openvpn@server, которую сервис запустил успешно путем ввода: sudo systemctl состояние openvpn@server If, все подходило, Ваш вывод, будет выглядеть примерно так:

Output
● openvpn@server.service - OpenVPN connection to server
   Loaded: loaded (/lib/systemd/system/openvpn@.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2016-05-03 15:30:05 EDT; 47s ago
     Docs: man:openvpn(8)
           https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage
           https://community.openvpn.net/openvpn/wiki/HOWTO
  Process: 5852 ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/%i.conf --writepid /run/openvpn/%i.pid (code=exited, sta
 Main PID: 5856 (openvpn)
    Tasks: 1 (limit: 512)
   CGroup: /system.slice/system-openvpn.slice/openvpn@server.service
           └─5856 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf --writepid /run/openvpn/server.pid

После запуска сервиса включите его так, чтобы он запустился автоматически при начальной загрузке: sudo systemctl включают openvpn@server

Ваши услуги OpenVPN теперь в порядке. Прежде чем можно будет начать использовать его, тем не менее, необходимо сначала создать конфигурационный файл для клиентской машины. Это учебное руководство уже перешло, как создать сертификат/пары ключей для клиентов, и на следующем шаге мы продемонстрируем, как создать инфраструктуру, которая генерирует клиентские конфигурационные файлы легко. После запуска сервиса включите его так, чтобы он запустился автоматически при начальной загрузке: sudo systemctl включают openvpn@server

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

Шаг 8 — создание клиентской инфраструктуры конфигурации

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

mkdir -p ~/client-configs/files

Затем, скопируйте клиентский конфигурационный файл в качестве примера в каталог клиентских конфигураций для использования в качестве основной конфигурации:

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

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

nano ~/client-configs/base.conf

Внутри, найдите удаленную директиву. Это указывает на клиент на Ваш адрес сервера OpenVPN — общедоступный IP-адрес Вашего сервера OpenVPN. Если Вы решили изменить порт, на котором слушает сервер OpenVPN, необходимо будет также изменить 1194 на порт, который Вы выбрали: ~/client-configs/base.conf...

Имя хоста/IP и порт сервера.

У Вас может быть несколько удаленных записей

загрузить баланс между серверами.

-> Удаляют эту строку: удаленный your_server_ip 1194-> Добавляет эту строку: YOUR_SERVER_IP_ADDRESS 443

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

конфигурация:

-> Удаляют эту строку: первичные udp-> Добавляют эту строку: первичный tcp... Затем, не прокомментируйте пользователя и директивы группы путем удаления""; в начале каждой строки: ~/client-configs/base.conf

Полномочия снижения после инициализации (не-Windows только)

пользователь никто, группа nogroup Находит директивы, которые устанавливают CA, сертификат и ключ. Прокомментируйте эти директивы, так как Вы добавите сертификаты и ключи в самом файле вскоре: ~/client-configs/base.conf

# 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-подлинную директиву, поскольку Вы добавите ta.key непосредственно в клиентский конфигурационный файл: ~/client-configs/base.conf

# 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.conf файле: ~/client-configs/base.conf шифр автор AES-256-CBC SHA256 Затем, добавляют директиву ключевого направления где-нибудь в файле. Необходимо установить это на "1", чтобы VPN функционировала правильно на клиентской машине: ~/client-configs/base.conf ключевое направление 1 Наконец, добавьте несколько закомментированных строк. Хотя можно включать эти директивы в каждый клиентский конфигурационный файл, только необходимо включить им для клиентов Linux, которые поставлются с/etc/openvpn/update-resolv-conf файл. Этот сценарий использует resolvconf утилиту для обновления информации DNS для клиентов Linux. ~/client-configs/base.conf

безопасность сценария 2

/etc/openvpn/update-resolv-conf

вниз/etc/openvpn/update-resolv-conf

Если Ваш клиент запускает Linux и имеет/etc/openvpn/update-resolv-conf файл, не прокомментируйте эти строки от конфигурационного файла клиента после того, как он был сгенерирован. Сохраните и закройте файл, когда Вы будете закончены. Затем, создайте простой сценарий, который скомпилирует Вашу основную конфигурацию с соответствующим сертификатом, ключом и файлами шифрования и затем поместит сгенерированную конфигурацию в ~/client-configs/files каталог. Откройте новый файл, названный make_config.sh в ~/client-configs каталог: нано ~/client-configs/make_config.sh Внутри, добавляет следующее содержание: ~/client-configs/make_config.sh

#!/bin/bash

# First argument: Client identifier

KEY_DIR=~/client-configs/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/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

Сохраните и закройте файл, когда Вы будете закончены. Перед хождением дальше, убедиться отметить этот файл как исполняемый файл путем ввода: Сохраните и закройте файл, когда Вы будете закончены. Перед хождением дальше, убедиться отметить этот файл как исполняемый файл путем ввода: chmod 700 ~/client-configs/make_config.sh Этот сценарий сделает копию base.conf файла, который Вы сделали, соберите весь сертификат и файлы ключей, которые Вы создали для своего клиента, извлекаете их содержание, добавляете их к копии основного конфигурационного файла и экспортируете все это содержание в новый клиентский конфигурационный файл. Это означает, что, вместо того, чтобы иметь необходимость управлять конфигурацией клиента, сертификатом и файлами ключей отдельно, вся запрошенная информация хранится в одном месте. Преимущество этого - то, что, если когда-нибудь необходимо добавлять клиент в будущем, можно просто запустить этот скрипт, чтобы быстро создать файл конфигурации и гарантировать, что вся важная информация хранится в единственном, легком к доступу месте. Обратите внимание на то, что любое время, Вы добавляете новый клиент, необходимо будет генерировать новые ключи и сертификаты для него, прежде чем можно будет запустить этот скрипт и генерировать его конфигурационный файл. Вы получите некоторую практику с помощью этого сценария на следующем шаге.

Шаг 9 — генерация клиентских конфигураций

Если Вы следовали наряду с руководством, Вы создали клиентский сертификат и ключ, названный client1.crt и client1.key, соответственно, на Шаге 4. Можно генерировать файл конфигурации для этих учетных данных путем перемещения в ~/client-configs каталога и запущения скрипта, который Вы сделали в конце предыдущего шага: CD ~/client-configs sudo./make_config.sh client1 Это создаст файл, названный client1.ovpn в Вашем ~/client-configs/files каталог: ls ~/client-configs/files Вывод client1.ovpn Вы должен передать этот файл устройству, которое Вы планируете использовать в качестве клиента. Например, это могло быть Вашим локальным компьютером или мобильным устройством. В то время как точные приложения, использованные для выполнения этой передачи, будут зависеть от операционной системы устройства и персональных предпочтений, надежный и безопасный метод должен использовать SFTP (протокол передачи файлов SSH) или SCP (Безопасная Копия) на бэкенде. Это транспортирует файлы аутентификации VPN Вашего клиента по зашифрованному соединению. Удостоверьтесь, что у Вас есть соединение SSH к Вашей машине со следованием Вашего компьютера получения: openssh-сервер способной установки sudo Теперь настраивает SSH

sudo nano /etc/ssh/sshd_config

Вот команда SFTP в качестве примера с помощью client1.ovpn примера, который можно выполнить от локального компьютера (macOS или Linux). Это помещает .ovpn файл в Ваш корневой каталог:

scp ~/client-configs/files/client1.ovpn local_user@local_ip_address:~
0
ответ дан 24 October 2019 в 05:21

Другие вопросы по тегам:

Похожие вопросы: