Openvpn, російськомовна документація по ubuntu

Якщо ви хочете більше, ніж просто попередньо поширені ключі, OpenVPN спрощує установку і використання інфраструктури відкритих ключів (PKI), призначеної для аутентифікації з використанням SSL / TLS сертифікатів і обміну ключами між VPN сервером і клієнтами. OpenVPN може використовуватися режимах VPN з роутингом і мережевим мостом і налаштовуватися на використання як UDP так і TCP. Номер порту також може налаштовуватися, але офіційно використовується 1194. І він один використовується для всіх комунікацій. Реалізації VPN клієнта доступні майже для всього, включаючи всі дистрибутиви Linux. OS X. Windows і OpenWRT. що є основою для WLAN роутерів.

Для установки openvpn наберіть в терміналі:

Першим кроком при побудові конфігурації OpenVPN є установка PKI. PKI складається з:

окремі сертифікати (також відомі як відкриті ключі) і секретні ключі для сервера і кожного клієнта

головний сертифікат центру сертифікатів (CA) і секретний ключ, які використовуються для цифрового підпису сертифікатів сервера і клієнтів.

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

І сервер і клієнт аутентифицируют один одного спочатку перевіряючи, що представлений сертифікат підписаний головним сертифікатом центру сертифікатів, а потім перевіряючи інформацію в заголовку свіжо-аутентифицированного сертифіката, таку як загальне ім'я або тип сертифіката (клієнт або сервер).

Для установки вашого власного центру сертифікатів (CA) і генерації сертифікатів з секретними ключами для OpenVPN сервера і безлічі клієнтів, спершу скопіюйте easy-rsa каталог в / etc / openvpn. Це гарантує, що будь-які зміни в сценарії не будуть втрачені при оновленні пакету. З терміналу перейдіть на суперкористувача (sudo -s - прим. Пер.) І виконайте:

Далі відредагуйте / etc / openvpn / easy-rsa / vars, виправивши наступне відповідно до вашої дійсністю:

Введіть друге для створення головного сертифікату центру сертифікатів і його секретного ключа:

Далі ми створимо сертифікат і секретний ключ для сервера:

Як і на попередньому етапі більшість параметрів можна вибирати за замовчуванням. Два інших запиту вимагають позитивної відповіді: "Sign the certificate? [Y / n]" і "1 out of 1 certificate requests certified, commit? [Y / n]".

Повинні бути створені параметри Деффи-Хеллмана (Diffie-Hellman) для OpenVPN сервера:

Всі сертифікати та ключі будуть створюватися в підкаталозі keys /. Загальна практика копіювати їх в / etc / openvpn /.

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

Скопіюйте наступні файли на сторону клієнта, використовуючи захищений метод:

Оскільки сертифікати і секретні ключі потрібні тільки на стороні клієнта, вам потрібно видалити їх з сервера.

Разом з вашої установкою OpenVPN ви отримуєте ці приклади конфігураційних файлів (і багато чого ще, якщо перевірите):

Почніть з копіювання та розпакування server.conf.gz в /etc/openvpn/server.conf.

Відредагуйте /etc/openvpn/server.conf і переконайтеся що такі рядки вказують на сертифікати та ключі, які ми створили в попередньому розділі.

Це той мінімум, який ви повинні налаштувати, щоб отримати працюючий OpenVPN сервер. Ви можете використовувати всі значення за замовчуванням з файлу прикладу server.conf. Тепер запустіть сервер. Ви знайдете журнал подій і помилок у вашому syslog.

Тепер перевірте, що OpenVPN створив інтерфейс tun0.

Існує кілька реалізацій клієнта OpenVPN як з графічним інтерфейсом так і без нього. Ви можете зможете прочитати більше про клієнтів в наступному розділі. На даний момент ми використовуємо OpenVPN клієнт для Ubuntu який використовує ту ж програму, що і сервер. Тому вам знову доведеться поставити пакет openvpn але вже на клієнтській машині:

Тим часом скопіюємо файл прикладу client.conf в каталог / etc / openvpn /.

Скопіюйте ключі клієнта і сертифікат центру сертифікатів, створені в попередньому розділі, наприклад, в / etc / openvpn / і відредагуйте /etc/openvpn/client.conf, щоб переконатися, що такі рядки вказують на ці файли. Якщо ви поклали файли в / etc / openvpn /. то шлях до них можете опустити.

