Openvpn создание ключей


OpenVPN настройка сервера и клиента на Mikrotik

Бывают случаи, когда необходимо настроить удалённый доступ на mikrotik, или даже на несколько.
Особенно это актуально, если вы обслуживаете несколько объектов и нет возможности физически постоянно присутствовать возле оборудования.
В этом статье мы разберём, как настроить OpenVPN сервер на mikrotik, а также клиенты на mikrotik и компьютере под управлением Windows.

Для работы нам понадобиться Белый IP адрес (он и будет адресом сервера в наших настройках), для доступа к серверу из интернета и сертификаты безопасности.

Краткий план данной статьи:

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

1) Скачаем программу OpenVPN с официального сайта

2) Устанавливаем программу, выбрав все галочки.

EasyRSA Certificate Management Scripts (специально созданная программа по созданию ключей и сертификатов,которая использует openssl для выполнения действий с ключами и сертификатами) нам обязательно понадобится для генерации ключей и сертификатов.

3) Указываем путь. В дальнейшем он нам понадобиться. В нашем случае используем стандартный C:\Program Files\OpenVPN

4) После установки заходим в C:\Program files\OpenVPN\easy-rsa

Открываем vars.bat (если его нет, то vars.bat.sample) блокнотом или NotePad++ и редактируем его.

set KEY_COUNTRY=RU
set KEY_PROVINCE=MoscowRegion
set KEY_CITY=MOSCOW
set KEY_ORG=OpenVPN
set [email protected]
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=OU
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234

В строках  set KEY_CN и set KEY_NAME указываем server
Последние 2 строки — параметры по умолчанию. Остальное можете редактировать под себя.

Сохраняем файл как vars.bat на рабочий стол, а затем копируем в папку  C:\Program files\OpenVPN\easy-rsa
Чаще всего сохранить напрямую в исходную папку не получится — не хватает прав.

5) Отредактируем файл openssl-1.0.0.cnf
Так же открываем с помощью блокнота или notepad++

Нас интересует строка
default_days = 3650 # how long to certify for
Она отвечает за время жизни сертификата. Если значение отличается — то указываем 3650 (10 лет).
Сохраняем.

6) Запускаем командную строку от имени администратора:
Пуск — Все программы — Стандартные 
Правой кнопкой мыши на «Командная строка» и в меню — Запустить от имени администратора
Командную строку не закрываем до конца процесса генерации сертификатов.

7) По очерёдно выполняем следующие три команды
cd: C:\Program files\OpenVPN\easy-rsa 
vars
clean-all

В итоге мы должны увидеть сообщение « Скопировано файлов: 1» дважды.

В папке C:\Program files\OpenVPN\easy-rsa появится папка keys с двумя файлами index.txt и serial

8) Генерируем ключ Диффи Хельмана — команда build-dh
Генерация займёт некоторое время. Дождитесь окончания.

9) Генерируем ключ центра сертификации (CA) — build-ca

Нажимаем Enter пока не закончатся вопросы.
Вы увидите в командной строке путь C:\Program files\OpenVPN\easy-rsa

Нет смысла менять заданные значения. Вы ранее прописали эти параметры в файле vars.bat

10) Генерируем сертификат сервера — команда build-key-server server
Нажимаем Enter (оставляем параметры по умолчанию, прописанные в vars.bat ) пока не дойдём до вопросов.
Sign the certificate? (Создание сертификата на 3650 дней)
1 out of 1 certificate requests certified, commit? (Запись сертификата в базу)
На вопросы отвечаем нажатием Y

11) Генерируем сертификат клиента build-key client
Нажимаем Enter (оставляем параметры по умолчанию, прописанные в vars.bat) пока не дойдём до вопросов Common Name и Name.
На эти вопросы отвечаем client — это название создаваемого сертификата.

На вопросы Sign the certificate? и 1 out of 1 certificate requests certified, commit? отвечаем нажатием Y

12) Генерация сертификатов окончена.
В папке C:\Program files\OpenVPN\easy-rsa\keys можно увидеть следующие файлы

Сертификаты для сервера и клиентов готовы.

Настройке OpenVPN сервера на Mikrotik

Подключимся к Mikrotik с помощью программы Winbox.
Загрузим 3 файла: ca.crt, server.crt, server.key
Для этого в меню нажмём Files и перетащим их из папки C:\Program files\OpenVPN\easy-rsa\keys

13) Далее необходимо их импортировать.
Откроем System – Certificates — Import  и поочерёдно выберем сертификаты в этом порядке:
ca.crt
server.crt
server.key

После импорта появится две записи

14) Создадим пул адресов для VPN клиентов

IP — Pool — add (+)
Введём название openvpn-pool
Диапазон 172.30.0.2-172.30.0.253

15) Создадим PPP профиль.

PPP — Profiles — add (+)
Введём название openvpn
Локальный адрес 172.30.0.1
Созданный Пул openvpn-pool
Остальные настройки оставляем по умолчанию
Нажимаем ОК

16) Создадим непосредственно сам OpenVPN сервер
PPP — Interface — OVPN Server
Включаем Enable
Указываем порт 1194
Выбираем наш профиль openvpn
Поставим галочку Require Client Certificate
Выберем наш сертификат server.crt

17) Создадим пользователя для подключения.
PPP — Secrets — add (+)
Введём имя пользователя и пароль ovpn_user1
Выбираем Сервис ovpn и профиль openvpn

Создадим 2 пользователя:

ovpn_user1 для клиента на компьютере

ovpn_mikrotik1 для клиента на Mikrotik

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

18) Настроим фаервол
IP — Firewall — add(+)
Во вкладке General указываем:
Chain — input
Protocol — tcp
Порт 1194
Интерфейс — ether1 (Если интернет идёт через него)
Вкладка Action:
Action — accept
Затем ОК

Сервер настроен, теперь приступим к настройке VPN клиентов.

Настройка VPN клиента на компьютере под управлением Windows

19) Копируем в папку C:\Program files\OpenVPN\config\

из C:\Program files\OpenVPN\easy-rsa\keys следующие файлы
ca.crt, client.crt, client.key.

из C:\Program files\OpenVPN\simple-config\
client.ovpn

Создадим текстовый файл pass, где укажем логин и пароль от созданного VPN клиента на сервере.
В нашем случае это ovpn_user1

20) Откроем файл client.ovpn с помощью блокнота или notepad++
Изменяем следующие строки:
#Протокол
proto tcp
#Адрес и порт сервера
remote ваш.ip.адрес.сервера 1194

#Проверяем правильность названия ключей
ca ca.crt
cert client.crt
key client.key

И в самом конце добавим строчку
auth-user-pass «C:\\Program files\\OpenVPN\\config\\pass.txt»
В общем итоге у нас получатся следующие настройки в этом файле:
client
dev tun
proto tcp
remote адрес_сервера 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert user.crt
key user.key
remote-cert-tls server
cipher AES-128-CBC
verb 3
auth-user-pass «c:\\Program Files\\OpenVPN\\config\\pass.txt»

Остальные настройки закоментированы решеткой «#» или точкой с запятой «;»

21) Сохраняем файл. Если сохранить в папку не получается — сохраняем на рабочий стол, а затем копируем с заменой.

Запускаем OpenVPN и подключаемся.

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

Настройка VPN клиента на Mikrotik

Имея настроенный OpenVPN сервер, можно настроить доступ на Mikrotik даже там, где нет белого IP адреса.

22) Подключимся к Mikrotik с помощью программы Winbox.
Загрузим 2 файла:  client.crt, client.key

Для этого в меню нажмём Files и перетащим их из папки C:\Program files\OpenVPN\easy-rsa\keys

23) Далее необходимо их импортировать.
Откроем System – Certificates — Import и поочерёдно выберем сертификаты в этом порядке:
client.crt
client.key

24) Настроим параметры сервера:
PPP — add(+) — OVPN client

Во вкладке General указываем имя
Name — openVPN1 (любое, на ваше усмотрение)
Вкладка Dial Out:
Connect To — Адрес сервера(Внешний IP адрес главного hjenthf Mikrotik)
Port 1194
Указываем пользователя и пароль, который мы создали на VPN сервере
В нашем случае это пользователь ovpn_mikrotik1
Сертификат Client.crt

Нажимаем ОК

25) В терминале набираем /interface ovpn-client monitor openVPN1
Должно появиться сообщение со статусом connected

Теперь к этому mikrotik можно подключиться через VPN по адресу, который он поулчил от VPN сервера

Посмотреть адрес можно:
В Mikrotik-клиенте в IP-Adresses строка с нашим интерфейсом openVPN1

В Mikrotik-сервере PPP-Active Connections 

OpenVPN режим мультиклиента: Часть 1

В роутерах серии RTU есть возможность использования защищенного соединения через частную виртуальную сеть, под названием OpenVPN

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

Практически всю часть конфигурирования  можно произвести через WEB интерфейс, но некоторые элементы все же придется произвести через консоль!

Что такое OpenVPN и для чего он необходим можно ознакомиться в статье: OpenVPN

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


1. Генерация сертификатов и ключей на Windows 

Для генерации сертификатов и ключей шифрования на ОС Windows необходимо установить само приложение OpenVPN.

Скачать последнюю версию OpenVPN для ОС Windows можно по ссылке: https://openvpn.net/community-downloads/.

После скачивания и установки в указанную Вами папку в ней будет список файлов, по умолчанию OpenVPN устанавливается в директорию C:\Program Files\OpenVPN.

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

cd C:\Program Files\OpenVPN\easy-rsa 

1.1 Запускаем файл init-config.bat

C:\Program Files\OpenVPN\easy-rsa>init-config.bat                
C:\Program Files\OpenVPN\easy-rsa>copy vars.bat.sample vars.bat  
Скопировано файлов:         1.                                   

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

Мы подставили свои параметры, у Вас данные параметры будут другие.

set KEY_COUNTRY=RU
set KEY_PROVINCE=Moscow
set KEY_CITY=Moscow
set KEY_ORG=TELEOFIS
set [email protected]
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=server
set PKCS11_MODULE_PATH=server
set PKCS11_PIN=12345

Там где написано server, не трогаем. Сохраняем файл.

1.2 Редактируем файл openssl-1.0.0.cnf 

От имени администратора открываем блокнот, нам необходимо отредактировать файл openssl-1.0.0.cnf. По умолчанию данный файл находится в директории C:\Program Files\OpenVPN\easy-rsa, у Вас данный путь также может отличаться.

Нам необходимо найти строчку: 

default_days = 365

Далее необходимо заменить значение 365 на 3650, в более новых версиях OpenVPN значение 3650 может быть уже установлено по умолчанию.

1.3 Генерируем ключи и сертификаты

Подаем последовательно в консоль команды:

vars

clean-all

В ответ должно прийти

Скопировано файлов: 1.
Скопировано файлов:         1.

Если, мы это видим, значит все хорошо, продолжаем...

1.4 Создаем центр сертификации CA

Подаем команду:

build-ca

На данном моменте в некоторых случаях может возникнуть ошибка:

C:\Program Files\OpenVP \easy-rsa>build-ca "openssl" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

Для устранения ошибки открываем файл vars.bat от имени администратора и ищем строку 

rem set "PATH=%PATH%;C:\Program Files\OpenVPN\bin"

Удаляем rem, после чего данная строка должна принять вид:

set "PATH=%PATH%;C:\Program Files\OpenVPN\bin"

Сохраняем, далее снова подаем последовательно команды

vars

clean-all

В ответ должно прийти

Скопировано файлов: 1.
Скопировано файлов: 1.

Подаем команду:

build-ca

При генерации основного сертификата в консоли будут отображаться вопросы. Просто нажимаем Enter, т.к. все эти параметры мы ввели в файле vars.bat

Нажимаем Enter до тех пор, пока не отобразиться строка приглашения

C:\Program Files\OpenVPN\easy-rsa

1.5 Создаем ключ Диффи-Хелмана

Данный шаг не является обязательным, ключ Диффи-Хелмана необходим для реализации одноименного протокола 

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

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

Файл Диффи-Хелмана создается на сервере OpenVPN.

Для создания ключа необходимо подать команду:

build-dh

1.6 Создаем сертификат и ключ сервера

Подаем команду:

     build-key-server server

На вопросы нажимаем Enter, но не торопимся, в самом конце будет задано два вопроса

Sign the certificate?

1 out of 1 certificate requests certified, commit?

На оба эти вопроса отвечаем Y

1.7 Создаем сертификат и ключ клиента

Подаем команду:

build-key-client 

Также не торопимся с ответами, как только увидим строку "Common Name (eg, your name or your server's hostname)" нужно ответить client.

В самом конце также будут два вопроса, отвечаем также Y

Причем: для каждого клиента, нужно будет создать отдельные ключи и называть их client1, client2 или как-то иначе, все зависит от Вашего воображения. 

Например:

build-key client1

build-key office1

На этом создание файлов сертификатов и ключей завершено.

Все файлы будут лежать в папке C:\Program Files\OpenVPN\easy-rsa\keys\


2. Генерация сертификатов и ключей на Linux 

Генерация сертификатов и ключей будет осуществляться на ОС Ubuntu Linux 20.04. 

Для других систем на базе Linux, некоторые команды могут отличаться!

Первоначально необходимо обновить все пакеты ОС Linux, подаем в консоль команду:

sudo apt-get update

sudo apt-get upgrade

Установим пакет zip, если он не был установлен ранее:

sudo apt install zip

2.1  Установка утилиты Easy-RSA

Создадим нового пользователя ca и переведем его в домашний каталог:

sudo adduser ca

В ответ система выведет информацию и попросит ввести пароль:

Adding user 'ca' ... Adding new group 'ca' (1002) ... Adding new user 'ca' (1002) wuth group 'ca' ... Creating home directory '/home/ca' ... Coping files from '/etc/skel/' ... New password:

Вводим пароль, затем еще раз его повторяем, если все хорошо, система выведет следующую информацию:

passwd: password updated successfully Changing the user information for ca Enter the new value or press ENTER for the default Full name []: Room number []: Work phone []: Home Phone []: Other []: Is the information correct? [Y/n]

Нажимаем Y, пользователь успешно создан.

Делаем loging под пользователя ca:

     su ca

cd

Далее необходимо загрузить дистрибутив программы утилитой wget:

$ wget https://github.com/OpenVPN/easy-rsa/archive/master.zip 

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

$ unzip master.zip 

2.2 Создаем инфраструктуру публичных PKI, создание центра сертификации СА:

Создадим инфраструктуру публичных ключей (Public Key Infrastructure, PKI): 

$ cd /home/ca/easy-rsa-master/easyrsa3 

$ ./easyrsa init-pki 

В ответ система оповестит, что PKI создан успешно:

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

Далее создаем удостоверяющий центр сертификации:

$ ./easyrsa build-ca 

В ответ система выдаст сообщение следующего вида:

Generating RSA private key, 2048 bit long modulus (2 primes) ..................................................................................+++++ ......................................................+++++ e is 65537 (0x010001) You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [Easy-RSA CA]:ca CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /home/ca/easy-rsa-master/easyrsa3/pki/ca.crt

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

В конечном итоге у нас создадутся в системе два файла, которые нам в дальнейшем пригодятся: ca.crt и ca.key. Данные файлы находятся в директориях:

/home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key  /home/ca/easy-rsa-master/easyrsa3/pki/ca.crt 

Файл ca.key является секретным, его нельзя передавать на другие узлы Вашей сети.

Файл ca.crt открытый, его необходимо передавать на узлы серверов и клиентов сети OpenVPN. 

2.3 Создаем список отзывов сертификатов

Если сотрудник уволился из компании и у него есть доступ в сети VPN компании, нам необходимо закрыть этот доступ путем отзыва сертификата CRL. Для создания сертификата проделаем следующее:

cd /home/ca/easy-rsa-master/easyrsa3 
$ ./easyrsa gen-crl 


Система запросит пароль для доступа к закрытому ключу ca.key. Список отзыва сертификатов будет доступен в файле crl.pem:

/home/ca/easy-rsa-master/easyrsa3/pki/crl.pem 

Данный сертификат передается OpenVPN серверу. Также в конфиге сервера должен быть прописан путь до crl.pem, как правило данное правило прописывается в server.conf.

crl-verify /usr/local/etc/openvpn/crl.pem

Для блокировки доступа пользователю, заблокируем ранее выданный сертификат, используя команду:

$ ./easyrsa revoke test 

В таблице ниже описана структура каталога PKI:

Файл или каталог

Описание

ca.crtСертификат удостоверяющего центра, передается как на сервер OpenVPN, так и на клиент OpenVPN
crl.pemСписок отзыва сертификатов CRL
issuedКаталог с сертификатами, созданными центром сертификации СА
privateКаталог с секретными ключами
ReqsКаталог запросов на сертификаты

2.4 Установка OpenVPN, создание каталога для конфигурации клиентов

Процесс создания сервера OpenVPN включает в себя установку пакета OpenVPN, создание сертификатов и ключей, а также подготовку рабочей конфигурации.

Установим пакет OpenVPN:

$ sudo apt-get install openvpn

Первоначально необходимо подготовить файлы конфигурации openssl.cnf и server.conf. Первый файл определяет конфигурацию OpenSSL, второй файл определяет конфигурацию сервера OpenVPN.

В комплекте с утилитой Easy-RSA поставляется пример файла конфигурации OpenSSL. Если Вы делали все действия по данному гайду, данный файл будет находиться по пути:

/home/ca/easy-rsa-master/easyrsa3/openssl-1.0.cnf 

По умолчанию файл openssl-1.0.cnf содержит в себе следующую информацию:

# For use with Easy-RSA 3.0+ and OpenSSL or LibreSSL #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = $ENV::EASYRSA_PKI # Where everything is kept certs = $dir # Where the issued certs are kept crl_dir = $dir # Where the issued crl are kept database = $dir/index.txt # database index file. new_certs_dir = $dir/certs_by_serial # default place for new certs. certificate = $dir/ca.crt # The CA certificate serial = $dir/serial # The current serial number crl = $dir/crl.pem # The current CRL private_key = $dir/private/ca.key # The private key RANDFILE = $dir/.rand # private random number file

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

Создадим каталог для конфигурации клиентов:

$ sudo mkdir /etc/openvpn/ccd

2.5 Подготовка сертификатов и ключей для сервера OpenVPN

Для организации OpenVPN нам потребуются файлы, перечисленные в таблице ниже:

ФайлОписание
dh.pemКлюч Диффи-Хелмана, используется для защиты трафика от расшифровки, необходимо загружать как на клиент, так и на сервер (опционально)
ca.crtСертификат удостоверяющего центра CA, необходимо загружать на сервер и клиент OpenVPN
server.crtСертификат сервера OpenVPN, необходимо загружать на сервер OpenVPN
server.keyПриватный ключ сервера, секретный, необходимо загружать на сервер OpenVPN
crl.pemCписок отзыва сертификатов CRL, необходимо загружать на сервер (опционально)
ta.keyКлюч HMAC для дополнительной защиты от DoS-атак и флуда (опционально)
client.crtСертификат клиента OpenVPN, необходимо загружать на клиент OpenVPN
client.keyПриватный ключ клиента, секретный, необходимо загружать на клиента OpenVPN

Так как центр сертификации мы уже сгенерировали, на следующем этапе сгенерируем сертификат и приватный ключ для сервера OpenVPN.

$ cd /home/ca/easy-rsa-master/easy-rsa3/

$ ./easyrsa gen-req server


В процессе создания, система запросит пароль, а также имя Common Name для сервера OpenVPN:

Generating a RSA private key .+++++ .......+++++ writing new private key to '/home/ca/easy-rsa-master/easyrsa3/pki/easy-rsa-2258.QFUIV0/tmp.WadIoG' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [server]:server Keypair and certificate request completed. Your files are: req: /home/ca/easy-rsa-master/easyrsa3/pki/reqs/server.req key: /home/ca/easy-rsa-master/easyrsa3/pki/private/server.key

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

$ cd /home/ca/easy-rsa-master/easy-rsa3/

$ ./easyrsa gen-req server nopass 

Таким образом, в системе создадутся два файла: server.req и server.key, первый из них является открытым, его необходимо будет в дальнейшем подписать удостоверяющим центром СА, второй является секретым, его необходимо хранить на сервере OpenVPN.

Следующим шагом необходимо подписать данный сертификат (server.req) на стороне удостоверяющего центра СА:

$ ./easyrsa sign-req server server

При создании сертификата система запросит пароль (если при формировании server.req сертификат создавался с паролем).  Необходимо будет ответить на сообщение yes, после чего ввести пароль от сертификата server.req. После успешного создания сертификата, система также уведомит об этом.

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 825 days: subject= commonName = server Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes Using configuration from /home/ca/easy-rsa-master/easyrsa3/pki/easy-rsa-2714.b10rbG/tmp.y76kMH Enter pass phrase for /home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key: Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'server' Certificate is to be certified until Oct 19 13:09:57 2022 GMT (825 days) Write out database with 1 new entries Data Base Updated Certificate created at: /home/ca/easy-rsa-master/easyrsa3/pki/issued/server.crt

Отлично! Теперь необходимо загрузить на сервер OpenVPN сертификат server.crt, который был только что создан, а также ключ server.key.

По умолчанию и ключ находятся в следующих директориях:

/home/ca/easy-rsa-master/easyrsa3/pki/issued/server.crt   /home/ca/easy-rsa-master/easyrsa3/pki/private/server.key

2.6 Подготовка сертификатов и ключей для клиента OpenVPN

Генерировать сертификат будем под пользователем ca:

su ca

cd /etc/home/ca/easy-rsa-master/easy-rsa3

./easyrsa gen-req client nopass

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

./easyrsa gen-req client

Далее система попросит ввести Common Name, я назову данный сертификат client1, после генерации ключа система дополнительно оповестит нас об этом:

Generating a RSA private key ....................................................................+++++ ........................+++++ writing new private key to '/home/ca/easy-rsa-master/easyrsa3/pki/easy-rsa-2221.ChEcsT/tmp.gWTNPO' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [client]:client1 Keypair and certificate request completed. Your files are: req: /home/ca/easy-rsa-master/easyrsa3/pki/reqs/client.req key: /home/ca/easy-rsa-master/easyrsa3/pki/private/client.key

Таким образом, в системе создадутся два файла: client.req и client.key, первый из них является открытым, его необходимо будет в дальнейшем подписать удостоверяющим центром СА, второй является секретым, его необходимо будет в дальнейшем загрузить на клиент OpenVPN.

Далее необходимо только что созданный сертификат client.req подписать в удостоверяющем центре СА:

./easyrsa sign-req client client

При создании сертификата система запросит пароль (если при формировании server.req сертификат создавался с паролем).  Необходимо будет ответить на сообщение yes, после чего ввести пароль от сертификата client.req. После успешного создания сертификата, система также уведомит об этом.

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 client certificate for 825 days: subject= commonName = client1 Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes Using configuration from /home/ca/easy-rsa-master/easyrsa3/pki/easy-rsa-2951.3DJoCJ/tmp.AqABm4 Enter pass phrase for /home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key: Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'client1' Certificate is to be certified until Oct 20 07:26:18 2022 GMT (825 days) Write out database with 1 new entries Data Base Updated Certificate created at: /home/ca/easy-rsa-master/easyrsa3/pki/issued/client.crt

Отлично! Теперь необходимо загрузить на клиент OpenVPN сертификат client.crt, который был только что создан, а также ключ client.key.

По умолчанию и ключ находятся в следующих директориях:

/home/ca/easy-rsa-master/easyrsa3/pki/private/client.key /home/ca/easy-rsa-master/easyrsa3/pki/issued/client.crt

2.7  Создаем ключ Диффи-Хелмана

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

$ cd /home/ca/easy-rsa-master/easy-rsa3/

$ ./easyrsa gen-dh

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

DH parameters of size 2048 created at /home/ca/easy-rsa-master/easyrsa3/pki/dh.pem

Данный ключ находится в директории:

/home/ca/easy-rsa-master/easyrsa3/pki/dh.pem

