Установка і настройка openvpn-сервера на centos 7

У цьому посібнику буде описаний процес установки і настройки інструменту OpenVPN на віртуальному сервері під керуванням CentOS 7. OpenVPN - це відкритий програмний продукт для створення віртуальних приватних мереж і підключення до них за відкритими інтернет-каналах.

Перш ніж почати, потрібно встановити додаткові пакети з репозиторію Enterprise Linux (EPEL). Це необхідно тому, що OpenVPN недоступний в CentOS за замовчуванням. Репозиторій EPEL підтримується спільнотою Fedora Project і містить нестандартні для CentOS, але популярні пакети додатків.

yum install epel-release

Крок # 1: Установка пакета OpenVPN

Перш за все, необхідно встановити OpenVPN. Також ми встановимо інструмент Easy RSA - він буде використовуватися для створення пар SSL-ключів, які забезпечать безпеку VPN-з'єднань.

yum install openvpn easy-rsa -y

Крок # 2: Налаштування сервісу

В директорії документації OpenVPN містяться файли з тестовими конфігураціями програми. Скопіюємо файл server.conf - на його основі ми створимо свою конфігурацію.

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf / etc / openvpn

Тепер відкриємо його для редагування:

Тут потрібно буде внести кілька змін. Коли в подальшому ми будемо генерувати ключі в програмі Easy RSA, їх розмір буде за замовчуванням складати 2048 байт, тому потрібно переконатися, що відповідне значення зазначено в файлі налаштувань. Потрібно змінити назву файлу dh на dh2048.pem:

  • безкоштовне тестування
  • Вартість від 0,4 руб. / Год
  • безлімітний трафік

Потім потрібно вказати DNS-сервери, оскільки клієнтські програми не зможуть використовувати сервери інтернет-провайдера. Найлогічнішим виходом є використання публічних DNS-серверів Google 8.8.8.8 і 8.8.4.4.

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

user nobody
group nobody

Потім потрібно зберегти файл і вийти з нього.

Крок # 3: Створення ключів та сертифікатів

Після завершення роботи з конфігураційних файлів, потрібно створити ключі та сертифікати. Пакет Easy RSA включає скрипти, за допомогою яких можна це зробити.

Створимо директорію, в якій будуть зберігатися ключі:

mkdir -p / etc / openvpn / easy-rsa / keys

У цю директорію потрібно скопіювати скрипти для генерації ключів і сертифікатів:

