Компьютерная помощь
Сайт комнаты "Компьютерная помощь"

Объединение удаленных сетей в одну LAN через NIX-шлюзы

Помощь, настройка | 16 июля 2016 г.

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

Данная статья является ПОШАГОВЫМ руководством для тех, кто ранее не имел дела с Linux. Т.е. для "контуженных мелкософтом" wink.

Меня сподвигло написать ее то обстоятельство, что для реализации данной задачи мне пришлось собирать информацию с разных порталов/man'ов/форумов/статей, единого мануала по данной теме с НУЛЯ нет (имеется ввиду сборная информация со ссылками по всем этапам решения задачи, начиная от установки ОС заканчивая настройкой шифрованного канала средствами openvpn). 

И опять же, для "контуженных мелкософтом" данное обстоятельство может стать непреодолимой преградой на пути к просторам свободного программного обеспечения.

Имеем 2 географически удаленных друг от друга офисных сети и одну рабочую станцию у себя дома, все это добро подключено к интернету тем или иным способом.

Задача: объединить оба офиса и домашний комп (мечта сисадмина) в одну сеть с единым адресным пространством так, что бы раздача интернета оставалась прежней.

Расскажу и покажу как это организовать на примере двух шлюзов под управлением Arch Linux.

Начнем с начала.

В каждой удаленной сети мы должны выделить (если этого еще не сделано) комп для раздачи интернета, далее называемый "Шлюз". Требований к нему мало: 2 сетевые карты, 32х или 64х разрядная архитектура, не ниже.

Начнем с установки базовой системы на шлюзы.

Качаем торрент (что это тут рассказывать не стану) на загрузочный образ установщика от сюда. Качаем сам образ. Записываем на диск. Вставляем в привод шлюза. Грузимся с него. Выбираем архитектуру (х86 или х64). Загружается Arch Linux Live CD. Вводим логин: root. Пароля не потребует. Вводим команду:

/arch/setup

Запустится скрипт установки. Все оставляем по умолчанию (ну кроме языка и временного пояса). Скрипт весь на английском, но нам к нему не привыкать. Почти на всем протяжении установки достаточно просто нажимать Enter. При конфигурировании системы (предложит изменить основные конфигурационные файлы) пропускаем данный этап . Вводим только пароль для суперпользователя (root) и все остальное оставляем без изменений.

Для начала Вам хватит этого руководства. Но наверняка Вы заинтересуетесь данной ОС. Подробная инструкция по установке и настройке Arch Linux тут.

Ну вот! Первая загрузка системы на шлюзе. Логин: root, пароль тот, что вы ввели при установке.

Перед вами черный экран, и моргает курсор, ждет чего-то. smiley

Для начала нам нужно настроить интернет.

Самый распространенный вариант подключения офисной сети к интернету это DSL-модем и расшарка интернета с головного компьютера. Если данную роль выполняет терминальный сервер (сейчас 99% предприятий используют 1С именно в терминальном режиме), то придется добавить еще 1 компьютер.

Важно! Не в коем случае нельзя делать шлюзом интернета для сети домен контроллер. Неизбежны общие тормоза как локальной сети, так и интернета.

И так, DSL-модем. Лучше, если он у вас будет работать в режиме роутера (маршрутизатора). Для этого его нужно настроить. Каждая серия моделей от разных фирм изготовителей данного прибора отличается своей микропрограммой, соответственно и интерфейсом настройки. Но есть и общие моменты, что несказанно радует. Открываем технический паспорт к нему и приступаем. Открываем браузер интернета на компьютере, к которому подключен модем. В адресной строке набираем http://192.168.1.1. Вводим имя и пароль admin/admin (не у всех производителей, иногда встречаются root/root, смотрите паспорт устройства). Вам откроется веб-интерфейс настройки модема. Тут все зависит от Вас. Если нет паспорта, то ищите мануал по устройству в интернете. Нам необходимо отключить встроенный в него DHCP сервер, настроить LAN интерфейс (192.168.1.1/255.255.255.0), WAN интерфейс (в соответствии с указаниями в договоре с провайдером интернета) и PPPoE подключение (ввести ваш логин и пароль). После этого модем сам будет подключаться к интернету и раздавать его на LAN интерфейс. Таким же точно образом настраиваются остальные модемы (дома и в офисе 2).

Снова вернемся к нашему шлюзу. Вводим команду:

nano /etc/rc.conf

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

#
# /etc/rc.conf - Main Configuration for Arch Linux
#