2.8 Создание статического ключа HMAC

Для создания ключа HMAC используется команда openvpn с опциями --genkey и --secret. Данный ключ необходимо создавать не от обычного пользователя, а от пользователя с правами администратора.

cd /etc/openvpn

su teleofis

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

sudo chown -R teleofis:teleofis .

openvpn --genkey --secret ta.key

Ключ сгенерирован, он будет находиться в директории:

/etc/openvpn/ta.key

На этом моменте создание сертификатов закончено, далее переходим к следующей статье:
OpenVPN режим мультиклиента: Часть 2 - Настройка RTU сервера (tun)


Сопутствующие статьи:
Как подключиться к роутеру RTU?

Описание WEB-интерфейса роутера RTU


Дополнительная информация: 

Wiki на GitHub

Openvpn сертификаты. Создание сертификатов и ключей. Настройка серверной части

OpenVPN - это приложение для создания безопасного IP-туннеля через единый UDP - или Порты TCP -порт 1194. Для обеспечения безопасности управляющего канала и потока данных, OpenVPN использует библиотеку OpenSSL (точнее протоколы SSLv3/TLSv1) т.е. доступны все возможности шифрования, аутентификации и сертификации библиотеки OpenSSL (любой шифр, размер ключа). Также может использоваться пакетная авторизация Алгоритм HMAC для OpenVPN , для обеспечения большей безопасности, и аппаратное ускорение для улучшения производительности шифрования.

OpenVPN используется на Solaris, OpenBSD, FreeBSD, NetBSD, GNU/Linux, Apple Mac OS X и Microsoft Windows.

    OpenVPN предлагает пользователю несколько видов аутентификации:

    Предустановленный ключ, - самый простой метод.

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

OpenVPN может использовать статические, предустановленные ключи или обмен динамическими ключами на основе TLS . Он также поддерживает соединения VPN с динамическими удалёнными узлами (DHCP или клиенты dial-up), туннели поверх NAT или через полноценный межсетевой экран (например, Правила iptables в Linux).

Настройки конфигурационного файла клиента идентичны по синтаксису и написанию как для Linux, так и для Windows.

Компоненты сети OpenVPN

Основные компоненты сети OpenVPN и объекты

    Удостоверяющий центр CA . Выдает сертификаты по запросу узлов сети VPN, подписанные сертификатом удостоверяющего центра. Предоставляет узлам сети VPN свой собственный сертификат для проверки удостоверяющей стороны. Управляет списком отзыва сертификатов CRL.

    Сервер OpenVPN . ПО сервера OpenVPN создает туннель внутри незащищенной сети, например, Интернета. Этот туннель обеспечивает безопасный зашифрованный трафик между узлами - участниками обмена данными в сети OpenVPN.

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

    Сертификаты (публичные ключи) X.509 . Сертификаты X.509 представляют собой публичные ключи, заверенные удостоверяющим центром CA. Они используются для зашифровывания данных. Факт заверения сертификата удостоверяющим центром CA позволяет идентифицировать сторону, передающую зашифрованные данные. Файл запроса на сертификат создается на узлах сети, затем он переносится на узел удостоверяющего центра и там подписывается. Созданный в результате подписанный сертификат переносится обратно на запросивший его узел сети OpenVPN.

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

    Список отзыва сертификатов CRL . Содержит список сертификатов, утративших доверие. Он создается и редактируется на узле удостоверяющего центра CA. Чтобы отключить узел от сети, достаточно занести его сертификат в список CRL. После создания и каждого изменения список CRL переносится на серверы OpenVPN.

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

Безопасность и шифрование в OpenVPN обеспечивается библиотекой Как пользоваться OpenSSL и протоколом транспортного уровня Transport Layer Security (TLS). Вместо OpenSSL в новых версиях OpenVPN можно использовать библиотеку PolarSSL. Протокол TLS представляет собой усовершенствование протокола защищенной передачи данных уровня защищенных сокетов Secure Socket Layers (SSL сертификаты для для сайта, почты).

В OpenSSL может использоваться симметричная и ассиметричная криптография.

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

Во втором случае у каждого участника обмена данными есть два ключа - публичный (открытый) и приватный (секретный).

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

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

Для безопасной передачи данных необходимо идентифицировать стороны, принимающие участие в обмене данными. В противном случае можно стать жертвой так называемой "атаки посредника" (Man in the Middle, MITM). В ходе такой атаки злоумышленник подключается к каналу передачи данных и прослушивает его. Он также может вмешиваться, удалять или изменять данные.

Чтобы обеспечить аутентификацию (проверку подлинности пользователя) протокол TLS использует инфраструктуру публичных ключей (Public Key Infrastructure, PKI) и асимметричную криптографию.

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

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

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

OpenVPN Debian Wheezy/sid

# aptitude install openvpn # mkdir /etc/openvpn/easy-rsa # cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

Изменяем параметры по умолчанию для сертификатов

# nano /etc/openvpn/easy-rsa/vars ... export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="[email protected]"

Создадим переменные окружения bash , если это не сделать, при генерации ключей клиентов переменные будут взяты из /etc/openvpn/easy-rsa/openssl.cnf а не из файла vars

# cd /etc/openvpn/easy-rsa # source ./vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys # ./clean-all # ./build-dh

Создадим сертификат для сервера с именем vpnspar

# ./pkitool --initca # ./pkitool --server vpnspar

Создадим сертификат для клиента с именем farm1c. Отдельный ключ для каждого клиента.

# ./pkitool farm1c # mkdir /etc/openvpn/keys # cp keys/ca.crt /etc/openvpn/keys # cp keys/dh2024.pem /etc/openvpn/keys # cp keys/vpnspar.crt /etc/openvpn/keys # cp keys/vpnspar.key /etc/openvpn/keys

В директории ccd хранятся индивидуальные настройки для каждого клиента. Имя файла должно соответствовать имени сгенерированного клиентского сертификата. Файлы конфигурации клиентов являются текстовыми файлами и содержат команды, выполняемые сервером при подключении клиентов. Обычно файл клиента содержать команды:

    добавляет клиенту маршрут к локальной подсети центрального офиса(push "route 192.168.1.0 255.255.255.0")

    определяет адрес локальной подсети, находящейся за клиентом (например iroute 192.168.2.0 255.255.255.0)

    привязка к статическому IP (ifconfig-push 192.168.14.21 192.168.14.22), где ifconfig-push . Выбранные пары IP-адресов, во-первых, должны быть уникальными, во-вторых, должны входить в состав последовательных подсетей, ограниченных маской /30 (255.255.255.252), и, в-третьих, должны находиться в пределах пула IP-адресов, выделенного для виртуальной частной сети (определяется параметром server файла конфигурации сервера OpenVPN).

# mkdir /etc/openvpn/ccd # nano ccd/farm1c push "route 192.168.1.0 255.255.255.0" #push "route 192.168.35.0 255.255.255.0" # static IP ifconfig-push 192.168.14.21 192.168.14.22 #iroute 192.168.2.0 255.255.255.0

server.conf

Конфигурируем сервер в файле server.conf

# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ # gunzip server.conf.gz # nano /etc/openvpn/server.conf server.conf local ххх.196.98.ххх # IP на котором сервер слушает входящие сообщения port 1194 # порт на котором сервер слушает входящие сообщения proto udp dev tun # Включение интерфейса управления OpenVPN. Доступен при помощи telnet localhost 7505 management localhost 7505 ca keys/ ca.crt # местонахождение самоподписного доверенного сертификата (CA) cert keys/ vpnspar.crt # местонахождение сертификата сервера key keys/ vpnspar.key # местонахождение закрытого ключа сервера dh keys/ dh2024.pem # местонахождение файла параметров Диффи-Хэлмана # Настройка режима сервера и адреса VPN-сети, # из которой OpenVPN будет раздавать адреса клиентам. # Сервер возьмет себе 192.168.14.1, # остальные адреса будут доступны для клиентов. # Каждый клиент сможет связаться с сервером по адресу 192.168.14.1. server 192.168.14.0 255.255.255.0 # в файле ipp.txt хранится информация о соединении, например на случай обрыва соединения # и его дальнейшего восстановления ifconfig-pool-persist ipp.txt # маршруты которые будут передаваться каждому клиенту. # push - команда OpenVPN, передаваемая клиенту и выполняемая клиентом # (в данном случае добавляем на стороне клиента два маршрута к виртуальной частной сети) push "route 192.168.1.0 255.255.255.0" push "route 192.168.35.0 255.255.255.0" # Перенаправлять default gateway на vpn-сервер. Если не нужно - закомментировать или # добавить в ccd для конкретного клиента push "redirect-gateway def1" # указываем где будут хранятся файлы с настройками IP-адресов клиентов client-config-dir ccd # добавляем маршрут сервер-клиент. # route - добавляет на стороне сервера маршруты к локальным подсетям, находящимся за клиентами route 192.168.14.0 255.255.255.252 # разрешить общение клиентов подключенных к серверу OpenVPN общение между собой client-to-client # Директива проверки работоспособности, включающая отсылку # ping-подобных сообщений туда и обратно через # соединение для того, чтобы каждая сторона знала когда # другая сторона внезапно пропадет (gone down). # Пинг каждые 10 секунд, с предположением, что удаленный # узел недоступен, если не получено на одного пинга за период времени # равный 120 секундам. keepalive 10 120 comp-lzo max-clients 10 user nobody group nogroup persist-key persist-tun # Содержимое небольшого файла состояния, показывающего # текущие соединения, усекается # и перезаписывается раз в минуту. status / var/ log/ openvpn-status.log log / var/ log/ openvpn.log verb 3 # уровень отладки # /etc/init.d/openvpn start

Аннулировать сертификат клиента

    Пример . Аннулируем сертификат пользователя farm1c # cd /etc/openvpn/easy-rsa # source ./vars # ./revoke-full farm1c Using configuration from /etc/openvpn/easy-rsa/openssl.cnf Revoking Certificate 02. Data Base Updated

    После команды revoke-full изменится в файл /etc/openvpn/easy-rsa/keys/index.txt строка соответствующая сертификату пользователя farm1c.

Инсталляция VE(VPS, VDS)

    Инсталлируем VE Ubuntu для OpenVZ # cd /vz/template/cache/ # wget -c http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz # vzctl create 111 --layout simfs --ostemplate ubuntu-14.04-x86_64-minimal CT configuration saved to /etc/vz/conf/111.conf

    Настраиваем VE 111.conf.

    Все остальные настройки производим уже в установленной VE # vzctl enter 111

Создание ключей

    Создание ключей при помощи утилиты Easy-RSA. Ранее эта утилита входила в дистрибутив сервера OpenVPN, сейчас она отдельный проект. Последнюю версию утилиты можно скачать с сайта OpenVPN, но правильнее использовать версию поставляемую с вашим дистрибутивом ОС. aptitude install easy-rsa

    Перед тем как запустить демон OpenVPN, нам нужны в каталоге /etc/openvpn/keys openssl.cnf - файл конфигурации OpenSSL; server.conf - файл конфигурации сервера OpenVPN; ca.crt - cертификат удостоверяющего центра; vpn-server.crt - cертификат сервера OpenVPN; server.key - приватный ключ сервера OpenVPN, секретный; crl.pem - cписок отзыва сертификатов; dh.pem - файл Диффи-Хелмана для обеспечения защиты трафика от расшифровки; ta.key - ключ HMAC для дополнительной защиты от DoS-атак и флуда

    Копируем директорию easy-rsa в то место где будем создавать инфраструктуру публичных ключей (Public Key Infrastructure, PKI) cp -R /usr/share/easy-rsa /etc/openvpn/ cd /etc/openvpn/easy-rsa

    Изменяем параметры по умолчанию для сертификатов в файле vars

    Export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="[email protected]" export KEY_OU="MyOrganizationalUnit"

    Создадим переменные окружения.

    Source ./vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

    Очистим от предыдущих экспериментов. Создадим ключ Диффи-Хелмана (ключ создается некоторое время).

    ./clean-all ./build-dh Generating DH parameters, 2048 bit long safe prime, generator 2 This is going to take a long time ...

    Создадим директорию для хранения приватных ключей сервера OpenVPN. Скопируем туда файл Диффи-Хелмана (dh3048.pem) mkdir /etc/openvpn/keys cp keys/dh3048.pem /etc/openvpn/keys/

    Создадим удостоверяющий центр CA . Создадутся ca.crt и ca.key. Файл ca.key представляет собой приватный ключ центра CA, он секретный , и его нельзя переносить на другие узлы вашей сети. Файл сертификата удостоверяющего центра ca.crt, напротив, открытый, и он будет нужен на узлах серверов и клиентов OpenVPN. ./pkitool --initca

    Создадим сертификат для сервера с именем vpnluxor ./pkitool --server vpnluxor

    Созданные файлы vpnluxor.crt и vpnluxor.key копируем в директорию /etc/openvpn/keys/

    Создадим сертификат для клиента client1 с одноименном параметром CommonName . Отдельный ключ для каждого клиента. ./pkitool client1

Расположение сертификатов и ключей

Файл Машина Назначение Доступ
ca.crt Сервер и клиенты Сертификат корневого СА Публичный
ca.key Только на сервере Необходим для подписи других сертификатов Секретный
dh{n}.pem Только на сервере Diffie Hellman параметры Публичный
vpnspar.crt Только на сервере Сертификат сервера Публичный
vpnspar.key Только на сервере Ключ сервера Секретный
darkfire.crt Только на клиенте Сертификат клиента Публичный
darkfire.key Только на клиенте Ключ клиента Секретный

Инсталлируем OpenVPN

В директории ccd хранятся индивидуальные настройки для каждого клиента. mkdir /etc/openvpn/ccd

Расширение сетевых границ VPN

Расширение границ VPN для включения дополнительных машин из подсетей на стороне клиента или сервера. Включение нескольких машин на стороне сервера при использовании маршрутизируемого VPN (dev tun)

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

Чтобы проиллюстрировать это примером, предположим, что в локальной сети на стороне сервера используется подсеть 10.66.0.0/24 и для пула VPN-адресов используется 10.8.0.0/24, о чем говорится в директиве server в файле конфигурации OpenVPN-сервера.

Во-первых, вы должны сообщить VPN-клиентам, что подсеть 10.66.0.0/24 доступна через VPN. Это легко можно сделать с помощью следующих директив в конфигурационном файле сервера:

Push "route 10.66.0.0 255.255.255.0"

Далее, необходимо настроить на LAN - шлюзе в сети сервера маршрут для маршрутизации пакетов, предназначенных для подсети VPN-клиентов (10.8.0.0/24) через OpenVPN-сервер (это необходимо только тогда, когда сервер OpenVPN и LAN -шлюз – разные машины).

Iptables -A INPUT -p udp --dport 1194 -j ACCEPT iptables -A INPUT -i tap+ -j ACCEPT or iptables -A INPUT -i tun+ -j ACCEPT

Проблема: Если сервер подключён к ISP при помощи технологии Как работает PPPoE , в этом случае OpenVPN не сможет сделать доступными сети за подключённым клиентом. Не будет отрабатывать команда iroute. Это связано с тем, что PPP прописывает маршрут по умолчанию в таком виде:

# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0

Т.е. указывается маршрутом по умолчанию интерфейс (ppp0), а не IP адресс, такой записи сервер OpenVPN не понимает, для корректной работы сервера OpenVpn маршрут должен бы вида:

# netstat -rn Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 91.196.96.35 255.255.255.255 UGH 0 0 0 ppp0

Client proto udp dev tun ca ca.crt dh dh3048.pem cert client.crt key client.key remote xxx.xxx.xxx.xxx 1194 tls-auth ta.key 1 cipher AES-256 -CBC user nobody group nogroup verb 2 mute 20 keepalive 10 120 comp-lzo persist-key persist-tun float resolv-retry infinite nobind

    В файле /etc/logrotate.d/openvpn прописываем настройки для Описание и примеры настройки logrotate в Linux , ключевой параметр copytruncate (чтобы не перегружать OpenVPN и заставить его писать данные в тот же лог файл) openvpn etc/ openvpn/ servers/ vpnluxor/ logs/ openvpn.log { daily rotate 8 compress delaycompress missingok copytruncate notifempty create 640 root }

Виртуальная частная сеть. С ее помощью мы можем:

  • Создать защищенный канал свзяи, в то время, когда мы сидим с бесплатного Wi-Fi в кафе.
  • Обмениваться файлами между участниками сети.
  • Раздавать интернет испульзуя общий шлюз.

Основные преимущества:

  • Простота настройки.
  • Безопасность.
  • Не требует дополнительного оборудования.
  • Высокая скорость и стабильность.

Как и автор статьи об установке OpenVPN на Linux, я не нашел нормальной статьи, да еще и такой, чтоб описывалось все до мелочей. В этой статье на Хабрахабре я постараюсь максимально доступно все объяснить. Итак, поехали!

Скачиваем дистрибутив.

На момент написания статьи доступная версия 2.3.2 . Качаем Windows installer 32-х или 64-х битную версию под разрядность вашей операционной системы.

Установка.

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

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

Когда-то этот пункт меня останавливал, мол ну их эти ключи, пойду поищу что попроще. Но, увы, ничего лучшего не нашел. Итак, переходим в C:\Program files\OpenVPN\easy-rsa, запускаем init-config.bat, появится vars.bat, открываем его в блокноте. Нас интересуют строчки в самом низу, их нужно заполнить как угодно. Например:
set KEY_COUNTRY=RU
set KEY_PROVINCE=Baldur
set KEY_CITY=Piter
set KEY_ORG=OpenVPN
set
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=ouou

Там где написано server не трогаем. Сохранили.
Теперь открываем openssl-1.0.0.cnf и ищем строчку default_days 365, ставим 3650. Это продлит жизнь наших сертификатов на 10 лет. Сохраняем. Далее открываем командную строку в пуск-стандартные-командная строка (на Windows Vista/7/8 от имени администратора), пишем последовательно:

cd C:\OpenVPN\easy-rsa
vars
clean-all

В ответ должно написать два раза «Скопировано файлов: 1». Значит, все окей. В этом же окне набираем:
build-dh
Создаст ключ Диффи-Хельмана.
build-ca
Создаст основной сертификат.
Будут заданы вопросы, просто нажимаем Enter пока не увидите путь C:\Program files\OpenVPN\easy-rsa. Далее набираем:
build-key-server server
На вопросы также жмем Enter, только не торопитесь! В конце будут два вопроса: «Sign the certificate?» и «1 out of 1 certificate requests certified, commit?», на оба вопроса отвечаем Y. Теперь создадим сертификат клиента:
build-key client
Тут нужно быть вниметельней, при вопросе Common Name (eg, your name or your server’s hostname) нужно ввести client. В конце также два раза Y. Для каждого клиента нужно создавать новый сертификат, только с другим именем, например, build-key client1 и также указывать его в common name. Если все сделали правильно, можете выдохнуть! Самое сложное позади. В папке C:\Program Files\OpenVPN\easy-rsa\keys забираем: ca.crt, dh2024.pem, server.crt, server.key и кладем их в C:\Program Files\OpenVPN\config.

Создаем конфиги.

Переходим в C:\Program Files\OpenVPN\config, создаем текстовой документ, вставляем:
# Поднимаем L3-туннель
dev tun
# Протокол
proto udp
# Порт который слушает впн
port 12345
# Ключи и сертификаты
ca ca.crt
cert server.crt
key server.key
dh dh2024.pem
# Грубо говоря экономим адреса
topology subnet
# Пул адресов
server 10.8.0.0 255.255.255.0
# Метод шифрования
cipher AES-128-CBC
# Сжатие
comp-lzo
# Немного улучшит пинг
mssfix
# Время жизни клиентов, если не откликнулся - отключает
keepalive 10 120
# Уровень отладки
verb 3

Сохраняем файл как server.ovpn. Это наш конфиг сервера. Теперь пробуем запустить сервер. На рабочем столе будет ярлык OpenVPN Gui. После запуска в трее появится красный значок. Кликаем по нему дважды, если загорелся зеленым, значит, все хорошо, если нет, тогда смотрим лог в папке log.

Теперь конфиг клиента:
client
dev tun
proto udp
# Адрес и порт сервера
remote адрес 12345
# Ключи должны лежать в папке с конфигом
ca ca.crt
cert client.crt
key client.key
cipher AES-128-CBC
nobind
comp-lzo
persist-key
persist-tun
verb 3

Сохраняем как client.ovpn. Создаем любую папку и кладем туда конфиг client.ovpn и сертификаты ca.crt, client.crt, client.key которые лежат в C:\Program files\OpenVPN\easy-rsa. Сам клиент для Windows качаем На клиентской машине устанавливаем, переносим папку с конфигом и сертификатом и запускаем client.ovpn. Если подключились, пробуем в командной строке набрать ping 10.8.0.1. Пакеты пошли? Поздравляю! Сервер готов! Теперь идем в панель управления-администрирование-службы, ищем там OpenVPN, дважды щелкаем и выставляем автоматически. Теперь сервер будет сам стартовать после перезагрузки.

Дорабатываем конфиг или каждому свое.

Теперь я расскажу как раздавать интернет и другие мелочи связанные с настройкой. Начнем с мелочей. Все манипуляции будем проводить с конфигом сервера.
Если хотите, чтобы клиенты «видели» друг друга т.е. могли обмениваться информацией, тогда в конфиг впишите
client-to-client .
Если нужно, чтобы клиентам выдавались статические адреса, тогда в папке config создайте файл ip.txt и впишите в конфиг
ifconfig-pool-persist ip.txt
Неохота создавать каждому сертификаты? Тогда пишем duplicate-cn , но учтите, с этой опцией не работает ifconfig-pool-persist.
Теперь о конфиге клиента. Можно не передавать файлы сертификатов, а вписать сразу в конфиг, только делать это лучше не с блокнота, а с AkelPad’а или Notepad++ например. Открываем ca.crt и выделяем от ——BEGIN CERTIFICATE—— до ——END CERTIFICATE——. В конфиге будет выглядеть так:


——BEGIN CERTIFICATE——
сертификат
——END CERTIFICATE——


——BEGIN CERTIFICATE——
сертификат
——END CERTIFICATE——


——BEGIN PRIVATE KEY——
ключ
——END PRIVATE KEY——

Раздаем интернет

Для этого в конфиг сервера вписываем:
push «redirect-gateway def1»
push «dhcp-option DNS 8.8.8.8»
push «dhcp-option DNS 8.8.4.4»

DNS-адреса подставляем те, что даны в настройках. Посмотреть можно зайдя в панель управления-сетевые подключения, дважды кликнув на адаптере который смотрит в интернет. Для Win7 Панель управления-Сеть и Интернет-Центр управления сетями и общим доступом-изменение параметров адаптера. Далее, заходим в свойства этого же адаптера, вкладка доступ, ставим птичку напротив «Разрешить другим пользователям сети…» и в выпадающем списке, если есть, выбираем виртуальный адаптер vpn. Затем заходим в свойства адаптера vpn, свойства ipv4 и выставляем получение ip и dns автоматически. Спасибо за внимание!

В роутерах серии RTU есть возможность использования защищенного соединения через частную виртуальную сеть, под названием OpenVPN

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

Практически всю часть конфигурирования можно произвести через WEB интерфейс, но некоторые элементы все же придется произвести через консоль!

Что такое OpenVPN и для чего он необходим можно ознакомиться через статью на Wikipedia: OpenVPN

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

1. Генерация сертификатов и ключей на Windows

Для генерации сертификатов и ключей шифрования на ОС Windows необходимо установить само приложение OpenVPN

После скачивания и установки в указанную Вами папку в ней будет список файлов. у меня это папка C:\Program Files\OpenVPN\

Нам необходимо перейти в папку easy-rsa

Нужно открыть консоль Windows (для Windows Vista/7/8/8.1/10 нужно запускать от Администратора)

Узнать, как запускать командную строку(консоль) от имени администратора можно набрав в поисковике (Яндекс, Google, Mail и др.) фразу: "Как запустить командную строку от имени администратора "

