Объединение двух сетей c использованием VPN

Есть ряд решений, которые сейчас особо востребованы клиентами. Одним из них является работа в 1С или других приложениях удаленно на сервере предприятия. Представим, у Вас есть сервер, и Вам нужно предоставить возможность работать с данными и приложениями директору, который всегда в разъездах, или бухгалтеру, работающему из дома.

Ниже мы опишем проект, выполненный нами для клиента, имеющего головной офис в Москве и три подразделения в г. Ярослаль (офис, производство и склад). Нам была поставлена задача объединить офисы и подразделения таким образом, чтобы работа велась удаленно в 1С, установленной на сервере в Москве, а также была возможность работать с документами и сервером электронной почты, расположенном в центральном офисе. Также мы должны обслуживать серверы и компьютеры в удаленных подразделениях. Иными словами, необходимо создать единую среду, в которой пользователи могут работать с общими документами (сертификаты, наряды, накладные), вести учет в режиме он-лайн и работать с электронной почтой.

Работа в 1С удаленно

В каждом офисе и подразделении, где работает более 1 человека, ставится аппаратный VPN-роутер. Это устройство, позволяющее, с одной стороны, позволять пользователям ходить в интернет, а с другой, создавать VPN-каналы. VPN-канал - это защищенное зашифрованное соединение, туннель, который позволяет вашим пользователям свободно обмениваться данными и, в то же время, недоступное извне. Для построение таких каналов используется протокол ipsec , обеспечивающий высокий уровень криптографической стойкости.

На рисунке приведена схема соединения двух офисов.

Таким образом, с помощью двух роутеров мы можем обеспечить связь между офисами.

Казалось бы, запускай 1С удаленно и работай. Увы! Следует помнить, что этот канал проброшен через интернет, а следовательно, имеет ряд ограничений:

  • за трафик, как правило, приходится платить;
  • скорость интернета, а следовательно пропускная способность такого канала, относительно невелика.

Запустив такой удаленный 1С мы получим ситуацию "все висит".

Проблема решается использованием терминального доступа. Один из серверов в центральном офисе, обладающий заметными вычислительными способностями, мы настраиваем как терминальным сервер. Для этого используется встроенная в Windows служба Terminal Services. Необходимо установить и настроить этот компонент, активировать сервер лицензирования Служб терминалов и установить лицензии. После нужно установить на сервер 1С, и после этого этого можно работать в 1С удаленно в терминале .

Технология терминального доступа заключается в том, что все задачи, которые Вы запускаете в терминале, физически выполняются на удаленном сервере, а Вам передается лишь изображение на экран. Пользователь, запустивший в терминале 1С из Ярославля, может и не знать, что 1С удаленно работает на сервере в Москве.

Что это дает? Снижение трафика. Увеличение скорости обработки процедур в удаленной базе 1С. Возможность людям работать из любого места планеты с одной базой 1С удаленно, или одними и теми же файлами.

Но у любой бочки меда должна быть своя ложка дегтя. В данном случае, она заключается в том, что качество и сама возможность работы в терминале зависят от надежности подключения к интернет. Часто канала вполне достаточно для хождения по интернету, однако для работы в терминале нужен довольно надежный интернет. Под надежностью мы понимаем не столько скорость, сколько отсутсвие потерь пакетов в сети. Так, радиоканалы, применяемые многими провайдерами, часто обеспечивают очень высокие пиковые скорости, но процент потерь пакетов может достигать 10%. В этой ситуации терминальное соединение все время будет рваться, и работать будет тяжело.

Но в большинстве случаев нам удается наладить возможность работы в терминале как с удаленным 1С, так и с другими приложениями. Это позволяет нашим клиентам динамично развиваться, минимизировать издержки и обеспечивать устойчивую работу бизнес-процессов.

Отметим, что удаленная работа в 1С в настоящее время стала достаточно распространенной технологией, достаточно отработанной и при правильной настройке вполне безопасной, и может с успехом выполняться в рамках .

В данной статье мы дадим описание процесса создания VPN туннеля для установления связи между локальными сетями двух удаленных офисов через интернет и организации совместной работы пользователей этих сетей посредством установления доверительных отношений между контролерами доменов локальных сетей этих офисов.

