Установка и настройка серверов Linux,создание сайтов, установка и настройка Asterisk PBX, Linux для начинающих и не только.
Получать статьи этого сайта на почту:

 

27
Дек 2012
sergldom
автор
6
комментариев
Рейтинг статьи:
5
Средняя: 4.5 (2 оценки)

Объединение двух удаленных офисов и любого количества удаленных сотрудников в единую локальную сеть через VPN используя OpenVPN в Debian & Ubuntu & Linux

Настраиваем локальную сеть через VPN для удаленных офисов через OpenVPN      Предположим, что у нас есть 2 офиса в разных точках города, или же в разных  городах или странах  и каждый из них подключен к интернету по достаточно хорошему каналу. Нам нужно связать их в единую локальную сеть. В таком случае никто из пользователей не будет догадыватся где находится тот или иной компьютер или принтер в локальной сети, пользоватся принтерами, расшаренными папками и всеми преимуществами физической сети. Удаленные сотрудники подключившись по OpenVPN смогут также работать в сети, как-будто их компьютеры находятся в физической сети одного из офисов.

      Настраивать будем в операционной системе Debian Squeeze, но инструкция полностью пременима к любому дистрибутиву основанному на Debian, и с небольшими изменениями в командах установки и настройки моста и OpenVPN будет применима к любому дистрибутиву Linux или FreeBSD.

      Предположим, что дистрибутив Debian или Ubuntu установлены по одной из инструкций: Инструкция по установке Debian, Инструкция по установке Ubuntu

Установим и настроим VPN сеть на основе OpenVPN используя мост tap0

Создаем сетевой мост между физической сетевой eth1 и виртуальным интерфейсом tap0

Устанавливаем нужные программы согласившись на запрос менеджера пакетов:

aptitude install bridge-utils openvpn

 

      Настраиваем сеть сервера исходя из того, что у нас 2 сетевые карты: сетевая eth0 - получает интернет от провайдера и через неё офис 1 выходит в интернет, а также сетевая eth1 - включена в свич локальной сети офиса 1, она будет включена в мост с интерфейсом br0

Редактируем конфигурационный файл /etc/network/interfaces:

vi /etc/network/interfaces

было:

auto lo
iface lo inet loopback

# internet provider
auto eth0
iface eth0 inet static
    address 192.168.50.2
    netmask 255.255.255.0
    gateway 192.168.50.1

# local network
auto eth0
iface eth0 inet static
    address 10.10.10.1
    netmask 255.255.255.0

стало:

auto lo
iface lo inet loopback

# Прописываем мост, в него включаем VPN интерфейс tap0 и сетевую карту eth1
auto br0
iface br0 inet static
# Добавляем в мост tap0 интерфейс openvpn
bridge_ports eth1 tap0
        address 10.10.10.1
        netmask 255.255.255.0

# Internet
auto eth0
iface eth0 inet static
    address 192.168.50.2
    netmask 255.255.255.0
    gateway 192.168.50.1

Сохраняем изменения и перезагружаем сеть командой:

/etc/init.d/networking restart

После этого при выполнении команды ifconfig должен появится мост br0 с IP 10.10.10.1, интерфейс eth0 c IP адресом 192.168.50.2 и интерфейс eth1 без IP адреса, так как он в мосте br0

Настраиваем OPENVPN:
Копируем скрипты для конфигурирования нашего openvpn сервера командой:

cp -Rp /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa

Вносим изменения в файл /etc/openvpn/easy-rsa/vars, чтобы определить глобальные переменные и при создании ключей поменьше вводить данных:

vi /etc/openvpn/easy-rsa/vars

было:

...
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="[email protected]"

стало:

...
export KEY_COUNTRY="UA"
export KEY_PROVINCE="11"
export KEY_CITY="Kiev"
export KEY_ORG="NameFirm"
export KEY_EMAIL="[email protected]"

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

cd /etc/openvpn/easy-rsa/

Инициализируем PKI (Public Key Infrastructure) командами:

. ./vars
./clean-all

      !!!Внимание. При выполнении команды ./clean-all удалятся все существующие сертификаты и ключи как сервера так и клиентов, потому не выполняйте на боевом сервере, или же выполняйте предварительно сохранив папку /etc/openvpn/ в архив командой:

tar cf - /etc/openvpn/ | gzip -c -9 > /home/openvpn_backup.tgz

Генерируем Certificate Authority (CA) сертификат и ключ командой:

./build-ca

Соединяем 2 удаленных офиса в одну локальную сеть с помощью OpenVPN, инициализируем PKI и генерируем Certificate Authority (CA)

Большинство параметров подхватятся из файла vars. Только параметр Name надо указать явно:

Name []:vpn

Вообще можете все поля заполнять каждый раз так, как Вам нужно.

Генерируем параметры Диффи - Хеллмана командой:

./build-dh

Соединяем 2 удаленных офиса в одну локальную сеть с помощью OpenVPN, генерируем параметры Диффи - Хеллмана

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

./build-key-server server

Соединяем 2 удаленных офиса в одну локальную сеть с помощью OpenVPN, генерируем сертификат и секретный ключ сервера

Все параметры принимаем по умолчанию. На запрос Common Name вводим server

Common Name (eg, your name or your server's hostname) [ ]:server

На вопросы Sign the certificate? и 1 out of 1 certificate requests certified, commit? отвечаем положительно:

Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y

Осталось создать сертификаты и ключи для клиентов. Сначала инициализируем параметры:

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

Создаем ключи для пользователя server1. По примеру, пользователей добавляем столько, сколько нужно:

Соединяем 2 удаленных офиса в одну локальную сеть с помощью OpenVPN, генерируем сертификат и ключ клиента

 

./build-key server1
./build-key client1
./build-key client2

Исходя из того, что сеть у нас 10.10.10.0/24 мы сразу выделяем пул адресов для компьютеров офиса 1 - 10.10.10.40-149, для офиса 2 выделяем пул адресов 10.10.10.150-254 и выделяем пул адресов для удаленных сотрудников 10.10.10.21-39.
Создаем папку /etc/openvpn/ccd/ где указываем какому клиенту какой айпи командой:

mkdir -p /etc/openvpn/ccd/

Прописываем каждому клиенту свой IP в сети командами::

echo "ifconfig-push 10.10.10.150 255.255.255.0" > /etc/openvpn/ccd/server1
echo "ifconfig-push 10.10.10.21 255.255.255.0" > /etc/openvpn/ccd/client1
echo "ifconfig-push 10.10.10.22 255.255.255.0" > /etc/openvpn/ccd/client2

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

vi /etc/openvpn/server.conf
##################################
port 1195
proto udp
dev tap0

ca easy-rsa/keys/ca.crt
cert easy-rsa/keys/server.crt
key easy-rsa/keys/server.key  # This file should be kept secret
dh easy-rsa/keys/dh1024.pem

mode server
tls-server
daemon
ifconfig 10.10.10.1 255.255.255.0

client-config-dir /etc/openvpn/ccd
keepalive 10 20
client-to-client
comp-lzo
persist-key
persist-tun
verb 3
log-append /var/log/openvpn.log

#script-security 2   # раскоментировать при работе на OpenVPN версии от 2.4

up /etc/openvpn/up.sh
#################################

Разрешаем OpenVPN запускать скрипты:

vi /etc/default/openvpn

было:

OPTARGS=""

стало:

OPTARGS="--script-security 2"

Создаем скрипт /etc/openvpn/up.sh запускающийся при запуске OpenVPN сервера:

vi /etc/openvpn/up.sh

#!/bin/sh
brctl addif br0 tap0
brctl addif br0 eth1
ifconfig tap0 0.0.0.0

Даем права на выполнение скрипта /etc/openvpn/up.sh командой:

chmod +x /etc/openvpn/up.sh

После этого перезагружаем OpenVPN сервер командой:

/etc/init.d/openvpn restart

 

Выполняем команду ifconfig, должен появится интерфейс  tap0 без IP адреса.

Собираем архив с ключами для раздачи удаленным сотрудникам и отправки на офис 2

Создаем папки с именами пользователей командами:

mkdir -p /etc/openvpn/users/server1
mkdir -p /etc/openvpn/users/client1
mkdir -p /etc/openvpn/users/client2

Создаем папку с архивированными ключами командой:

mkdir -p /etc/openvpn/users_tgz

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

cp /etc/openvpn/server/easy-rsa/keys/server1.key /etc/openvpn/users/server1/
cp /etc/openvpn/server/easy-rsa/keys/server1.crt /etc/openvpn/users/server1/
cp /etc/openvpn/server/easy-rsa/keys/ca.crt /etc/openvpn/users/server1/

cp /etc/openvpn/server/easy-rsa/keys/client1.key /etc/openvpn/users/client1/
cp /etc/openvpn/server/easy-rsa/keys/client1.crt /etc/openvpn/users/client1/
cp /etc/openvpn/server/easy-rsa/keys/ca.crt /etc/openvpn/users/client1/

cp /etc/openvpn/server/easy-rsa/keys/client2.key /etc/openvpn/users/client2/
cp /etc/openvpn/server/easy-rsa/keys/client2.crt /etc/openvpn/users/client2/
cp /etc/openvpn/server/easy-rsa/keys/ca.crt /etc/openvpn/users/client2/

Создаем конфигурационные файлы из расчета, что server1 - это сервер удаленного офиса 2, а client1 и client2 это удаленные сотрудники подключающиеся к VPN сети снаружи из Windows.

!!! Вместо IP-SERVER-VPN  ставим внешний айпи адрес OpenVPN сервера.

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

echo "
remote IP-SERVER-VPN 1195
client
dev tap0
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert server1.crt
key server1.key
comp-lzo
verb 4
mute 20
verb 3
log-append /var/log/openvpn.log
up /etc/openvpn/up.sh
" > /etc/openvpn/users/server1/server1.conf

Архивируем ключи для server1 командой:

tar cf - /etc/openvpn/users/server1 | gzip -c -9 > /etc/openvpn/users_tgz/server1.tgz

 

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

echo "
remote IP-SERVER-VPN 1195
client
dev tap0
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 4
mute 20
verb 3
" > /etc/openvpn/users/client1/client1.ovpn

Архивируем ключи для client1 командой:

tar cf - /etc/openvpn/users/client1 | gzip -c -9 > /etc/openvpn/users_tgz/client1.tgz

 

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

echo "
remote IP-SERVER-VPN 1195
client
dev tap0
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client2.crt
key client2.key
comp-lzo
verb 4
mute 20
verb 3
" > /etc/openvpn/users/client1/client2.ovpn

Архивируем ключи для client2 командой:

tar cf - /etc/openvpn/users/client2 | gzip -c -9 > /etc/openvpn/users_tgz/client2.tgz

 

Настраиваем VPN сервер офиса 2

В инструкции выше мы установили и настроили VPN сервер на Debian GNU/Linux используя OpenVPN, создали ключи с сертификатами для удаленного сервера офиса 2 и удаленных сотрудников. Теперь нам необходио соеденить офис 1 с офисом 2 в единую локальную сеть через VPN.

Предположим, что в офисе 2 у нас установлен и настроен Linux сервер (шлюз), который занимается распределением интернет канала для сотрудников офиса2. На этом сервере есть 2 сетевые карты: eth0 - интернет провайдер и eth1 - локальная сеть, она будет включена в мост, и будет иметь пул адресов 10.10.10.100-254

Нам необходимо установить програмное обеспечение командой:

aptitude install bridge-utils openvpn

Настраиваем сеть сервера

Настраиваем сеть исходя из того, что у нас 2 сетевые карты сетевая eth0 - получает интернет от провайдера и через неё офис 1 выходит в интернет, а также сетевая eth1 - включена в свич локальной сети офиса 1, она будет включена в мост с интерфейсом br0

Редактируем конфигурационный файл /etc/network/interfaces:

vi /etc/network/interfaces

было:

auto lo
iface lo inet loopback

# internet provider
auto eth0
iface eth0 inet static
    address 192.168.60.2
    netmask 255.255.255.0
    gateway 192.168.60.1

# local network
auto eth0
iface eth0 inet static
    address 192.168.1.1
    netmask 255.255.255.0

стало:

auto lo
iface lo inet loopback

# Прописываем мост, в него включаем VPN интерфейс tap0 и сетевую карту eth1
auto br0
iface br0 inet static
# Добавляем в мост tap0 интерфейс openvpn
bridge_ports eth1 tap0
        address 10.10.10.150
        netmask 255.255.255.0

# Internet
auto eth0
iface eth0 inet static
    address 192.168.60.2
    netmask 255.255.255.0
    gateway 192.168.60.1

Сохраняем изменения и перезагружаем сеть командой:

/etc/init.d/networking restart

После этого при выполнении команды ifconfig должен появится мост br0 с IP 10.10.10.150, интерфейс eth0 c IP адресом 192.168.60.2 и интерфейс eth1 без IP адреса, так как он находится в мосте br0

Для компьютеров офиса 2 выдаем компьютерам IP адреса не выходя за рамки 10.10.10.150-254, где 10.10.10.150 - это IP адрес сервера офиса 2.

Заливаем с VPN сервера офиса 1 собранный архив ключей OpenVPN на сервер офиса 2 командой:

ssh -P22 /etc/openvpn/users_tgz/server1.tgz root@IP-SERVER:/root/

Или же, если server1 офиса 2 не имеет постоянного, либо динамического айпи будем сливать ключи с VPN сервера офиса 2 командой:

ssh -P22  root@IP-SERVER:/etc/openvpn/users_tgz/server1.tgz /root/

На запрос пароля - вводим пароль пользователя root, после ввода правильного пароля скачивается архив с ключами в папку /root/server1.tgz

Распаковываем содержимое архива (только файлы ключей без папок) /root/server1.tgz в папку /etc/openvpn/

Разрешаем OpenVPN запускать скрипты:

vi /etc/default/openvpn

было:

...
OPTARGS=""

стало:

...
OPTARGS="--script-security 2"

Создаем скрипт /etc/openvpn/up.sh запускающийся при подключении VPN клиента к VPN серверу:

vi /etc/openvpn/up.sh

#!/bin/sh
brctl addif br0 tap0
brctl addif br0 eth1
ifconfig tap0 0.0.0.0
chmod +x /etc/openvpn/up.sh

Перезагружаем OpenVPN сервер командой:

/etc/init.d/openvpn restart

При выполнении команды ifconfig должен появится интерфейс tap0 без IP адреса.

Теперь можно пинговать с обоих офисов компьютеры другого офиса, пользоватся расшаренными папками, принтерами, ресурсами другого офиса, а также устраивать игровые баталии офис 1 на офис 2 :)

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

