Объединение двух офисов через VPN. Часть 1 – обходимся средствами Windows
Хотя тема и избита, но тем не менее, часто многие испытывают затруднения – будь то начинающий системный администратор или же просто продвинутый пользователь, которого начальство заставило выполнять функции эникейщика. Парадоксально, но несмотря на обилие информации по VPN, найти внятный вариант — целая проблема. Более того, даже складывается впечатление, что один написал – другие же нагло скопировали текст. В итоге, поисковая выдача буквально захламлена обилием ненужной информации, из которой стоящее редко можно вычленить. Поэтому я решил в своей манере разжевать все нюансы (может, кому и пригодится).
Итак, что такое VPN? VPN ( Virtual Private Network — виртуальная частная сеть) — обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (в том числе и интернет). В зависимости от применяемых протоколов и назначений, VPN может обеспечивать соединения трёх видов: узел-узел, узел-сеть и сеть-сеть. Как говорится, без комментариев.
VPN позволяет легко объединить удаленный хост с локальной сеткой фирмы или другого хоста, а также объединить сети в одну. Выгода вполне очевидна – мы легко с клиента VPN получаем доступ к сети предприятия. Кроме того, VPN еще и защищает ваши данные посредством шифрования.
Я не претендую на то, чтобы вам описать все принципы работы VPN, так как есть масса специальной литературы, да и если честно, я и сам много чего не знаю. Тем не менее, если у вас стоит задача «Сделай!», нужно срочно вливаться в тему.
Давайте рассмотрим задачу из моей личной практики, когда нужно было объединить по VPN два офиса –головной и филиал. Ситуацию еще и осложнял тот факт, что в головном офисе стоял видео-сервер, который должен принимать видео с IP камеры филиала. Вот вам вкратце задача.
Способов решения много. Все зависит от того, что у вас есть под рукой. Вообще, VPN легко построить с помощью железного решения на базе различных роутеров Zyxel. В идеале, может случиться и то, что интернет обоим офисам раздает один провайдер и тогда у вас вообще проблем не возникнет (достаточно просто обратиться к прову). Если фирма богата, то может себе позволить и CISCO. Но обычно все решается программными средствами.
А тут выбор велик – Open VPN, WinRoute (учтите, что он платный), средства операционной системы, программы типа Hamanchi (честно говоря, в редких случаях она может и выручит, но полагаться на нее не рекомендую – бесплатная версия имеет ограничение в 5 хостов и еще один существенный минус заключается в том, что все ваше соединение зависит хоста Hamanchi, что не всегда гуд). В моем случае идеально было бы воспользоваться OpenVPN – бесплатной программой, способной незатейливо создать надежное VPN-соединение. Но мы, как всегда, пойдем по пути наименьшего сопротивления.
У меня в филиале интернет раздает шлюз на базе клиентской Windows. Согласен, не самое лучшее решение, но для тройки клиентских компьютеров хватит с головой. Мне нужно сделать VPN-сервер из этого шлюза. Так как вы читаете эту статью, то наверняка уверен, что являетесь новичком в VPN. Поэтому для вас я привожу самый простой пример, который, в принципе, устраивает и меня.
В Windows семейства NT уже вшиты зачаточные возможности серверов. Поднять VPN-сервер на одной из машин не составит труда. В качестве сервера я буду приводить примеры скриншотов Windows 7, но общие принципы будут теми же самыми, что и для старушки XP.
Учтите, что для соединения двух сетей, нужно чтобы они имели разный диапазон! Например, в головном офисе диапазон может быть 192.168.0.x, а в филиале – 192.168.20.x (или любой диапазон серых ip). Это очень важно, так что будьте внимательны. Теперь, можно приступать к настройке.
Зайдите на сервере VPN в Панель управления -> Центр управления сетями и общим доступом ->изменение параметров адаптера.
Теперь нажмите клавишу Alt, вызвав меню. Там в пункте Файл нужно выбрать «Новое входящее подключение».
Поставьте галочки тем пользователям, которые могут входить в систему по VPN. Я настоятельно рекомендую Добавить нового пользователя, назвать его понятным именем и назначить пароль.
После того, как вы это сделали, нужно в следующем окне выбрать как будут подключаться пользователи. Ставьте галку «Через интернет». Теперь вам остается назначить диапазон адресов виртуальной сети. Причем, можно выбрать сколько всего компьютеров может участвовать в обмене данных. В следующем окне выберите протокол TCP/IP версии 4 нажмите «Свойства»:
У вас появится то, что у меня на скриншоте. Если вы хотите, чтобы клиент получил доступ к локальной сети, в которой находится сервер, просто ставьте галку «Разрешить звонящим доступ к локальной сети». В пункте «Назначение IP адресов» я рекомендую указать адреса вручную по принципу, который я выше описал. В моем примере я дал диапазону всего двадцать пять адресов, хотя мог указать просто и два и 255.
После этого жмем на кнопку «Разрешить доступ».
Система автоматически создаст VPN-сервер, который будет сиротливо ожидать, когда к нему кто-либо присоединится.
Теперь остается дело за малым – настроить VPN-клиента. На клиентской машине также идете в Центр управления сетями и общим доступом и выбираете Настройка нового подключения или сети. Теперь вам нужно будет выбрать пункт «Подключение к рабочему месту»
Жмете на «Использовать мое подключение к Интернету и теперь вас выбросит в окно, где нужно будет ввести адрес нашего интернет-шлюза в филиале. У меня он имеет вид 95.2.x.x
Теперь можно вызывать подключение, вводить то имя пользователя и пароль, который вы ввели на сервере и пытаться подключиться. Если все правильно, то вы подключитесь. В моем случае, я могу уже посылать пинг любому компьютеру филиала и запрашивать камеру. Теперь ее моно легко цеплять к видеосерверу. У вас же может быть что-то другое.
Как вариант, при подключении может выскочить ошибка 800, сигнализируящая о том, что с подключением что-то не то. Это проблема брэндмауэра либо клиента, либо сервера. Конкретно я сказать вам не могу – все определяется экспериментально.
Вот так незатейливо мы создали VPN между двумя офисами. Таким же образом можно объединить и игроков. Однако не стоит забывать, что это будет все-таки не полноценный сервер и лучше использовать более продвинутые средства, о которых я расскажу в следующих частях.
В частности, в части 2 мы с вами рассмотрим настройку OPenVPN под Windows и Linux.
Простая офисная локальная сеть с подключением к Интернет
Рассмотрим типичный небольшой офис. Предположим, что в нем работают несколько менеджеров (пусть их будет три), секретарь, бухгалтер и директор. На каждом рабочем месте установлен компьютер, также в офисе есть один выделенный канал в интернет с постоянным реальным ip адресом (например 195.34.10.134) и доменное имя myoffice.ru.
Теперь определимся, что мы хотим сделать.
- объединить все компьютеры в локальную сеть (LAN);
- организовать печать со всех рабочих мест на сетевой принтер;
- подключить и настроить Интернет — канал;
- организовать доступ в Интернет со всех компьютеров локальной сети.;
- защитить локальную сеть от внешних вторжений;
- установить и настроить сетевые сервисы: WEB-сервер, почтовый сервер, файловый, FTP, прокси и т.д.;
- организовать удаленный модемный доступ к офисной сети из дома с возможностью использования офисного интернет-канала
Теперь приступим к проектированию структуры сети.
Поставленую задачу построения простой локальной сети мы будем решать на базе стека (набора) протоколов TCP/IP.
Сначала выберем диапазон IP адресов для нашей локальной сети. Остановимся на зарезервированных для использования в частных сетях адресах: 192.168.0.0-192.168.255.255. Для нашей локальной сети используем адресацию 192.168.20.0/24, где «/24» — сокращенная форма записи маски подсети 255.255.255.0. В каждой такой сети (класса «С») может использоваться до 254 уникальных хостов, чего нам вполне достаточно. Постоянный ip адрес (195.34.10.134) в сети интернет нам по условию задачи предоставлен провайдером.
В простом случае наша сеть может иметь следующую топологию:
Как видно из рисунка 1, большая часть сетевых сервисов размещена на одном компьютере, который через один сетевой интерфейс подключен к сети интернет, через другой — к локальной сети офиса, а через модемное соединение — к домашнему компьютеру. Каждому сетевому интерфейсу этого компьютера соответствует свой ip адрес: 195.34.10.134 — в сети интернет, 192.168.20.1 — в локальной сети, 192.168.40.1 — при удаленном соединении. Таким образом этот компьютер выполняет роль и маршрутизатора и файерволла и серверов: web, почтового, базы данных и пр. (Маршрутизатор — в нашем случае играет роль шлюза в Интернет. Вы можете спросить: нафиг он нужен, чем занимается? Отвечу как чайник: маршрутзатор занимается маршрутизацией. пакетов между подсетями, но в нашем случае он будет просто «раздавать» Интернет всем компьютерам в нашей локальной сети). Но такая структура имеет недостатки: во-первых, опасно «класть все яйца в одну корзину» (такая сеть весьма уязвима для атак и не очень надежна — проигравший теряет все), во-вторых, в ней не оптимально распределяется нагрузка, а в-третьих, ее неудобно администрировать — любой сбой или неисправность основного сервера практически полностью парализует работу всей локальной сети. Несмотря на недостаки этого варианта, мы в дальнейшем в основном будем использовать именно его, т.к. мы здесь рассматриваем самые простые и дешевые решения для маленьких контор и дома. Следующие две схемы приведены лишь для ознакомления, и в них можно не вникать.
Теперь немного изменим топологию сети, чтобы устранить часть недостатков (см. рис.2).
Здесь маршрутизатор выполняет только роль шлюза в интернет и файерволла, а сетевые сервисы размещены внутри локальной сети, в идеале — каждый на отдельном компьютере. Теперь выход из строя одного сервера не парализует другие. Но в этой сетевой топологии тоже имеется недостаток: рабочие станции и серверы находятся в одном и том же сегменте сети, что потенциально снижает ее надежность и производительность.
Поэтому, может быть, будет лучше интернет-серверы выделить в отдельный сегмент (см. рис.3).
В этом случае локальная сеть находится в одном сегменте сети, а интернет-серверы — в другом.
Могут быть и другие топологии локальной сети, все зависит от конкретных целей и условий, но для упрощения задачи мы остановимся на первой сетевой топологии (Рис.1), несмотря на ее недостатки, т.к. для экспериментов — это не принципиально.
Теперь пришло время подумать на каком оборудовании и программном обеспечении (ПО) следует реализовать нашу простую локальную сеть. Конкретные реализации будут описаны в следующих статьях, здесь же затронем общие вопросы.
Прошло то время, когда руководство компаний могло не задумываться о легальности устанавливаемых программ. Сейчас нарушения в области авторских прав относятся к тяжким преступлениям, поэтому от греха подальше (с целью минимизации рисков) будем рассматривать только лицензионное программное обеспечение. Оптимизация затрат при переходе на лицензионные программы для маленьких организаций будут рассмотренны в отдельной статье 146УК (шутка :)))).
В качестве шлюза в Интернет можно использовать:
- компьютер с Windows (дорогое решение);
- компьютер с FreeBSD/Linux;
- аппаратный роутер (самое простое и дешевое решение — от 50$).
От некоторых крутых гуру, работающих в крупных организациях, скорее всего услышите рекомендацию на сервер поставить MS Windows 2003 Server, на него поставить ISA (для организации Интернет доступа), почтовый сервер MS Exchange, на клиентские компьютеры поставить Windows XP Pro и завести их в домен, а 1С использовать в терминальном режиме.
В принципе это функционально оптимальный вариант. для крупных организаций, но мы то не монстры, мы — маленькая конторка на 3-10 ПК. Посчитайте по прайс-листу партнеров Microsoft во сколько тысяч (десятков тысяч) долларов вам обойдется такое решение. Поэтому в следующих статьях будут рассматриваться в основном дешевые варианты, где на сервере (шлюзе) будут использоваться бесплатные FreeBSD или Linux, а на клиентских машинах Windows XP HomeEdition (или Professional). а то и Linux Ubuntu.
КОММЕНТАРИИ К СТАТЬЕ:
Статья изложена доступным для восприятия языком.
Спасибо автору за лаконичность изложения!
Поэтому перехожу к чтению следующей.