Об’єднання двох віддалених офісів та будь-якої кількості віддалених співробітників у єдину локальну мережу

Налаштовуватимемо в операційній системі Debian Squeeze, але інструкція повністю зауважена будь-якому дистрибутиву заснованому на Debian, і з невеликими змінами в командах установки та налаштування мосту і OpenVPN буде застосовна до будь-якого дистрибутиву Linux або FreeBSD.
Припустимо, що дистрибутив Debian або Ubuntu встановлений за однією з інструкцій: Інструкція з встановлення Debian, Інструкція з встановлення Ubuntu
Встановимо та налаштуємо VPN мережу на основі OpenVPN використовуючи міст tap0
Створюємо мережний міст між фізичною мережевою eth1 та віртуальним інтерфейсом tap0
Встановлюємо потрібні програми, погодившись на запит менеджера пакетів:
Налаштовуємо мережу сервера виходячи з того, що у нас 2 мережеві карти: мережна eth0 - отримує інтернет від провайдера і через неї офіс 1 виходить в інтернет, а також мережна eth1 - включена в свіч локальної мережі офісу 1, вона буде включена в міст з інтерфейсом br0
Редагуємо конфігураційний файл /etc/network/interfaces:
Зберігаємо зміни таперезавантажуємо мережу командою:
Налаштовуємо OPENVPN: Копіюємо скрипти для конфігурування нашого openvpn сервера командою:
Вносимо зміни до файлу /etc/openvpn/easy-rsa/vars, щоб визначити глобальні змінні та при створенні менших ключів вводити дані:
Переходимо до папки зі скриптами для створення сертифікатів та ключів командою:
Ініціалізуємо PKI (Public Key Infrastructure) командами:
. Увага. При виконанні команди ./clean-all видаляться всі існуючі сертифікати та ключі як сервера так і клієнтів, тому не виконуйте на бойовому сервері або виконуйте попередньо зберігши папку /etc/openvpn/ в архів командою:
Генеруємо Certificate Authority (CA) сертифікат та ключ командою:

Більшість параметрів підхопиться із файлу vars. Тільки параметр Name треба вказати явно:
Взагалі, можете всі поля заповнювати щоразу так, як Вам потрібно.
Генеруємо параметри Діффі – Хеллмана командою:

Генеруємо сертифікат і секретний ключ сервера, на запит введення пароля нічого не вводимо і при запиті Sign the certificate? [y/n]: вводимо y та натискаємо Enter виконавши команду:

Усі параметри приймаємо за умовчанням. На запит Common Name вводимо server
На запитання Sign the certificate? і 1 out of 1 certificate requests certified, commit? відповідаємо позитивно:
Залишилося створити сертифікати та ключі для клієнтів. Спочатку ініціалізуємо параметри:
Створюємо ключі для користувача server1. За прикладом, користувачів додаємо стільки, скільки потрібно:

Прописуємо кожному клієнту свій IP у мережі командами:
Створюємо конфігураційний файл сервера:
Дозволяється OpenVPN запускати скрипти:
Створюємо скрипт/etc/openvpn/up.sh, що запускається при запуску OpenVPN сервера:
Даємо право на виконання скрипту /etc/openvpn/up.sh командою:
Після цього перезавантажуємо OpenVPN сервер командою:
Збираємо архів з ключами для роздачі віддаленим співробітникам та відправки на офіс 2
Створюємо папки з іменами користувачів командами:
Створюємо папку з архівованими ключами командою:
Збираємо ключі та сертифікати за папками користувачів командами:
Створюємо конфігураційні файли з розрахунку, що server1 - сервер віддаленого офісу 2, а client1 і client2 це віддалені співробітники підключаються до VPN мережі зовні з Windows.
Створюємо конфігураційний файл OpenVPN для server1:
Архівуємо ключі для server1 командою:
Створюємо файл конфігурації для client1:
Архівуємо ключі для client1 командою:
Створюємо файл конфігурації для client2 командою:
Архівуємо ключі для client2 командою:
Налаштовуємо VPN сервер офісу 2
В інструкції вище ми встановили та налаштували VPN сервер на Debian GNU/Linux використовуючи OpenVPN, створили ключі із сертифікатами для віддаленого сервера офісу 2 та віддалених співробітників. Тепер нам необхідно з'єднати офіс 1 з офісом 2 в єдину локальну мережу через VPN.
Нам необхідно встановити програмне забезпечення командою:
Налаштовуємо мережу сервера
Налаштовуємо мережу виходячи з того, що у нас 2 мережеві карти мережна eth0 - отримує інтернет від провайдера і через неї офіс 1 виходить в інтернет, а також мережна eth1 - включена в свіч локальної мережі офісу 1, вона буде включена в міст з інтерфейсом br0
Редагуємо конфігураційний файл /etc/network/interfaces:
Зберігаємо зміни та перезавантажуємо мережу командою:
Заливаємо з VPN сервера офісу.зібраний архів ключів OpenVPN на сервер офісу 2 командою:
Або ж, якщо server1 офісу 2 не має постійного або динамічного айпі будемо зливати ключі з VPN сервера офісу 2 командою:
На запит пароля - вводимо пароль користувачаroot, після введення правильного пароля завантажується архів з ключами до папки /root/server1.tgz
Розпаковуємо вміст архіву (тільки файли ключів без папок) /root/server1.tgz в папку /etc/openvpn/
Дозволяється OpenVPN запускати скрипти:
Створюємо скрипт /etc/openvpn/up.sh, що запускається при підключенні VPN клієнта до VPN серверу:
Перезавантажуємо OpenVPN сервер командою:
Тепер можна пінгувати з обох офісів комп'ютери іншого офісу, користуються розшарованими папками, принтерами, ресурсами іншого офісу, а також влаштовувати ігрові баталії офіс 1 на офіс 2 :)
Для перевірки інтерфейсів підключених до міст виконуємо команду:
Бачимо нашу локальну мережеву картку eth1 та віртуальний інтерфейс OpenVPN tap0
Завдання виконано, два віддалені офіси з'єднані в одну локальну мережу.