Переходим в папку easy-rsa по пути установки командой cd

Например:

cd C:\Program Files\OpenVPN\easy-rsa

1.1 Запускаем файл init-config.bat

C:\Program Files\OpenVPN\easy-rsa>init-config.bat
C:\Program Files\OpenVPN\easy-rsa>copy vars.bat.sample vars.bat
Скопировано файлов: 1.

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

Мы подставили свои параметры, у Вас данные параметры будут другие.

set KEY_COUNTRY= RU
set KEY_PROVINCE= Moscow
set KEY_CITY= Moscow
set KEY_ORG= TELEOFIS
set KEY_EMAIL= [email protected]
set KEY_CN= server
set KEY_NAME= server
set KEY_OU= server
set PKCS11_MODULE_PATH= server
set PKCS11_PIN= 12345

Там где написано server, не трогаем. Сохраняем файл.

Находим строчку default_days 365 и заменяем число 365 на 3650 . Тем самым мы увеличим время жизни наших сертификатов на 10 лет.

Сохраняем и закрываем.

1.3 Генерируем ключи

Пишем в консоль команды

vars

clean-all

В ответ должно прийти

Скопировано файлов: 1.
Скопировано файлов: 1.

Если, мы это видим, значит все хорошо, продолжаем...

Создаем ключ Диффи-Хеллмана

build-dh

Создаем основной сертификат

build-ca

При генерации основного сертификата в консоли будут отображаться вопросы. Просто нажимаем Enter , т.к. все эти параметры мы ввели в файле vars.bat

Нажимаем Enter до тех пор, пока не отобразиться строка приглашения

C:\Program Files\OpenVPN\easy-rsa

build-key-server server

На вопросы так же нажимаем Enter , но не торопимся, в самом конце будет задано два вопроса

Sign the certificate?

На оба эти вопроса отвечаем Y

Теперь создаем сертификат и ключ клиента:

build-key client

Также не торопимся с ответами, как только увидим строку "Common Name (eg, your name or your server"s hostname) " нужно ответить client

В самом конце также будут два вопроса, отвечаем также Y

Причем: для каждого клиента, нужно будет создать отдельные ключи и называть их client1 , client2 или как-то иначе, все зависит от Вашего воображения. Также не забывайте вводить эти имена при запросе Common Name

Например:

build-key client1

build-key office1

Все файлы будут лежать в папке C:\Program Files\OpenVPN\easy-rsa\keys\

Из этой папки забираем:

dh2024.pem (или dh3048.pem )

server.crt

server.key

2. Генерация сертификатов и ключей на Linux

Пример генерации сертификатов и ключей мы будем производить на операционной системе Ubuntu Linux 16.04 LTS

Для других систем на базе Linux, некоторые команды могут отличаться!

Открываем консоль операционной системы и устанавливаем небольшой пакет easy-rsa

sudo apt-get install easy-rsa

Переходим в каталог, куда установился пакет генерации сертификатов

cd /usr/share/easy-rsa/

Единственный момент, данная папка доступна для записи только суперпользователю, чтобы у нас не возникло проблем в дальнейшем, поменяем владельца (Не проглядите точку в конце команды!!!)

sudo chown -R teleofis:teleofis .

Теперь настроим информацию о создаваемых сертификатах

nano vars

Находим данные пункты и меняем их под себя

export KEY_SIZE=1024 // Длина ключа
export CA_EXPIRE=3650 // Время действия главного ключа в днях
export KEY_EXPIRE=3650 // Время действия сертификата в днях
export KEY_COUNTRY="RU" // Страна
export KEY_PROVINCE="Moscow" // Регион
export KEY_CITY="Moscow" // Город
export KEY_ORG="TELEOFIS" // Организация
export KEY_EMAIL="[email protected]" // Электронный ящик
export KEY_OU="server" // Подразделение
export KEY_NAME="server" // Имя ключа

После редактирования сохраняем файл.

Копируем последнюю версию конфигурации OpenSSL в файл openssl.cnf

cp openssl-1.0.0.cnf openssl.cnf

Загружаем переменные

source ./vars

На всякий случай почистим от мусора

./clean-all

Создаем сертификат сервера

./build-ca

На все вопросы нажимаем Enter , все эти параметры мы отредактировали заранее в файле vars


.........................................++++++
.......................................................................................++++++
writing new private key to "ca.key"
-----

-----

Common Name (eg, your name or your server"s hostname) :
Name :
Email Address :

Создаем ключ сервера

./build-key-server server

На все вопросы отвечаем Enter , но нужно быть внимательными, ближе к концу будет несколько вопросов о пароле и опциональное имя

Также на запросы

Sign the certificate?

1 out of 1 certificate requests certified, commit?

Отвечаем Y

Generating a 1024 bit RSA private key
..............................++++++
.....................++++++
writing new private key to "server.key"
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ".", the field will be left blank.
-----
Country Name (2 letter code) :
State or Province Name (full name) :
Locality Name (eg, city) :
Organization Name (eg, company) :
Organizational Unit Name (eg, section) :
Common Name (eg, your name or your server"s hostname) :
Name :
Email Address :

Please enter the following "extra" attributes
to be sent with your certificate request
A challenge password :
An optional company name :
Using configuration from /usr/share/easy-rsa/openssl-1.0.0.cnf
Check that the request matches the signature
Signature ok
The Subject"s Distinguished Name is as follows
countryName:PRINTABLE:"RU"
stateOrProvinceName:PRINTABLE:"Moscow"
localityName:PRINTABLE:"Moscow"
organizationName:PRINTABLE:"TELEOFIS"
organizationalUnitName:PRINTABLE:"server"
commonName:PRINTABLE:"server"
name:PRINTABLE:"server"
emailAddress:IA5STRING:"[email protected]"
Certificate is to be certified until Dec 20 13:25:10 2026 GMT (3650 days)
Sign the certificate? :y

1 out of 1 certificate requests certified, commit? y
Write out database with 1 new entries
Data Base Updated

Создаем ключ Диффи-Хеллмана

./build-dh

Внимание!!! Файл может генерироваться длительное время, дожидаемся окончания генерации.

Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.......+................+.............+.............................................................................+................+........................+...........................................+...............................................................................................................................................+....................+........................................+...................................................................................+....................................................................................................................+.+...................................++*++*++*

Аналогичным образом создаем ключи клиентов

./build-key client1

./build-key rtu968

Отвечаем на все вопросы Enter , но в конце внимательней, опять будут запросы

Sign the certificate?

1 out of 1 certificate requests certified, commit?

Отвечаем на них Y

На этом создание файлов сертификатов и ключей завершено.

В папке /usr/share/easy-rsa/keys/ будут лежать наши сертификаты и ключи

dh2024.pem (или dh3048.pem )

server.crt

server.key

3. Дополнительные варианты

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

3.1 Ключ для TLS аутентификации

Генерируется командой:

openvpn --genkey --secret %KEY_DIR%\ta.key - Windows

Для Linux необходимо наличие полного пакета OpenVPN, только пакета easy-rsa будет недостаточно!

Установить полный пакет OpenVPN можно командой

sudo apt-get install openvpn

openvpn --genkey --secret /usr/share/easy-rsa/keys/ta.key - Linux

3.2 Проверка и отзыв сертификатов

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

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

Для его использования создаем пользовательский сертификат:

build-key crlsert - Windows

./build-key crlsert - Linux

На все вопросы отвечаем нажатием Enter , кроме Common Name и Name

Для этих полей указываем имя самого сертификата.

И в конце на запросы Sign the certificate? , 1 out of 1 certificate requests certified, commit? отвечаем Y

После этого выполняем команду revoke-full , она отвечает за отзыв сертификата и последующее создание файла crl.pem

revoke-full crlsert - Windows

./revoke-full crlsert - Linux

Сами файлы сертификата crlsert можно удалить. После отзыва они не удаляются автоматически из папки.

На этом создание ключей завершается.

Переходим к следующей статье:

Дополнительная информация.

Создание сертификатов openvpn. Безопасность и шифрование. Расширение сетевых границ VPN

OpenVPN – один из вариантов VPN (virtual private network или частных виртуальных сетей), позволяющих реализовать передачу данных по специально созданному зашифрованному каналу. Таким образом можно соединить два компьютера или построить централизованную сеть с сервером и несколькими клиентами. В этой статье мы научимся создавать такой сервер и настраивать его.

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

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

Установка OpenVPN на машину-сервер

Инсталляция представляет собой стандартную процедуру с некоторыми нюансами, о которых и поговорим подробнее.


Настройка серверной части

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

  1. Идем в каталог «easy-rsa» , который в нашем случае находится по адресу

    C:\OpenVPN\easy-rsa

    Находим файл vars.bat.sample .

    Переименовываем его в vars.bat (удаляем слово «sample» вместе с точкой).

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

  2. В первую очередь удаляем все комментарии, выделенные зеленым цветом – они нам будут только мешать. Получим следующее:

  3. Далее меняем путь к папке «easy-rsa» на тот, который мы указывали при установке. В данном случае просто удаляем переменную %ProgramFiles% и меняем ее на C: .

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

  5. Остальные строки заполняем произвольно. Пример на скриншоте.

  6. Сохраняем файл.

  7. Требуется также отредактировать следующие файлы:
    • build-ca.bat
    • build-dh.bat
    • build-key.bat
    • build-key-pass.bat
    • build-key-pkcs12.bat
    • build-key-server.bat

    В них нужно поменять команду

    на абсолютный путь к соответствующему ей файлу openssl.exe . Не забываем сохранять изменения.

  8. Теперь открываем папку «easy-rsa» , зажимаем SHIFT и кликаем ПКМ по свободному месту (не по файлам). В контекстном меню выбираем пункт «Открыть окно команд» .

    Запустится «Командная строка» с уже осуществленным переходом в целевой каталог.

  9. Вводим команду, указанную ниже, и нажимаем ENTER .

  10. Далее запускаем еще один «батник».

  11. Повторяем первую команду.

  12. Следующий шаг – создание необходимых файлов. Для этого используем команду

    После выполнения система предложит подтвердить данные, которые мы вносили в файл vars.bat. Просто несколько раз нажимаем ENTER , пока не появится исходная строка.

  13. Создаем DH-ключ с помощью запуска файла

  14. Готовим сертификат для серверной части. Здесь есть один важный момент. Ему нужно присвоить то имя, которое мы прописали в vars.bat в строке «KEY_NAME» . В нашем примере это Lumpics . Команда выглядит следующим образом:

    build-key-server.bat Lumpics

    Здесь также необходимо подтвердить данные с помощью клавиши ENTER , а также два раза ввести букву «y» (yes), где потребуется (см. скриншот). Командную строку можно закрыть.

  15. В нашем каталоге «easy-rsa» появилась новая папка с названием «keys» .

  16. Ее содержимое требуется скопировать и вставить в папку «ssl» , которую необходимо создать в корневом каталоге программы.

    Вид папки после вставки скопированных файлов:

  17. Теперь идем в каталог

    C:\OpenVPN\config

    Создаем здесь текстовый документ (ПКМ – Создать – Текстовый документ), переименовываем его в server.ovpn и открываем в Notepad++. Вносим следующий код:

    port 443
    proto udp
    dev tun
    dev-node "VPN Lumpics"
    dh C:\\OpenVPN\\ssl\\dh3048.pem
    ca C:\\OpenVPN\\ssl\\ca.crt
    cert C:\\OpenVPN\\ssl\\Lumpics.crt
    key C:\\OpenVPN\\ssl\\Lumpics.key
    server 172.16.10.0 255.255.255.0
    max-clients 32
    keepalive 10 120
    client-to-client
    comp-lzo
    persist-key
    persist-tun
    cipher DES-CBC
    status C:\\OpenVPN\\log\\status.log
    log C:\\OpenVPN\\log\\openvpn.log
    verb 4
    mute 20

    Обратите внимание, что названия сертификатов и ключей должны совпадать с расположенными в папке «ssl» .

  18. Далее открываем «Панель управления» и переходим в «Центр управления сетями» .

  19. Нажимаем на ссылку «Изменение параметров адаптера» .

  20. Здесь нам нужно найти подключение, осуществляемое через «TAP-Windows Adapter V9» . Сделать это можно, нажав по соединению ПКМ и перейдя к его свойствам.

  21. Переименовываем его в «VPN Lumpics» без кавычек. Это название должно совпадать с параметром «dev-node» в файле server.ovpn .

  22. Заключительный этап – запуск службы. Нажимаем сочетание клавиш Win+R , вводим строку, указанную ниже, и жмем ENTER .

  23. Находим сервис с названием «OpenVpnService» , кликаем ПКМ и идем в его свойства.

  24. Тип запуска меняем на «Автоматически» , запускаем службу и нажимаем «Применить» .

  25. Если мы все сделали правильно, то возле адаптера должен пропасть красный крестик. Это значит, что подключение готово к работе.

Настройка клиентской части

Перед началом настройки клиента необходимо совершить несколько действий на серверной машине – сгенерировать ключи и сертификат для настройки подключения.


Работы, которые необходимо выполнить на клиентской машине:


На этом настройка сервера и клиента OpenVPN завершена.

Заключение

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

OpenVPN - это приложение для создания безопасного IP-туннеля через единый UDP - или Порты TCP -порт 1194. Для обеспечения безопасности управляющего канала и потока данных, OpenVPN использует библиотеку OpenSSL (точнее протоколы SSLv3/TLSv1) т.е. доступны все возможности шифрования, аутентификации и сертификации библиотеки OpenSSL (любой шифр, размер ключа). Также может использоваться пакетная авторизация Алгоритм HMAC для OpenVPN , для обеспечения большей безопасности, и аппаратное ускорение для улучшения производительности шифрования.

OpenVPN используется на Solaris, OpenBSD, FreeBSD, NetBSD, GNU/Linux, Apple Mac OS X и Microsoft Windows.

    OpenVPN предлагает пользователю несколько видов аутентификации:

    Предустановленный ключ, - самый простой метод.

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

OpenVPN может использовать статические, предустановленные ключи или обмен динамическими ключами на основе TLS . Он также поддерживает соединения VPN с динамическими удалёнными узлами (DHCP или клиенты dial-up), туннели поверх NAT или через полноценный межсетевой экран (например, Правила iptables в Linux).

Настройки конфигурационного файла клиента идентичны по синтаксису и написанию как для Linux, так и для Windows.

Компоненты сети OpenVPN

Основные компоненты сети OpenVPN и объекты

    Удостоверяющий центр CA . Выдает сертификаты по запросу узлов сети VPN, подписанные сертификатом удостоверяющего центра. Предоставляет узлам сети VPN свой собственный сертификат для проверки удостоверяющей стороны. Управляет списком отзыва сертификатов CRL.

    Сервер OpenVPN . ПО сервера OpenVPN создает туннель внутри незащищенной сети, например, Интернета. Этот туннель обеспечивает безопасный зашифрованный трафик между узлами - участниками обмена данными в сети OpenVPN.

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

    Сертификаты (публичные ключи) X.509 . Сертификаты X.509 представляют собой публичные ключи, заверенные удостоверяющим центром CA. Они используются для зашифровывания данных. Факт заверения сертификата удостоверяющим центром CA позволяет идентифицировать сторону, передающую зашифрованные данные. Файл запроса на сертификат создается на узлах сети, затем он переносится на узел удостоверяющего центра и там подписывается. Созданный в результате подписанный сертификат переносится обратно на запросивший его узел сети OpenVPN.

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

    Список отзыва сертификатов CRL . Содержит список сертификатов, утративших доверие. Он создается и редактируется на узле удостоверяющего центра CA. Чтобы отключить узел от сети, достаточно занести его сертификат в список CRL. После создания и каждого изменения список CRL переносится на серверы OpenVPN.

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

Безопасность и шифрование в OpenVPN обеспечивается библиотекой Как пользоваться OpenSSL и протоколом транспортного уровня Transport Layer Security (TLS). Вместо OpenSSL в новых версиях OpenVPN можно использовать библиотеку PolarSSL. Протокол TLS представляет собой усовершенствование протокола защищенной передачи данных уровня защищенных сокетов Secure Socket Layers (SSL сертификаты для для сайта, почты).

В OpenSSL может использоваться симметричная и ассиметричная криптография.

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

Во втором случае у каждого участника обмена данными есть два ключа - публичный (открытый) и приватный (секретный).

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

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

Для безопасной передачи данных необходимо идентифицировать стороны, принимающие участие в обмене данными. В противном случае можно стать жертвой так называемой "атаки посредника" (Man in the Middle, MITM). В ходе такой атаки злоумышленник подключается к каналу передачи данных и прослушивает его. Он также может вмешиваться, удалять или изменять данные.

Чтобы обеспечить аутентификацию (проверку подлинности пользователя) протокол TLS использует инфраструктуру публичных ключей (Public Key Infrastructure, PKI) и асимметричную криптографию.

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

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

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

OpenVPN Debian Wheezy/sid

# aptitude install openvpn # mkdir /etc/openvpn/easy-rsa # cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

Изменяем параметры по умолчанию для сертификатов

# nano /etc/openvpn/easy-rsa/vars ... export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="[email protected]"

Создадим переменные окружения bash , если это не сделать, при генерации ключей клиентов переменные будут взяты из /etc/openvpn/easy-rsa/openssl.cnf а не из файла vars

# cd /etc/openvpn/easy-rsa # source ./vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys # ./clean-all # ./build-dh

Создадим сертификат для сервера с именем vpnspar

# ./pkitool --initca # ./pkitool --server vpnspar

Создадим сертификат для клиента с именем farm1c. Отдельный ключ для каждого клиента.

# ./pkitool farm1c # mkdir /etc/openvpn/keys # cp keys/ca.crt /etc/openvpn/keys # cp keys/dh2024.pem /etc/openvpn/keys # cp keys/vpnspar.crt /etc/openvpn/keys # cp keys/vpnspar.key /etc/openvpn/keys

В директории ccd хранятся индивидуальные настройки для каждого клиента. Имя файла должно соответствовать имени сгенерированного клиентского сертификата. Файлы конфигурации клиентов являются текстовыми файлами и содержат команды, выполняемые сервером при подключении клиентов. Обычно файл клиента содержать команды:

    добавляет клиенту маршрут к локальной подсети центрального офиса(push "route 192.168.1.0 255.255.255.0")

    определяет адрес локальной подсети, находящейся за клиентом (например iroute 192.168.2.0 255.255.255.0)

    привязка к статическому IP (ifconfig-push 192.168.14.21 192.168.14.22), где ifconfig-push . Выбранные пары IP-адресов, во-первых, должны быть уникальными, во-вторых, должны входить в состав последовательных подсетей, ограниченных маской /30 (255.255.255.252), и, в-третьих, должны находиться в пределах пула IP-адресов, выделенного для виртуальной частной сети (определяется параметром server файла конфигурации сервера OpenVPN).

# mkdir /etc/openvpn/ccd # nano ccd/farm1c push "route 192.168.1.0 255.255.255.0" #push "route 192.168.35.0 255.255.255.0" # static IP ifconfig-push 192.168.14.21 192.168.14.22 #iroute 192.168.2.0 255.255.255.0

server.conf

Конфигурируем сервер в файле server.conf

# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ # gunzip server.conf.gz # nano /etc/openvpn/server.conf server.conf local ххх.196.98.ххх # IP на котором сервер слушает входящие сообщения port 1194 # порт на котором сервер слушает входящие сообщения proto udp dev tun # Включение интерфейса управления OpenVPN. Доступен при помощи telnet localhost 7505 management localhost 7505 ca keys/ ca.crt # местонахождение самоподписного доверенного сертификата (CA) cert keys/ vpnspar.crt # местонахождение сертификата сервера key keys/ vpnspar.key # местонахождение закрытого ключа сервера dh keys/ dh2024.pem # местонахождение файла параметров Диффи-Хэлмана # Настройка режима сервера и адреса VPN-сети, # из которой OpenVPN будет раздавать адреса клиентам. # Сервер возьмет себе 192.168.14.1, # остальные адреса будут доступны для клиентов. # Каждый клиент сможет связаться с сервером по адресу 192.168.14.1. server 192.168.14.0 255.255.255.0 # в файле ipp.txt хранится информация о соединении, например на случай обрыва соединения # и его дальнейшего восстановления ifconfig-pool-persist ipp.txt # маршруты которые будут передаваться каждому клиенту. # push - команда OpenVPN, передаваемая клиенту и выполняемая клиентом # (в данном случае добавляем на стороне клиента два маршрута к виртуальной частной сети) push "route 192.168.1.0 255.255.255.0" push "route 192.168.35.0 255.255.255.0" # Перенаправлять default gateway на vpn-сервер. Если не нужно - закомментировать или # добавить в ccd для конкретного клиента push "redirect-gateway def1" # указываем где будут хранятся файлы с настройками IP-адресов клиентов client-config-dir ccd # добавляем маршрут сервер-клиент. # route - добавляет на стороне сервера маршруты к локальным подсетям, находящимся за клиентами route 192.168.14.0 255.255.255.252 # разрешить общение клиентов подключенных к серверу OpenVPN общение между собой client-to-client # Директива проверки работоспособности, включающая отсылку # ping-подобных сообщений туда и обратно через # соединение для того, чтобы каждая сторона знала когда # другая сторона внезапно пропадет (gone down). # Пинг каждые 10 секунд, с предположением, что удаленный # узел недоступен, если не получено на одного пинга за период времени # равный 120 секундам. keepalive 10 120 comp-lzo max-clients 10 user nobody group nogroup persist-key persist-tun # Содержимое небольшого файла состояния, показывающего # текущие соединения, усекается # и перезаписывается раз в минуту. status / var/ log/ openvpn-status.log log / var/ log/ openvpn.log verb 3 # уровень отладки # /etc/init.d/openvpn start

Аннулировать сертификат клиента

    Пример . Аннулируем сертификат пользователя farm1c # cd /etc/openvpn/easy-rsa # source ./vars # ./revoke-full farm1c Using configuration from /etc/openvpn/easy-rsa/openssl.cnf Revoking Certificate 02. Data Base Updated

    После команды revoke-full изменится в файл /etc/openvpn/easy-rsa/keys/index.txt строка соответствующая сертификату пользователя farm1c.

Инсталляция VE(VPS, VDS)

    Инсталлируем VE Ubuntu для OpenVZ # cd /vz/template/cache/ # wget -c http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz # vzctl create 111 --layout simfs --ostemplate ubuntu-14.04-x86_64-minimal CT configuration saved to /etc/vz/conf/111.conf

    Настраиваем VE 111.conf.

    Все остальные настройки производим уже в установленной VE # vzctl enter 111

Создание ключей

    Создание ключей при помощи утилиты Easy-RSA. Ранее эта утилита входила в дистрибутив сервера OpenVPN, сейчас она отдельный проект. Последнюю версию утилиты можно скачать с сайта OpenVPN, но правильнее использовать версию поставляемую с вашим дистрибутивом ОС. aptitude install easy-rsa

    Перед тем как запустить демон OpenVPN, нам нужны в каталоге /etc/openvpn/keys openssl.cnf - файл конфигурации OpenSSL; server.conf - файл конфигурации сервера OpenVPN; ca.crt - cертификат удостоверяющего центра; vpn-server.crt - cертификат сервера OpenVPN; server.key - приватный ключ сервера OpenVPN, секретный; crl.pem - cписок отзыва сертификатов; dh.pem - файл Диффи-Хелмана для обеспечения защиты трафика от расшифровки; ta.key - ключ HMAC для дополнительной защиты от DoS-атак и флуда

    Копируем директорию easy-rsa в то место где будем создавать инфраструктуру публичных ключей (Public Key Infrastructure, PKI) cp -R /usr/share/easy-rsa /etc/openvpn/ cd /etc/openvpn/easy-rsa

    Изменяем параметры по умолчанию для сертификатов в файле vars

    Export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="[email protected]" export KEY_OU="MyOrganizationalUnit"

    Создадим переменные окружения.

    Source ./vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

    Очистим от предыдущих экспериментов. Создадим ключ Диффи-Хелмана (ключ создается некоторое время).

    ./clean-all ./build-dh Generating DH parameters, 2048 bit long safe prime, generator 2 This is going to take a long time ...

    Создадим директорию для хранения приватных ключей сервера OpenVPN. Скопируем туда файл Диффи-Хелмана (dh3048.pem) mkdir /etc/openvpn/keys cp keys/dh3048.pem /etc/openvpn/keys/

    Создадим удостоверяющий центр CA . Создадутся ca.crt и ca.key. Файл ca.key представляет собой приватный ключ центра CA, он секретный , и его нельзя переносить на другие узлы вашей сети. Файл сертификата удостоверяющего центра ca.crt, напротив, открытый, и он будет нужен на узлах серверов и клиентов OpenVPN. ./pkitool --initca

    Создадим сертификат для сервера с именем vpnluxor ./pkitool --server vpnluxor

    Созданные файлы vpnluxor.crt и vpnluxor.key копируем в директорию /etc/openvpn/keys/

    Создадим сертификат для клиента client1 с одноименном параметром CommonName . Отдельный ключ для каждого клиента. ./pkitool client1

Расположение сертификатов и ключей

Файл Машина Назначение Доступ
ca.crt Сервер и клиенты Сертификат корневого СА Публичный
ca.key Только на сервере Необходим для подписи других сертификатов Секретный
dh{n}.pem Только на сервере Diffie Hellman параметры Публичный
vpnspar.crt Только на сервере Сертификат сервера Публичный
vpnspar.key Только на сервере Ключ сервера Секретный
darkfire.crt Только на клиенте Сертификат клиента Публичный
darkfire.key Только на клиенте Ключ клиента Секретный

Инсталлируем OpenVPN

В директории ccd хранятся индивидуальные настройки для каждого клиента. mkdir /etc/openvpn/ccd

Расширение сетевых границ VPN

Расширение границ VPN для включения дополнительных машин из подсетей на стороне клиента или сервера. Включение нескольких машин на стороне сервера при использовании маршрутизируемого VPN (dev tun)

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

Чтобы проиллюстрировать это примером, предположим, что в локальной сети на стороне сервера используется подсеть 10.66.0.0/24 и для пула VPN-адресов используется 10.8.0.0/24, о чем говорится в директиве server в файле конфигурации OpenVPN-сервера.

Во-первых, вы должны сообщить VPN-клиентам, что подсеть 10.66.0.0/24 доступна через VPN. Это легко можно сделать с помощью следующих директив в конфигурационном файле сервера:

Push "route 10.66.0.0 255.255.255.0"

Далее, необходимо настроить на LAN - шлюзе в сети сервера маршрут для маршрутизации пакетов, предназначенных для подсети VPN-клиентов (10.8.0.0/24) через OpenVPN-сервер (это необходимо только тогда, когда сервер OpenVPN и LAN -шлюз – разные машины).

Iptables -A INPUT -p udp --dport 1194 -j ACCEPT iptables -A INPUT -i tap+ -j ACCEPT or iptables -A INPUT -i tun+ -j ACCEPT

Проблема: Если сервер подключён к ISP при помощи технологии Как работает PPPoE , в этом случае OpenVPN не сможет сделать доступными сети за подключённым клиентом. Не будет отрабатывать команда iroute. Это связано с тем, что PPP прописывает маршрут по умолчанию в таком виде:

# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0

Т.е. указывается маршрутом по умолчанию интерфейс (ppp0), а не IP адресс, такой записи сервер OpenVPN не понимает, для корректной работы сервера OpenVpn маршрут должен бы вида:

# netstat -rn Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 91.196.96.35 255.255.255.255 UGH 0 0 0 ppp0

Client proto udp dev tun ca ca.crt dh dh3048.pem cert client.crt key client.key remote xxx.xxx.xxx.xxx 1194 tls-auth ta.key 1 cipher AES-256 -CBC user nobody group nogroup verb 2 mute 20 keepalive 10 120 comp-lzo persist-key persist-tun float resolv-retry infinite nobind

    В файле /etc/logrotate.d/openvpn прописываем настройки для Описание и примеры настройки logrotate в Linux , ключевой параметр copytruncate (чтобы не перегружать OpenVPN и заставить его писать данные в тот же лог файл) openvpn etc/ openvpn/ servers/ vpnluxor/ logs/ openvpn.log { daily rotate 8 compress delaycompress missingok copytruncate notifempty create 640 root }

Виртуальная частная сеть. С ее помощью мы можем:

  • Создать защищенный канал свзяи, в то время, когда мы сидим с бесплатного Wi-Fi в кафе.
  • Обмениваться файлами между участниками сети.
  • Раздавать интернет испульзуя общий шлюз.

Основные преимущества:

  • Простота настройки.
  • Безопасность.
  • Не требует дополнительного оборудования.
  • Высокая скорость и стабильность.

Как и автор статьи об установке OpenVPN на Linux, я не нашел нормальной статьи, да еще и такой, чтоб описывалось все до мелочей. В этой статье на Хабрахабре я постараюсь максимально доступно все объяснить. Итак, поехали!

Скачиваем дистрибутив.

На момент написания статьи доступная версия 2.3.2 . Качаем Windows installer 32-х или 64-х битную версию под разрядность вашей операционной системы.

Установка.

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

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

Когда-то этот пункт меня останавливал, мол ну их эти ключи, пойду поищу что попроще. Но, увы, ничего лучшего не нашел. Итак, переходим в C:\Program files\OpenVPN\easy-rsa, запускаем init-config.bat, появится vars.bat, открываем его в блокноте. Нас интересуют строчки в самом низу, их нужно заполнить как угодно. Например:
set KEY_COUNTRY=RU
set KEY_PROVINCE=Baldur
set KEY_CITY=Piter
set KEY_ORG=OpenVPN
set
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=ouou

Там где написано server не трогаем. Сохранили.
Теперь открываем openssl-1.0.0.cnf и ищем строчку default_days 365, ставим 3650. Это продлит жизнь наших сертификатов на 10 лет. Сохраняем. Далее открываем командную строку в пуск-стандартные-командная строка (на Windows Vista/7/8 от имени администратора), пишем последовательно:

cd C:\OpenVPN\easy-rsa
vars
clean-all

В ответ должно написать два раза «Скопировано файлов: 1». Значит, все окей. В этом же окне набираем:
build-dh
Создаст ключ Диффи-Хельмана.
build-ca
Создаст основной сертификат.
Будут заданы вопросы, просто нажимаем Enter пока не увидите путь C:\Program files\OpenVPN\easy-rsa. Далее набираем:
build-key-server server
На вопросы также жмем Enter, только не торопитесь! В конце будут два вопроса: «Sign the certificate?» и «1 out of 1 certificate requests certified, commit?», на оба вопроса отвечаем Y. Теперь создадим сертификат клиента:
build-key client
Тут нужно быть вниметельней, при вопросе Common Name (eg, your name or your server’s hostname) нужно ввести client. В конце также два раза Y. Для каждого клиента нужно создавать новый сертификат, только с другим именем, например, build-key client1 и также указывать его в common name. Если все сделали правильно, можете выдохнуть! Самое сложное позади. В папке C:\Program Files\OpenVPN\easy-rsa\keys забираем: ca.crt, dh2024.pem, server.crt, server.key и кладем их в C:\Program Files\OpenVPN\config.

Создаем конфиги.

Переходим в C:\Program Files\OpenVPN\config, создаем текстовой документ, вставляем:
# Поднимаем L3-туннель
dev tun
# Протокол
proto udp
# Порт который слушает впн
port 12345
# Ключи и сертификаты
ca ca.crt
cert server.crt
key server.key
dh dh2024.pem
# Грубо говоря экономим адреса
topology subnet
# Пул адресов
server 10.8.0.0 255.255.255.0
# Метод шифрования
cipher AES-128-CBC
# Сжатие
comp-lzo
# Немного улучшит пинг
mssfix
# Время жизни клиентов, если не откликнулся - отключает
keepalive 10 120
# Уровень отладки
verb 3

Сохраняем файл как server.ovpn. Это наш конфиг сервера. Теперь пробуем запустить сервер. На рабочем столе будет ярлык OpenVPN Gui. После запуска в трее появится красный значок. Кликаем по нему дважды, если загорелся зеленым, значит, все хорошо, если нет, тогда смотрим лог в папке log.

Теперь конфиг клиента:
client
dev tun
proto udp
# Адрес и порт сервера
remote адрес 12345
# Ключи должны лежать в папке с конфигом
ca ca.crt
cert client.crt
key client.key
cipher AES-128-CBC
nobind
comp-lzo
persist-key
persist-tun
verb 3

Сохраняем как client.ovpn. Создаем любую папку и кладем туда конфиг client.ovpn и сертификаты ca.crt, client.crt, client.key которые лежат в C:\Program files\OpenVPN\easy-rsa. Сам клиент для Windows качаем На клиентской машине устанавливаем, переносим папку с конфигом и сертификатом и запускаем client.ovpn. Если подключились, пробуем в командной строке набрать ping 10.8.0.1. Пакеты пошли? Поздравляю! Сервер готов! Теперь идем в панель управления-администрирование-службы, ищем там OpenVPN, дважды щелкаем и выставляем автоматически. Теперь сервер будет сам стартовать после перезагрузки.

Дорабатываем конфиг или каждому свое.

Теперь я расскажу как раздавать интернет и другие мелочи связанные с настройкой. Начнем с мелочей. Все манипуляции будем проводить с конфигом сервера.
Если хотите, чтобы клиенты «видели» друг друга т.е. могли обмениваться информацией, тогда в конфиг впишите
client-to-client .
Если нужно, чтобы клиентам выдавались статические адреса, тогда в папке config создайте файл ip.txt и впишите в конфиг
ifconfig-pool-persist ip.txt
Неохота создавать каждому сертификаты? Тогда пишем duplicate-cn , но учтите, с этой опцией не работает ifconfig-pool-persist.
Теперь о конфиге клиента. Можно не передавать файлы сертификатов, а вписать сразу в конфиг, только делать это лучше не с блокнота, а с AkelPad’а или Notepad++ например. Открываем ca.crt и выделяем от ——BEGIN CERTIFICATE—— до ——END CERTIFICATE——. В конфиге будет выглядеть так:


——BEGIN CERTIFICATE——
сертификат
——END CERTIFICATE——


——BEGIN CERTIFICATE——
сертификат
——END CERTIFICATE——


——BEGIN PRIVATE KEY——
ключ
——END PRIVATE KEY——

Раздаем интернет

Для этого в конфиг сервера вписываем:
push «redirect-gateway def1»
push «dhcp-option DNS 8.8.8.8»
push «dhcp-option DNS 8.8.4.4»

DNS-адреса подставляем те, что даны в настройках. Посмотреть можно зайдя в панель управления-сетевые подключения, дважды кликнув на адаптере который смотрит в интернет. Для Win7 Панель управления-Сеть и Интернет-Центр управления сетями и общим доступом-изменение параметров адаптера. Далее, заходим в свойства этого же адаптера, вкладка доступ, ставим птичку напротив «Разрешить другим пользователям сети…» и в выпадающем списке, если есть, выбираем виртуальный адаптер vpn. Затем заходим в свойства адаптера vpn, свойства ipv4 и выставляем получение ip и dns автоматически. Спасибо за внимание!

Как создать новый клиентский сертификат OpenVPN

главная - Статьи - Удаленный доступ (VPN)



Дата обновления: 05.03.2020

Теги: OpenVPN Linux

Имея уже настроенный сервер OpenVPN (см. инструкцию по настройке) рано или поздно придется разрешать подключения для новых пользователей. И сделать это очень просто. Для этого надо выпустить новый клиентский приватный ключ (key) и сертификат (csr).

На всякий случай проверим, какие данные указаны в файле /etc/openvpn/easy-rsa/2.0/vars:

less /etc/openvpn/easy-rsa/2.0/vars

Ищем строки:

export KEY_COUNTRY="COUNTRY_CODE"
export KEY_PROVINCE="YOUR_PROVINCE"
export KEY_CITY="YOUR_CITY"
export KEY_ORG="My Company"
export KEY_EMAIL="[email protected]"

Если эти переменные вас устраивают, то идем дальше.

cd /etc/openvpn/easy-rsa/2.0/
. /etc/openvpn/easy-rsa/2.0/vars
. /etc/openvpn/easy-rsa/2.0/build-key new_client

В указанных командах точка вначале строки - не опечатка.

Команда ". /etc/openvpn/easy-rsa/2.0/vars" экспортирует переменные, сохраненные ранее в нем.

Команда  ". /etc/openvpn/easy-rsa/2.0/build-key new_client" создает в директории "/etc/openvpn/easy-rsa/2.0/keys/" три новые файла:

new_client.crt - сертификат, скопировать на клиента
new_client.csr - оставить в безопасном месте
new_client.key - приватный ключ, скопировать на клиента

Файлы конфига ovpn, ta.key и ca.crt можно взять от существующих клиентов и заменить в них имя сертификата на новый. Но если его у вас под рукой нет, вот пример рабочего файла клиента OpenVPN с MacOS:

 client dev tun proto udp remote your_vpn_server_address 2534 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ns-cert-type server tls-auth ta.key 1 auth MD5 ca ca.crt cert new_client.crt key new_client.key cipher BF-CBC comp-lzo verb 3 

Авторизуйтесь для добавления комментариев!

Установка и настройка OpenVPN на CentOS 7

В данном руководстве будет описан процесс установки и настройки инструмента OpenVPN на виртуальном сервере под управлением CentOS 7. OpenVPN — это открытый программный продукт для создания виртуальных частных сетей и подключения к ним по открытым интернет-каналам.

Прежде чем начать, нужно установить дополнительные пакеты из репозитория Enterprise Linux (EPEL). Это необходимо потому, что OpenVPN недоступен в CentOS по умолчанию. Репозиторий EPEL управляется сообществом Fedora Project и содержит нестандартные для CentOS, но популярные пакеты приложений.

yum install epel-release

Шаг #1: Установка пакета OpenVPN

Прежде всего, необходимо установить OpenVPN. Также мы установим инструмент Easy RSA — он будет использоваться для создания пар SSL-ключей, которые обеспечат безопасность VPN-соединений.

yum install openvpn easy-rsa –y

Шаг #2: Настройка сервиса

В директории документации OpenVPN содержатся файлы с тестовыми конфигурациями программы. Скопируем файл server.conf — на его основе мы создадим свою конфигурацию.

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

Теперь откроем его для редактирования:

nano /etc/openvpn/server.conf

Здесь нужно будет внести несколько изменений. Когда в дальнейшем мы будем генерировать ключы в программе Easy RSA, их размер будет по умолчанию составлять 2048 байт, поэтому нужно убедиться, что соответствующее значение указано в файле настроек. Нужно изменить название файла dh на dh3048.pem:

dh /etc/openvpn/dh3048.pem

Затем нужно раскомментировать (удалить символ “;”) строку, которая сообщает клиенту о необходимости редиректа трафика через OpenVPN.

push redirect-gateway def1 bypass-dhcp

Затем нужно указать DNS-серверы, поскольку клиентские приложения не смогут использовать серверы интернет-провайдера.

Для этого нужно раскомментировать строки, начинающиеся с push "dhcp-option DNS" для передачи DNS-серверов клиенту:

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

Нам нужно, чтобы OpenVPN запускался без привилегий, поэтому нужно указать, что он запускается от имени пользователя и группы nobody. Для этого нужно раскомментировать соответствующие строки:

user nobody
group nobody

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

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key #This file should be kept secret
tls-auth /etc/openvpn/ta.key 0 # This file is secret

Затем нужно сохранить файл и выйти из него. Для этого используйте в редакторе nano сочетание клавиш CTRL+X, затем подтвердите сохранение файла нажатием Y

Шаг #3: Создание ключей и сертификатов

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

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

mkdir -p /etc/openvpn/easy-rsa/keys

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

cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa

Примечание: Если на данном этапе вы увидели ошибку (отсутствие директории 2.0), значит в вашем дистрибутиве OpenVPN по-умолчанию используется более поздняя версия easy-rsa. В этом случае вручную скачайте easy-rsa и скопируйте содержимое архива, последовательно выполнив команды:

cd /usr/share/easy-rsa
wget https://codeload.github.com/OpenVPN/easy-rsa-old/tar.gz/2.3.3
tar xvzf 2.3.3
cd easy-rsa-old-2.3.3
cp -rf easy-rsa-old-2.3.3/easy-rsa/2.0/* /etc/openvpn/easy-rsa

Также следует предотвратить возможность сбоя загрузки конфигурации SSL из-за невозможности определения версии программы. Для скопируем нужный конфигурационный файл и удалим из названия номер версии:

cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

Теперь создадим ключи и сертификаты. Для этого перейдем в директорию easy-rsa и запустим команду source для новых переменных:

cd /etc/openvpn/easy-rsa
source ./vars

Затем нужно удалить все предыдущие версии ключей и сертификатов, которые могут содержаться в этой директории:

./clean-all

Также нужно сгенерировать файл обмена по алгоритму Диффи-Хеллмана. Процесс может занять несколько минут:

./build-dh

Указываем информацию об организации, выдавшей сертификат:

./build-ca

Система задаст несколько вопросов - можно просто нажимать Enter вместо ответа или указать информацию о вашей организации.

Теперь нужно сгенерировать ключ и сертификат сервера. И снова можно просто нажимать Enter в ответ на вопросы системы. Единственное обязательное поле: common name - укажите здесь значение server. Чтобы сохранить данные, в конце процедуры следует нажать Y (yes).

./build-key-server server

Сгенерируем дополнительный ключ ta.key.

openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/ta.key

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

cd /etc/openvpn/easy-rsa/keys
cp dh3048.pem ca.crt server.crt server.key ta.key /etc/openvpn

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

cd /etc/openvpn/easy-rsa
./build-key client

Шаг 4: Маршрутизация

Чтобы упростить настройку, проведем все манипуляции с помощью стандартного фаервола iptables, а не нового инструмента firewallcd.

Прежде всего надо убедиться в том, что сервис iptables установлен и включен.

yum install iptables-services -y
systemctl mask firewalld
systemctl enable iptables
systemctl stop firewalld
systemctl start iptables
iptables --flush

Примечание: На следующем шаге вам потребуется имя основого (внешнего) сетевого интерфейса сервера (например, вида eth* или ens*). Запомните это имя, выполнив команду ниже и выбрав тот сетевой интерфейс, которому назначен основной IP-адрес сервера, отображаемый в панели 1cloud:

ifconfig -a

Затем следует добавить в iptables правило, согласно которому соединения будут направляться в создаваемую подсеть OpenVPN:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o <имя_интерфейса> -j MASQUERADE
iptables-save > /etc/sysconfig/iptables

Например:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth2 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables

Активируем IP-форвардинг в sysctl, отредактировав файл sysctl.conf для редактирования:

nano /etc/sysctl.conf

В самом верху добавляем следующую строку:

net.ipv4.ip_forward = 1

Сохраним документ нажатием CTRL+X, Y, Enter.

Перезапускаем сетевой сервис для применения внесенных изменений:

systemctl restart network.service

Шаг 5: Запуск OpenVPN

Теперь все готово к запуску OpenVPN. Добавим этот сервис в systemctl:

systemctl -f enable [email protected]

Запускаем OpenVPN:

openvpn --config /etc/openvpn/server.conf --daemon

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

ifconfig

Настроим подключение со стороны клиента.

Шаг 6: Настройка клиента

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

Необходимые сертификаты (в нашем случае для клиента "client") хранятся в директории /easy-rsa:

/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key

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

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

client
dev tun
proto udp
remote <IP-адрес сервера> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca /path/to/ca.crt
cert /path/to/client.crt
key /path/to/client.key

Теперь этот файл можно использовать для подключения к серверу.

Подключение с компьютера под управлением Windows:

Скачиваем официальную версию бинарных файлов OpenVPN Community Edition с графическим интерфейсом управления.

Перемещаем .ovpn-файл в директорию C:\Program Files\OpenVPN\config, затем нажимаем Connect в графическом интерфейсе OpenVPN.

MacOS:

Для соединения можно использовать open-source инструмент Tunnelblick. Перемещаем .ovpn-файл в директорию ~/Library/Application Support/Tunnelblick/Configurations или просто кликнаем по этому файлу.

Linux:

На Linux нужно установить OpenVPN из официальных репозиториев конкретного дистрибутива. Затем запустить его с помощью команды:

sudo openvpn --config ~/path/to/client.ovpn

На этом все. Теперь у нас есть полностью функциональная частная виртуальная сеть с собственным OpenVPN-сервером на CentOS 7 VPN.

После успешного подключения клиента следует проверить, туннелируется ли трафик через VPN. Сделать это можно с помощью любого сервиса, показывающего ваш публичный IP-адрес (например, Google) - он должен отображать адрес VPN-сервера.

P. S. Другие инструкции:


Ознакомиться с другими инструкциями вы можете на нашем сайте. А чтобы попробовать услугу — кликните на кнопку ниже.

Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже

Создание и экспорт сертификатов для пользовательских VPN-подключений

  • Статья
  • Чтение занимает 6 мин
Были ли сведения на этой странице полезными?

Оцените свои впечатления

Да Нет

Хотите оставить дополнительный отзыв?

Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку "Отправить", вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.

Отправить

В этой статье

Для аутентификации пользовательских VPN-подключений типа "точка — сеть" используются сертификаты. Эта статья поможет создать самозаверяющий корневой сертификат, а также сертификаты клиента с помощью PowerShell в Windows 10 или Windows Server 2016.

Выполните описанные действия на компьютере с Windows 10 или Windows Server 2016. Командлеты PowerShell, которые используются для создания сертификатов, являются частью операционной системы и не работают в других версиях Windows. Компьютер с Windows 10 или Windows Server 2016 требуется только для создания сертификатов. После создания сертификатов их можно отправить или установить в любой поддерживаемой клиентской операционной системе.

Создание самозаверяющего корневого сертификата

Используйте командлет New-SelfSignedCertificate для создания самозаверяющего корневого сертификата. Дополнительные сведения о параметре см. в разделе New-SelfSignedCertificate.

  1. На компьютере под управлением Windows 10 или Windows Server 2016 откройте консоль Windows PowerShell с повышенными привилегиями. Эти примеры не запускаются через кнопку "Попробовать" в Azure Cloud Shell. Их нужно запустить локально.

  2. Используйте следующий пример для создания самозаверяющего корневого сертификата. Следующий пример создает самозаверяющий корневой сертификат P2SRootCert, который автоматически устанавливается в папку Certificates-Current User\Personal\Certificates. Этот сертификат можно просмотреть, открыв файл certmgr.msc или раздел Управление сертификатами пользователей.

    Выполните вход с помощью командлета Connect-AzAccount. Затем выполните следующий пример, внеся необходимые изменения.

    $cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature ` -Subject "CN=P2SRootCert" -KeyExportPolicy Exportable ` -HashAlgorithm sha256 -KeyLength 2048 ` -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign 
  3. Оставьте консоль PowerShell открытой и перейдите к следующим шагам, чтобы создать сертификат клиента.

Создание сертификата клиента

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

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

В примерах используется командлет New-SelfSignedCertificate для создания сертификата клиента, срок действия которого истекает через год. Дополнительные сведения о параметре, например о задании другого значения срока действия сертификата клиента, см. в разделе New-SelfSignedCertificate.

Пример 1. Сеанс консоли PowerShell по-прежнему открыт

Если вы не закрыли консоль PowerShell после создания самозаверяющего корневого сертификата, воспользуйтесь этим примером. Этот пример является продолжением предыдущего раздела и в нем используется переменная $cert. Если вы закрыли консоль PowerShell после создания самозаверяющего корневого сертификата или создаете дополнительные сертификаты клиента в новом сеансе консоли PowerShell, выполните инструкции, описанные в примере 2.

Измените и запустите пример, чтобы создать сертификат клиента. Если выполнить этот пример, не изменив его, то будет создан сертификат клиента P2SChildCert. Если требуется указать другое имя дочернего сертификата, измените значение CN. Не изменяйте TextExtension при выполнении данного примера. Сертификат клиента, который создается, автоматически устанавливается в папку Certificates - Current User\Personal\Certificates на компьютере.

New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature ` -Subject "CN=P2SChildCert" -KeyExportPolicy Exportable ` -HashAlgorithm sha256 -KeyLength 2048 ` -CertStoreLocation "Cert:\CurrentUser\My" ` -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2") 

Пример 2. Новый сеанс консоли PowerShell

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

  1. Определите самозаверяющий корневой сертификат, установленный на компьютере. Этот командлет возвращает список сертификатов, установленных на компьютере.

    Get-ChildItem -Path "Cert:\CurrentUser\My" 
  2. Найдите имя субъекта в полученном списке, а затем скопируйте отпечаток, расположенный рядом с ним, в текстовый файл. В следующем примере указано два сертификата. CN-имя — это имя самозаверяющего корневого сертификата, на основе которого требуется создать дочерний сертификат. В данном случае это P2SRootCert.

    Thumbprint Subject ---------- ------- AED812AD883826FF76B4D1D5A77B3C08EFA79F3F CN=P2SChildCert4 7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655 CN=P2SRootCert 
  3. Объявите переменную для корневого сертификата, используя отпечаток из предыдущего шага. Замените THUMBPRINT отпечатком корневого сертификата, на основе которого требуется создать дочерний сертификат.

    $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\<THUMBPRINT>" 

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

    $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655" 
  4. Измените и запустите пример, чтобы создать сертификат клиента. Если выполнить этот пример, не изменив его, то будет создан сертификат клиента P2SChildCert. Если требуется указать другое имя дочернего сертификата, измените значение CN. Не изменяйте TextExtension при выполнении данного примера. Сертификат клиента, который создается, автоматически устанавливается в папку Certificates - Current User\Personal\Certificates на компьютере.

    New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature ` -Subject "CN=P2SChildCert" -KeyExportPolicy Exportable ` -HashAlgorithm sha256 -KeyLength 2048 ` -CertStoreLocation "Cert:\CurrentUser\My" ` -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2") 

Экспорт открытого ключа корневого сертификата (.cer)

После создания самозаверяющего корневого сертификата экспортируйте CER-файл его открытого ключа (не закрытый ключ). В дальнейшем вы загрузите этот файл в Azure. Чтобы экспортировать CER-файл для самозаверяющего корневого сертификата, сделайте следующее:

  1. Чтобы получить из сертификата CER-файл, откройте раздел Управление сертификатами пользователей. Найдите корневой самозаверяющий сертификат (обычно он находится в папке Certificates - \Personal\Certificates) и щелкните его правой кнопкой мыши. Щелкните Все задачи > Экспорт. Откроется мастера экспорта сертификатов. Если не удается найти сертификат в разделе \Personal\Certificates, возможно, вы случайно открыли "Certificates — Local Computer"вместо "Certificates— ". Если вы хотите открыть диспетчер сертификатов в области текущего пользователя с помощью PowerShell, выполните команду certmgr в окне консоли.

  2. В окне мастера нажмите Далее.

  3. Выберите Нет, не экспортировать закрытый ключ и снова нажмите кнопку Далее.

  4. На странице Формат экспортируемого файла выберите Файлы X.509 (.CER) в кодировке Base-64 и нажмите кнопку Далее.

  5. На странице Имя экспортируемого файла нажмите кнопку Обзор, чтобы перейти в расположение для экспорта сертификата. В поле Имя файлавведите имя для файла сертификата. Затем щелкните Далее.

  6. Нажмите кнопку Готово, чтобы выполнить экспорт сертификата.

  7. Сертификат успешно экспортирован.

  8. Экспортированный сертификат выглядит примерно так:

  9. Если открыть экспортированный сертификат в Блокноте, результат будет приблизительно таким, как в приведенном ниже примере. Выделенный синим цветом раздел содержит сведения, которые загружены в Azure. Если при открытии сертификата в Блокноте он не выглядит, как приведенный ниже пример, как правило, это означает, что экспорт выполнен не в формате X.509 (.CER) с кодировкой Base64. Кроме того, при использовании другого текстового редактора следует учитывать, что в некоторых редакторах может выполняться непреднамеренное форматирование в фоновом режиме. Это может вызвать проблемы при передаче текста из этого сертификата в Azure.

Экспорт самозаверяющего корневого сертификата и закрытого ключа для его сохранения (необязательно)

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

Экспорт сертификата клиента

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

  1. Чтобы экспортировать сертификат клиента, откройте раздел Управление сертификатами пользователей. По умолчанию создаваемые сертификаты клиента хранятся в папке Certificates - Current User\Personal\Certificates. Щелкните правой кнопкой мыши сертификат, который нужно экспортировать, выберите Все задачи, а затем — Экспорт, чтобы открыть мастер экспорта сертификатов.

  2. В мастере экспорта сертификатов нажмите кнопку Далее, чтобы продолжить.

  3. Выберите Да, экспортировать закрытый ключ, а затем нажмите кнопку Далее.

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

  5. На странице Безопасность следует защитить закрытый ключ. Если вы решите использовать пароль, обязательно запишите или запомните пароль, заданный для этого сертификата. Затем щелкните Далее.

  6. На странице Имя экспортируемого файла нажмите кнопку Обзор, чтобы перейти в расположение для экспорта сертификата. В поле Имя файлавведите имя для файла сертификата. Затем щелкните Далее.

  7. Нажмите кнопку Готово, чтобы выполнить экспорт сертификата.

Дальнейшие действия

Для продолжения перейдите к статье Что такое Виртуальная глобальная сеть Azure?

Как создать свой собственный сервер OpenVPN

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

В моем случае сервер, на котором будет работать OpenVPN, будет использовать Ubuntu 20.04. Однако перед началом установки следует помнить о нескольких важных шагах, выполнение которых сэкономит наше время и обеспечит беспроблемную установку.

Обновляем систему

перед установкой
  sudo подходящее обновление судо подходящее обновление  

И мы отображаем и сохраняем наш общедоступный IP-адрес

  IP-адрес шоу interface_name  

В моем случае команда выглядит как

  IP-адрес шоу eth0  

Теперь переходим к этапу установки и настройки.Вместе с OpenVPN устанавливаем Easy-RSA для создания криптографических ключей.

  sudo apt установить openvpn easy-rsa  

Затем, как обычный пользователь, мы создаем каталог easy-rsa и связываемся с ним

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

Позже мы переходим из рук в руки

  пользователь sudo chown ~ / easy-rsa chmod 700 ~ / easy-rsa  

На следующем этапе мы создадим ключи PKI.Для этого перейдите в ранее созданную папку и создайте новый текстовый файл.

  cd ~ / easy-rsa нано варс  

Во вновь созданный файл введите

  set_var EASYRSA_ALGO "ec" set_var EASYRSA_DIGEST "sha512"  

После сохранения запустите сценарий, создающий папку PKI

.
  ./easyrsa init-pki  

Теперь пришло время создать запрос сертификата и создать закрытый ключ для сервера

.
 ./ easyrsa gen-req имя_сервера без пароля  

Эта команда генерирует запрос сертификата для сервера имя_сервера без защиты его паролем, но если мы хотим защитить его, убираем параметр nopass . Теперь переместите сгенерированный файл запроса в каталог сервера OpenVPN

.
  sudo cp /home/user/easy-rsa/pki/reqs/server_name.req / etc / openvpn / server /  

А потом перенести на наш CA сервер и подписать

 ./ easyrsa import-req /tmp/имя_сервера.req имя_сервера ./easyrsa sign-req имя_сервера имя_сервера  

После подписания мы передаем файлы обратно на наш сервер, а затем перемещаем их в директорию OpenVPN

  sudo cp /tmp/имя_сервера.crt /tmp/ca.crt /etc/openvpn/сервер  

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

  cd ~ / easy-rsa openvpn --genkey --secret ta.ключ sudo cp ta.key /etc/openvpn/сервер  

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

  mkdir -p ~/клиент-конфиги/ключи chmod -R 700 ~ / клиент-конфиги  

Теперь мы создаем запрос сертификата для CA сервера и копируем его во вновь созданную папку

  ./easyrsa gen-req client1 nopass cp pki/частный/клиент1.ключ ~/клиент-конфиги/ключи/ 

Затем мы передаем запрос сертификата на сервер сертификации и подписываем его там, а затем передаем обратно на сервер vpn.

  cd ~ / easy-rsa ./easyrsa import-req /tmp/klient1.req client1 ./easyrsa sign-req client client1  

Теперь кладем его в папку с клиентскими сертификатами вместе с файлами ключей шифрования и сертификатом сервера и меняем права доступа к этим файлам.

  cp /tmp/klient1.crt ~/client-configs/ключи cp~/easy-rsa/ta.key~/client-configs/keys/ sudo cp /etc/openvpn/server/ca.crt ~/client-configs/keys/ sudo chown user.user ~/client-configs/keys/* 

Теперь, когда у нас есть сгенерированные сертификаты, мы можем перейти к настройке сервера. Мы копируем образец файла конфигурации, распаковываем его и открываем.

  sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/ sudo gunzip /etc/openvpn/сервер/сервер.conf.gz судо нано /etc/openvpn/server/server.conf  

Данный файл конфигурации готов к использованию после копирования, но мы можем настроить такие параметры, как:
- порт,
- протокол связи,
- тип шифрования данных,
- и многие другие.

После внесения изменений, которые мы хотим внести, сохраняем файл конфигурации и закрываем его.

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

  sudo systemctl -f включить [email protected] sudo systemctl запустить [email protected] статус sudo systemctl [email protected]  

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

  mkdir -p ~/клиент-конфиги/файлы cp/usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf  

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

  удаленный vpn_ip_server_vpn_vpn_port proto udp # помните, что протокол тот же, что и в конфигурации сервера  

Теперь мы можем создать сценарий, который поможет нам создавать пользователей. Создаем новый файл и запускаем его в текстовом редакторе

  нано ~/client-configs/make_config.ш  

И копируем в него следующее содержимое

 #!/бин/баш KEY_DIR=~/клиент-конфиги/ключи OUTPUT_DIR=~/клиент-конфиги/файлы BASE_CONFIG=~/client-configs/base.conf кошка $ {BASE_CONFIG} \ <(эхо -e '') \ $ {KEY_DIR} /ca.crt \ <(echo -e ' \ n ') \ $ {KEY_DIR} / $ {1} .crt \ <(echo -e ' \ n ') \ $ {KEY_DIR} / $ {1} .key \ <(echo -e ' \ n ') \ ${KEY_DIR}/та.ключ \ <(echo -e '') \ > $ {OUTPUT_DIR} / $ {1} .ovpn  

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

Чтобы защитить скрипт от несанкционированного доступа, измените его параметры безопасности

  chmod 700 ~/client-configs/make_config.sh  

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

  cd ~/client-configs ./make_config.sh клиент1  

Теперь наш скрипт создаст один конфигурационный файл с сертификатами и настройками подключения и сохранит его в подпапке ~/client-configs/files как client1.ovpn. Теперь этот файл можно передать клиенту и запустить.

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

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

.

Установка и настройка OpenVPN (сервер + клиент) -

база знаний rootbox

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

Установите необходимые пакеты

Генерация ключей и сертификатов

Конфигурация сервера OpenVPN

Конфигурация клиента OpenVPN


Установите необходимые пакеты

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

 apt-получить обновление apt-получить обновление 

Затем мы проверяем, включен ли TUN в системе. Это драйвер для виртуального сетевого адаптера, необходимый для правильной работы OpenVPN. По умолчанию TUN включен на сервере Rootbox. Чтобы убедиться, что TUN включен, мы вводим команду:

 контрольная работа! -c /dev/net/tun && echo TUN недоступен || эхо TUN доступен 

Если ответ показывает « TUN доступен », мы можем перейти к следующим шагам.Теперь мы можем установить пакеты OpenVPN и OpenSSL. Выдаем команду:

 apt-get установить openvpn openssl 

Генерация ключей и сертификатов

После установки OpenVPN и OpenSSL перейдите к настройке Easy-RSA, выполните следующие команды:

 cp -prv /usr/share/doc/openvpn/examples/easy-rsa/2.0 / etc / openvpn / easy-rsa cd/etc/openvpn/easy-rsa chown -R$USER/etc/openvpn/easy-rsa ср варс {,.ориг.} 

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

 вим ./варс 

В самом конце файла есть строки:

 экспорт KEY_SIZE = 1024 экспорт KEY_COUNTRY = "США" экспорт KEY_PROVINCE = "CA" экспорт KEY_CITY = "Сан-Франциско" экспорт KEY_ORG = "Форт-Фанстон" экспорт KEY_EMAIL = "[email protected]" экспорт [email protected] экспорт KEY_CN = изменить меня экспортировать KEY_NAME = изменить меня экспорт KEY_OU = изменить меня 

Это параметры, используемые для создания сертификатов.Мы предлагаем изменить значение KEY_SIZE со значения по умолчанию 1024 на 2048. Такое изменение повысит безопасность сертификатов. Последующие записи редактируем по мере необходимости, например:

 экспорт KEY_SIZE = 2048 экспорт KEY_COUNTRY = "PL" экспорт KEY_PROVINCE = "Мазовецкое воеводство" экспорт KEY_CITY = "Варшава" экспорт KEY_ORG = "Моя компания" экспорт KEY_EMAIL = "[email protected]" экспортировать [email protected] экспорт KEY_CN = My-CA экспортировать KEY_NAME = My-CA экспорт KEY_OU = "Моя компания" 

Сохраняем файл и экспортируем:

 источник./ варс 

В ответ должно появиться следующее сообщение:

 root @ vpn-10: /etc/openvpn/easy-rsa # источник ./vars ПРИМЕЧАНИЕ. Если вы запустите ./clean-all, я буду выполнять команду rm -rf для /root/easy-rsa/keys. 

Согласно сообщению очищаем ранее созданные сертификаты:

 ./очистить все 

Теперь можно переходить к генерации CA-сертификата, для этого воспользуемся скриптом build-ca. Выдаем команду:

 ./ build-ca 

В результате мы должны получить следующее сообщение:

 root@vpn-10: /etc/openvpn/easy-rsa # ./build-ca Генерация 2048-битного закрытого ключа RSA ................................................. ................................................. ................................................. .............................. +++ ............................................. +++ запись нового закрытого ключа в «ca.key» ----- Вас попросят ввести информацию, которая будет включена в ваш запрос сертификата.То, что вы собираетесь ввести, называется отличительным именем или DN. Полей довольно много, но вы можете оставить некоторые пустыми Для некоторых полей будет значение по умолчанию, Если вы введете «.», поле останется пустым. 

Теперь есть несколько вопросов, которые вам понадобятся для создания сертификата. Все данные уже указаны в файле ./vars, поэтому вам нужно будет только подтверждать каждую строку клавишей ENTER.

 Название страны (двухбуквенный код) [PL]: Название штата или провинции (полное название) [Mazowieckie]: Название местности (например, город) [Варшава]: Название организации (например, компания) [Моя компания]: Название организационного подразделения (например, раздел) [Моя компания]: Обычное имя (например, ваше имя или имя хоста вашего сервера) [My-CA]: Имя [Мой ЦС]: Адрес электронной почты [doe@email.пл]: 

Следующим шагом будет создание сертификата сервера, введите команду ниже. Имя сервера, указанное в следующей команде (openvpn-server), является примером:

 ./сборка-ключ-сервер openvpn-сервер 

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

 Пожалуйста, введите следующие «дополнительные» атрибуты будет отправлен с вашим запросом сертификата 

Согласно сообщению, предоставляем пароль:

 Пароль вызова []: MojePaslo1! Необязательное название компании []: Моя компания 

После одобрения должно появиться сообщение, подтверждающее данные, которые мы ранее предоставили, и просьба подписать сертификат.Мы соглашаемся на подписание сертификата.

 Используя конфигурацию из /etc/openvpn/easy-rsa/openssl-1.0.0.cnf Проверить соответствие запроса подписи Подпись ок Отличительное имя субъекта выглядит следующим образом countryName: ПЕЧАТНАЯ ВЕРСИЯ: 'PL' stateOrProvinceName: PRINTABLE: 'Mazowieckie' localityName: PRINTABLE: 'Варшава' OrganizationName: PRINTABLE: 'Моя компания' organizationUnitName: PRINTABLE: 'Моя компания' commonName: PRINTABLE: 'openvpn' имя: PRINTABLE: 'My-CA' адрес электронной почты: IA5STRING: 'kowalski @ электронная почта.пл ' Сертификат должен быть заверен до 12 апреля 08:04:36 2024 GMT (3650 дней) Подписать сертификат? [г/н]:  д  1 из 1 запросов на сертификат сертифицирован, зафиксировать? [г/н]  д  

Первый вопрос касается подписания сертификата, а второй — окончательного подтверждения. В ответ должно появиться следующее сообщение:

 Записать базу данных с 1 новой записью База данных обновлена 

Затем мы сгенерируем сертификат для клиента.Например, Openvpn-client1. Мы также должны помнить, что новый сертификат должен быть создан для каждого последующего клиента. Если мы этого не сделаем и попытаемся подключить более одного клиента с одним и тем же сертификатом, все клиенты получат один и тот же IP-адрес и возникнет конфликт или соединение вообще не будет установлено.

 ./сборка-ключ openvpn-client1 

Процесс такой же, как и для создания сертификата сервера.

Следующим шагом является создание сертификата PEM.Для этого выдаем команду:

 ./сборка-дх 

Генерация сертификата может занять некоторое время.

При желании мы можем сгенерировать ключ HMAC для защиты сервера OpenVPN от потенциальных DoS-атак. Выдаем команду:

 openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/ta.key 

Сгенерированные таким образом сертификаты и ключи должны быть размещены в соответствующих местах:

На сервере:

  • сертификат ЦС
  • сертификат сервера (в описании openvpn-server.крт)
  • ключ сертификата сервера (в описании openvpn-server.key - приватный ключ)
  • PEM-сертификат (в описании dh3048.pem — это публичный сертификат)
  • 90 140

    На клиенте:

    • сертификат ЦС
    • сертификат клиента (в описании openvpn-client1.key
    • ключ к клиентскому сертификату (в описании openvpn-client1.key - приватный ключ)
    • 90 140

      Ключ HMAC (ta.key) необходимо вставить вручную в файлы конфигурации сервера и клиента.

      Все сертификаты и ключи лежат по адресу /etc/openvpn/easy-rsa/keys/

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

       cd /etc/openvpn/easy-rsa/keys/ cp ca.crt openvpn-server.crt openvpn-server.key dh3048.pem /etc/openvpn/ 

      Однако заказчику передаются следующие сертификаты и ключ:

       /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys/openvpn-client1.ЭЛТ /etc/openvpn/easy-rsa/keys/openvpn-client1.key 

      Конфигурация сервера OpenVPN

      Теперь мы можем перейти к правильной настройке OpenVPN. Начнем с настройки сервера.

      В папке /etc/openvpn/ создаем конфигурационный файл server.conf, в котором сохраняем следующую конфигурацию. Рядом с каждой строкой есть описание параметра. Перед использованием конфигурации вам необходимо изменить выделенные элементы по мере необходимости: адрес сервера, пути к сертификатам и ранее сгенерированный ключ HMAC ( ta.ключ ). Ключ ta.key должен быть идентичен как на сервере, так и на всех клиентах.

       dev tun # тип интерфейса  local xxx # IP сервера (вместо xxx вводим IP адрес сервера)  proto udp # используемый протокол порт 1194 # используемый порт server 10.8.0.0 255.255.255.0 # IP-класс для VPN-туннеля  ca ca.crt # файл сертификата ЦС сертификат openvpn-сервера.crt # файл сертификата сервера key openvpn-server.key #  файл закрытого ключа сервера dh dh3048.pem # файл с параметрами алгоритма Диффи-Хеллмана max-clients 100 # максимальное количество клиентов persist-tun # удерживать интерфейс TUN в состоянии UP во время перезапуска persist-key # запоминает ключ keepalive 10 120 # поддерживает соединение cipher AES-256-CBC # настройка алгоритма шифрования comp-lzo # включить сжатие глагол 1 # уровень журнала user none # пользователь для OpenVPN группа nogroup # группа для OpenVPN push "redirect-gateway def1" # перенаправить весь трафик через VPN нажмите «dhcp-опция DNS 8.8.8.8 "# Конфигурация DNS для DHCP push "dhcp-option DNS 8.8.4.4" # Конфигурация DNS для DHCP log openvpn.log # файлы журнала сервера OpenVPN статус openvpn-status.log # Конфигурация Tls-auth # Ключ HMAC ключевое направление 0   # # 2048-битный статический ключ OpenVPN # ----- НАЧАТЬ Статический ключ OpenVPN V1 ----- ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ----- КОНЕЦ Статический ключ OpenVPN V1 -----   

      Затем настраиваем маршрутизацию.Для этого выдаем следующие команды:

       эхо 1> /proc/sys/net/ipv4/ip_forward iptables -t nat -F РАЗМЕЩЕНИЕ iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 

      Для сохранения правил iptables вводим команду:

       iptables-сохранить> /etc/iptables.init 

      Чтобы правила добавлялись автоматически при старте сервера, нам нужно добавить скрипт, который будет их запускать. Для этого создаем файл /etc/network/if-pre-up.д/iptables со следующим содержимым:

       #!/бин/баш тест -e /etc/iptables.rules && iptables-restore -c /etc/iptables.rules 

      Важно добавить права запуска в сценарий. Для этого даем команду:

       chmod + x /etc/network/if-pre-up.d/iptables 

      Сервер OpenVPN готов к работе. Следующим шагом является настройка клиента.

      Конфигурация клиента OpenVPN

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

      Чтобы установить клиент OpenVPN:

      в Linux выполните команду:

       apt-get установить openvpn 

      в Windows нам нужно загрузить и установить приложения с графическим интерфейсом OpenVPN. В зависимости от версии системы (32- или 64-разрядная) мы загружаем нужную версию клиента со следующей страницы:

       https: // опенвпн.сеть/index.php/с открытым исходным кодом/downloads.html 

      В случае с MacOS мы можем использовать бесплатное приложение Tunnelblick. Выпускается под лицензией GPL:

       http://code.google.com/p/tunnelblick/ 

      Ниже приведен пример рабочей конфигурации для клиента OpenVPN. Перед использованием конфигурации необходимо изменить выделенные элементы нужным образом: адрес сервера, пути к сертификатам, пользователей для OpenVPN и ключ HMAC ( ta.ключ ):

       dev tun # тип интерфейса клиент # режим работы  remote xxx # IP сервера (вместо xxx даем IP адрес сервера)  proto udp # используемый протокол порт 1194 # используемый порт nobind # не открывает клиентский порт  ca ca.crt # файл сертификата ЦС сертификат openvpn-client1.crt # файл сертификата клиента key openvpn-client1.key # файл закрытого ключа клиента  persist-tun # удерживать интерфейс TUN в состоянии UP во время перезапуска persist-key # запоминает ключ keepalive 10 120 # поддерживает соединение cipher AES-256-CBC # настройка алгоритма шифрования comp-lzo # включить сжатие глагол 1 # уровень журнала  пользователь Nobody # пользователь для OpenVPN (только для Linux) group nogroup # группа для OpenVPN (только Linux)  войти в опенвпн.log # файлы журнала сервера OpenVPN статус openvpn-status.log # Конфигурация Tls-авторизации сервер типа ns-cert ключевое направление 1   # # 2048-битный статический ключ OpenVPN # ----- НАЧАТЬ Статический ключ OpenVPN V1 ----- ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ххххххххххххххххххххххххххх ----- КОНЕЦ Статический ключ OpenVPN V1 -----   

      Настройка клиента завершена.

      .

      Генерация сертификатов с помощью easy-rsa

      Некоторое время назад я представил ручной способ генерации сертификаты, которые могут быть успешными используйте его с ssl, openvpn или freeradius. Это было не так уж много, но если вы не смотрели Необходимо знать некоторые параметры, и лучше всего иметь наготове соответствующие линейки для самого процесса генерация сертификатов прошла довольно гладко. Однако оказывается, что вам не нужно возвращаться полностью так усилия, потому что есть специальные инструменты, которые будут генерировать все файлы, которые нам нужны.Речь про easy-rsa и эта запись будет относиться к нему.

      пакет easy-rsa

      В общем, я случайно наткнулся на пакет easy-rsa . После его установки в системе у нас есть инструмент make-cadir , который после выбора пустой директории ссылается на набор файлов, которые будут использоваться позже при создании сертификатов.

      Поэтому создаем каталог, в котором будем хранить сертификаты, заходим в него и в нем создаем подкаталог /CA/.Затем мы запускаем команду make-cadir с этим аргументом. папка выше:

        $ mkdir сертификаты / $ cd ./сертификаты/ $ make-cadir ./CA/  

      Если последняя команда не вернула ошибок, у вас должна быть серия в каталоге CA скрипты, с помощью которых мы можем генерировать сертификаты для различных сетевых сервисов. С этим, что они, вероятно, предназначались в основном для нужд опенвпн. По крайней мере пакет easy-rsa появляется очень часто в текстах о создании собственного VPN.

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

        # настройки параметров easy-rsa # ПРИМЕЧАНИЕ. Если вы установили из RPM, # не редактируйте этот файл на месте в # /usr/share/openvpn/easy-rsa - # вместо этого вы должны скопировать весь # каталог easy-rsa в другое место # (например, /etc/openvpn), чтобы ваш # правки не будут стерты будущим # Обновление пакета OpenVPN.# Эта переменная должна указывать на # верхний уровень easy-rsa # дерево. экспорт EASY_RSA = "`pwd`" # # Эта переменная должна указывать на # запрошенные исполняемые файлы # экспорт OPENSSL = "openssl" экспортировать PKCS11TOOL = "инструмент pkcs11" экспорт GREP = "grep" # Эта переменная должна указывать на # включенный файл openssl.cnf # с помощью easy-rsa. #export KEY_CONFIG = `$ EASY_RSA / whichopensslcnf $ EASY_RSA` экспорт KEY_CONFIG = $EASY_RSA/openssl-1.0.0.cnf # Отредактируйте эту переменную, чтобы она указывала на # ваш ключ, который скоро будет создан # каталог.# # ПРЕДУПРЕЖДЕНИЕ: чистое все подойдет # rm -rf в этом каталоге # поэтому убедитесь, что вы определили # это правильно! экспорт KEY_DIR = "$EASY_RSA/ключи" # Выдать предупреждение rm -rf echo ПРИМЕЧАНИЕ. Если вы запустите ./clean-all, я выполню команду rm -rf для $ KEY_DIR. # Исправления PKCS11 экспортировать PKCS11_MODULE_PATH = "фиктивный" экспортировать PKCS11_PIN = "фиктивный" # Увеличьте это значение до 2048, если вы # параноики. Это замедлит # снижение производительности согласования TLS # а также одноразовые параметры DH # процесс генерации. экспорт KEY_SIZE = 4096 # Через сколько дней должен истечь срок действия ключа корневого ЦС? экспорт CA_EXPIRE = 3650 # Через сколько дней истекает срок действия сертификатов? экспорт KEY_EXPIRE = 3650 # Это значения по умолчанию для полей # который будет помещен в сертификат.# Не оставляйте ни одно из этих полей пустым. экспорт KEY_COUNTRY = "США" экспорт KEY_PROVINCE = "CA" экспорт KEY_CITY = "Сан-Франциско" экспорт KEY_ORG = "АНБ" экспортировать KEY_EMAIL = "[email protected]" export KEY_OU = "Отдел безопасности" # X509 Тематическое поле экспорт KEY_NAME = "морфик" # Смарт-карта PKCS11 # экспортировать PKCS11_MODULE_PATH="/usr/lib/changeme.so" # экспорт PKCS11_PIN = 1234 # Если вы хотите подписать все ключи одним общим именем, раскомментируйте экспорт KEY_CN ниже # Вам также необходимо убедиться, что в конфигурации вашего сервера OpenVPN установлена ​​опция дублирования-cn # экспорт KEY_CN = "Общее имя"  

      И это о нашем вкладе в процесс сертификации.На самом деле это единственное значение, которое нам нужно настроить в процессе создания сертификата, — это Common Name . Теперь мы просто вводим следующие команды:

        $ источник ./vars $ ./очистить все $ ./build-ca Генерация 4096-битного закрытого ключа RSA ... $ ./сборка-дх Генерация параметров DH, 4096-битное безопасное простое число, генератор 2 Это займет много времени ... $ ./сборка-ключ-сервер-сервер Генерация 4096-битного закрытого ключа RSA ...  

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

        $ ./сборка-ключ-клиент pkcs12 Генерация 4096-битного закрытого ключа RSA ...  

      Шифрование с закрытым ключом

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

       $ openssl rsa -aes256 -в ключах/клиенте.key -out keys / client.key.encrypted написание ключа RSA Введите парольную фразу PEM: Проверка — введите парольную фразу PEM:  

      И если мы не знаем, зашифрован данный ключ или нет, мы можем проверить это:

        $ openssl rsa -text -noout -in keys/client.key Закрытый ключ: (4096 бит) модуль: ...  

      Если после подачи вышеуказанной команды у нас не запрашивают пароль, значит ключ не зашифровано.

      .

      OpenVPN — конфигурация сервера и клиента на основе сертификатов — FREESCO.PL

      Самый простой способ настроить VPN-туннель — использовать общий ключ. Однако в более продвинутых приложениях этот способ не сработает. Если есть необходимость обеспечить одновременный доступ многих пользователей к корпоративной (или другой) сети, администратору придется приложить определенные усилия.

      Мы начинаем это описание после установки пакета openvpn.

      Сначала отредактируйте файл openssl.cnf в каталоге /etc/ssl . Лучше всего для этого использовать Midnight Commander, в этом файле нам нужно найти строки перечисленные ниже и изменить их как в примере:

      ########## CHANGE ######### ####
      certificate = $ dir / cert_rootca.pem # Сертификат CA

      ########## CHANGE ################
      private_key = $ dir /private/rootca_key.pem # Закрытый ключ

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

      cd /
      mkdir rootca
      компакт-диск / rootca

      Теперь мы находимся в созданном каталоге и нам нужно создать подкаталоги и два файла - пустой индекс.txt и серийный номер с двумя нулями:
      mkdir certs crl misc newcerts private
      touch index.txt
      echo 00> серийный номер

      Теперь приступим к генерации сертификатов и ключей, это займет довольно много времени. Проведенные эксперименты показывают, что делать это нужно очень осторожно. Убедитесь, что записи в сертификатах для сервера и клиента совместимы (они должны отличаться только в полях ИМЯ и ПОЧТА).

      # сгенерировать ключ эмитента сертификата
      openssl genrsa -des3 -out private /rootca_key.PEM_HASLO 1024
      # Удалить пароль от ключа
      OpenSSL RSA -in Private / key_rootca.pem_haslo -out Private / key_rootca.pem
      # Ознакомьтесь с ключом с паролем
      RM Private / key_rootca haslo # haslo мы генерируем сертификат эмитента сертификата
      openssl req -new -x509 -days 1825 -key private /rootca_key.pem -outrootca_certificate.pem
      #генерируем ключ шлюза
      openssl genrsa - /openvpn/gate_key.pem_haslo 1024
      # снять пароль с ключа
      openssl rsa -in /etc/openvpn/klucz_bramy.pem_haslo -out /etc/openvpn/klucz_bramy.pem
      # удалить ключ с паролем


      /etc /klucz_bramy.pem_haslo
      # сгенерировать запрос на сертификат ворот
      openssl req -new -key /etc/openvpn/klucz_bramy.pem -out request_bramy.pem
      # как эмитент сертификата подписывает запрос
      openssl ca -notext - в request_gate.pem -out /etc/openvpn/c certat_bramy.pem
      #удалить запрос
      rm request_bramy.pem
      #сгенерировать ключ пользователя - эти команды надо будет повторить сколько раз,
      # сколько пользователей хочу добавить.
      #последующие ключи и сертификаты вызываются с другим именем, например zosia_key.pem, zosia_certificate.pem
      openssl genrsa -des3 -out usera_key.pem_password
      # удалить пароль из ключа пользователя
      opens в user_key.pem_haslo -out user_key.pem
      # удалить ключ пользователя с паролем
      rm usera_key.pem_password
      #генерировать запрос на сертификат пользователя
      openssl req -new -keyuser_key.pem - эмитента сертификата подписываем request
      openssl ca -notext -in request_usera.pem -out certificate_usera.pem -days 1825
      #удалить запрос
      rm request_usera.pem
      # создать файл dh для шифрования
      openssl dhparam -out /etc/openvpn/dh2024.pem 1024

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

      КОНФИГУРАЦИЯ СЕРВЕРА (NND)

      Если все вышеперечисленные операции выполнены успешно, мы отредактируем файл конфигурации VPN-сервера. Следует обратить внимание, прошла ли успешно генерация сертификатов, если появились сообщения о несовместимых записях, операцию необходимо повторить. Теперь проверим, есть ли у нас в /etc/openvpn следующие файлы: gate_certificate.pem , rootca_certificate.pem , dh2024.pem и gate_key pem .Если первого нет, скопируйте его из каталога /rootca .
      Мы назвали файл конфигурации multi.conf (чтобы вы знали, что это конфигурация с несколькими подключениями). Дополнительные заштрихованные строки, которые можно опустить, поясняют некоторые параметры.

      DEV TUN
      TUN-MTU 1500
      PORT 1194
      пользователь никто
      группа никто
      Comp-lzo
      прото tcp-сервер
      ping 20
      ping-server
      ping 20
      ping-restart 120
      ping-timer-rem
      supist-tour

      демон
      глагол 4
      log-append /var/log/openvpn.log
      ca /etc/openvpn/catalog_rootca.pem
      сертификат /etc/openvpn/camework_bramy.pem
      ключ /etc/openvpn/klucz_bramy.pem
      tls-server
      dh /etc/openvpn/dh2024.pem

      4 режим сервера

      4 mode server
      # следующий сетевой диапазон означает, что сервер на интерфейсе tun0 будет иметь номер 192.168.10.1
      # клиенты получат номера от 2 и выше
      server 192.168.10.0 255.255.255.0

      8 # перед запуском на сервере этот файл должен быть создан
      ifconfig-pool-persist /etc/openvpn/ipp.txt
      #следующие опции можно менять в зависимости от потребностей, ДОМЕН зависит от рабочей группы в которой находится сервер,
      # можно использовать домен если в нем есть сеть, DNS сервер нужно вводить как есть в сети
      #маршрут с поворотом должен включать реальный диапазон сети за VPN сервером,
      #этот класс не может совпадать с сетью на стороне клиента DNS 192.168.1.1"
      push "маршрут 192.168 .2.0 255.255.255.0 "
      push" ping 20 "
      push" ping перезапуск 120 "

      Перед запуском сервера мы должны создать файл ipp.txt:
      cd /etc/openvpn
      touch ipp.txt

      В этом файле сервер будет хранить информацию об IP-адресах, присвоенных отдельным пользователям.
      Если все уже подготовлено, запускаем VPN сервер командой:
      openvpn --config /etc/openvpn/multi.conf
      и проверяем командой ps aux - есть ли процесс и проверяем лог для подтверждения работы сервера (можно попробовать убрать из файла строчку daemon - все будет отображаться на экране).Если будут какие-то ошибки, это будет означать необходимость повторить процедуру генерации сертификата и проверить конфигурацию на возможные опечатки. Однако я предполагаю, что все будет хорошо.

      ПОЛЬЗОВАТЕЛЬСКАЯ КОНФИГУРАЦИЯ (LINUX)

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

      • user_key.pem
      • usera_certificate.pem
      • rootca_certificate.pem
      • клиент
      • .конф

      и эти файлы будут использоваться для построения соединения. Конечно, сертификат и ключ будут иметь то же имя, что и у администратора — оно не обязательно соответствует нашему примеру.
      Файл конфигурации выглядит следующим образом:
      tls-client
      dev tun
      proto tcp-client
      comp-lzo
      persist-tun
      persist-key
      verb 4
      ca /etc/openvpn/certificate_rootca.pem013 etc/openvpn/cert_usera.pem
      ключ /etc/openvpn/user_key.pem
      удаленный 192.168.1.9
      pull
      порт 1194
      ping 15

      Удаленная переменная должна содержать реальный адрес сервера (обычно это будет публичный IP). В Linux операции с интерфейсом могут выполняться только от root, поэтому предлагаю сохранять файлы в /etc/openvpn, в противном случае следует использовать sudo, но это требует дополнительных действий, выходящих за рамки данного описания.
      Теперь вызываем openvpn --config /etc/openvpn/client от имени root.conf
      VPN соединение обычно не постоянное, поэтому вызываем его вручную и сообщения будут видны в консоли. Конечно, вы можете добавить их в свои собственные файлы запуска, но не забудьте тогда добавить опцию демона.
      Это работает? Мы проверим наше соединение, набрав ifconfig. Появится виртуальный интерфейс:
      tun0 Инкапсуляция ссылки: UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
      inet addr: 192.168.10.6 Точка-точка: 192.168.10.5 Маска: 255.255.255.255
      UP POINTOPOINT RUNNING NOARP MULTICAST MTU: 1500 Метрика: 1
      RX-пакетов: 0 ошибок: 0 отброшено: 0 превышений: 0 кадров: 0
      TX-пакетов: 0 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0
      коллизий: 0 txqueuelen: 100
      Байты RX: 0 (0.0b) Байты TX: 0 (0.0b)

      Это начало успеха. Теперь проверяем пинг до VPN-сервера (ping 192.168.10.1), если он есть — видно, что соединение установлено. Таблица маршрутизации также должна быть изменена:
      [root @ compaq ~] # route -n
      Таблица IP-маршрутизации ядра
      Шлюз назначения Флаги Genmask Метрик Ref Use Iface
      192.168.10.1 192.168.10.5 255.25.168.10.5 255.255.255.255 ugh 0 0 0 tun0
      192.168.10.5 0.0.0.0.0 255.255.255.255 Uh 0 0 0 0 0 0 0 0
      192.168.2.0 192.168.10.5 255.255.255.0 Ug 0 0 0 Tun0
      192.168.10 0.0. 0.0 255.255.255.0 u 10 0 0 0 0 0 0 0 0 0 0 0.0 0.0.0.0 255.255.0 0,0 u 10 0 0 0 0,00,0.0 055.0,0 u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 192.168.1.1 0.0.0.0 ug 10 0 0 eth0

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

      ПОЛЬЗОВАТЕЛЬСКАЯ КОНФИГУРАЦИЯ (WINDOWS)

      Подключение с использованием Windows будет невозможно с помощью встроенного клиента vpn. Как всегда, Microsoft совместима только с самой собой. Нам нужно установить программу OpenVPN для Windows. Это просто и быстро. После установки в трее появится иконка, которую мы будем использовать для инициации подключения.Однако сначала мы сохраним конфигурацию.
      tls-client
      dev tun
      proto tcp-client
      comp-lzo
      persist-tun
      persist-key
      verb 4
      ca C: /c cert_rootca.pem
      cert C: /cetelat_usera.usera. /usera.pem_key
      удаленный 192.168.1.9
      pull
      порт 1194
      ping 15

      Конфигурационный файл тот же, отличаются только пути к сертификатам, чтобы не писать строки солитера, я сохранил их прямо в корневую директорию.Сам файл конфигурации сохраняется как cert.ovpn в каталоге c:Program filesOpenVPNconfig. Затем создайте новое устройство tap-tun (в меню есть соответствующая команда).
      Теперь с помощью значка в трее выберите опцию Connect, и соединение начнется.
      Проверяем их командой в консоли (cmd) — ipconfig /all — мы увидим, что появился новый интерфейс с адресом, который нам назначил VPN-сервер. Также в консоли введите команду route PRINT :
      ================================= === =====
      ========================================= =
      Активные маршруты:
      Сетевой пункт назначения Сетевая маска

      0.0.0.0 0.0.0.0 19
      127.0.0.0.0 255.0.0.0
      192.168.1.0 255.255.255.0 19
      192.168.15 255.255.255.255
      192.168.1.255 255.255.255.255 19
      192.168.2.0 255.255.255.0 19
      192.168.10.1 255.255 .255.255 192
      192.168.10.4 255.255.255.252 255.255.255.252 192
      192.168.10.6 255.255.255.255
      192.168.10.255 255.255.255.255 192
      224.0.0.0.0.0.0.0 19
      224.0.0 224.0.0.0 19

      Шлюз по умолчанию: 192.168.1.1.
      =========================================
      В этом случае вы также можете см. дополнительные маршруты через VPN-сервер, поэтому мы можем перейти к практическому применению.
      В сетевом окружении выберите вариант добавления нового сетевого места, введите номер компьютера в удаленной локальной сети и сопоставьте предоставленные им каталоги. Благодаря этому мы можем видеть удаленные компьютеры так, как если бы они были в нашей сети, но не увидим их непосредственно в сетевом окружении. Если на удаленном компьютере Windows 98 или 2000 - проблем не будет. В случае с XP я заметил, что брандмауэр надоедает, а так как мне не хотелось его настраивать - я его отключил.

      .

      Как установить и настроить VPN с помощью OpenVPN в Ubuntu 18.04

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

      OpenVPN — это VPN, основанная на протоколах TLS (Transport Layer Security) и SSL (Secure Sockets Layer).OpenVPN использует некоторые сертификаты для шифрования трафика между сервером и конечным клиентом.

      В этом руководстве мы предоставим инструкции по настройке OpenVPN на сервере Ubuntu 18.04.

      Для выполнения операций, представленных в руководстве, вам потребуются две машины, одна из которых будет действовать как ЦС (центр сертификации) и проверять сертификаты.

      Требуется соединить сервер и ЦС с помощью SSH-соединения. Если вы еще этого не сделали, ознакомьтесь с нашим руководством по безопасному подключению через SSH.

      Установка OpenVPN

      Подключиться к серверу.

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

      Введите:

        sudo подходящее обновление sudo apt установить openvpn  

      После операции OpenVPN будет установлен на сервере.

      Установка EasyRSA

      Загрузите EasyRSA на свой сервер и ЦС, введя команду на обоих компьютерах:

        wget -P ~/https://github.com/OpenVPN/easy-rsa/релизы/скачать/v3.0.4/EasyRSA-3.0.4.tgz  

      Последнюю версию можно загрузить с https://github.com/OpenVPN/easy-rsa/releases

        компакт-диск ~ смола xvf EasyRSA-3.0.4.tgz  

      Имя может отличаться в зависимости от загруженной версии

      Конфигурация на сервере

      Завершите настройку сервера с помощью команд:

        sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ sudo gzip -d /etc/openvpn/сервер.conf.gz судо нано /etc/openvpn/server.conf  
      • Найдите раздел, относящийся к HMAC ("tls-auth"). Если строка закомментирована, удалите ";".

      • Найдите раздел шифрования ("шифр"). Если он закомментирован, удалите ";". Внизу добавьте новую строку, содержащую текст «auth SHA256».

      • Найдите секцию "dh", определяющую параметры Диффи-Хеллмана, и удалите из названия "2048" (должно получиться "dh dh.пэм").

      • Найдите разделы "пользователь" и "группа" и удалите ";" чтобы раскомментировать строку.

      Конфигурация EasyRSA на ЦС

      При установке EasyRSA создается файл конфигурации для определения переменных ЦС. Введите:

        компакт-диск ~/EasyRSA-3.0.4/ cp vars.example варс нано варс  

      Удалите "#" для инструкций на изображении ниже:

      Запустите сценарий «easyrs» для инициализации инфраструктуры открытых ключей (PKI):

       ./earsa init-pki ./easyrsa build-ca nopass  

      команда создаст два файла:

      • ca.crt: общедоступный сертификат CA, используемый серверами и клиентами для взаимной передачи информации о принадлежности к доверенной сети.

      • ca.key: закрытый ключ, используемый компьютером ЦС для подписи ключей и сертификатов для серверов и клиентов. Этот файл должен находиться на машине ЦС (недоступен для третьих лиц), иначе безопасность сети может быть скомпрометирована.

      Вам будет предложено ввести имя. Оставьте поле пустым и нажмите Enter.

      Запрос сертификата от ЦС

      После настройки компьютера ЦС сгенерируйте закрытый ключ и запрос сертификата на сервере и отправьте их на компьютер ЦС для подписи:

        компакт-диск ~ / EasyRSA-3.0.4 ./easyrsa init-pki ./easyrsa gen-req server nopass  

      Вы только что создали закрытый ключ для сервера и запросили сертификат с именем «server.запрос ":

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

      Скопируйте файл server.req на компьютер CA:

      .
        scp ~/EasyRSA-3.0.4/pki/reqs/server.req [электронная почта защищена] _CA_ip:/tmp  

      Создать и подписать сертификат

      Импортируйте скопированный файл в папку EasyRSA на машине ЦС и подпишите его:

        компакт-диск ~/EasyRSA-3.0.4/ ./easyrsa import-req /tmp/server.req сервер ./easyrsa sign-req сервер сервер  

      Введите «да» и нажмите Enter.

      Переместить подписанный сертификат и ca.crt на сервер VPN:

        scp pki/выпущено/server.crt [email protected] _server_ip:/tmp scp pki/ca.crt [адрес электронной почты защищен] _server_ip:/tmp  

      Затем на сервере

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

        sudo cp /tmp/[server.crt,ca.crt} /etc/openvpn/ cd ~/EasyRSA-3.0.4/ ./easyrsa gen-dh  

      Создать надежный обмен ключами на основе Диффи-Хеллмана.

        openvpn --genkey --secret ta.key  

      Скопировать сгенерированные файлы в папку "/etc/openvpn/"

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

      Конфигурация клиента

      Создайте папку для хранения клиентских сертификатов и ключей (в руководстве показан только один ключ с именем «client1», но операцию необходимо повторить для каждого клиента, использующего другой номинал)

        mkdir -p ~/клиент-конфиги/ключи chmod -R 700 ~/клиент-конфиги компакт-диск ~/EasyRSA-3.0,4 / ./easyrsa gen-req client1 nopass  

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

      scp pki/reqs/client1.req [электронная почта защищена] _CA_IP:/tmp

      Импорт запроса сертификата в ЦС:

        компакт-диск ~/EasyRSA-3.0.4/ ./easyrsa import-req /tmp/client1.req client1 ./easyrsa sign-req client client1  

      Введите «да», чтобы авторизовать подпись.

        scp pki/выпущено/client1.crt [электронная почта защищена] _SERVER:/tmp  

      Скопируйте следующие файлы в соответствующие папки на сервере.

        cp /tmp/client1.crt ~/client-configs/keys/ cp~/EasyRSA-3.0.4/ta.key~/client-configs/keys/ sudo cp /etc/openvpn/ca.crt ~/client-configs/keys/ 

      Теперь и сертификаты, и ключи сервера и клиента сгенерированы.

      Конфигурация IP-маршрутизации и брандмауэр

      Изменить политику переадресации IP:

        судо нано /etc/sysctl.conf  

      Изменить правила брандмауэра для правильной маршрутизации клиентских подключений.

        IP-маршрут | grep по умолчанию  

        судо нано /etc/ufw/before.rules  

      Добавьте команды, как на изображении ниже, заменив «eth0» на имя вашего сетевого интерфейса.

        # НАЧАТЬ ПРАВИЛА OPENVPN # Правила таблицы NAT * нац : ОТПРАВКА ПРИНЯТЬ [0: 0] # Разрешить трафик от клиента OpenVPN к eth0 -A POSTOUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE СОВЕРШИТЬ # ЗАВЕРШИТЬ ПРАВИЛА OPENVPN  

      Сохранить и выйти.

        судо нано /etc/по умолчанию/ufw  
        sudo ufw разрешить 1194 / udp $ sudo ufw разрешить OpenSSH  
        sudo ufw отключить sudo ufw включить  
        sudo systemctl запустить openvpn  
        статус sudo systemctl openvpn  

      Настройка запуска службы при включении сервера

      .
        sudo systemctl включить openvpn  
        mkdir -p ~/клиент-конфигурации/файлы cp/usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf нано ~/client-configs/base.conf  

      Найдите раздел "remote" и убедитесь, что это "remote IP_Server 1194"

      Найдите раздел "proto" и убедитесь, что сервер настроен на UDP (строка TCP должна быть закомментирована знаком ";")

      Найдите разделы «пользователь» и «группа» и удалите «;», чтобы раскомментировать их

      Найдите секции "ca.crt" - "client.crt" - "client.key" - "ta.key" и закомментируйте их, добавив "#" в начало каждой строки

      Найдите раздел «шифр» и добавьте строку «auth SHA256» в «шифр AES-256-CBC»

      Добавьте строку "key-direction 1" в любом месте

      Добавьте строки с комментариями ниже, где хотите.Если клиент является машиной Linux, раскомментируйте его с помощью

      .
        # скрипт-безопасность 2 # up /etc/openvpn/update-resolv-conf # вниз /etc/openvpn/update-resolv-conf  

      Сохранить и выйти.

      Генерация конфигураций для клиентов

      Создайте на своем сервере скрипт для автоматической компиляции конфигурации клиента.

        нано ~/client-configs/make_config.sh  

      Скопируйте и вставьте текст:

       #!/бин/баш # Первый аргумент: идентификатор клиента KEY_DIR=~/клиент-конфиги/ключи OUTPUT_DIR=~/клиент-конфиги/файлы BASE_CONFIG=~/client-configs/base.конф кошка $ {BASE_CONFIG} \ <(эхо -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.ш  90 023 

      Попытка создать конфигурацию клиента.

        cd ~/client-configs судо ./make_config.sh клиент1  

      Будет создан файл "client1.ovpn".

      Перенесите файл на устройство, которое вы хотите использовать. Он будет использоваться программным обеспечением VPN для установления соединения.

      Перенаправить весь DNS-трафик через VPN

      Измените значение параметра: нажмите "redirect-gateway def1 bypass-dhcp"

        нано/etc/openvpn/сервер.конф  

      Найдите раздел "push" redirect-gateway def1 bypass-dhcp и удалите ";" раскомментировать

      Отзыв сертификата клиента

        компакт-диск EasyRSA-3.0.4 / ./easyrsa отозвать клиент1  

      Введите "да" для подтверждения.

      Создайте файл crl.pem и загрузите его на свой сервер:

        ./easyrsa gen-crl scp ~/EasyRSA-3.0.4/pki/crl.pem [email protected]_Server: /tmp  

      Обновите конфигурацию на сервере, чтобы проверить отзыв сертификата:

        sudo cp/tmp/crl.пэм / etc / опенвпн судо нано /etc/openvpn/server.conf  

      Добавить "crl-verify crl.pem"

      в конец файла

      Сохранить и выйти.

        перезапуск sudo systemctl [электронная почта защищена]  

      Перезапустите сервер, чтобы изменения вступили в силу.

      .

      Как настроить сервер OpenVPN в Ubuntu 16.04


      Хотите получить безопасный доступ в Интернет со своего смартфона или ноутбука при подключении к ненадежным сетям, таким как Wi-Fi в гостинице или кафе? Виртуальная частная сеть (VPN) позволяет использовать ненадежные сети конфиденциально и безопасно, как если бы они находились в частной сети. Трафик покидает VPN сервера и продолжает свой путь к месту назначения.

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

      OpenVPN — это полнофункциональное VPN-решение с открытым исходным кодом Secure Socket Layer (SSL), которое поддерживает широкий спектр конфигураций. В этом руководстве мы настроим сервер OpenVPN в Droplet, а затем настроим доступ к нему из Windows, OS X, iOS и Android. В этом руководстве шаги по установке и настройке для этих параметров будут максимально простыми.

      Предполетная проверка

      Когда вы будете готовы начать, войдите на свой сервер Ubuntu как пользователь sudo и выполните следующие шаги.

      Шаг №1: Установка OpenVPN

      Сначала мы устанавливаем OpenVPN на наш сервер. OpenVPN доступен в репозиториях Ubuntu по умолчанию, поэтому мы можем использовать apt для установки. Мы также установим пакет easy-rsa , который поможет нам настроить ЦС (центр сертификации) для использования нашего VPN.

      Чтобы обновить пакеты сервера и установить необходимые пакеты, используйте команду:

      sudo apt-получить обновление

      sudo apt-get установить openvpn easy-rsa

      Необходимое программное обеспечение уже доступно на сервере и готово к настройке.

      Шаг № 2: Настройте каталог ЦС

      OpenVPN — это TLS/SSL VPN. Это означает, что он использует сертификаты для шифрования трафика между сервером и клиентами. Чтобы выдавать доверенные сертификаты, нам нужно настроить собственный простой сертификат (CA).

      Для начала мы можем скопировать каталог шаблонов easy-rsa в наш домашний каталог с помощью команды make-cadir :

      .

      make-cadir ~ / openvpn-ca

      Перейдите во вновь созданный каталог, чтобы начать настройку ЦС:

      cd ~/openvpn-ca

      Шаг № 3: Настройка переменных CA

      Чтобы настроить используемые переменные CA, нам нужно отредактировать файл vars в каталоге.Откройте этот файл в текстовом редакторе:

      нановары

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

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

      ~/openvpn-ca/vars

      . . . экспорт KEY_COUNTRY = "США" экспорт KEY_PROVINCE = "CA" экспорт KEY_CITY = "Сан-Франциско" экспорт KEY_ORG = "Форт-Фанстон" экспорт KEY_EMAIL = "я @ myhost.мой домен " экспорт KEY_OU = "Моя организационная единица" . . . 

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

      ~/openvpn-ca/vars

      . . . экспорт KEY_COUNTRY = "США" экспорт KEY_PROVINCE = "NY" экспорт KEY_CITY = "Нью-Йорк" экспорт KEY_ORG = "Цифровой океан" экспорт KEY_EMAIL = "[email protected]" экспорт KEY_OU = "Сообщество" . . . 

      Пока мы здесь, мы также будем редактировать значение KEY_NAME в этом разделе, которое заполняет поле темы.Чтобы сделать это легко, мы будем называть его сервером в этом руководстве:

      ~/openvpn-ca/vars

       экспорт KEY_NAME = "сервер" 

      По завершении сохраните и закройте файл.

      Шаг № 4. Создание центра сертификации

      Теперь мы можем использовать настроенные нами переменные и инструменты easy-rsa для создания нашего центра сертификации (ЦС).

      Наши администраторы без проблем могут бесплатно установить OpenVPN на наш VPS в Польше или за границей.

      Убедитесь, что вы находитесь в каталоге CA, затем подключите файл vars , который был отредактирован:

      cd ~/openvpn-ca

      исходные переменные

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

      Выход

       ПРИМЕЧАНИЕ. Если вы бежите./clean-all, буду делать rm -rf на /home/sammy/openvpn-ca/keys 

      Убедитесь, что вы работаете в чистой среде, введя:

      ./очистить все

      Теперь мы можем построить наш основной ЦС, набрав:

      ./сборка-ca

      Это инициирует процесс создания корневого ключа ЦС и сертификата. Так как мы заполнили файл vars , то все значения должны быть заполнены автоматически. Просто нажмите ENTER через подсказки, чтобы подтвердить свой выбор:

      Выход

       Генерация 2048-битного закрытого ключа RSA .................................................. ...................................... +++ .............................. +++ запись нового закрытого ключа в «ca.key» ----- Вас попросят ввести информацию, которая будет включена в ваш запрос сертификата. То, что вы собираетесь ввести, называется отличительным именем или DN. Полей довольно много, но вы можете оставить некоторые пустыми Для некоторых полей будет значение по умолчанию, Если вы введете ‘.', поле останется пустым. ----- Название страны (двухбуквенный код) [США]: Название штата или провинции (полное название) [NY]: Название местности (например, город) [Нью-Йорк]: Название организации (например, компания) [DigitalOcean]: Название организационного подразделения (например, раздела) [Сообщество]: Обычное имя (например, ваше имя или имя хоста вашего сервера) [DigitalOcean CA]: Имя [сервер]: Адрес электронной почты [[email protected]]: 

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

      Шаг № 5: Создайте сертификат сервера, ключи и шифрование файла

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

      Начнем с создания сертификата сервера OpenVPN и пары ключей. Мы можем сделать это, набрав:

      Примечание: , если вы выберете имя, отличное от server , вам потребуется адаптировать некоторые приведенные ниже инструкции.Например, при копировании сгенерированных файлов в директорию /etc/openvpn должны быть подставлены соответствующие имена. Вы также должны изменить файл /etc/openvpn/server.conf , чтобы он указывал на правильные файлы .crt и .key .

      ./сборка-ключ-сервер-сервер

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

      Выход

      .. . Сертификат должен быть заверен до 1 мая 17:51:16 2026 GMT (3650 дней) Подписать сертификат? [д/н]: д 1 из 1 запросов на сертификат сертифицирован, зафиксировать? [г/н] г Записать базу данных с 1 новой записью База данных обновлена ​​

      Далее мы создадим некоторые другие элементы. Мы можем сгенерировать надежные ключи Диффи-Хеллмана для использования во время обмена ключами, набрав:

      ./сборка дх

      Это может занять несколько минут.

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

      openvpn --genkey --secret keys / ta.key

      Шаг № 6: Создание сертификата клиента и пары ключей

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

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

      Вы можете вернуться к этому шагу позже, мы перезагрузим файл vars . Мы будем использовать client1 в качестве значения для нашей первой пары ключ/сертификат для сегодняшнего урока:

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

      cd ~/openvpn-ca

      исходные переменные

      ./сборка-ключ клиент1

      Если вместо этого вы хотите создать защищенную паролем учетную запись данных, используйте команду build-key-pass :

      cd ~/openvpn-ca

      исходные переменные

      ./сборка-ключ-пасс клиент1

      Снова необходимо заполнить значение по умолчанию, чтобы вы могли просто нажать ENTER для продолжения. Оставьте поле пароля пустым и введите y , чтобы отобразить вопрос о том, следует ли подписывать и изготавливать сертификат.

      Шаг № 7: Настройте службу OpenVPN

      Затем мы можем приступить к настройке службы OpenVPN, используя созданные нами данные и файлы.

      Копирование файлов в каталог OpenVPN

      Для начала нам нужно скопировать нужные нам файлы в директорию конфигурации /etc/openvpn .

      Мы можем начать со всеми созданными нами файлами. Они были размещены в директории ~/openvpn-ca/keys . Нам нужно передать наш сертификат CA и ключ, наш сертификат и ключ сервера, подпись HMAC и файл Diffie-Hellman:

      cd ~/openvpn-ca/keys

      sudo cp ок.crt ca.key server.crt server.key ta.key dh3048.pem /etc/openvpn

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

      gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | судо тройник /etc/openvpn/server.conf

      Настройка конфигурации OpenVPN

      Теперь, когда наши файлы на месте, мы можем изменить файл конфигурации сервера:

      sudo nano/etc/openvpn/сервер.конф

      Базовая конфигурация

      Сначала найдите раздел HMAC, выполнив поиск директивы tls-auth . Удалить '; », чтобы раскомментировать строку tls-auth. Ниже этого добавьте параметр key-direction , установленный в « 0 »:

      /etc/openvpn/server.conf

       tls-auth ta.key 0 # Этот файл является секретным ключевое направление 0 

      Затем найдите раздел криптографических шифров, выполнив поиск закомментированных строк шифра .Шифр AES-128-CBC предлагает хороший уровень шифрования и хорошо поддерживается. Удалить "; » раскомментировать строку шифром AES-128-CBC :

      /etc/openvpn/server.conf

       шифр AES-128-CBC 

      Ниже добавьте строку auth для выбора сообщений управления алгоритмом HMAC. Для этого SHA256 хороший выбор:

      /etc/openvpn/server.conf

       аутентификация SHA256 

      Наконец, найдите пользовательских и групповых настроек и удалите «; » в начале:

      /etc/openvpn/сервер.конф

       пользователь никто группа без группы 
      (необязательно) Включить изменения DNS для перенаправления всего трафика через VPN

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

      Для этого раскомментируйте несколько директив, которые настроят клиентские компьютеры на перенаправление всего интернет-трафика через VPN.Найдите раздел redirect-gateway и удалите точку с запятой «; ”начало строки redirect-gateway для раскомментирования:

      /etc/openvpn/server.conf

       push "перенаправление шлюза def1 bypass-dhcp" 

      Чуть ниже найдите раздел dhcp-option . Снова удалите «; » перед строками их раскомментировать:

      /etc/openvpn/server.conf

       нажмите "DHCP-опция 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 

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

      (Необязательно) Выберите данные доступа не по умолчанию

      Если вы выбрали другое имя для ./ build-key-server измените строки cert и key , чтобы они указывали на соответствующие файлы .crt и .key . Если используется сервер по умолчанию, он должен быть установлен правильно:

      /etc/openvpn/server.conf

       сервер сертификатов.crt ключ сервер.ключ 

      По завершении сохраните и закройте файл.

      Шаг № 8: настройка конфигурации сети

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

      Разрешение на переадресацию IP

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

      Мы можем изменить этот параметр, изменив файл /etc/sysctl.conf :

      судо нано /etc/sysctl.conf

      Внутри обратите внимание на строку, обозначающую net.ipv4.ip_forward . Удалите "#" с начала строки, чтобы раскомментировать этот параметр:

      /etc/sysctl.конф

       net.ipv4.ip_forward = 1,

      Сохраните и закройте файл, когда закончите.

      Чтобы прочитать файл и установить значение для текущего сеанса, введите:

      судо sysctl –p

      Адаптация правил UFW для маскировки клиентских подключений

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

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

      IP-маршрут | grep по умолчанию

      Ваш общедоступный интерфейс будет отображаться после " dev ".Например, этот вывод показывает интерфейс с именем wlp11s0 , который показан ниже:

      Выход

       по умолчанию через 203.0.113.1 dev wlp11s0 proto static metric 600 

      Откройте файл /etc/ufw/before.rules , чтобы добавить соответствующую конфигурацию:

      судо нано /etc/ufw/before.rules

      Когда у вас есть интерфейс, связанный с маршрутом по умолчанию, откройте файл /etc/ufw/before.rules , чтобы добавить соответствующую конфигурацию:
      sudo nano /etc/ufw/before.правила

      Этот файл обрабатывает конфигурацию, которую следует вводить при обычной загрузке политики UFW. В верхней части файла добавьте строки, отмеченные ниже. Это установит политику по умолчанию для цепочки POSTROUTING в таблице nat и замаскирует любой исходящий трафик из VPN:

      .

      Примечание: Обязательно замените eth0 в строке -A POSTROUTING на интерфейс, указанный в приведенной выше команде.

      /etc/ufw/пред.правила

       # # правила.перед # # Правила, которые должны выполняться перед добавлением правил командной строки ufw. Обычай # правила должны быть добавлены в одну из этих цепочек: # Ufw-до-ввода # Ufw-перед-выводом # Ufw-до-вперед # # НАЧАТЬ ПРАВИЛА OPENVPN # Правила таблицы NAT * нац : ОТПРАВКА ПРИНЯТЬ [0: 0] # Разрешить трафик от клиента OpenVPN к eth0 -A POSTOUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE СОВЕРШИТЬ # ЗАВЕРШИТЬ ПРАВИЛА OPENVPN # Не удаляйте эти обязательные строки, иначе будут ошибки * фильтр .. . 

      Сохраните и закройте файл, когда закончите.

      Нам нужно включить UFW для пересылки пакетов по умолчанию. Для этого мы будем открывать файл /etc/default/ufw :

      судо нано /etc/по умолчанию/ufw

      Найдите директиву DEFAULT_FORWARD_POLICY внутри. Мы будем менять значения с DROP на ACCEPT :

      /etc/по умолчанию/ufw

       DEFAULT_FORWARD_POLICY = "ПРИНЯТЬ" 

      Сохраните и закройте файл, когда закончите.

      Открытие порта OpenVPN и включение изменений

      Далее мы настроим брандмауэр, чтобы разрешить трафик OpenVPN.

      Если вы не изменили порт и протокол в файле /etc/openvpn/server.conf , вы должны открыть трафик UDP на порт 1194 . Если вы изменили порт и/или протокол, подставьте выбранные здесь значения.

      Мы также добавим порт SSH, если вы забыли добавить

      раньше

      sudo ufw разрешить 1194 / udp

      sudo ufw разрешить OpenSSH

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

      sudo ufw отключить

      sudo ufw включить

      Наш сервер правильно настроен для обработки трафика OpenVPN .

      Шаг № 9: Запустите и включите службу OpenVPN

      Теперь мы готовы запустить службу OpenVPN на нашем сервере. Мы можем сделать это с помощью s ystemd .

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

      sudo systemctl запустить openvpn @ сервер

      Дважды проверьте, успешно ли запущена служба, введя:

      sudo systemctl статус openvpn @ сервер

      Если все прошло хорошо, результат должен выглядеть примерно так:

       ● openvpn @ сервер.сервис - OpenVPN соединение с сервером Загружено: загружено (/lib/systemd/system/[email protected]; отключено; предустановка поставщика: включена) Активно: активно (работает) со вторника 03 мая 2016 г., 15:30:05 по восточному поясному времени; 47 секунд назад Документы: мужчина: openvpn (8) https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage https://community.openvpn.net/openvpn/wiki/HOWTO Процесс: 5852 ExecStart = /usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --script-security 2 --config /etc/ опенвпн /% я.conf --writepid /run/openvpn/%i.pid (code = exited, sta Основной PID: 5856 (openvpn) Заданий: 1 (лимит: 512) CGroup: /system.slice/system-openvpn.slice/[email protected] └─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 03 мая 15:30:05 openvpn2 ovpn-сервер [5856]: /sbin /ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2 03 мая 15:30:05 openvpn2 ovpn-сервер [5856]: /sbin/ip route add 10.8.0.0/24 через 10.8.0.2 03 мая 15:30:05 openvpn2 ovpn-server [5856]: GID установлен на nogroup 03 мая, 15:30:05 openvpn2 ovpn-server [5856]: для UID установлено значение none 03 мая 15:30:05 openvpn2 ovpn-сервер [5856]: локальная ссылка UDPv4 (связанная): [undef] 03 мая 15:30:05 openvpn2 ovpn-сервер [5856]: удаленная ссылка UDPv4: [undef] 03 мая 15:30:05 openvpn2 ovpn-server [5856]: MULTI: вызван multi_init, r = 256 v = 256 03 мая 15:30:05 openvpn2 ovpn-сервер [5856]: IFCONFIG POOL: база = 10.8.0.4 размер = 62, ipv6 = 0 03 мая 15:30:05 openvpn2 ovpn-сервер [5856]: IFCONFIG POOL LIST 03 мая, 15:30:05 openvpn2 ovpn-server [5856]: последовательность инициализации завершена 

      Вы также можете проверить, доступен ли интерфейс OpenVPN tun0 , набрав:

      IP-адрес показать tun0

      Вы должны увидеть настроенный интерфейс:

      Выход

       4: tun0:  mtu 1500 qdisc noqueue state UNKNOWN group default qlen 100 ссылка / нет инет 10.8.0.1 равноправный узел 10.8.0.2/32 глобальная область действия tun0 valid_lft навсегда предпочитаемый_lft навсегда 

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

      sudo systemctl включить openvpn @ сервер

      Шаг № 10: Создание конфигурации клиентской инфраструктуры

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

      Создать конфигурацию структуры клиентского каталога

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

      mkdir -p ~/клиент-конфигурации/файлы

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

      chmod 700 ~/клиент-конфигурации/файлы

      Создать базовую конфигурацию

      Далее мы скопируем образец конфигурации клиента в наш каталог, чтобы использовать его в качестве базовой конфигурации:

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

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

      нано ~/client-configs/base.conf

      Нам нужно внести некоторые изменения внутри.

      Сначала найдите удаленную директиву . Это указывает клиенту на адрес нашего сервера OpenVPN. Это должен быть общедоступный IP-адрес сервера OpenVPN. Если вы изменили порт, используемый сервером OpenVPN, измените 1194 на выбранный вами порт:

      .

      ~/клиент-конфиги/база.конф

      . . . # Имя хоста/IP и порт сервера. # У вас может быть несколько удаленных записей # для балансировки нагрузки между серверами. удаленный сервер_IP_адрес 1194 . . . 

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

      ~/client-configs/base.conf

       прото УДП 

      Затем раскомментируйте директивы user и group , удалив «; ":

      ~/клиент-конфиги/база.конф

       # Понижение привилегий после инициализации (только не для Windows) пользователь никто группа без группы 

      Найдите директивы ca , cert и key , которые нужно закомментировать, так как мы будем добавлять сертификаты и ключи в файл:

      ~/client-configs/base.conf

       # Параметры SSL/TLS. # См. конфигурационный файл сервера для получения дополнительной информации # описание. Лучше всего использовать # отдельная пара файлов .crt/.key # для каждого клиента.Один ок # файл можно использовать для всех клиентов. #ca ca.crt #сертификат client.crt #ключ клиент.ключ 

      Настройки шифр и auth , которые мы выставили в файле /etc/openvpn/server.conf :

      ~/client-configs/base.conf

       шифр AES-128-CBC аутентификация SHA256 

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

      .

      ~/клиент-конфиги/база.конф

       ключ-направление 1 

      Наконец, добавим несколько закомментированных строк. Мы хотим поместить их в каждую конфигурацию, но должны разрешать их только для клиентов Linux, которые поставляются с /etc/openvpn/update-resolv-conf . Этот сценарий использует утилиту resolvconf для обновления информации DNS для клиентов Linux.

      ~/client-configs/base.conf

       # скрипт-безопасность 2 # up /etc/openvpn/update-resolv-conf # вниз /etc/openvpn/update-resolv-conf 

      Если клиент работает на Linux и имеет файл /etc/openvpn/update-resolv-conf , раскомментируйте эти строки из сгенерированного файла конфигурации OpenVPN.

      Сохраните файл, когда закончите.

      Создать конфигурацию скрипта для генерации

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

      Создайте и откройте файл с именем make_config.sh в каталоге ~/client-configs :

      нано ~/client-configs/make_config.sh

      Вставьте внутрь следующий скрипт:

      ~/client-configs/make_config.ш

      #!/бин/баш # Первый аргумент: идентификатор клиента KEY_DIR=~/openvpn-ca/keys OUTPUT_DIR=~/клиент-конфиги/файлы BASE_CONFIG=~/client-configs/base.conf кошка $ {BASE_CONFIG} \ <(эхо -e '') \ $ {KEY_DIR} /ca.crt \ <(echo -e ' \ n ') \ $ {KEY_DIR} / $ {1} .crt \ <(echo -e ' \ п ') \ $ {KEY_DIR} / $ {1} .key \ <(echo -e ' \ n ') \ ${KEY_DIR}/та.ключ \ <(echo -e '') \ > $ {OUTPUT_DIR} / $ {1} .ovpn 

      Сохраните и закройте файл, когда закончите.

      Пометьте файл как исполняемый, введя:

      chmod 700 ~/client-configs/make_config.sh

      Шаг № 11: Создание конфигурации клиента

      Теперь мы можем легко генерировать файлы конфигурации клиента.

      Если вы следовали указаниям руководства, сертификат клиента и ключ с именем client1 были созданы.crt и client1.key соответственно, выполнив команду ./build-key client1 на шаге 6. Мы можем сгенерировать конфигурацию для этих учетных данных, перейдя в наш каталог ~/client-configs и используя скрипт, который мы сделал:

      cd ~/client-configs

      ./make_config.sh клиент1

      Если все прошло хорошо, у нас должен быть файл client1.ovpn в нашем каталоге ~/client-configs/files :

      лс ~/клиент-конфиги/файлы

      Выход

       клиент1.овпн 

      Перенос конфигурации на клиентские устройства

      Нам нужно переместить файл конфигурации клиента на соответствующее устройство. Например, это может быть локальный компьютер или переносное устройство.

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

      Вот пример команды SFTP с использованием нашего client1.ovpn. Эту команду можно запустить с локального компьютера (OS X или Linux). Просто поместите файл .ovpn в свой домашний каталог:

      локальный $sftp sammy@openvpn_server_ip:client-configs/files/client1.ovpn~/

      Шаг № 12: Установите профиль клиента

      Теперь мы обсудим, как установить клиентский профиль VPN на Windows, OS X, iOS и Android. Ни одна из этих клиентских инструкций не зависит друг от друга, поэтому мы рекомендуем вам выбрать руководство, которое вам подходит.

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

      Windows

      Установка

      Клиентское приложение OpenVPN для Windows можно найти на странице загрузок OpenVPN. Выберите версию установщика, соответствующую вашей версии Windows.

      Примечание: OpenVPN требует установки прав администратора.

      После установки OpenVPN скопируйте файл .ovpn :

       C:\Program Files\OpenVPN\config 

      При запуске OpenVPN вы автоматически увидите профиль, который делает его доступным.

      OpenVPN необходимо запускать от имени администратора каждый раз, когда он используется, даже под учетными записями администратора. Чтобы не делать этого без надобности, нажимайте правой кнопкой мыши на команду «Запуск от имени администратора» каждый раз при использовании VPN, это можно запрограммировать, но делать это нужно из-под административной учетной записи.Это также означает, что обычные пользователи должны будут вводить пароль администратора, чтобы использовать OpenVPN. С другой стороны, обычные пользователи не могут правильно подключиться к серверу, если приложение OpenVPN на клиенте не имеет прав администратора, поэтому повышенные привилегии не нужны.

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

      Звоните

      Каждый раз, когда вы хотите запустить программу с графическим интерфейсом OpenVPN, Windows спросит вас, хотите ли вы разрешить программе вносить изменения в ваш компьютер. Нажмите Да . Запуск клиентского приложения OpenVPN только добавляет апплет в системный трей, чтобы VPN можно было подключать и отключать по мере необходимости; на самом деле он не устанавливает VPN-соединение.

      При запущенном OpenVPN инициируйте подключение с помощью апплета в трее, а затем щелкните правой кнопкой мыши значок апплета OpenVPN.Это открывает контекстное меню. Выберите client1 вверху меню (это наш профиль client1.ovpn ) и выберите Connect .

      Окно состояния откроет отображение журнала, пока соединение активно, сообщение появится, как только клиент подключится.

      Отключитесь от VPN таким же образом: перейдите к апплету на панели задач, затем щелкните правой кнопкой мыши значок апплета OpenVPN, выберите профиль клиента и нажмите Отключить .

      ОС Х

      Установка

      Tunnelblick — это бесплатный клиент OpenVPN с открытым исходным кодом для Mac OS X. Вы можете загрузить последний образ диска со страницы загрузок Tunnelblick. Дважды щелкните файл .dmg и следуйте инструкциям по установке.

      В конце процесса установки Tunnelblick спросит, есть ли у вас файлы конфигурации. Будет проще ответить Нет и позволить Tunnelblick завершить установку. Откройте окно Finder и дважды щелкните client1.овпн . Tunnelblick установит профиль клиента. Требуются права администратора.

      Звоните

      Запустите Tunnelblick, дважды щелкнув Tunnelblick в папке Applications . Как только Tunnelblick будет запущен, в строке меню в правом верхнем углу экрана появится значок Tunnelblick для управления подключениями. Щелкните значок , а затем пункт меню Connect, чтобы инициировать VPN-подключение. Выберите подключение client1 .

      Линукс

      Установка

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

      Однако самый универсальный способ подключения — просто использовать программное обеспечение OpenVPN.

      В Ubuntu или Debian вы можете установить его так же, как и на сервере, набрав:

      клиент $ sudo apt-get update
      клиент $ sudo apt-get install openvpn

      В CentOS вы можете добавить репозиторий EPEL, а затем установить его, набрав:

      клиент $ sudo yum установить epel-release
      клиент $ sudo yum установить openvpn

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

      Проверьте, есть ли в вашем дистрибутиве скрипт /etc/openvpn/update-resolv-conf:

      клиент $ls/etc/openvpn

      Выход

       обновление-разрешить-конф 

      Далее редактируем загруженный файл конфигурации клиента OpenVPN:

      клиент $ нано клиент1.овпн

      Раскомментируйте три строки, которые мы вставили в настройки DNS, если вы можете найти файл update-resolv-conf :

      client1.ovpn

       скрипт-безопасность 2 up /etc/openvpn/update-resolv-conf вниз / etc / openvpn / update-resolv-conf 

      Если вы используете CentOS, измените group с nogroup на none , чтобы соответствовать существующим группам рассылки:

      client1.ovpn

       группа никто 

      Сохраните и закройте файл.

      Теперь вы можете подключиться к VPN, просто набрав openvpn для файла конфигурации клиента:

      клиент $ sudo openvpn --config client1.ovpn

      Это должно подключиться к серверу.

      iOS

      Установка

      В iTunes App Store найдите и установите OpenVPN Connect, официальное клиентское приложение OpenVPN для iOS. Чтобы передать конфигурацию iOS-клиента на устройство, подключите его напрямую к компьютеру.

      Здесь будет представлено завершение переноса из iTunes. Откройте iTunes на своем компьютере и нажмите iPhone> приложения . Прокрутите вниз до раздела File Sharing и нажмите на приложение OpenVPN. Пустое окно дела Документы OpenVPN предназначены для обмена файлами. Перетащите файл .ovpn в окно OpenVPN Documents. 90 984

      Теперь запустите приложение OpenVPN для iPhone. Появится уведомление о том, что новый профиль готов к импорту.Нажмите на зеленый плюс, чтобы импортировать его. 90 987

      Звоните

      OpenVPN

      теперь готов использовать новый профиль. Запустите соединение, переместив кнопку Подключить на Вкл. . Чтобы отключиться, сдвиньте ту же кнопку на Off .

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

      Андроид

      Установка

      Откройте магазин Google Play. Найдите и установите OpenVPN Connect, официальное клиентское приложение OpenVPN для Android.

      Профиль .ovpn можно перенести, подключив Android-устройство к компьютеру через USB и скопировав файл. В качестве альтернативы, если у вас есть устройство чтения SD-карт, вы можете извлечь SD-карту вашего устройства и скопировать на нее профиль, а затем вставить карту обратно в устройство Android.

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

      Затем перейдите в расположение вашего сохраненного профиля (на скриншоте используется /sdcard/Download/) и выберите свой. Приложение заметит, что профиль был импортирован. 91 026

      Звоните

      Чтобы установить соединение, просто нажмите кнопку Подключить . Вас спросят, доверяете ли вы приложению OpenVPN. Наберите OK , чтобы установить соединение.Чтобы отключиться от VPN, вернитесь в приложение OpenVPN и выберите Disconnect . 91 039

      Шаг № 13: Проверка подключения VPN

      Когда все установлено, простая проверка подтвердит, что все работает правильно. Если VPN-подключение не включено, откройте браузер и перейдите к DNSLeakTest.

      Сайт вернет IP-адрес, назначенный провайдером. Чтобы проверить настройки DNS на той же странице, нажмите «Расширенный тест», и он покажет вам, какие DNS-серверы вы используете.

      Теперь подключите клиент OpenVPN к Droplet VPN и обновите браузер. Должен появиться совершенно другой IP-адрес VPN-сервера. Вот так они теперь появляются во всем мире. Опять же, расширенный тест DNSLeakTest.com проверит ваши настройки DNS и подтвердит, что вы в настоящее время используете DNS, смещенный VPN.

      Шаг № 14: отозвать

      клиентских сертификатов

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

      Для этого войдите в каталог CA и исходный файл vars :

      cd ~/openvpn-ca

      исходные переменные

      Затем мы вызываем команду revoke-full , используя имя клиента, которого вы хотите отменить:

      ./отзыв-полный клиент3

      Будет показан некоторый вывод, заканчивающийся ошибкой 23. Это нормально, и процесс должен успешно сгенерировать необходимую отзывную информацию, которая хранится в файле с именем crl.pem в подкаталоге keys .

      Переместите этот файл в каталог конфигурации /etc/openvpn :

      sudo cp ~/openvpn-ca/keys/crl.pem/etc/openvpn

      Затем откройте файл конфигурации сервера OpenVPN:

      sudo nano/etc/openvpn/сервер.конф

      Внизу файла добавьте параметр crl-verify , чтобы сервер OpenVPN проверял список отзыва сертификатов, который мы создали для каждой попытки подключения:

      /etc/openvpn/server.conf

       crl-проверить crl.pem 

      Сохраните и закройте файл.

      Наконец, перезапустите OpenVPN для реализации отзыва сертификата:

      sudo systemctl перезапустить openvpn @ сервер

      Клиент должен иметь возможность успешно подключиться к серверу, используя старые учетные данные.

      Чтобы отозвать дополнительных клиентов, выполните этот процесс:

      • Создайте новый список отзыва сертификатов, получив файл vars в каталоге ~/openvpn-ca , а затем вызвав сценарий revoke-full с именем клиента.
      • Скопируйте новый список отзыва сертификатов в каталог /etc/openvpn , чтобы заменить старый список.
      • Перезапустите службу OpenVPN.
      • Этот процесс можно использовать для отзыва любых сертификатов, которые ранее были выданы вашему серверу.

      Применение

      Поздравляем! Теперь вы можете безопасно пользоваться Интернетом, защищая свою личность, местоположение и трафик от шпионов и цензоров.

      Чтобы настроить больше клиентов, просто выполните шаги 6 и 11–13 для каждого дополнительного устройства. Чтобы заблокировать доступ к клиентам, выполните шаг 14.

      Если вы не хотите бороться с этой установкой и настройкой - мы поможем с этим на наших серверах в рамках бесплатной Премиум Поддержки .Учебник по

      . Использование виртуальной глобальной сети Azure для создания подключения "точка — сеть" к Azure

      • Статья
      • Время считывания: 11 мин
      Полезна ли эта страница?

      Оцените свои впечатления

      да Нет

      Хотите что-нибудь добавить к этому мнению?

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

      Представлять на рассмотрение

      В этой статье

      В этом руководстве показано, как использовать виртуальную глобальную сеть для подключения к ресурсам в Azure через VPN-подключение OpenVPN или IPsec/IKE (IKEv2) с использованием пользовательской конфигурации VPN (P2S). Этот тип подключения требует, чтобы собственный клиент VPN был настроен на каждом подключающемся клиентском компьютере.

      • Если вы хотите создать VPN-подключение пользователя с помощью проверки подлинности Azure AD, воспользуйтесь статьей Настройка VPN-подключения пользователя — проверка подлинности Azure Active Directory.
      • Дополнительные сведения о виртуальной глобальной сети см. в разделе Обзор виртуальной глобальной сети.

      В этом руководстве содержится информация о том, как сделать следующее:

      • Создать виртуальную глобальную сеть
      • Создать пользовательскую конфигурацию VPN
      • Создать виртуальный концентратор и шлюз
      • Создать файлы конфигурации клиента
      • Настройка VPN-клиентов
      • Подключение к виртуальной сети
      • Просмотр виртуальной глобальной сети
      • Изменить настройки

      Предпосылки

      • У вас есть подписка Azure.Если у вас нет подписки Azure, создайте бесплатную учетную запись.

      • У вас есть виртуальная сеть, к которой вы хотите подключиться.

        • Убедитесь, что ни одна из подсетей локальных сетей не пересекается с виртуальными сетями, к которым вы хотите подключиться.
        • Чтобы создать виртуальную сеть на портале Azure, см. статью Краткое руководство.
      • В виртуальной сети не должно быть существующих шлюзов виртуальной сети.

        • Если в вашей виртуальной сети уже есть шлюзы (VPN или ExpressRoute), перед продолжением удалите все шлюзы.
        • Для этой конфигурации требуется, чтобы виртуальные сети подключались только к концентратору виртуальной глобальной сети.
      • Укажите диапазон IP-адресов, который вы хотите использовать для частного адресного пространства виртуального концентратора. Эта информация используется при настройке виртуального концентратора. Виртуальный концентратор — это виртуальная сеть, созданная и используемая Virtual WAN. Это ядро ​​вашей виртуальной глобальной сети в регионе. Диапазон адресного пространства должен соответствовать указанным правилам:

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

      Создать виртуальную глобальную сеть

      1. В портале на панели Поиск ресурсов введите Virtual WAN в поле поиска и выберите ключ .90 102

      2. Выберите Virtual WANs из результатов. На странице Virtual WAN выберите + Create, , чтобы открыть страницу Create WAN. 90 102

      3. На странице Создать WAN на вкладке Основной , заполнить поля. Измените образцы значений, чтобы применить их в своей среде.

        • Подписка: выберите подписку, которую хотите использовать.
        • Группа ресурсов: создать новую или использовать существующую.
        • Расположение группы ресурсов: Выберите расположение ресурса из раскрывающегося списка. WAN — это глобальный ресурс, а не конкретный регион. Однако вы должны выбрать регион для управления и найти ресурс WAN, который вы создаете.
        • Имя: Введите имя для вызова через виртуальную глобальную сеть.
        • Тип: Базовый или Стандартный. Выберите стандарт . Если вы выберете Basic, имейте в виду, что Basic Era VNN могут содержать только первичные концентраторы. Первичные концентраторы можно использовать только для соединений между сайтами.
      4. После заполнения полей внизу страницы выберите Обзор и создайте .

      5. После завершения проверки нажмите Create, , чтобы создать виртуальную глобальную сеть.

      Создать пользовательскую конфигурацию VPN

      Конфигурация VPN пользователя (P2S) определяет параметры для установления соединения удаленными клиентами. Инструкции, которым необходимо следовать, зависят от метода проверки подлинности, который вы хотите использовать.

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

      • Сертификаты Azure: для этой конфигурации требуются сертификаты .Вам необходимо сгенерировать или получить сертификаты. Сертификат клиента требуется для каждого клиента. Кроме того, должна быть предоставлена ​​информация о корневом сертификате (открытом ключе). Дополнительные сведения о необходимых сертификатах см. в разделе Создание и экспорт сертификатов.

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

      • Аутентификация пользователя Radius: Получить информацию об IP-адресе сервера Radius, секрете сервера Radius и сертификате.

      Этапы конфигурации

      1. Перейти в созданную виртуальную глобальную сеть.

      2. Выберите User VPN Configurations в меню слева.

      3. На странице User VPN Configurations выберите + Create User VPN Configuration.90 102

      4. На странице «Создать новый User VPN Configuration» на вкладке Basic в разделе Instance Details введите имя, которое вы хотите присвоить конфигурации VPN.

      5. W Тип туннеля , выберите тип туннеля из выпадающего списка. Варианты типа туннеля: IKEv2 VPN, OpenVPN, OpenVpn и IKEv2. Каждый тип туннеля требует различных настроек.

        Требования и параметры:

        IKEv2 VPN

        • Требования: Если выбрать тип туннеля IKEv2 , вам будет предложено выбрать метод аутентификации. Для IKEv2 можно указать только один метод аутентификации. Вы можете выбрать сертификат Azure, Azure Active Directory или аутентификацию на основе RADIUS.

        • Пользовательские параметры IPSec: Чтобы настроить параметры для IKE фазы 1 и 2, установите переключатель IPsec в положение Custom и выберите значения параметров.Дополнительные сведения о настраиваемых параметрах см. в статье Пользовательский IPsec.

        ОпенВПН

        • Требования: Если вы выберете тип для туннеля OpenVPN , вам будет предложено выбрать механизм аутентификации. Если вы выбрали тип туннеля OpenVPN, вы можете указать несколько методов аутентификации. Вы можете выбрать любое подмножество проверки подлинности RADIUS на основе сертификата Azure Active Directory Azure, Azure Active Directory или радиуса.Для проверки подлинности на основе RADIUS можно указать IP-адрес вторичного сервера RADIUS и секрет сервера.
      6. Настройте методы аутентификации , которые вы хотите использовать . Каждый метод проверки подлинности находится на отдельной вкладке: сертификат Azure , проверка подлинности RADIUS и Azure Active Directory . Некоторые методы аутентификации доступны только для определенных типов туннелей.

        На вкладке метода аутентификации, который вы хотите настроить, выберите Да, , чтобы открыть доступные параметры конфигурации.

        • Пример — проверка подлинности сертификата

        • Пример — аутентификация RADIUS

        • Образец — проверка подлинности Azure Active Directory

      7. Когда вы закончите настройку параметров, нажмите Review и создайте внизу страницы.

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

      Создать виртуальный концентратор и шлюз

      1. На странице виртуальной сети WAN выберите Hubs на левой панели. На странице Hubs выберите + New Hub. 90 102

      2. На странице Создать виртуальный концентратор просмотреть вкладку Основная информация.

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

        • Регион: Выберите регион, в котором вы хотите развернуть виртуальный концентратор.
        • Имя: Имя, по которому можно узнать виртуальный концентратор.
        • Частное адресное пространство концентратора: Диапазон адресов концентратора в нотации CIDR.
      4. Щелкните вкладку Point-to-Site, , чтобы открыть страницу конфигурации сети Point-to-Site.Чтобы просмотреть параметры точки-сайта, нажмите Да. 90 102

      5. Настройте следующие параметры:

        • Единицы масштабирования шлюза — представляет совокупную емкость шлюза VPN пользователя. Если вы выберете 40 или более единиц масштабирования шлюза, соответствующим образом спланируйте пул адресов своего клиента. Сведения о влиянии этого параметра на пул адресов клиентов см. в разделе О пулах адресов клиентов.Сведения о единицах масштабирования шлюза см. в разделе часто задаваемых вопросов.
        • Конфигурация "точка-сеть" — выберите пользовательскую конфигурацию VPN, созданную на предыдущем шаге.
        • Предпочтение маршрутизации . Предпочтение маршрутизации Azure позволяет выбрать способ маршрутизации трафика между Azure и Интернетом. Вы можете направить свой трафик через сеть Microsoft или через сеть ISP (общедоступный Интернет).Эти варианты также называются холодной маршрутизацией и горячей маршрутизацией соответственно. Общедоступный IP-адрес в виртуальной глобальной сети назначается службой на основе выбранного варианта маршрутизации. Дополнительные сведения о параметрах маршрутизации в сетях Microsoft или uisp см. в статье о параметрах маршрутизации.
        • Пул адресов клиентов — Пул адресов, из которого IP-адреса будут автоматически назначаться клиентам VPN. Дополнительные сведения см. в разделе О пулах адресов клиентов.
        • Пользовательские DNS-серверы — IP-адрес DNS-серверов, которые будут использовать клиенты. Вы можете указать до 5,
      6. Выберите элемент Review and Create, , чтобы проверить настройки.

      7. После успешной проверки выберите Создать . Создание концентратора может занять 30 минут и более.

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

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

      1. На странице WAN Virtual Network выберите User VPN Configurations.90 102

      2. На странице Конфигурации VPN пользователя выберите конфигурацию, а затем выберите Загрузить профиль VPN пользователя виртуальной глобальной сети. 90 102

        • После загрузки конфигурации уровня WAN вы получите встроенный User VPN Traffic Manager.

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

        • Если концентратор по какой-либо причине недоступен, встроенное управление трафиком обеспечивает подключение (через другой концентратор) к ресурсам Azure для пользователей типа "точка-сеть". Вы всегда можете скачать конкретную конфигурацию VPN для хаба, перейдя на хаб. В User VPN (Point-to-Site) загрузите профиль VPN пользователя для виртуального концентратора.90 102

      3. На странице Получить профиль VPN пользователя Виртуальная глобальная сеть выберите тип проверки подлинности, а затем щелкните Создать и загрузить профиль . 90 102

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

      Настройка VPN-клиентов

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

      ОпенВПН

      IKEv2

      1. Выберите файлы конфигурации VPN-клиента, соответствующие архитектуре компьютера Windows. Для 64-битной архитектуры процессора выберите пакет установщика «VpnClientSetupAmd64». Для 32-разрядной архитектуры процессора выберите пакет установщика «VpnClientSetupX86».

      2. Дважды щелкните пакет, чтобы установить его. Если появится всплывающее окно SmartScreen, выберите Дополнительная информация, , а затем Выполнить в любом случае. 90 102

      3. На клиентском компьютере перейдите к Network Settings и выберите VPN. VPN-подключение содержит имя виртуальной сети, к которой вы подключаетесь.

      4. Перед попыткой подключения убедитесь, что сертификат клиента установлен на клиентском компьютере.Сертификат клиента требуется для проверки подлинности при использовании собственного типа сертификата проверки подлинности Azure. Дополнительные сведения о создании сертификатов см. в разделе Создание сертификатов. Сведения об установке сертификата клиента см. в разделе Установка сертификата клиента.

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

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

      1. Перейдите на виртуальную глобальную сеть .

      2. Выберите для виртуальных сетевых подключений. 90 102

      3. На странице подключения к виртуальной сети выберите + Добавить подключение. 90 102

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

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

      Просмотр виртуальной глобальной сети

      1. Перейти к Виртуальная глобальная сеть. 90 102

      2. На странице Обзор каждая точка на карте представляет собой центр.

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

      Изменить настройки

      Изменение пула адресов клиента

      1. Перейти к виртуальному концентратору User VPN (точка-сеть).90 102

      2. Щелкните значение рядом с единицей масштабирования шлюза , , чтобы открыть страницу Edit User VPN Gateway.

      3. На странице Изменить пользовательский VPN-шлюз отредактируйте настройки.

      4. Щелкните Изменить внизу страницы, чтобы проверить настройки.

      5. Нажмите Подтвердить, , чтобы сохранить настройки. Все изменения на этой странице могут занять до 30 минут.

      Изменение DNS-серверов

      1. Перейти к виртуальному концентратору User VPN (точка-сеть). 90 102

      2. Щелкните значение рядом с Пользовательские DNS-серверы , , чтобы открыть страницу Изменить пользовательский VPN-шлюз. 90 102

      3. На странице Изменить пользовательский VPN-шлюз отредактируйте поле Пользовательские DNS-серверы. Введите IP-адреса DNS-серверов в текстовые поля Custom DNS Servers. Можно указать до пяти DNS-серверов.

      4. Щелкните Изменить внизу страницы, чтобы проверить настройки.

      5. Нажмите Подтвердить, , чтобы сохранить настройки. Все изменения на этой странице могут занять до 30 минут.

      Очистка ресурсов

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

      1. Откройте созданную виртуальную глобальную сеть.

      2. Выберите виртуальный концентратор, связанный с виртуальной глобальной сетью, чтобы открыть страницу концентратора.

      3. Удалите все шлюзы в следующем порядке для типа шлюза. Это может занять 30 минут.

        VPN:

        1. Отключение VPN-сайта
        2. Удалить VPN-соединения
        3. Удалить VPN-шлюзы

        Экспресс-маршрут:

        1. Удалить соединения экспресс-маршрута
        2. Удалить шлюзы ExpressRoute
        3. 90 165
        4. Вы можете удалить центр в этот момент или удалить его позже, после удаления группы ресурсов.

        5. Повторите этот шаг для всех концентраторов, связанных с виртуальной глобальной сетью.

        6. Перейдите в свою группу ресурсов на портале Azure.

        7. Выберите Удалить группу ресурсов . При этом удаляются все ресурсы в группе ресурсов, включая концентраторы и виртуальную глобальную сеть.

        Следующие шаги

        .

        Смотрите также

Только новые статьи

Введите свой e-mail

Видео-курс

Blender для новичков

Ваше имя:Ваш E-Mail: