- •Введение
- •Глава 1. Основная часть
- •1.1 Основные топологии компьютерных сетей
- •1.3 Стек протоколов tcp/ip
- •Глава 2. Специальная часть
- •2.1 Цель курсового проекта
- •2.2 Технология виртуальных частных сетей virtual private network (vpn).
- •2.3 Компоненты сети openvpn.
- •2.4 Создание удостоверяющего центра ca.
- •2.5 Создание сервера openvpn.
- •2.6 Установка и запуск по клиента openvpn.
- •2.7 Установка прокси-сервера squid.
- •Глава 3. Мероприятия по технике безопасности
- •Заключение
- •Список использованных источников
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 правой клавишей мыши и выбрать из меню строку Отключиться.
