Убедитесь, что пакет openvpn уже установлен. Если еще нет, то в Centos его можно установить, например так:
yum install 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/ . Они понадобятся для создания ключей и сертификатов.
Чтобы меньше набирать в последующих действиях, стоит внести несколько исправлений в файл /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