10.4 Настройка OpenVPN сервера

Подготовка системы

Обновите систему командой:

# sudo yum update

На время работ отключите SeLinux

Для отключения SeLinux в файле /etc/selinux/config замените строку SELINUX=enforcing на SELINUX=disabled.

# nano /etc/selinux/config

SELINUX=disabled

Задайте имя хоста. Для примера, я буду использовать ipa.local.com

# hostnamectl set-hostname ipa.local.com

Теперь перезагрузите сервер и проверьте настройки.

# reboot

После загрузки системы проверим имя хоста:

# hostname

ipa.local.com

Создание ключей и сертификатов с помощью easy-rsa

Создаем директорию для ключей:

# mkdir /etc/openvpn/keys

Устанавливаем архиватор zip:

# yum -y install unzip zip

Скачиваем и устанавливаем утилиту Easy-RSA:

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

Если получаете сообщение:

-bash: wget: command not found

То устанавливаете wget:

# yum -y install wget

Продолжаем:

# unzip master.zip
# cd /etc/openvpn/keys/easy-rsa-master/easyrsa3

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

# mv vars.example vars
# ./easyrsa init-pki

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

# ./easyrsa build-ca

Не забудьте указанный пароль. Его нужно будет вводить каждый раз при создании нового сертификата openvpn.

Мы получили 2 ключа:

/etc/openvpn/keys/easy-rsa-master/easyrsa3/pki/private/ca.key

/etc/openvpn/keys/easy-rsa-master/easyrsa3/pki/ca.crt

Первый ключ секретный, его нужно оставить на сервере и никому не отдавать. Второй — открытый, его мы будем вместе с пользовательскими сертификатами передавать клиентам.

Создаем запрос сертификата для сервера без пароля с помощью опции nopass, иначе придется вводить пароль с консоли при каждом запуске сервера:

# ./easyrsa gen-req server nopass

Подписываем запрос на получение сертификата у нашего CA:

# ./easyrsa sign-req server server

В процессе работы скрипта вводим пароль от CA, который указывали раньше и отвечаем на вопрос yes. Мы получили подписанный удостоверяющим центром сертификат для сервера — /etc/openvpn/keys/easy-rsa-master/easyrsa3/pki/issued/server.crt

Нам еще пригодится ключ Диффи-Хелмана, генерируем его:

# ./easyrsa gen-dh

По завершению работы скрипта получаем файл dh сертификата — /etc/openvpn/keys/easy-rsa-master/easyrsa3/pki/dh.pem.

Копируем в папку /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

Создадим ключ для клиента openvpn:

# ./easyrsa gen-req client nopass
# ./easyrsa sign-req client client

Процедура аналогична созданию сертификата для сервера. Так же вводим пароль, отвечаем yes. В результате получаем подписанный сертификат клиента:

/etc/openvpn/keys/easy-rsa-master/easyrsa3/pki/issued/client.crt

/etc/openvpn/keys/easy-rsa-master/easyrsa3/pki/private/client.key

Клиенту, которым у нас является шлюз филиала нужно будет передать следующий набор файлов — client.crt, client.key, ca.crt.

Установка и настройка OpenVPN

Установим из репозитория openvpn:

# yum –y install openvpn

Создадим файл конфигурации сервера:

#nano /etc/openvpn/server.conf

dev             tap                     # tap or tun
port            1194                  
proto           tcp                     # tcp or udp
status          /var/log/status.log
#log            /var/log/openvpn.log
log-append      /var/log/openvpn.log
verb            3                       
keepalive       10 120                 
max-clients     50
persist-key
persist-tun
server  10.9.1.0 255.255.255.0 #диапазон виртуальной сети vpn
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem

Разрешаем автоматический старт сервиса vpn:

# systemctl enable openvpn@server

И запускаем его:

# systemctl start openvpn@server

Настройка OpenVPN клиента.

Подготовка системы

Обновите систему командой:

# sudo yum update

Для работы с ifconfig и прочими сетевыми утилитами необходимо установить пакет net-tools.

# yum -y install net-tools.x86_64

На время работ отключите SeLinux и firewall. Не забудьте, что после настройки vpn сети и OpenIPA, нужно включить эти службы и добавить исключения в firewall.

Отключим firewall:

# systemctl stop firewalld
# systemctl disable firewalld

Для отключения SeLinux в файле /etc/selinux/config замените строку SELINUX=enforcing на SELINUX=disabled.

# nano /etc/selinux/config
SELINUX=disabled

Задайте имя хоста. Для примера, я буду использовать user.local.com

# hostnamectl set-hostname user.local.com

Теперь перезагрузите сервер и проверьте настройки.

# reboot

После загрузки системы проверим имя хоста:

# hostname

client.local.com

Настройка клиента

Установим из репозитория openvpn:

# yum –y install openvpn

Скопируйте в /etc/openvpn сертификаты и ключ клиента, созданные на сервере, это файлы ca.crt, client.crt, client.key

Создадим файл конфигурации сервера:

#nano /etc/openvpn/client.conf
dev             tap                     # tap or tun
proto           tcp                     # tcp or udp
status          /var/log/status.log            
#log            /var/log/openvpn.log
log-append      /var/log/openvpn.log
verb            3                      
persist-key
persist-tun
client
remote 192.168.0.12  #внешний ip openvpn сервера
ca /etc/openvpn/ca.crt
cert /etc/openvpn/ client.crt
key /etc/openvpn/ client.key
dh /etc/openvpn/dh.pem

Разрешаем автоматический старт сервиса vpn:

# systemctl enable openvpn@server

И запускаем его:

# systemctl start openvpn@server

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.

Print Friendly, PDF & Email