Установка утилиты Easy-RSA
Все операции по созданию ключей и сертификатов можно выполнить с помощью утилиты openssl. Однако проще воспользоваться специально созданной для этого программой Easy-RSA, которая использует openssl для выполнения действий с ключами и сертификатами.
Ранее утилита Easy-RSA поставлялась вместе с OpenVPN, но теперь это отдельный проект.
Все операции с удостоверяющим центром и сертификатами можно (и нужно) проводить от имени непривилегированного пользователя.
$ ./easyrsa init-pki
На втором шаге с помощью команды build-ca создайте удостоверяющий центр CA:
$ ./easyrsa build-ca
Создание списка отзывов сертификатов
Если сотрудник уволился, необходимо заблокировать его доступ в сеть VPN компании. Специально для этой цели в OpenVPN предусмотрен список отзыва сертификатов CRL. Создайте его такой командой:
$ cd /home/ca/easy-rsa-master/easyrsa3
$ ./easyrsa gen-crl
Подготовка сертификата и ключа для сервера OpenVPN
Устанавливаем на сервере OpenVPN утилиту Easy-RSA и запускаем инициализацию инфраструктуры публичных ключей PKI:
$ wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
$ unzip master.zip
$ cd /home/vpnoperator/easy-rsa-master/easyrsa3
$ ./easyrsa init-pki
На следующем этапе получим запрос на сертификат и приватный ключ сервера OpenVPN:
$ ./easyrsa gen-req server nopass
Импортируйте от имени пользователя ca запрос в PKI:
$ cd /home/ca/easy-rsa-master/easyrsa3
$ ./easyrsa import-req /mnt/flash/server.req vpn-server
Здесь мы указали сокращенное имя запроса на сертификат как “vpn-server”. Это сокращенное имя будет использовано в дальнейших операциях с сертификатом.
Если ошибок нет, подписываем запрос на получение сертификата:
./easyrsa sign-req server vpn-server
Генерация файла Диффи-Хелмана
Создайте ключи Диффи-Хелмана следующей командой:
$ cd /home/vpnoperator/easy-rsa-master/easyrsa3
$ ./easyrsa gen-dh
Создание статического ключа HMAC
Для создания ключа HMAC используйте команду openvpn с опциями –genkey и –secret:
# cd /etc/openvpn
# openvpn --genkey --secret ta.key
Установка и запуск ПО клиента OpenVPN
Процедура установки клиента OpenVPN аналогична процедуре установки сервера OpenVPN. Основные отличия в файлах конфигурации.
Создание инфраструктуры публичных ключей PKI
Скачайте утилиту Easy-RSA с сайта github.com/OpenVPN/easy-rsa.
$ 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 для создания запроса на сертификат и приватного ключа
Импортируйте запрос в PKI, используя в качестве короткого имени то что вы указали в common name:
$ cd /home/ca/easy-rsa-master/easyrsa3
$ ./easyrsa import-req /mnt/flash/client.req name
Далее подпишите запрос на получение сертификата:
$ ./easyrsa sign-req client name
Проброс сети за сервером:
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE sudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT sudo iptables -A INPUT -i tun0 -j ACCEPT sudo iptables -A FORWARD -i tun0 -j ACCEPT sudo iptables -A FORWARD -o tun0 -j ACCEPT