# -----------------------------------------------------------------------
# LOCALIZATION
# -----------------------------------------------------------------------
#
# LOCALE: available languages can be listed with the 'locale -a' command
# HARDWARECLOCK: set to "UTC" or "localtime", any other value will result
#   in the hardware clock being left untouched (useful for virtualization)
# TIMEZONE: timezones are found in /usr/share/zoneinfo
# KEYMAP: keymaps are found in /usr/share/kbd/keymaps
# CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed for non-US)
# CONSOLEMAP: found in /usr/share/kbd/consoletrans
# USECOLOR: use ANSI color sequences in startup messages
#
LOCALE="ru_RU.UTF-8"
HARDWARECLOCK="UTC"
TIMEZONE="Asia/Vladivostok"
KEYMAP="ru"
CONSOLEFONT="cyr-sun16"
CONSOLEMAP=
USECOLOR="yes"

# -----------------------------------------------------------------------
# HARDWARE
# -----------------------------------------------------------------------
#
# MOD_AUTOLOAD: Allow autoloading of modules at boot and when needed
# MOD_BLACKLIST: Prevent udev from loading these modules
# MODULES: Modules to load at boot-up. Prefix with a ! to blacklist.
#
# NOTE: Use of 'MOD_BLACKLIST' is deprecated. Please use ! in the MODULES array.
#
MOD_AUTOLOAD="yes"
#MOD_BLACKLIST=() #deprecated
MODULES=()

# Scan for LVM volume groups at startup, required if you use LVM
USELVM="no"

# -----------------------------------------------------------------------
# NETWORKING
# -----------------------------------------------------------------------
#
# HOSTNAME: Hostname of machine. Should also be put in /etc/hosts
#
HOSTNAME="gate_office_1"    # Тут задаем имя нашего компьютера в сети (gate_office_2 например можно сделать второй шлюз)

# Use 'ifconfig -a' or 'ls /sys/class/net/' to see all available interfaces.
#
# Interfaces to start at boot-up (in this order)
# Declare each interface then list in INTERFACES
#   - prefix an entry in INTERFACES with a ! to disable it
#   - no hyphens in your interface names - Bash doesn't like it
#
# DHCP:     Set your interface to "dhcp" (eth0="dhcp")
# Wireless: See network profiles below
#
#                                                                          Тут настраиваем сеть
eth0="eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255"      #Интерфейс смотрящий на DSL-модем
INTERFACES=(eth0)

# Routes to start at boot-up (in this order)
# Declare each route then list in ROUTES
#   - prefix an entry in ROUTES with a ! to disable it
#
gateway="default gw 192.168.1.1 eth0"
ROUTES=(gateway)

# Enable these network profiles at boot-up.  These are only useful
# if you happen to need multiple network configurations (ie, laptop users)
#   - set to 'menu' to present a menu during boot-up (dialog package required)
#   - prefix an entry with a ! to disable it
#
# Network profiles are found in /etc/network.d
#
# This now requires the netcfg package
#
#NETWORKS=(main)

# -----------------------------------------------------------------------
# DAEMONS
# -----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
#   - prefix a daemon with a ! to disable it
#   - prefix a daemon with a @ to start it up in the background
#
DAEMONS=(syslog-ng network netfs crond)


Сохраняем и выходим из редактора (Clrl+X, Y, Enter).

После этого вводим команду:

nano /etc/resolv.conf

Откроется тот же редактор, но c файлом где записан список ваших DNS серверов. Добавляем туда адрес LAN-интерфейса нашего DSL-модема:

# Generated by dhcpcd
# /etc/resov.conf.head can replace this line
# /etc/resolv.conf.tail can replace this line
nameserver 192.168.1.1

Сохраняем и выходим.

Вводим команду:

nano /etc/locale.gen

Ищем в файле строки:

#ru_RU.KOI8-R KOI8-R
#ru_RU.UTF-8 UTF-8
#ru_RU ISO-8859-5