Исходные данные:

  • В каждом офисе имеется локальная сеть со своим доменом.
  • Адресация сети первого офиса: 192.168.11.0/255.255.255.0
  • Адресация сети второго офиса: 192.168.10.0/255.255.255.0
  • Выход в интернет осуществляется посредством Microsoft ISA сервер.

Необходимо объединить обе сети посредством создания VPN туннеля, настроить доверительные отношения между доменами для организации совместной работы пользователей.

Настройка туннеля средствами Microsoft ISA сервер

В состав Microsoft ISA сервера входят мастера обеспечивающие настройку VPN и механизма безопасности. Они позволяют сконфигурировать VPN для работы в самых различных ситуациях, например для подключения мобильных пользователей или филиалов между собой.
Для создания VPN-подключений предусмотрены три мастера, которые доступны из узла Network Configuration дерева консоли ISA Management.

  • Мастер Local ISA Server VPN – применяется для настройки локального ISA сервера, принимающего подключения. Локальный ISA сервер также можно настроить на инициирование подключений к другому компьютеру.
  • Мастер Remote ISA Server VPN – применяется для настройки удаленного ISA сервера, инициирующего и принимающего подключения других компьютеров.
  • Мастер ISA Virtual Private Network – применяется для подключения перемещающихся пользователей.

На первом этапе нам следует определить роли ISA серверов. Один из наших серверов будет являться принимающим, а второй вызывающим. Тут стоит исходить из потребностей пользователей локальных сетей и их необходимости в использовании сетевых ресурсов удаленного офиса. В последствии мы сделаем наш VPN туннель постоянным, но все же данный шаг по нашему мнению не стоит игнорировать.

Для упрощения настройка VPN-подключений мы будем использовать мастера ISA-сервера, запуск которых осуществляется из узла Network Configuration дерева консоли ISA Management .

На ISA сервере, который будет выступать в роли принимающего соединения, выбираем Set Up Local ISA VPN Server ,

Здесь следует учесть, что данные имена будут впоследствии использованы ISA сервером как индикационные имена для создаваемого соединения, фильтров и пользователя от имени которого ISA сервер будет инициировать это соединение.



Следующим шагом мы выбираем протокол, который мы будем использовать при соединении по VPN туннелю.



Если вы не знаете, какой из протоколов будет вами использован то отметьте последний пункт, это позволит использовать при необходимости любой из протоколов, не внося значительных изменений в конфигурацию ISA сервера.

Тип используемого протокола, как правило, выбирают исходя из конкретных требований реализации и ограничений выбираемых технологий. Основное ограничение L2TP IPsec – отсутствие возможности работы через NAT. Соответственно, в случае использовании на внешнем адаптере ISA сервера IP адресов из частного диапазона (192.168.0.0/16, 172.16.0.0/11, 10.0.0.0/8) следует учитывать что где-то за ISA сервером работает NAT и туннелирование необходимо организовывать с использованием PPTP.

Далее мы выбираем, каким образом будет инициироваться соединение между ISA серверами. Так как мы конфигурирует принимающий соединения ISA сервер то мы можем, не отмечая опции Both the local and remote ISA VPN computers can initiate communication просто перейти к следующему шагу, но в этом случае пользователи этой локальной сети не смогут установить соединение с удаленной сетью, если VPN соединение не инициировано вызывающим ISA сервером.

На первом этапе мы рекомендовали вам определить роли ISA серверов исходя из потребностей в пользователей сети в доступе к ресурсам удаленной сети, на данном шаге мы с вами закрепляем эти роли за ISA серверам.
В нашем случае мы указываем, что оба наших ISA сервера могут инициировать VPN соединение.
В первое поле необходимо ввести полное DNS имя или IP адрес удаленного VPN сервера.
Во второе поле мы необходимо ввести NetBIOS имя удаленного VPN сервера или имя удаленного домена, если данный сервер является контролером домена.



На следующем этапе мы задаем диапазон сетевых адресов используемых в удаленной сети. Данный шаг позволит ISA серверу настроить маршрутизацию запросов локальных пользователей в удаленную сеть.



Если в удаленной сети используется несколько диапазонов адресов (подсетей), то необходимо добавить их все.
На следующем этапе мы выбираем IP адрес локального VPN сервера с которым будет соединяться удаленный ISA VPN сервер.



