===== Установка 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