Раскомментируем их (удаляем # в начале строки). Перезапускаем компьютер:

reboot

Если модем был настроен правильно, то у нас на этом шлюзе уже есть интернет. Проверяем командой:

ping www.google.com

Теперь нам необходимо обновить систему и установить некоторые пакеты. Для этого нужно настроить программу pacman. Вводим команду:

nano /etc/pacman.d/mirrorlist

Ищем там секцию Russian и раскомментируем все строки с адресами серверов. Сохраняем и выходим.

Теперь обновляем базу данных пакетов и за тем всю систему командами:

pacman -Syy
pacman -Syu

На все вопросы отвечаем положительно.

Теперь нужно установить необходимые пакеты. Пакет для управления IP пакетами (маршрутизация, сетевой экран, NAT) - iptables, программа позволяющая подключать с удаленной консоли - openssh, DNS сервер для упрощения настроек вашей локальной сети - dnsmasq, утилиты для создания сетевых мостов - bridge-utils, шифрование на основе электронных подписей и ключей - openssl, программа позволяющая настроить шифрованный канал связи поверх общедоступных сетей (например Internet) - openvpn, удобный файловый менеджер (похож на FAR или Norton Commander) - mc.

Выполняем команду:

pacman -S mc openvpn openssl iptables dnsmasq bridge-utils openssh

И снова отвечаем положительно на все вопросы. Для более удобной навигации по файловой системе будем использовать mc. Запускается одноименной командой:

mc

Управление почти идентично FAR, для работы с консолью можно скрыть окна или показать их вновь нажатием Ctrl+O. В нем есть встроенный текстовый редактор с удобным интерфейсом. Для редактирования конфигурационных файлов теперь будем пользоваться именно им. Просто наводим курсор на необходимый файл и жмем F4.

Приступим к настройке. Для начала открываем уже знакомый нам /etc/rc.conf и приводим его к такому виду:

#
# /etc/rc.conf - Main Configuration for Arch Linux
#

# -----------------------------------------------------------------------
# LOCALIZATION
# -----------------------------------------------------------------------
#
# LOCALE: available languages can be listed with the 'locale -a' command
# HARDWARECLOCK: set to "UTC" or "localtime", any other value will result
#   in the hardware clock being left untouched (useful for virtualization)
# TIMEZONE: timezones#
# /etc/rc.conf - Main Configuration for Arch Linux
#

# -----------------------------------------------------------------------
# LOCALIZATION
# -----------------------------------------------------------------------
#
# LOCALE: available languages can be listed with the 'locale -a' command
# HARDWARECLOCK: set to "UTC" or "localtime", any other value will result
#   in the hardware clock being left untouched (useful for virtualization)
# TIMEZONE: timezones are found in /usr/share/zoneinfo
# KEYMAP: keymaps are found in /usr/share/kbd/keymaps
                # CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed for non-US)
# CONSOLEMAP: found in /usr/share/kbd/consoletrans
# USECOLOR: use ANSI color sequences in startup messages
#
LOCALE="ru_RU.UTF-8"
HARDWARECLOCK="UTC"
TIMEZONE="Asia/Vladivostok"
KEYMAP="ru"
CONSOLEFONT="cyr-sun16"
CONSOLEMAP=
USECOLOR="yes"

# -----------------------------------------------------------------------
# HARDWARE
# -----------------------------------------------------------------------
#
# MOD_AUTOLOAD: Allow autoloading of modules at boot and when needed
# MOD_BLACKLIST: Prevent udev from loading these modules
# MODULES: Modules to load at boot-up. Prefix with a ! to blacklist.
#
# NOTE: Use of 'MOD_BLACKLIST' is deprecated. Please use ! in the MODULES array.
#
MOD_AUTOLOAD="yes"
#MOD_BLACKLIST=() #deprecated
MODULES=(!bridge)

# Scan for LVM volume groups at startup, required if you use LVM
USELVM="no"

# -----------------------------------------------------------------------
# NETWORKING
# -----------------------------------------------------------------------
#
# HOSTNAME: Hostname of machine. Should also be put in /etc/hosts
#
HOSTNAME="gate1"

# Use 'ifconfig -a' or 'ls /sys/class/net/' to see all available interfaces.
#
# Interfaces to start at boot-up (in this order)
# Declare each interface then list in INTERFACES
#   - prefix an entry in INTERFACES with a ! to disable it
#   - no hyphens in your interface names - Bash doesn't like it
#
# DHCP:     Set your interface to "dhcp" (eth0="dhcp")
# Wireless: See network profiles below
#

#Static IP example
eth0="eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255"
eth1="eth1 0.0.0.0 up"
tap0="tap0 0.0.0.0 up"
br0="br0 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255" # это адрес нашего шлюза в офисе 1, в офисе 2 будет 192.168.2.2
INTERFACES=(eth0 eth1 tap0 br0)

# Routes to start at boot-up (in this order)
# Declare each route then list in ROUTES
#   - prefix an entry in ROUTES with a ! to disable it
#
gateway="default gw 192.168.1.1 eth0"
ROUTES=(gateway)

# Enable these network profiles at boot-up.  These are only useful
# if you happen to need multiple network configurations (ie, laptop users)
#   - set to 'menu' to present a menu during boot-up (dialog package required)
#   - prefix an entry with a ! to disable it
#
# Network profiles are found in /etc/network.d
#
# This now requires the netcfg package
#
#NETWORKS=(main)

# -----------------------------------------------------------------------
# DAEMONS
# -----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
#   - prefix a daemon with a ! to disable it
#   - prefix a daemon with a @ to start it up in the background
#
DAEMONS=(@syslog-ng openvpn-tapdev br network @iptables @dnsmasq @sshd @netfs @openvpn @crond)
 are found in /usr/share/zoneinfo
# KEYMAP: keymaps are found in /usr/share/kbd/keymaps
                # CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed for non-US)
# CONSOLEMAP: found in /usr/share/kbd/consoletrans
# USECOLOR: use ANSI color sequences in startup messages
#
LOCALE="ru_RU.UTF-8"
HARDWARECLOCK="UTC"
TIMEZONE="Asia/Vladivostok"
KEYMAP="ru"
CONSOLEFONT="cyr-sun16"
CONSOLEMAP=
USECOLOR="yes"

# -----------------------------------------------------------------------
# HARDWARE
# -----------------------------------------------------------------------
#
# MOD_AUTOLOAD: Allow autoloading of modules at boot and when needed
# MOD_BLACKLIST: Prevent udev from loading these modules
# MODULES: Modules to load at boot-up. Prefix with a ! to blacklist.
#
# NOTE: Use of 'MOD_BLACKLIST' is deprecated. Please use ! in the MODULES array.
#
MOD_AUTOLOAD="yes"
#MOD_BLACKLIST=() #deprecated
MODULES=(!bridge)

# Scan for LVM volume groups at startup, required if you use LVM
USELVM="no"

# -----------------------------------------------------------------------
# NETWORKING
# -----------------------------------------------------------------------
#
# HOSTNAME: Hostname of machine. Should also be put in /etc/hosts
#
HOSTNAME="gate1"

# Use 'ifconfig -a' or 'ls /sys/class/net/' to see all available interfaces.
#
# Interfaces to start at boot-up (in this order)
# Declare each interface then list in INTERFACES
#   - prefix an entry in INTERFACES with a ! to disable it
#   - no hyphens in your interface names - Bash doesn't like it
#
# DHCP:     Set your interface to "dhcp" (eth0="dhcp")
# Wireless: See network profiles below
#

#Static IP example
eth0="eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255"
eth1="eth1 0.0.0.0 up"
tap0="tap0 0.0.0.0 up"
br0="br0 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255" # это адрес нашего шлюза в офисе 1, в офисе 2 будет 192.168.2.2
INTERFACES=(eth0 eth1 tap0 br0)

# Routes to start at boot-up (in this order)
# Declare each route then list in ROUTES
#   - prefix an entry in ROUTES with a ! to disable it
#
gateway="default gw 192.168.1.1 eth0"
ROUTES=(gateway)

# Enable these network profiles at boot-up.  These are only useful
# if you happen to need multiple network configurations (ie, laptop users)
#   - set to 'menu' to present a menu during boot-up (dialog package required)
#   - prefix an entry with a ! to disable it
#
# Network profiles are found in /etc/network.d
#
# This now requires the netcfg package
#
#NETWORKS=(main)

# -----------------------------------------------------------------------
# DAEMONS
# -----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
#   - prefix a daemon with a ! to disable it
#   - prefix a daemon with a @ to start it up in the background
#
DAEMONS=(@syslog-ng openvpn-tapdev br network @iptables @dnsmasq @sshd @netfs @openvpn @crond)

 Потом открываем /etc/dnsmasq.conf стираем все полностью и пишем следующее:

interface=br0
no-dhcp-interface=lo
no-dhcp-interface=eth0
no-dhcp-interface=eth1
no-dhcp-interface=tap0
no-dhcp-interface=br0

Открываем /etc/ssh/ssh.conf и стираем все, потом пишем:

Port 22
Protocol 2
LoginGraceTime 120
PermitRootLogin yes
ChallengeResponseAuthentication no
UsePAM yes
Subsystem   sftp   /usr/lib/ssh/sftp-server

Далее /etc/hosts.allow:

ALL: ALL

Потом выполняем команду:

/etc/rc.d/iptables save

Открываем файл /etc/iptables/iptables.rules и приводим его к такому виду:

# Generated by iptables-save v1.4.10 on Tue Apr 19 15:10:58 2011

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [1:116]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE #Добавляем это правило для раздачи интернета на локальную сеть
COMMIT
# Completed on Tue Apr 19 15:10:58 2011
*filter
:INPUT ACCEPT [46:3088]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [26:2504]
COMMIT

Открываем /etc/sysctl.conf и выставляем значение параметра net.ipv4.ip_forward равным 1:

net.ipv4.ip_forward=1

Чтобы долго не объяснять как работает в Linux система прав на файл (кому интересно, тот сам нагуглит статьи по данному вопросу) я просто советую сделать сейчас так. Открываем в обоих окнах mc одну и ту же папку /etc/rc.d. Копируем любой исполняемый скрипт в ту же папку, но с именем br. Открываем /etc/rc.d/br, стираем все и пишем:

brctl addbr br0
brctl addif br0 tap0
brctl addif br0 eth1

Этот скрипт создает сетевой мост между виртуальным адаптером и сетевой картой смотрящей в локальную сеть, он будет запускаться каждый раз при запуске системы.
Открываем /etc/conf.d/openvpn-tapdev и добавляем туда строку:

TAPDEVS="tap0"

Ну вот. С подготовкой у нас все готово, теперь если перезагрузить шлюз, то у нас в локальной сети будет интернет. Ну если конечно все компьютеры правильно настроены. IP 192.168.2.4-254 маска 255.255.255.0 шлюз 192.168.2.1 DNS сервер 192.168.2.1 (во втором офисе соответственно шлюз и DNS 192.168.2.2).

reboot

Шлюз во втором офисе необходимо подготовить аналогичным способом.

Теперь пора приступать к настройке шифрованного туннеля между шлюзами через интернет. Для начала надо уточнить: у вашего подключения к интернету в 1-м офисе должен быть белый IP, постоянный сетевой адрес, чтобы он не менялся при переподключении, данная услуга предоставляется провайдером интернета.

Ну, приступим!

Необходимо открыть веб интерфейс вашего DSL-модема в первом офисе и пробросить 1194 UDP порт, обычно данный сервис в модемах называется виртуальным сервером. Там необходимо указать номер внешнего порта (1194), протокол (UDP), номер порта на внутрисетевом узле (1194), адрес узла (192.168.1.2). Это делается для того, чтобы при обращении на данный порт из интернета ваш DSL-модем перенаправил запрос на шлюз на тот же порт, во внутрь сети (в данный момент имеется ввиду сеть 192.168.1.0 в которой всего 2 узла: шлюз и DSL-модем). Далее продолжим работать со шлюзом.

Для осуществления задуманного необходимо создать на шлюзе в первом офисе openvpn сервер, настроить на втором шлюзе и Вашем домашнем компьютере openvpn клиент.

Небольшое отступление.
На данном этапе мы можем спокойно поставить наши шлюзы в автономный режим без мониторов и клавиатур, подключив к ним сеть и запустив их, больше нам не придется их выключать. Теперь они просто сетевые приборы.

Для дальнейшей настройки будем использовать специализированное программное обеспечение под Windows. Необходимо скачать 2 программы: PuTTy и WinSCP. Это оба SSH клиенты, первый удобен в работе удаленной консолью, второй удобен при работе с файловой системой. При запуске данных программ во внутренней сети достаточно указать IP адрес нашего шлюза (192.168.2.1 - шлюз в первом офисе, 192.168.2.2 - шлюз во втором офисе).

Запускаем PuTTy, подключаемся к шлюзу, вводим логин (root) и пароль. Вуаля, вы на своем рабочем месте, а как-будто сидите непосредственно за шлюзом. Запускаем mc.
В одном окне открываем папку /usr/share/openvpn/examples, во втором /etc/openvpn.
Копируем файл server.conf и открываем его для редактирования. Можно в принципе стереть все и вбить следующее:

port 1194
proto udp
dev tap0
ca ca.crt
cert gate1.crt
key gate1.key
dh dh1024.pem
server-bridge 192.168.2.1 255.255.255.0 192.168.2.2 192.168.2.3
client-to-client
keepalive 10 120
tls-auth ta.key 0
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append  openvpn.log
verb 3

Теперь необходимо сгенерировать сертификаты и ключи шифрования.
Для этого открываем папку /usr/share/openvpn/easy-rsa, тут хранятся скрипты для генерации ключей и сертификатов. Открываем файл vars и ищем в самом конце переменные и меняем их в соответствии с Вашими предпочтениями:

export KEY_COUNTRY="Страна в формате 2х символов (RU или US)"
export KEY_PROVINCE="Провинция/край/республика"
export KEY_CITY="Город"
export KEY_ORG="Название организации"
export KEY_EMAIL="Ваша электронная почта"

Далее приступаем к генерации. Все происходит в консоли с помощью команд. Активируем переменные окружения:

./vars

Очищаем (на всякий пожарный) старые ключи:

./clean-all

Генерируем корневой сертификат и ключ СА:

./build-ca

Тут скрипт спросит у Вас снова все переменные что вы вводили в файле vars, при этом покажет в квадратных скобках текущее значение ([RU]), при этом можно ничего не вводить. Но еще он спросит у Вас название филиала организации и дополнительное имя, введите, например, название шлюза: gate1.

Теперь создадим сертификат и ключ для сервера:

./build-key-server gate1

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

./build-key gate2
./build-key adminpc

Создадим Diffie Hellman ключ:

./build-dh

Создаем ta.key для защиты от DoS атак и UPD флуда:

openvpn --genkey --secret /usr/share/openvpn/easy-rsa/keys/ta.key

Теперь копируем файлы из /usr/share/openvpn/easy-rsa/keys/ в /etc/openvpn. Перезапускаем демон openvpn:

/etc/rc.d/openvpn restart

Теперь запускаем WinSCP и копируем себе на флешку содержимое папки /usr/share/openvpn/easy-rsa/keys.

Настройка сервера завершена.

Переходим к настройке клиента на gate2 (шлюз во втором офисе). Копируем файл client.conf из /usr/share/openvpn/examples в /etc/openvpn. В эту же папку копируем содержимое нашей флешки (через WinSCP). Открываем client.conf, стираем все и пешем следующее:

client
dev tap0
remote gate1 1194 #вместо gate1 должен стоять реальный адрес вашего шлюза в интернете
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert gate2.crt
key gate2.key
ns-cert-type server
tls-auth ta.key 1
comp-lzo
verb 3

Перезапускаем демон openvpn:

/etc/rc.d/openvpn restart

Остается настроить подключение к сети из дома. Тут все просто. Качаем Windows версию OpenVPN. Устанавливаем. Открываем папку C:\Program Files\OpenVPN\sample-config. Копируем от туда файл client.ovpn в папку C:\Program Files\OpenVPN\config. Очищаем его содержимое и пишем туда следующее:

client
remote gate1 1194 #вместо gate1 должен стоять реальный адрес вашего шлюза в интернете
dev-node tap0
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert adminpc.crt
key adminpc.key
ns-cert-type server
tls-auth ta.key 1
comp-lzo
verb 3

Открываем свои сетевые подключения, ищем виртуальный сетевой адаптер TAP-Win32 Adapter и переименовываем его в tap0. Назначаем ему IP и маску 192.168.2.3/255.255.255.0. Запускаем OpenVPN GUI (ярлык на рабочем столе), в трее по появившемуся значку кликаем правой кнопкой мыши, в меню жмем коннект.

Все. Теперь наши оба офиса и домашний компьютер объединены в общую сеть защищенным шифрованным каналом связи. Отсюда вытекает: мы можем подключиться к любому узлу сети (PuTTy, WinSCP, RAdmin, RDP), наши ПК видят друг друга в сетевом окружении, доступны общие ресурсы сети (принтеры, сканеры, файлы). В данных условиях обеспечено прохождение ВСЕХ Ethernet фреймов, включая ARP запросы, широковещательные датаграммы UDP.

Теперь если открыть сетевое окружение то можно увидеть все компьютеры скопом, и первый и второй офисы объединены в одну сеть средствами шифрованного Ethernet-моста проброшенного через интернет. При этом мы не платили никому ни копейки, а использовали бесплатное программное обеспечение.

Автор: Nasgool

 

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru yandex.ru

При цитировании, копировании, клонировании материалов с сайта целиком или частично, ссылка на страницу, откуда был скопирован материал, обязательна! При нарушении данных условий прошу незамедлительно удалить со своих ресурсов скопированный материал. Администрация сайта.

Комментариев: 1
    

    Комментариев: 1

    •  Валюха | 10 июля 2015 в 10:42:56 (ссылка)

      Чувак, а ты настроил самбу, чтобы сетевое окружение работало?

    Оставьте комментарий!

    Используйте нормальные имена

    Вы можете войти под своим логином или зарегистрироваться на сайте.

    (обязательно)