Содержание

Установка OpenVPN

Убедитесь, что пакет openvpn уже установлен. Если еще нет, то в Centos его можно установить, например так:

yum install openvpn

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

Для функционирования OpenVPN необходим сертификат сервера и сертификаты клиентов, выпущенные одним Центром Сертификации (Certification Authority, CA), то есть требуется инфраструктура открытых ключей (Public Key Infrastructure, PKI). Самый простой способ получить эти сертификаты, это воспользоваться входящим в пакет набором скриптов easy-rsa на OpenVPN сервере, который будет принимать входящие подключения.

Пакет openvpn предоставляет набор скриптов называющихся easy-rsa. По умолчанию, эти скрипты находятся в каталоге /usr/share/doc/openvpn-2.0.9/easy-rsa/ . Однако, они должны находится в /etc/openvpn чтобы работать без проблем. Скопируем эти файлы:

cp -R /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn

Теперь необходимые для настройки OpenVPN PKI файлы теперь находятся в каталоге /etc/openvpn/easy-rsa/2.0/ . Они понадобятся для создания ключей и сертификатов.

Настройка переменных для OpenVPN PKI

Чтобы меньше набирать в последующих действиях, стоит внести несколько исправлений в файл /etc/openvpn/easy-rsa/2.0/vars . В самом конце файла находится несколько строк определяющих содержимое создаваемых сертификатов. Измените это по своему усмотрению:

export KEY_COUNTRY=«RU»
export KEY_PROVINCE=«RU»
export KEY_CITY=«Moscow»
export KEY_ORG=«Home»
export KEY_EMAIL=«sergey@otriadnov.ru»
export KEY_CN=«aster»
export KEY_NAME=«aster»
export KEY_OU=«it»

KEY_CN, т.е. Common Name сертификата необходимо будет указывать свое для каждого сертификата, таким образом стоит оставить это полу пустым, или ввести что-то, что будет в любом сертификате.

Из необязательного, можно увеличить размер ключа до 2048, изменив 1024 на 2048 в строке:

export KEY_SIZE=1024
но следует помнить, что это увеличит накладные расходы.

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

# Срок действия сертификата Центра Сертификации
export CA_EXPIRE=3650
# Срок действия выпускаемых сертификатов
export KEY_EXPIRE=3650
где значение по-умолчанию составляет приблизительно 10 лет, что более чем достаточно.

1. Установка openvpn

um -y install openvpn

Создаем директорию для ключей: mkdir /etc/openvpn/keys

cd /etc/openvpn/keys wget https://github.com/OpenVPN/easy-rsa/archive/master.zip unzip master.zip cd /etc/openvpn/keys/easy-rsa-master/easyrsa3

mv vars.example vars

Создаем структуру публичных PKI ключей: ./easyrsa init-pki

Создайте удостоверяющий центр CA:

./easyrsa build-ca

Создать ключи Диффи-Хелмана: ./easyrsa gen-dh

Создаем запрос сертификата для сервера без пароля с помощью опции nopass, иначе придется вводить пароль с консоли при каждом запуске сервера: ./easyrsa gen-req vpn-server nopass

Подписываем запрос на получение сертификата у нашего CA: ./easyrsa sign-req server vpn-server

Создание списка отзывов сертификатов: ./easyrsa gen-crl

Создать «HMAC firewall» для защиты от DoS аттак и флуда UDP порта: openvpn –genkey –secret ta.key

Если нужно заблокировать выданный ранее сертификат, воспользуйтесь следующей командой: ./easyrsa revoke developer5

Копируем в папку /etc/openvpn все необходимые для работы openvpn сервера ключи:

cp pki/ca.crt /etc/openvpn/ca.crt cp pki/dh.pem /etc/openvpn/dh.pem cp pki/issued/server.crt /etc/openvpn/server.crt cp pki/private/server.key /etc/openvpn/server.key cp pki/crl.pem /etc/openvpn/crl.pem cp pki/ta.key /etc/openvpn/ta.key

Создадим ключ для клиента openvpn: ./easyrsa gen-req sip275 nopass ./easyrsa sign-req client sip275