Здесь же приведен заданный ранее нами диапазон адресов удаленной сети необходимый ISA серверу для создания статического маршрута в эту подсеть.

На последнем этапе конфигурации принимающего ISA VPN сервера мы задаем имя файла куда будет сохранена конфигурация для удаленного ISA VPN сервера и при необходимости пароль.



На самом последнем этапе мы создаем VPN соединение с заданными нами ранее параметрами.
Перед запуском генерации VPN можно просмотреть конфигурацию создаваемого ISA сервер VPN соединения.

Листинг:

ISA Server Virtual Private Network (VPN) connection identification: network1_network2 will be created on this router. network2_network1 will be written to file. VPN protocol type: Use L2TP over IPSec, if available. Otherwise, use PPTP. Destination address of the remote ISA Server computer: 123.45.67.8 Dial-out credentials used to connect to remote computer running ISA Server: User account: network2_network1. Domain name: SERVER2. Remote Network IP addresses range: 192.168.10.0 - 192.168.10.254. Remote ISA computer configuration: IP address of this machine: 195.85.112.65. Local Network IP addresses range: 192.168.11.0 - 192.168.11.254. The configuration file created for the remote ISA Server computer: D:isa-vpnremote-conf.vpc Dial-in credentials created: The user account network1_network2 was created on this computer, with the password set to never expire. Note: A strong password was generated for the user account. Changes made to the password will need to be applied to the dial-on-demand credentials of the remote computer.

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

Для конфигурации удаленного ISA сервера и создания на нем вызывающего VPN соединения необходимо запустить мастер Set Up Remote VPN Server .



После установления соединения между VPN интерфейсами ISA серверов мы можем просмотреть состояние соединения через оснастку RRAS.



В головном офисе установлен маршрутизатор GW1. Он же будет настроен в качестве VPN-сервера. В этом же офисе работает сервер DC1, который является контроллером домена и параллельно выполняет функции DNS и WINS-сервера. В филиале установлен маршрутизатор GW2, который будет настроен как VPN-клиент.
На обоих маршрутизаторах уже настроена инфраструктура сертификатов.

Головной офис
IP-адрес внешней сети головного офиса: 10.1.100.0/24
IP-адрес внешнего интерфейса маршрутизатора GW1: 10.1.100.1/24

IP-адрес внутренней сети головного офиса: 192.168.15.0/24
IP-адрес внутреннего интерфейса маршрутизатора GW2: 192.168.15.1/24
IP-адрес сервера DC1: 192.168.15.10/24

Филиал
IP-адрес внешней сети головного офиса: 10.1.200.1/24
IP-адрес внешнего интерфейса маршрутизатора GW1: 10.1.200.1/24

IP-адрес внутренней сети головного офиса: 192.168.25.0/24
IP-адрес внутреннего интерфейса маршрутизатора GW2: 192.168.25.1/24

VPN-канал
IP-адрес VPN-интерфейса маршрутизатора GW1: 172.16.30.1/32
IP-адрес VPN-интерфейса маршрутизатора GW2: 172.16.30.2/32

Настройка

Настройка первого маршрутизатора

Через графический интерфейс

Включить OpenVPN-сервер. Для большей надежности лучше проверять сертификат клиента. Для этого надо включить опцию "Require Client Certificate ".



Создать профиль для VPN подключений. Укажем адрес сервера DC1, который является DNS и WINS сервером. Без указания DNS и WINS VPN-подключение произойдет, но не будет возможности обращаться из сети филиала в головной офис к узлам по именам.




Создать новый аккаунт. Для дальнейшего удобства лучше задавать имена так, что бы сразу можно было определить к кому или чему они относятся. Т. е. имена типа user1, user2, user3 и т. д. не желательны в виду того, что в случае увеличения их количества будет тяжело сопоставить реальных пользователей аккаунтов и сами аккаунты.



Создать статическую запись OpenVPN-сервера. Это действие не обязательно, т. к. если запись не создать вручную, то при каждом подключении она будет создаваться динамически. Но при этом наличие этой записи облегчает дальнейшую настройку и диагностику.





Через консоль

/interface ovpn-server server
set enabled=yes certificate=server cipher=aes128,aes192,aes256,blowfish128 mode=ip require-client-certificate=yes

/ppp profile
add name="OpenVPN site-to-site" use-encryption=required dns-server=192.168.15.10 wins-server=192.168.15.10

/ppp secret
add local-address=172.16.30.1 name=user1 password=user1-password profile="OpenVPN site-to-site" remote-address=172.16.30.2 service=ovpn disabled=no

/interface ovpn-server
add name="OpenVPN Server for filial1" user=user1

Настройка второго маршрутизатора

Через графический интерфейс

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









Через консоль

/interface ovpn-client
add connect-to=10.1.100.1 certificate=client1 cipher=aes128 disabled=no name="OpenVPN HQ connection" password=user1-password user=user1

Настройка маршрутизации

Если на предыдущих шагах все было сделано верно, то VPN-соединение между двумя офисами было установлено, но для того, что бы обе сети могли обмениваться информацией друг с другом они должны знать друг о друге, т. е. между ними должна быть настроена маршрутизация. Для этого надо выполнить следующие шаги:

На первом маршрутизаторе

Через графический интерфейс

Dst. Address: 192.168.25.0/24 ()
Gateway: 172.16.30.2 ()
Pref. Source: 192.168.15.1 ()
не обязательно )



Через консоль

/ip route
add comment="route to filial1 through VPN" dst-address=192.168.25.0/24 gateway=172.16.30.2 pref-src=192.168.15.1

На втором маршрутизаторе

Через графический интерфейс
Выполнить следующие настройки:
Dst. Address: 192.168.15.0/24 (адрес сети к которой указываем маршрут )
Gateway: 172.16.30.1 (интерфейс через который можно "добраться" до сети )
Pref. Source: 192.168.25.1 (интерфейс с которого будут идти запросы к сети )
Комментарий указать по нажатию кнопки "Comment" (не обязательно )



Через консоль
/ip route
add comment="route to HQ through VPN" dst-address=192.168.15.0/24 gateway=172.16.30.1 pref-src=192.168.25.1

HQ - это аббревиатура от headquarter, что в переводе означает головной офис.

Примечание: Параметр Pref. Source (pref-src) не является обязательным. Он становится нужен, если количество филиалов будет более одного. Без этого параметра не будут проходить ping"и с маршрутизатора одного филиала до хостов и внутреннего интерфейса маршрутизатора другого филиала. Не будут проходить ping"и именно с маршрутизаторов, т. е. между хостами двух филиалов связь будет.


Следует учесть

Проверка

Проверка состоит из двух частей:

  1. Надо убедиться, что между двумя маршрутизаторами MikroTik установлено VPN-соединение. Это описано ниже.
  2. Если VPN-соединение установлено успешно, то далее надо проверить есть ли связь между хостами в двух сетях. Для этого достаточно запустить ping с любого компьютера в сети на любой компьютер другой сети.

Через графический интерфейс

Если подключение установлено, то статус подключения должен отображаться с буквой "R ". Что значит running, т. е. запущено.



Через консоль

Выполнить команду
/interface ovpn-server print - на сервере
/interface ovpn-client print - на клиенте
Если соединение установлено успешно, то статус подключения, так же, как и через графический интерфейс, должен отображаться с буквой "R ".

Типичные проблемы

  • Если VPN-соединение между двумя маршрутизаторами MikroTik не устанавливается, то надо проверить:
  1. Не мешает ли файервол. Для уверенности лучше временно отключить все правила файерволов на обоих маршрутизаторах. Стандартные настройки файерволов можно посмотреть .
  2. Совпадают ли имя пользователя и пароль на обоих маршрутизаторах.
  3. На VPN-клиенте указан правильный адрес VPN-сервера к которому должно происходить подключение.
  • Если не проходит ping между двумя компьютерами в разных сетях, то надо проверить:
  1. Правильно ли сделаны настройки маршрутизации на обоих маршрутизаторах не зависимо от того из какой сети в какую будет идти пинг.
  2. На брэндмауэре компьютера, который будет пинговаться, сделаны необходимые разрешения для протокола ICMP. Для уверенности можно отключить встроенный брэндмауэр и выгрузить антивирус.
Статьи по теме: