Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
137.06 Кб
Скачать

2.6 Установка и запуск по клиента openvpn.

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

# apt-get install openvpn

Подготовка файлов конфигурации

Файлы конфигурации, ключи и сертификаты должны находится в каталоге /etc/openvpn.

Далее подготовим файлы конфигурации openssl.cnf и server.conf.

Файл openssl.cnf, определяющий конфигурацию OpenSSL, используем точно такой же, как и для сервера OpenVPN.

Содержимое файла server.conf для клиента OpenVPN

Обращаем внимание на параметр remote, в котором указан адрес IP сервера OpenVPN:

remote 192.168.0.54 1194

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

Создаем каталог для журнала клиента OpenVPN:

# mkdir /var/log/openvpn/

Создание инфраструктуры публичных ключей PKI

Подключаемся к хосту клиента OpenVPN (в нашем случае это хост разработчика ПО) с правами обычного пользователя developer1 и скачиваем утилиту Easy-RSA с сайта github.com/OpenVPN/easy-rsa.

$ cd /home/developer1

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

$ unzip master.zip

Запускаем инициализацию инфраструктуры публичных ключей PKI:

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

$ ./easyrsa init-pki

В результате будет подготовлен каталог PKI:

/home/developer1/easy-rsa-master/easyrsa3/pki

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

Создаем запрос на сертификат и приватный ключ рабочей станции разработчика developer1:

$ ./easyrsa gen-req client nopass

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

Generating a 2048 bit RSA private key

..............................................................................................+sftp++

................................+++

writing new private key to '/home/developer1/easy-rsa-master/easyrsa3/pki/private/client.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.

-----

Common Name (eg: your user, host, or server name) [client]:developer1

Keypair and certificate request completed. Your files are:

req: /home/developer1/easy-rsa-master/easyrsa3/pki/reqs/client.req

key: /home/developer1/easy-rsa-master/easyrsa3/pki/private/client.key

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

$ ./easyrsa gen-req client

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

Теперь нужно перенести созданный запрос сертификата /home/developer1/easy-rsa-master/easyrsa3/pki/reqs/client.req на хост удостоверяющего центра CA и записать в файл /home/ca/client.req.

Сделаем это с помощью USB флэш-диска, если хост CA не подключен к сети.

Импортируем запрос в PKI, используя в качестве короткого имени developer1:

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

$ ./easyrsa import-req /mnt/flash/client.req developer1

Далее подписываем запрос на получение сертификата:

$ ./easyrsa sign-req client developer1

После ввода подтверждения и пароля приватного ключа CA будет создан сертификат:

/home/ca/easy-rsa-master/easyrsa3/pki/issued/developer1.crt

Записываем файл developer1.crt на USB флэш-диск, чтобы перенести его на хост клиента OpenVPN.

Скопируем файл сертификата в каталог /etc/openvpn:

# mount -t vfat /dev/sdb1 /mnt/flash

# cp /mnt/flash/developer1.crt /etc/openvpn

Итак, теперь у нас есть файл приватного ключа рабочей станции client.key и файл сертификата developer1.crt, подписанного удостоверяющим центром CA.

Скопируем файл ключа в каталог /etc/openvpn:

# cp /home/developer1/easy-rsa-master/easyrsa3/pki/private/client.key

/etc/openvpn

Скопируем в каталог /etc/openvpn клиента VPN следующие файлы, подготовленные на USB диске:

# cp /mnt/flash/ca.crt /etc/openvpn

# cp /mnt/flash/crl.pem /etc/openvpn

# cp /mnt/flash/ta.key /etc/openvpn

Файлы ca.crt и crl.pem были созданы на хосте удостоверяющего центра CA, а файл ta.key — на хосте сервера OpenVPN.

Запуск клиента OpenVPN

Запускаем демон следующей командой:

# /etc/init.d/openvpn start

Если возникла проблема с запуском клиента, проверяем содержимое журнала /var/log/openvpn/openvpn-client.log

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

# ifconfig

...

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

inet addr:10.15.0.2 P-t-P:10.15.0.2 Mask:255.255.255.0

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Проверяем также, что сервер OpenVPN откликается на команду ping по адресу 10.15.0.1:

# ping 10.15.0.1

Особенности установки клиента OpenVPN в Microsoft Windows

Для тех сотрудников, кто использует на своих рабочих станциях ОС Microsoft Windows, доступ к серверу OpenVPN настраивается с помощью ПО OpenVPN-GUI.

Установка OpenVPN-GUI

Выбираем вариант загрузки Windows Installer (64-bit) или Windows Installer (32-bit) в зависимости от разрядности версии ОС Microsoft Windows. Далее запускаем полученный файл и выполняем установку по умолчанию. Файлы конфигурации, сертификаты и ключи необходимо записать в папку C:\Program Files\OpenVPN\config.

В папку C:\Program Files\OpenVPN\easy-rsa устанавливается версия программы Easy-RSA для Windows.

Краткую инструкцию по использованию Easy-RSA для Windows можно найти в файле C:\Program Files\OpenVPN\easy-rsa\README.txt

Рассмотрим вариант, при котором запрос на сертификат создается на хосте Microsoft Windows, а затем передается через USB флэш-диск на хост удостоверяющего центра CA. Там на основании запроса создается подписанный файл сертификата и, опять же, через USB флэш-диск, передается на хост Microsoft Windows.

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

Создадим запрос на сертификат.

Прежде всего, запускаем консоль с правами администратора. Для удобства вместо стандартной консоли Microsoft Windows можно использовать бесплатный эмулятор консоли ConEmu-Maximus5.

Запустив консоль, переходим в каталог Easy-RSA и выполняем команды:

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

init-config.bat

clean-all

В результате будет создан каталог C:\Program Files\OpenVPN\easy-rsa\keys и файл vars.bat.

Отредактируем в файле vars.bat строки, указав код своей страны KEY_COUNTRY и региона KEY_PROVINCE, название города KEY_CITY, компании KEY_ORG, адрес электронной почты KEY_EMAIL и название отдела KEY_OU:

set KEY_COUNTRY=RU

set KEY_PROVINCE=RU

set KEY_CITY=Moscow

set KEY_ORG=IT-Company

set KEY_EMAIL=develop@itcompany.ru

set KEY_CN=changeme

set KEY_NAME=changeme

set KEY_OU=IT

Создаем приватный ключ хоста и запрос на сертификат:

vars

build-ca

build-key client

Отвечаем на вопросы, аналогичные тем, что задаются при создании ключей и сертификатов для узлов OpenVPN в Debian Linux или FreeBSD.

После этого в каталоге C:\Program Files\OpenVPN\easy-rsa\keys будет создан файл запроса сертификата client.csr, сертификат client.crt и файл приватного ключа клиента client.key.

Из этих файлов нам потребуются только два — запрос сертификата client.csr и приватный ключ client.key. Сертификат client.crt подписан приватным ключом хоста Microsoft Windows, созданным командой build-ca, и не подойдет для работы с нашим сервером OpenVPN. Тут необходим сертификат, созданный нашим удостоверяющим центром CA.

Получение сертификата от удостоверяющего центра CA

Скопируем файл запроса сертификата client.csr через USB флэш-диск на хост удостоверяющего центра и создаем запрос, аналогично тому, как мы это делали для клиента OpenVPN на базе Debian Linux. Записываем полученный сертификат на USB флэш-диск, чтобы перенести его на хост Microsoft Windows.

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

Создаем файл конфигурации клиента OpenVPN в каталоге C:\Program Files\OpenVPN\config. Расширение имени этого файла должно быть ovpn. Вот пример файла:

client

dev tun

proto udp

remote 192.168.0.54 1194

tls-client

ca "key/ca.crt"

cert "key/developer-w1.crt"

key "key/client.key"

tls-auth "key/ta.key" 1

comp-lzo

tun-mtu 1500

mssfix 1450

verb 3

Здесь предполагается, что мы скопировали в каталог C:\Program Files\OpenVPN\config\key следующие файлы:

ca.crt — сертификат удостоверяющего центра CA;

developer-w1.crt — сертификат хоста Microsoft Windows, подписанный удостоверяющим центром CA;

client.key — приватный ключ хоста Microsoft Windows;

ta.key — ключ HMAC для дополнительной защиты от DoS-атак и флуда, скопированный с сервера OpenVPN

Запуск OpenVPN-GUI

Запускаем OpenVPN-GUI как обычное приложение Windows с помощью кнопки Пуск (существует также возможность запуска OpenVPN-GUI в качестве службы). В панели системных задач (в системном «трее», или в панели System Tray) появится значок OpenVPN-GUI в виде небольшого окна с замком.

Щелкнем этот значок правой клавишей мыши и выберем имя файла конфигурации, который мы создали в каталоге C:\Program Files\OpenVPN\config. Если все настроено правильно, на экране появится окно соединения, в котором будут отображаться сообщения.

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

Чтобы разъединить канал OpenVPN, нужно щелкнуть значок OpenVPN-GUI правой клавишей мыши и выбрать из меню строку Отключиться.