В начало → Соединение нескольких офисов в одну сеть с помощью OpenVPN
Gentoo-doc HOME В начало

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


   Ссылка на оригинал: http://ylsoftware.com/

   Автор: MooSE (moose@home.ylsoftware.com)

   С версии: 1.4

   Дата: 19.01.2008

Итак. Допустим что у некоторой фирмы есть несколько офисов в различных точках города (возможно даже земного шара - не суть важно) и нам нужно обеспечить максимально простой способ взаимодействия локальных сетей различных офисов между собой. Неплохим решением этой задачи будет объединение этих сетей посредством OpenVPN.

Итак. Уточним начальные условия:

Центральный офис (office-0):

Сервер под управлением Ubuntu Linux. Три сетевых интерфейса: eth0, eth1, eth2. Конфигурация следующая:

  1. eth0: внешний интерфейс, имеющий реальный ip-адрес a.b.c.d.

  2. eth1: первая локальная сеть: 192.168.1.1/24.

  3. eth2: вторая локальная сеть: 192.168.2.1/24.

Офис 1 (office-1):

Под управлением Mandriva Linux. Два интерфейса:

  1. eth0: внешний интерфейс, имеющий доступ к адресу a.b.c.d (каким либо образом).

  2. eth1: локальная сеть: 192.168.3.1/24.

Офис 2 (office-2)

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

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

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

apt-get install 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

comp-lzo

persist-key

persist-tun

verb 3

log-append /var/log/openvpn.log

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

mkdir /etc/openvpn/ccd

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

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 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"

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

/etc/init.d/openvpn restart

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

ifconfig tap0

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

Устанавливаем openvpn:

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

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

ifconfig tap0

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

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

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