Linux объединение сетей vpn

Объединение локальных сетей при помощи OpenVPN на VPS

Рассмотрим способ объединения двух локальных сетей (site to site) при помощи OpenVPN развернутого на VPS хостинг провайдера. Схема сети, следующая:

В качестве площадки для размещения серверной части OpenVPN можно использовать VPS/VDS с предоставляемым публичным IP–адресом. В нашем случае это будет хостинг-провайдер firstvds.ru. Виртуальный сервер с 1 Гб оперативной памяти, 20 Гб дискового пространства и выделенным публичным IP–адресом обойдется нам в 239 р./ месяц. Хостинг-провайдер позволяет выбрать предустановленный вариант ОС на виртуальном сервере. Будем использовать Ubuntu 22.04.

Для доступа к виртуальному серверу удобнее всего использовать протокол SSH и клиент удаленного подключения Putty, параметры подключения можно найти на вкладке инструкция в разделе виртуальных серверов хостинг провайдера.

Шаг 1. Подготовка виртуального сервера

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

Установим минимальный набор утилит, которые нам понадобятся:

$ sudo apt install nano mc net-tools

Далее создадим нового пользователя и дадим ему привилегии root, для этого необходимо выполнить следующие команды:

username замените на имя вашего пользователя.

Отключим доступ по SSH от root пользователя:

$ sudo nano /etc/ssh/sshd_config

Закомментируем строку #PermitRootLogin yes и сохраним изменения.

Установим ufw (простой фаервол), выполнив следующую команду:

Также нам нужно открыть затребованные порты, такие как SSH port 22, 80, 443, 993 и так далее:

Для включения фаервола воспользуемся следующей командой:

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

Шаг 2. Установим OpenVPN при помощи скрипта openvpn-install.sh

$ wget https://git.io/vpn -O openvpn-install.sh

Запустим скрипт openvpn-install.sh для установки и настройки сервера OpenVPN в автоматическом режиме:

$ sudo bash openvpn-install.sh

Выполним простое конфигурирование выбрав необходимые параметры.

Читайте также:  Errno 2 no such file or directory python linux

Протокол: TCP; Порт: 993, для того чтобы замаскироваться под Internet Message Access Protocol (IMAPS); ДНС сервер 1.1.1.1 или другой удобный для вас.

На последнем шаге указываем имя клиента (например, client1, client2, и т.д.). Нажимаем Enter, скрипт должен все успешно установить.

Для добавления нового клиента повторно выполните запуск скрипта и укажите Add a new client введя цифру 1.

Количество клиентов соответствует количеству локальных сетей и отдельных пользователей, которые необходимо объединить в одну виртуальную сеть.

Шаг 3. Конфигурирование файла server.conf

Далее необходимо выполнить ряд изменений в файле конфигурации OpenVPN сервера server.conf. Для этого его откроем в редакторе nano:

$ sudo nano /etc/openvpn/server/server.conf

Закомментируем строки начинающиеся на push и добавим следующие записи:

client-config-dir /etc/openvpn/server/ccd – укажем путь к настройка сетей клиентов;

route 192.168.0.0 255.255.255.0

route 192.168.43.0 255.255.255.0

Данными записями мы указываем серверу о наших локальных сетях 192.168.0.0/24 и 192.168.43.0/24. В вашем случае укажите все локальные сети, которые необходимо объединять.

client-to-client – разрешаем маршрутизацию между добавленными сетями.

push «route 192.168.0.0 255.255.255.0»

push «route 192.168.43.0 255.255.255.0»

Данными записями мы задаем настройки маршрутизации нашим клиентам. Сохраняем файл конфигурации (ctrl+o) и выходим (ctrl+x). Пример файла конфигурации:

Далее необходимо описать сетевую конфигурацию клиентов и создать соответствующие фалы в директории /etc/openvpn/server/ccd.

Данная директория не создается по умолчанию, создадим её при помощи следующих команд:

Далее перейдем в эту директорию и создадим файлы наших клиентов, названия должны совпадать с именами клиентов:

Добавим в него следующую запись:

iroute 192.168.0.0 255.255.255.0

То есть client1 находится в сети 192.168.0.0/24. Для других клиентов выполним аналогичные записи. Главное, чтобы имя файлов совпадало с именами клиентов.

Перезапустим службы OpenVPN:

$ sudo systemctl restart openvpn

Также для взаимодействия со службой OpenVPN имеются следующие команды:

$ sudo systemctl stop openvpn – остановка службы;

$ sudo systemctl start openvpn – запуск службы.

Шаг 4. Выгрузка файлов конфигураций клиентов

Далее необходимо выгрузить с виртуального сервера сконфигурированные файлы клиентов (.ovpn). По умолчания файлы (.ovpn) создаются в директории root, их необходимо скопировать в директории /home/username. К данной директории можно подключиться сторонним SFTP клиентом. Для этого удобнее всего воспользоваться клиентом WinSCP. Подключимся к нашему серверу по протоколу SFTP, указав IP–адрес виртуального сервера и данные авторизации.