Далі запустимо OpenVPN клієнта:

Переконайтеся, що інтерфейс tun0 створено:

Перевірте, що вам доступний OpenVPN сервер:

Перевірте вашу маршрутизацію:

Якщо щось з того, що розглянуто вище, у вас не працює, перевірте наступне:

Перевірте ваш syslog, наприклад, так:

Чи може клієнт з'єднатися з сервером? Можливо доступ блокує firewall? Перевірте syslog на сервері.

Клієнт і сервер повинні використовувати одні і ті ж протокол і порт, наприклад, UDP порт 1194. Дивіться опції настройки port і proto.

Клієнт і сервер повинні використовувати один і той же стиснення. Дивіться опцію настройки comp-lzo.

Клієнт і сервер повинні використовувати один і той же режим: маршрутизації (routed) або моста (bridged). Дивіться опцію настройки server або server-bridge.

Вище розглянута дуже проста працююча VPN. Клієнт має доступ до сервісів на машині VPN сервера через зашифрований канал. Якщо ви хочете отримати доступ до більшої кількості серверів або до чогось в інших мережах, додайте кілька маршрутів на клієнті. Наприклад, якщо мережа вашої компанії в цілому може бути описана як 192.168.0.0/16, ви можете додати цей маршрут на клієнті. Але вам доведеться також змінити маршрут для зворотного напрямку - ваші сервера повинні знати як прокласти маршрут до мережі VPN клієнта.

Або ви можете вказати шлюз для всіх клієнтів щоб посилати весь їх трафік спочатку на VPN сервер, а від нього через захисний сервер (firewall) компанії в інтернет. У цьому розділі ви побачите деякі можливі варіанти налаштувань.

Передати настройки на DNS сервера клієнту:

Дозволити з'єднання між клієнтами:

Дозволити стиснення на VPN з'єднання:

Директива keepalive забезпечує відправку повідомлень типу ping вперед і назад за допомогою бездротової технології для того, щоб кожна сторона знала, коли інша сторона стає недоступна. Перевірка раз в секунду і рішення, що віддалена точка не відповідає, якщо відповідь не прийнятий протягом 3 секунд:

Доброю ідеєю є зниження привілеїв для сервісу OpenVPN після установки:

OpenVPN 2.0 включає можливість для сервера OpenVPN безпечно отримувати ім'я користувача і пароль від подключающегося клієнта і використовувати цю інформацію як основу аутентифікації клієнта. Для використання цього методу аутентифікації спершу додайте директиву auth-user-pass в налаштування клієнта. Це вкаже клієнту OpenVPN запитувати у користувача ім'я та пароль і передавати їх на сервер через безпечний канал TLS.

Це скаже сервера OpenVPN перевіряти ім'я і пароль, введені клієнтом, за допомогою модуля PAM. Це може бути застосовано якщо у вас централізована аутентифікація, наприклад, за допомогою Kerberos.

Будь ласка, прочитайте керівництво по зміцненню безпеки OpenVPN для подальших консультацій з безпеки.

OpenVPN може бути налаштований в двох режимах VPN: маршрутизації (routed) і мережевого моста (bridged). Іноді їх відносять до VPN рівню-2 (канальний) і рівнем-3 (пакетний) мережевий моделі OSI. У режимі мережевого моста все VPN кадри (frames) 2-го рівня, такі як кадри ethernet, надсилаються VPN партнеру, в той час як в режимі маршрутизації посилаються тільки пакети рівня-3. У режимі моста весь трафік, включаючи традиційно локальний трафік, такий як мережеві широкомовні пакети, DHCP запити, ARP запити і т.д. надсилається VPN партнеру, в той час як в режимі маршрутизації він буде відфільтрований.

Переконайтеся, що у вас встановлено пакет bridge-utils.

Перед налаштуванням OpenVPN в режимі мережевого моста вам буде потрібно змінити налаштування вашого інтерфейсу. Давайте припустимо, що ваш сервер підключений через eth0 до інтернету, а інтерфейс eth1 з'єднаний з вашої локальної мережею для якої ви хочете встановити мережевий міст. Ваш файл / etc / network / interfaces повинен виглядати якось так:

