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

Для удобства настройки заходим под суперпользователем:

$ sudo su

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

Обновляем установленные пакеты:

# yum update

Устанавливаем утилиту для синхронизации времени:

# yum install ntp

Установим правильную временную зону:

# \cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* в данном примере московское время.

Синхронизируем время с публичным сервером времени:

# ntpdate ru.pool.ntp.org

Установка, настройка и запуск VPN-сервера

Установка OpenVPN

Устанавливаем необходимые пакеты следующей командой:

# yum install openvpn easy-rsa

Создание сертификатов

Создаем каталог, в котором будем хранить сертификаты:

# mkdir /etc/openvpn/easy-rsa

Переходим в созданный нами каталог:

# cd /etc/openvpn/easy-rsa

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

# cp -r /usr/share/easy-rsa/2.0/* .

* в некоторых случаях, последний каталог 2.0 может быть другим, например, если установлена другая версия ПО.

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

# vi vars

и приведем его к следующему виду:

export KEY_COUNTRY="RU"
export KEY_PROVINCE="Sankt-Petersburg"
export KEY_CITY="Sankt-Petersburg"
export KEY_ORG="DMOSK COMPANY"
export KEY_EMAIL="master@dmosk.ru"
export KEY_CN="DMOSK"
export KEY_OU="DMOSK"
export KEY_NAME="name-openvpn-server.dmosk.ru"
export KEY_ALTNAMES="name-openvpn-server"

* где KEY_CN и KEY_OU: рабочие подразделения (например, можно указать название отдела); KEY_NAME: адрес, по которому будет выполняться подключение (можно указать полное наименование сервера); KEY_ALTNAMES — альтернативный адрес.

Запускаем отредактированный файл на исполнение:

# . ./vars

Если скрипт выполнится без ошибок, мы увидим следующее:

NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

На всякий случай, почистим каталог от старых сертификатов:

# ./clean-all

Генерируем первый сертификат:

# ./build-ca

на все запросы нажимаем Enter, так как всю верную информацию мы ввели в файле vars.

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

# ./build-key-server server

# ./build-dh

# ./build-key client

# openvpn --genkey --secret keys/ta.key

Копируем каталог с созданными сертификатами и ключами в /etc/openvpn:

# cp -r keys /etc/openvpn/

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

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

# vi /etc/openvpn/server.conf

И вставляем в него следующее:

local 192.168.0.15
port 443
proto udp
dev tun
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh2048.pem
tls-auth keys/ta.key 0
server 172.16.10.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
max-clients 32
client-to-client
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
# 0 is silent, except for fatal errors
# 4 is reasonable for general usage
# 5 and 6 can help to debug connection problems
# 9 is extremely verbose
verb 4
mute 20
daemon
mode server
tls-server
comp-lzo

* где из всех параметров внести изменения нужно в следующие — local: IP-адрес, на котором будет обрабатывать запросы OpenVPN; port: сетевой порт (443 позволит избежать проблем при использовании Интернета в общественных местах, но может быть любым из свободных, например 1723).

Создаем каталог для логов сервера:

# mkdir /var/log/openvpn

Отключаем Selinux:

# setenforce 0

Чтобы Selinux не включился после перезагрузки, откроем данный файл:

# vi /etc/selinux/config

И отредактируем строчку SELINUX=enforcing на:

SELINUX=disabled

Создаем правило для firewalld:

# firewall-cmd --permanent --add-port=443/udp

и применяем его:

# firewall-cmd --reload

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

# systemctl enable openvpn@server

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

# systemctl start openvpn@server

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

Для начала, на сервере скопируем ключи во временную директорию, выполнив последовательно 3 команды:

# mkdir /tmp/keys
# cd /etc/openvpn/keys
# cp ca.crt client.crt client.key dh2048.pem ta.key /tmp/keys

Заходим на официальную страницу загрузки openvpn и скачиваем клиента для Windows:

Загрузка клиента openvpn

Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».

Переходим в папку C:\Program Files\OpenVPN\config. И копируем в нее файлы ca.crt, client.crt, client.key, dh2048.pem, ta.key из каталога /tmp/keys на сервере, например, при помощи программы WinSCP.

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

# rm -R /tmp/keys

Теперь возвращаемся к компьютеру с Windows, открываем блокнот от имени администратора и вставляем следующие строки:

client
resolv-retry infinite
nobind
remote 192.168.0.15 443
proto udp
dev tun
comp-lzo
ca ca.crt
cert client.crt
key client.key
dh dh2048.pem
tls-client
tls-auth ta.key 1
float
keepalive 10 120
persist-key
persist-tun
verb 0

* где 192.168.0.15 443 — IP-адрес OpenVPN-сервера и порт, на котором он принимает запросы.

Сохраняем файл с именем config.ovpn в папке C:\Program Files\OpenVPN\config.

Запускаем с рабочего стола программу «OpenVPN GUI» от имени администратора (это важно).

Нажимаем правой кнопкой по появившемуся в трее значку и выбираем «Подключиться»:

Запуск подключения openvpn-клиента к серверу

Произойдет подключение и значок поменяет цвет с серого/желтого на зеленый.

#Сети #Сервера #Интернет #Безопасность #UNIX #Linux #CentOS
Фотография автора
Была ли полезна вам эта инструкция?

Да            Нет