brctl show

Ответ системы:

bridge name     bridge id               STP enabled     interfaces
br0             7000.003ds4sDsf6       no              eth1
                                                       tap0

Видим нашу локальную сетевую карту eth1 и виртуальный интерфейс OpenVPN tap0

Задача выполнена, два удаленных офиса соединены в одну локальную сеть.

Если Вам статья принесла пользу, поделитесь с друзьями кликнув по иконке Вашей социальной сети внизу данной статьи. Прокоментируйте пожалуйста данную инструкцию, понравилась ли она Вам, принесла пользу? Вы также можете подписатся на получение уведомлений о выходе новых статей на свою почту на странице Подписка на сайт SoftNastroy.COM

 

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

 

 

Рейтинг статьи: 

5
Средняя: 4.5 (2 оценки)

Вам понравилась статья? Хотите получать уведомления о выходе новых статей с этого сайта на свой почтовый адрес? Подписывайтесь пожалуйста. Введите свой почтовый адрес и нажмите кнопку Хочу получать статьи!

<![CDATA[]]><![CDATA[]]>

 

*Адреса электронной почты не разглашаются и не предоставляются третьим лицам для коммерческого или некоммерческого использования.

 

 
 

 

8 комментария:
Yimrmyretty
04/06/2024 - 14:31
a hundred% totally free - for masters and seekers alike! The Distinctive aspect of our portal is the fact it is totally totally free to use for everyone - our intention is usually to convey alongside one another the desires of the public and gurus in one area in the world of the development marketplace segment. Our databases is continually increasing - the most effective professionals from unique areas of the assistance industry register daily. Nearly all recognised Hungarian cities and construction trades can be found in our databases! I'M JOINING! Wholly free to employ - why? Our purpose would be to deliver with each other craftsmen and jobseekers in the development trades - on one, all-encompassing, overarching internet portal. Due to the fact we want to assistance the Skilled and customer viewers, the use of the portal is totally free of charge. Precisely what is total builder Specialist coverage? Virtually all building professions can be found in our database, so you will find a solution for everything as being a searcher plus a handyman. What on earth is linked to the topic of the development sector, dwelling, renovation - we're certain to have an experienced Alternative for that! Total nationwide territorial protection! Virtually every settlement are available in our database, which can be a registered town or village in Hungary - which includes even settlements having a few hundred inhabitants. Due to this, you may search nationwide! Very simple, clear, rapidly operation We consider it specially essential that the website is user friendly - it does not require any severe technological information, all interfaces and forms are user friendly. Consequently, putting up an advert can take only a few minutes! Banner part Use and registration are very very simple as a professional and shopper, it only usually takes a couple of minutes to generate an account and post an advert. We place many emphasis on creating a fairly easy-to-use and quickly-working portal that serves the requires of the general public. We currently symbolize certainly one of Hungary's most significant Skilled search Internet websites, especially specialized in the development industry, and the volume of guests to our portal, along with the variety of our industry experts, is growing thirty day period by month. There are actually registered craftsmen in every single metropolis and occupation - who will't hold out to start! https://szakiweb.hu/ - JoSzaki
Yirrmyretty
11/06/2024 - 04:16
In a aloof kingdom, where wizard was an inherent separate of life, in that location lived a Lester Willis Young magical called President Arthur. He was known for his unparalleled abilities and science in using witchcraft spells. Merely peerless day, when King Arthur was faced with a sober problem, he accomplished that non whole of his spells were functional as they should. Chester Alan Arthur went into the antediluvian wood to come up a wise to crone WHO could avail him fancy come out this enigma. The enchantress lived in a pocket-size shack encircled by chummy daze. She was known for her cognition of thaumaturgy and witchcraft spells. Chester A. Arthur told the enchant approximately his trouble and asked for her advice. The jinx listened to him carefully and said: "Your trouble is that you are exploitation older and forgotten witchcraft spells. They can be powerful, only sometimes they expect Thomas More vigor and focussing than you put up supply. Judge victimization newfangled and innovative spells that were created specifically to work so much problems." Arthur thanked the bewitch and returned home plate to watch young spells. He washed-out many days and nights practicing and experimenting with raw spells. And finally, he establish matchless that was utter for his job. With the aid of a raw spell, Chester Alan Arthur was capable to lick his job and paying back ataraxis and concord to his realm. The citizenry of the land were grateful to him for his efforts and skill. President Arthur became an even out more than illustrious and beloved wizard, and his knowledge of magical and spells continued to produce and develop. https://www.badb-club.com/ witchcraft spells https://www.badb-club.com/ gfdse3345223577hj
Александр Viter
12/01/2017 - 10:52
Здравствуйте. Наткнулся на вашу статью. Очень интересная и подробная. Спасибо за ваши труды! Нужен совет. Была у меня локалка, в ней по вашей схеме развернут OPENVPN сервер. в придж объединен интерфес eth1 (локалка) и tun0 (тунель). Сейчас вынужден разбить локалку на подсети. Заступорился я на моменте, когда нужно юзеров из тунеля запихнуть в отдельный vlan. Если я правильно понимаю, то достаточно поднять интерфейс tun0 туда направить DHCP сервер и будет все работать. Особо экспериментировать не могу, т.к. сервер боевой. Можете помочь советом и пнуть в нужном направлении) За ранее спасибо
12/01/2017 - 19:32
Не tun0 а tap
Александр Viter
16/01/2017 - 13:00
В моей схеме нужен tap0, т.к. один из удаленных клиентов будет роутер микротик. Микротики умеют работать с OPENVPN только через интерфейс tap и протокол tcp
16/01/2017 - 14:09
И в чем проблема поднять tap
Динар
18/10/2017 - 23:27
Добрый день. Настроил по Вашей статье сеть в офисе на Ubuntu 14.04 Сейчас пытаюсь сделать на Debian 9 ничего не получается. net-tools установил, не помогло, какая-то ошибка при создании моста. Что можете посоветовать? Спасибо.
18/10/2017 - 23:40
Здравствуйте, если у вас не запускается впн сервер добавьте в конфигурации сервера параметр: script-security 2 Или у вас мост не создаётся?

Добавить комментарий

Filtered HTML

  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.