Информационные технологииStfw.Ru 🔍

Основы туннелестроения

Новый способ получить доступ к локальной сети через инет Степан «Step» Ильин
🕛 28.08.2008, 15:47
Вот досада! Пришел в университет, но забыл дома флешку с выполненной лабораторной. У знакомого не могу установить серверный софт, так как не хватает скриптов, которые точно есть у меня на домашнем харде. Вот было бы здорово везде и всегда иметь возможность обратиться к своему домашнему компу: скачивать с него любые файлы или даже работать с рабочим столом. А еще лучше подключаться не к одному домашнему компу, а всем машинам в локальной сети сразу. И, черт подери, это реально!

Зачем нужен VPN

Еще недавно рядовому пользователю едва ли доводилось задумываться о том, что такое виртуальная частная сеть или, например, туннелирование трафика (что, собственно, одно и то же). Но сейчас, когда чуть ли не у каждого дома стоит ADSL-модем, беспроводная точка доступа - словом, какой-нибудь умный и управляемый сетевой девайс, такая необходимость возникает все чаще и чаще.

Вот обычный пример. Доступ из локальной сети в интернет осуществляется через аппаратный роутер, встроенный в ADSL-модем. Такая схема подключения удобна и надежна благодаря тому, что все компьютеры огорожены от внешней сети аппаратным файрволом. Однако во внешней сети работает только сам модем, в то время как компьютер внутри локалки для пользователей извне оказывается недоступен. Это хорошо как защита от хакеров, но плохо, когда нам самим нужно обратиться к домашнему компу. Целей обращения может быть очень и очень много: для удаленного управления, для передачи данных; в конце концов, там может крутиться игровой сервер или что-то вроде того. Конечно, чтобы подключиться к конкретному порту, можно зайти в панель управления модема (обычно реализованную через веб-морду) и организовать port-mapping (то есть перенаправление запросов, приходящих на порт роутера, на порт другого компьютера).

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