Така настройка прямого перенаправлення інтерфейсів повинна бути виправлена ​​для режиму моста, де настройка інтерфейсу eth1 переміщається на новий інтерфейс br0. Плюс ми вкажемо, що br0 буде інтерфейсом моста для eth1. Нам також варто переконатися, що інтерфейс eth1 завжди знаходиться в змішаному (promiscuous) режимі - це скаже інтерфейсу пересилати все ethernet пакети в стек IP.

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

Відредагуйте /etc/openvpn/server.conf, змінивши наведене нижче

Далі створіть допоміжний сценарій для додавання tap інтерфейсу для моста і для перевірки, що eth1 знаходиться в змішаному режимі. Створіть /etc/openvpn/up.sh:

Зробіть файл виконуваним:

Після настройки сервера перезапустите openvpn. ввівши:

Спочатку встановіть openvpn на клієнті:

Потім з налаштованим сервером і скопійованими сертифікатами клієнтів в каталог / etc / openvpn /, створіть файл конфігурації клієнта, скопіювавши приклад. У терміналі на клієнтській машині введіть:

Тепер відредагуйте /etc/openvpn/client.conf, змінивши такі опції:

Нарешті перезапустіть openvpn.

Тепер у вас є можливість з'єднатися з віддаленою мережею через VPN.

Безліч дистрибутивів Linux, включаючи варіанти Ubuntu desktop, поставляються з програмою Network Manager. прекрасним графічним інтерфейсом для налаштування вашої мережі. Він також дозволяє керувати вашими VPN сполуками. Переконайтеся, що пакет network-manager-openvpn встановлений. Тут ви можете також побачити установку всіх інших необхідних пакетів:

Для інформування network-manager про нові встановлених пакетах вам доведеться його перезавантажити:

Відкрийте інтерфейс Network Manager. виберіть закладку VPN і потім натисніть кнопку # 'Add #' (Додати). Виберіть OpenVPN як тип VPN в розпочатому запиті і натисніть # 'Create #' (Створити). У наступному вікні додайте ім'я сервера OpenVPN в якості шлюзу, встановіть тип в # 'Certificates (TLS) #', вкажіть в # 'User Certificate #' ваш власний сертифікат, в # 'CA Certificate #' сертифікат вашого Центру Сертифікатів і в # 'Private Key #' файл вашого секретного ключа. використовуйте кнопку # 'Додатково #' для дозволу стиснення і інших спеціальних налаштувань, які ви встановлювали на сервері. Тепер спробуйте встановити ваш VPN.

Вам буде потрібно запустити сервіс OpenVPN. Виберіть в стартовому меню Start> Computer> Manage> Services and Applications> Services. Знайдіть сервіс OpenVPN і запустіть його. Встановіть тип завантаження в автоматичний. Коли ви завантажуєте OpenVPN MI GUI в перший раз, вам треба зробити це в режимі адміністратора. Для цього треба натиснути правою кнопкою миші на значку програми і ви побачите таку настройку.

Вам буде потрібно записати вашу конфігурацію OpenVPN в текстовий файл і помістити його в каталог C: \ Program Files \ OpenVPN \ config \ client.ovpn разом з сертифікатом центру сертифікатів. Ви можете покласти сертифікат користувача в домашній каталог, як зазначено в даному прикладі:

OpenWRT описується як Linux дистрибутив для вбудовування в пристрої типу WLAN маршрутизаторів. Існує певний набір маршрутизаторів, в які може бути прописаний OpenWRT. Залежно від доступної пам'яті ваш OpenWRT маршрутизатор може запускати програми, такі як OpenVPN і ви можете, наприклад, побудувати невеликий недорогий зовнішній офіс з маршрутизатором, сполученим через VPN з центральним офісом. Тут можна знайти більше інформації по OpenVPN під OpenWRT. А тут знаходиться домашня сторінка проекту OpenWRT.

Підключіться до вашого OpenWRT маршрутизатора і встановіть OpenVPN.

Знайдіть / etc / config / openvpn і помістіть в нього ваші настройки клієнта. Скопіюйте сертифікати і ключі в / etc / openvpn /.

Вам потрібно буде подивитися чи не потрібна змінити в маршрутизаторі маршрутизацію і правила firewall.

Схожі статті