Читайте также:  Загрузчик linux grub настройка

Установим OpenVPN клиенты на подключаемые windows машины и передадим им соответствующие конфигурационные файлы (.ovpn) и установим подключение.

После установки соединений в windows прописывается необходимая маршрутизация, для вывода в командной строке необходимо прописать команду route print. Пример вывода списков маршрутов с клиента 1:

При данной конфигурации устройства в разных сетях уже могут видеть друг друга по адресам виртуального туннеля.

Далее необходимо на каждой windows машине запустить службу, отвечающую за внутреннюю маршрутизацию, служба называется Маршрутизация и удаленный доступ. Это позволит использовать адресацию локальной сети. Для запуска этой службы нажмите клавиши Win+R на клавиатуре (или нажмите правой кнопкой мыши по кнопке «Пуск» и выберите пункт «Выполнить»), введите services.msc в окно «Выполнить» и нажмите Ok или Enter. Далее найдите службу Маршрутизация и удаленный доступ укажите тип запуска вручную, нажмите применить и затем нажмите кнопку Запустить.

После выполнения указанных действий наши windows машины могут быть доступны по своим локальным адресам.

На этом все, надеюсь материал оказался для Вас полезным.

В качестве основы для данного сценария подключения использовались следующие материалы:

Источник

Соединение нескольких офисов в одну сеть с помощью OpenVPN

Сервер полностью аналогичен серверу в первом офисе, за исключением eth1: там адрес 192.168.4.1/24.

Объединять мы будем сервера в виртуальную сеть 192.168.10.0/24. Поэтому на всех серверах должен быть настроен NAT не только для «своих» сетей, но и для сети 192.168.10.0/24.

Будем считать что всё это уже сделано. Приступаем к установке и настройке OpenVPN-сервера:

Создаём файл конфигурации /etc/openvpn/server.conf следующего содержания:

mode server tls-server daemon ifconfig 192.168.10.1 255.255.255.0 port 1194 proto tcp-server dev tap ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/office-0.crt key /etc/openvpn/keys/office-0.key dh /etc/openvpn/keys/dh1024.pem client-config-dir /etc/openvpn/ccd push "route 192.168.10.0 255.255.255.0 192.168.10.1" keepalive 10 120 client-to-client comp-lzo persist-key persist-tun verb 3 log-append /var/log/openvpn.log

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

Читайте также:  Перенос настроек firefox linux

Копируем скрипты для генерации ключей и создаём ключи:

cp -vR /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/ mkdir /etc/openvpn/2.0/keys ln -s /etc/openvpn/2.0/keys /etc/openvpn/keys cd /etc/openvpn/2.0/keys source ./vars ./clean-all ./build-ca ./build-dh # Ключ для центрального офиса ./build-key-server office-0 # Ключ для первого офиса ./build-key office-1 # Ключ для второго офиса ./build-key office-2

Входе выполнения этих команд будет задан ряд вопросов. Ответы на них вобщем-то очевидны, поэтому заострять на них внимание не будем.

Далее создаём файлы /etc/openvpn/ccd/office-1 и /etc/openvpn/ccd/office-2. Содержание первого:

# приcваиваем ip-адрес ifconfig-push 192.168.10.101 255.255.255.0 # роутинг на сети центрального офиса push "route 192.168.1.0 255.255.255.0 192.168.10.1" push "route 192.168.2.0 255.255.255.0 192.168.10.1" # роутинг на сеть второго офиса push "route 192.168.4.0 255.255.255.0 192.168.10.102"
# присваиваем ip-адрес ifconfig-push 192.168.10.102 255.255.255.0 # роутинг на сети центрального офиса push "route 192.168.1.0 255.255.255.0 192.168.10.1" push "route 192.168.2.0 255.255.255.0 192.168.10.1" # роутинг на сеть первого офиса push "route 192.168.3.0 255.255.255.0 192.168.10.101"

На этом настрока сервера завершена. Перезапускаем его:

Убеждаемся что поднялся интерфейс tap0:

Переходим к настройке офисов. Рассмотрим только один. Второй будет сделан аналогично, за исключением имён сертификатов.

urpmi openvpn mkdir /etc/openvpn/keys

Создаём файл конфигурации /etc/openvpn/client.conf:

client dev tap proto tcp # адрес сервера в центрально офисе remote a.b.c.d 1194 resolv-retry infinite nobind persist-key persist-tun comp-lzo ns-cert-type server ca ca.crt cert /etc/openvpn/keys/office-1.crt key /etc/openvpn/keys/office-1.key log-append /var/log/openvpn.log

Далее нам нужно поместить файлы office-1.* и ca.crt из каталога /etc/openvpn/keys сервера в каталог /etc/openvpn/keys клиента.

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

chkconfig openvpn on service openvpn start

Убеждаемся что поднялся интерфейс:

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

На этом всё. Более подробную информацию можно найти в документации по openvpn.

Источник

Оцените статью
Adblock
detector