Мы уже когда-то писали о том, как поднять виртуальную частную сеть на базе openvpn и tinc («Секретный канал», «Хакер» #83). Эти мощные решения представляют массу возможностей и полностью справляются с задачей, но париться с настройкой и ковыряться в сложных текстовых конфигах захочется не каждому. Поэтому предлагаю рассмотреть другое решение, которое появилось относительно недавно. Оно очень простое в интеграции, но от этого ничуть не менее функциональное. Речь идет о VPN на основе протокола SSL (Secure sockets layer), реализованного в программе SSL Explorer (sourceforge.net/projects/sslexplorer).

Этот чудный зверь

Разработкой SSL Explorer занимается компания 3SP Ltd (www.3sp.com), предложившая весьма и весьма удачный способ защищенного доступа к файлам и ресурсам сети, а также удаленного управления компьютерами с использованием на клиентской стороне исключительно web-браузера с поддержкой Java. Принцип работы SSL Explorer представлен на рисунке. Фишка в том, что программа сама обращается к внутренним ресурсам сети, выступая шлюзом между внешним подключением и локальной сетью. Во-первых, это избавляет от необходимости перенаправлять десятки портов для разных приложений. Иначе говоря, достаточно «пробросить» через внешний маршрутизатор (тот же ADSL-модем) только один порт, на котором будет принимать подключения SSL Explorer. А во-вторых, это значительно повышает защищенность системы, так как соединение между клиентом извне и программой осуществляется исключительно по защищенному каналу.

Сложно представить, как с помощью какой-то программы, да еще через веб-интерфейс, можно получить доступ к любым ресурсам сети, даже к удаленным столам рабочих станций, но это действительно реально! Мало того, SSL Explorer распространяется с открытыми исходниками и в своей базовой версии (есть еще коммерческий вариант) поддерживает вот этот внушительный список опций:

- работа с любыми современным браузерами (Internet Explorer 5, IE6, IE7, Mozilla Firefox, Opera и Safari);

- гибкое управление правами на основе политик доступа;

- удаленный доступ к файловым системам Windows через Windows Explorer;

- поддержка обратного прокси (reverse proxy) для web-перенаправления;

- различные схемы аутентификации (в том числе своя собственная и на базе Active Directory);

- поддержка HTTP и SOCKS для исходящих подключений;

- поддержка Microsoft Windows XP/2000/2003 и Red Hat Linux 8.0 и выше (другие версии Linux поддерживаются неофициально).

Поскольку SSL Explorer написан на Java, все, что нужно для его работы, - это Windows 2000/XP/2003 и Java Runtime Environment 5.0 (JRE). Впрочем, с тем же успехом его можно было бы установить и на никсовую ось, особенно если в качестве сервера использовать слабенькую машину. Но сегодня касаться этого мы не будем, тем более что даже под виндой SSL Explorer выдвигает самые скромные требования к аппаратной части.

Зверь в действии

SSL Explorer полностью построен на открытых проектах. И как это обычно бывает, весь комплекс надо умудриться настроить между собой. Еще совсем недавно тебе бы пришлось заморачиваться со специальной вспомогательной утилитой ant. Сейчас она понадобится только в том случае, если ты захочешь самостоятельно собрать программу из исходников (смотри врезку), а простая установка программы теперь осуществляется удобным мастером.

Стандартные вопросы - и вот мастер уже предлагает тебе запустить окно конфигурации нажатием кнопку «Launch». После того как ты согласишься, откроется окно браузера с загруженной страницей http://localhost:28080. Это специальная конфигурационная панель, необходимая для окончательной установки системы. Расскажу по порядку о каждом этапе настройки.

Step 1 - создание сертификата. Для безопасной передачи данных через инет SSL Explorer необходим сертификат и секретный ключ. Если его еще нет (а его нет!), выбираем пункт Create New Certificate, после чего остается ввести для сертификата секретный ключ. Без этого ключа сам сертификат будет абсолютно бесполезен, даже если попадет в руки злоумышленника. Во время следующей установки создавать заново его, естественно, необязательно и можно выбрать второй вариант.

Step 2 - конфигурация базы данных пользователей. Несмотря на открытость, SSL Explorer в качестве базы данных пользователей может использовать как встроенные механизмы Windows (Active Directory) и nix, так и свои собственные. Думаю, что ни к чему усложнять себе жизнь, поэтому выбираем последний вариант.

Step 3 - создание суперпользователя, для которого требуется ввести имя (скажем, «Administrator») и пароль. Этот злостный тип может присоединиться с локального компьютера без каких-либо ограничений, поэтому после окончательной настройки системы лучше всего его отключить.

Step 4 - конфигурация веб-сервера. Порт, протокол работы (HTTP или его защищенный вариант HTTPS), интерфейсы, с которых будут приниматься подключения, - все это задается здесь.

Step 5 - конфигурация прокси. Если планируется, что сервер будет осуществлять исходящие подключения, ему может понадобиться прокси. Адрес, порт, а также параметры аутентификации (то есть имя и пароль, если необходимо) вводятся в соответствующие поля.

Step 6 - опциональный этап. Точнее говоря, это настройки коммерческой версии программы (Enterprise Edition), которую бесплатно нам никто не даст, поэтому сейчас этот этап мы пропускаем.

Step 7 - установка дополнительных расширений. Рассказываю, что это такое. Обычно программы для удаленного доступа предлагают свои собственные механизмы для удаленного управления компьютером. Очень часто - убогие и неудобные. Так вот разработчики SSL Explorer сделали все с точностью наоборот, предоставляя возможность выбрать тот способ, который тебе наиболее привычен и по душе. Смущает слово «привычен»? А именно так и есть - в качестве управления будут использоваться давно знакомые тебе утилиты: PuTTY, Microsoft RDP Client, VNC. Я лично для себя делаю так. В этом окне выбираю только шелл-эмулятор PuTTY (для подключения к нужному компу через консоль) и стандартный RDP-клиент, хотя в дальнейшем для подключения к удаленному рабочему столу предпочитаю использовать TightVNC (поддерживает подключение к абсолютно любым системам). Проблема в том, что последнего нет в списке стандартных расширений, поэтому чуть позже его придется установить отдельно.

Последним этапом установки является страница Summary, на которой отображаются все выбранные ранее параметры. Поэтому если возникло желание изменить какой-то из них, то самое время сделать это. А дальше - не забудь нажать «Exit install».

Подключаемся к удаленному рабочему столу

Итак, с первичной настройкой покончено, пришло время запустить службы и посмотреть на SSL Explorer в действии. Старт службы и параметры запуска, как обычно, изменяются в «Панель управления -> Администрирование -> Службы». Для доступа к SSL Explorer, естественно, придется немного покопаться с внешним сетевым интерфейсом (в нашем примере - с ADSL-модемом): настроить перенаправление порта 443 с внешнего интерфейса маршрутизатора на порт 443 компьютера с установленным SSL Explorer. После этого обратиться к SSL Explorer будет возможно непосредственно по внешнему IP-адресу маршрутизатора (WAN), то есть по адресу, выданному провайдером. Если провайдер не выдает постоянный IP-адрес (то есть IP’шник меняется при каждом входе\выходе в инет), лучше всего воспользоваться специальным dyndns-сервисом (www.dyndns.com), который выдаст тебе доменное имя и будет постоянно обновлять привязанный к нему IP.

После запуска можно приступать к работе: запускаем браузер и переходим по адресу https://localhost/ (в случае локального подключения) или https://<внешний IP-адрес:443/ (если коннектишься через инет). Должно появиться окно входа, где во время первого запуска необходимо ввести имя и пароль для созданной записи Super User (я предлагал в качестве логина использовать «Administrator»). После правильного вода имени и пароля, возникнет экран консоли управления.

Поскольку эту консоль может использовать большое количество человек (каждый со своими задачами), то для каждого создаваемого ресурса нужно обозначить политики (или правила).

Поэтому первое, что мы сделаем, - это создадим новую политику! В разделе Access Control (меню слева) выбирай Policies, далее - Create Policy, назначь имя (допустим, Remote) и описание. В следующем окне нужно ввести имена пользователей или группы, которые будут иметь доступ к объектам, подчиняющимся этой политике. Добавим пока просто суперпользователя. Следующий шаг используется для создания иерархии политики, поэтому его пропускаем. Теперь готово - в списке политик, помимо стандартной Everyone, появилась еще и твоя собственная.

Теперь обозначим приложения, которые будут подчиняться этой политике. Любое приложение запускается с помощью Shortcut, то есть ярлыка, в котором прописываются параметры его выполнения, в том числе параметры доступа. Поэтому в меню выбери Applications и далее - Create Application Shortcut. Попробуем сначала подключиться к удаленному рабочему столу стандартными средствами винды (то же самое, что и «Подключение к удаленному рабочему столу» в меню «Пуск»). Выбираем из списка приложений Microsoft RPD Client. Далее указываем название/описание ярлыка и параметры сервера (его IP-адрес или сетевое имя, порт), а также параметры окна, в котором будет отображаться удаленный рабочий стол. Последний этап - параметры доступа, где надо указать только что созданную политику - Remote.

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

Жаль только, что RPD не поддерживается никс-системами и даже Windows XP Home, так что нам придется отыскать более универсальное средство. В этом плане идеально подходит приложение TightVNC. По адресу www.3sp.com/kb/attachment.php?id=26 можно скачать zip-архив, в котором находится сам TightVNC (вернее, только клиентская часть), а также XML-файл, с помощью которого и осуществляется интеграция с SSL Explorer. Выполняется это следующим образом: сначала в консоли управления выбирается Extension Manager (раздел Configuration), далее - Upload extension (закачать расширение) и указывается путь до zip-архива. Вообще говоря, подружить с SSL Explorer, то есть создать расширение, можно практически любую программу удаленного управления и мониторинга. Пример создания своих собственных плагинов рассматривается в мануале на диске. Остается только установить серверную часть TightVNC на компьютерах, к которым нужно обеспечить доступ (что не вызовет проблем), и создать ярлык для подключения в панели SSL Explorer по уже знакомой инструкции. Готово!

Сетевое окружение в окне браузера

Еще проще обратиться к расшаренным ресурсам сети. Первичная настройка осуществляется в консоли управления, и отвечает за нее раздел Network Places. Первым делом нужно выбрать пункт Create Network Place, далее ввести имя ресурса и самое главное - сетевой путь в UNC-формате (например, \\step\vidoe или \\192.168.1.150\\music). Естественно, это может быть какой-то приватный ресурс, который должен быть доступен далеко не каждому пользователю SSL Explorer. Поэтому обозначим политики доступа. Настройка здесь аналогична той, с которой мы столкнулись во время создания ярлыка для запуска приложений. Если же речь идет не о приватных данных и ты хочешь организовать доступ к каком-то ресурсу абсолютно всем, тогда смело выбирай стандартную политику Everyone.

Если ты все сделал правильно, то в разделе Network Places должен появиться список расшаренных ресурсов. При желании можно тут же попробовать к ним обратиться, благо вход в SSL Explorer мы уже выполнили. Управление файлами осуществляется с помощью удобного графического интерфейса, который позволяет не только банально перемещать, удалять, редактировать файлы, но еще и просматривать документы, изображения, упаковывать файлы для более быстрой передачи на удаленный компьютер и т.д. Причем если в качестве браузера используется Internet Explorer, то можно воспользоваться фичей WebFolders и работать с файлами, как если бы ты просто просматривал их через Сетевое окружение. Словом, SSL Explorer - поистине замечательная вещь!

WAING

Во время установки SSL Explorer, вероятно, начнет ругаться файрвол. Нужно создать правила, разрешающие работу приложения. SSL Explorer использует порт TCP 443, а TightVNC - TCP 5900.

WWW

Инструкция по созданию собственных расширений для SSL Explorer
www.3sp.com/kb/idx/13/130/article/Creating_your_own_Java_extensions.html.

Официальный сайт программы TightVNC - www.tightvnc.com.

Интернет и сети   Теги:

Читать IT-новости в Telegram

Читайте также:

Основы CSS

Информационные технологии
Мы в соцсетях ✉