cp -rf /usr/share/easy-rsa/2.0/* / etc / openvpn / easy-rsa

З метою оптимізації подальшої роботи з OpenVPN можна дещо модифікувати скрипти генерації, щоб кожного разу не вводити одні і ті ж значення. Потрібна інформація зберігається в файлі vars. тому відредагуємо його:

Будемо змінювати рядки, які починаються з KEY_. У них слід вказати дані своєї компанії. Найважливіші параметри:

  • KEY_NAME: Слід вказати значення server. інакше доведеться вносити зміни в конфігураційні файли, в яких згадується server.key і server.crt.
  • KEY_CN: тут треба написати домен або піддомен, який вказує на ваш сервер.

В інші поля можна внести інформацію про компанію:

# These are the default values ​​for fields
# Which will be placed in the certificate.
# Do not leave any of these fields blank.
export KEY_COUNTRY = "RU"
export KEY_PROVINCE = "Moscow"
export KEY_CITY = "Moscow"
export KEY_ORG = "OOO Romashka"
export KEY_EMAIL = "[email protected]"
export KEY_OU = "Community"

# X509 Subject Field
export KEY_NAME = "server"

Також слід запобігти можливості збою завантаження конфігурації SSL через неможливість визначення версії програми. Для скопіюємо потрібний конфігураційний файл і видалимо з назви номер версії:

cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

Тепер створимо ключі та сертифікати. Для цього перейдемо в директорію easy-rsa і запустимо команду source для нових змінних:

cd / etc / openvpn / easy-rsa
source ./vars

Потім потрібно видалити всі попередні версії ключів і сертифікатів, які можуть міститися в цій директорії:

Вказуємо інформацію про організацію, що видала сертифікат:

Система задасть кілька запитань, але оскільки ми вже вносили необхідні дані в конфігураційний файл, можна просто натискати Enter замість відповіді.

Тепер потрібно згенерувати ключ і сертифікат сервера. І знову можна просто натискати Enter у відповідь на питання системи. Щоб зберегти дані, в кінці процедури слід натиснути Y (yes).

Також потрібно згенерувати файл обміну за алгоритмом Діффі-Хеллмана. Процес може зайняти кілька хвилин:

Згенеруємо додатковий ключ ta.key.

openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/ta.key

Тепер скопіюємо створені сертифікати і ключі в директорію OpenVPN.

cd / etc / openvpn / easy-rsa / keys
cp dh2048.pem ca.crt server.crt server.key ta.key / etc / openvpn

Всім клієнтським застосуванням для встановлення зв'язку також знадобляться ці ключі та сертифікати. Краще створювати окремі ключі для кожного користувача програми та давати ключам описові імена. Зараз же ми розглядаємо ситуацію з одним клієнтом, тому назвемо його просто client:

cd / etc / openvpn / easy-rsa
./ Build-key client

Крок 4: Маршрутизація

Щоб спростити настройку, проведемо всі маніпуляції за допомогою стандартного фаєрволла iptables. а не нового інструменту firewallcd.

Перш за все треба переконатися в тому, що сервіс iptables встановлений і включений.

yum install iptables-services -y
systemctl mask firewalld
systemctl enable iptables
systemctl stop firewalld
systemctl start iptables
iptables --flush

Потім слід додати в iptables правило, згідно з яким з'єднання будуть направлятися в створювану підмережа OpenVPN:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save> / etc / sysconfig / iptables

Активуємо IP-форвардного в sysctl, відредагувавши файл sysctl.conf для редагування:

У самому верху додаємо наступний рядок:

Перезапускаємо мережевий сервіс для застосування внесених змін:

systemctl restart network.service

Крок 5: Запуск OpenVPN

Тепер все готово до запуску OpenVPN. Додамо цей сервіс в systemctl:

systemctl -f enable [email protected]

На цьому конфігурація з боку сервера завершена. Налаштуємо підключення з боку клієнта.

Крок 6: Налаштування клієнта

Незалежно від того, яка операційна система встановлена ​​на клієнтському пристрої, для з'єднання з сервером все одно будуть потрібні ключі та сертифікати, згенеровані на сервері.

Необхідні сертифікати (у нашому випадку для клієнта "client") зберігаються в директорії / easy-rsa:

/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key

client
dev tun
proto udp
remote your_server_ip тисячі сто дев'яносто чотири
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca /path/to/ca.crt
cert /path/to/client.crt
key /path/to/client.key

Тепер цей файл можна використовувати для підключення до сервера.

Підключення з комп'ютера під керуванням Windows:

Викачуємо офіційну версію бінарних файлів OpenVPN Community Edition з графічним інтерфейсом управління.

Переміщаємо .ovpn-файл в директорію C: \ Program Files \ OpenVPN \ config. потім натискаємо Connect в графічному інтерфейсі OpenVPN.

Для з'єднання можна використовувати open-source інструмент Tunnelblick. Переміщаємо .ovpn-файл в директорію

/ Library / Application Support / Tunnelblick / Configurations або просто клікнаем з цього файлу.

На Linux потрібно встановити OpenVPN з офіційних репозиторіїв конкретного дистрибутива. Потім запустити його за допомогою команди:

sudo openvpn --config

На цьому все. Тепер у нас є повністю функціональна приватна віртуальна мережа з власним OpenVPN-сервером на CentOS 7 VPN.

P. S. Інші інструкції:

Середня оцінка: 5,0. всього оцінок: 21 Спасибі за Вашу оцінку! На жаль, проголосувати не вийшло. Спробуй пізніше

191014 Санкт-Петербург вул. Кірочная, 9

191014 Санкт-Петербург вул. Кірочная, 9

Схожі статті