Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 116, АВГУСТ 2008 г.

Удаленка по-хакерски

Степан «Step» Ильин (step@gameland.ru)

Хакер, номер #116, стр. 116-032-1

Новые способы подключения к удаленному рабочему столу

Настроить удаленный сервер. Помочь приятелю справиться с вирусом. Скачать через инет документы, забытые на домашнем компьютере. Да просто постебаться над ламером! Чего только не сделаешь, если есть удаленный доступ к рабочему столу. И он всегда у тебя будет, если использовать несколько нехитрых приемов.

Много лет назад, когда все вокруг болели локальными сетям, а всеобщим любимцем был ресурс nag.ru, я с огромным удовольствием занимался собственной локалкой. Все началось с кластера внутри квартиры, продолжилось сеткой в доме и в квартале, а закончилось – пирингом с другими сетями посредством оптики и Wi-fi. Без удаленного доступа в таких условиях было не жить. Приходилось не только администрировать серверы и роутеры, но еще и помогать обычным пользователям, подключаясь к ним через излюбленную прогу Remote Administrator, о существовании которой знали даже самые ушастые. Но это были старые добрые времена, а теперь необходимость в удаленном доступе есть у каждого. В универе ли ты, школе или офисе (а может быть, тупо в интернет-кафе), всегда хочется иметь лазейку к самому святому – своему домашнему компьютеру. Ну, хотя бы на всякий случай. Другое дело, что добраться до него сквозь многочисленные роутеры, файрволы, NAT’ы и прочие ограничения, зачастую даже не зная IP сервера, уже не так просто.

Объясню на пальцах. С обычной локальной сетью, как правило, проблем не возникает. У каждого из компьютеров есть свой IP-адрес и hostname, поэтому «достучаться» до любого из них не так сложно. На управляемый компьютер устанавливается серверная часть программы для удаленного доступа. Например, Remote Administrator или различные модификации VNC, у которой есть версии для самых различных операционных систем. С любого другого компа при помощи клиентской части осуществляется соединение после простого ввода IP-адреса или имени компьютера. К сожалению, в интернете статический и реальный IP-адрес — большая редкость. Вариантов несколько. Если IP-адрес постоянно меняется, но он все-таки реальный (белый), то ситуация легко решается использованием специального dyndns-сервиса. Этот сервер совершенно бесплатно хранит запись о выбранном тобой доменном имени, скажем, myserver.dyndns.org, в которой есть актуальный IP-адрес твоего компьютера. Он постоянно обновляется за счет клиентской части, установленной у тебя в системе. Другими словами, для соединения с этим компьютером не обязательно знать его IP-адрес, для подключения используется как раз доменное имя. Но намного чаще провайдеры выдают один и тот же IP-шник (его еще называют «серым») сразу сотням, а то и тысячам пользователей. В этом случае достучаться до конкретного компьютера извне без дополнительных ухищрений уже не получится.

Хитрый подход: поднять VPN-соединение

Хорошим выходом из положения будет поднять поверх инета виртуальную часть сеть (VPN) и работать точно так же, как в обычной локалке. То есть, использовать внутренние IP-адреса и не морочить голову вопросом, как будут передаваться сетевые пакеты на самом деле.

Поднимать для этого какой-то серьезный софт в нашей ситуации просто глупо. К счастью, есть одна замечательная программа, рассчитанная как раз на самых обычных пользователей. Речь идет об утилите Hamachi (www.hamachi.cc). Ее уникальность в простоте настройки VPN-соединения, которую полностью берет на себя управляющий сервер. Для создания закриптованного канала пользователи сначала подключаются к нему, получают необходимые для соединения инструкции и только после этого устанавливают коннект между собой. После того, как связь налажена, дальнейшее посредничество сервера исключается, поэтому трафик передается исключительно между пользователями.

На практике такой подход выглядит еще проще. После установки Hamachi в системе появляется виртуальный сетевой адаптер, но браться за его настройку не стоит. Все управление осуществляется в специальном окошке, сильно похожем на обычный IM-мессенжер. Первым делом необходимо подключиться к управляющему серверу, а после этого – создать свою виртуальную сеть, нажав на правую нижнюю кнопку. Во время регистрации VPN необходимо ввести ее имя и пароль — эти параметры в дальнейшем будут использоваться другими компьютерами для подключения к виртуальной сети. Собственно, на этом вся настройка и заканчивается. Тебе остается только присоединить оба компьютера к одной и той же VPN-сети и пробовать пропинговать друг друга по внутренним IP-шникам, указанным в верхней части окна Hamachi. Все должно заработать без какой-либо дополнительной настройки! Каждому юзеру будет выдан уникальный внутренний IP (к примеру, 5.0.0.53), а также специальный идентификатор, по которому другие пользователи могут тебя распознать. Неважно, какой именно софт будет использоваться (игры, чаты, файлообменники и т.п.) — Hamachi все равно установит прямое соединение и непрерывное кодирование данных. Приятный момент заключается в том, что работе этой системы не мешают ни NAT’ы, ни брандмауэры, ни капризы системного администратора. Версии клиента существуют не только под Винды (на многих языках, включая русский), но и Linux, что вдвойне приятно. Ты не только сможешь использовать привычные инструменты для удаленного управления, но и наслаждаться всеми прелестями обычной локалки, например, играми. Хочу обратить внимание, что количество пользователей в VPN-сети вовсе не ограничивается двумя компьютерами. Их может быть гораздо больше!

Теперь о безопасности. Во время регистрации клиент генерирует пару RSA-ключей (один – публичный, другой — скрытый), которые применяются для авторизации на сервере. Шифрование данных основывается на алгоритмах, применяемых в IPSEC и SSL и давно заслуживших доверие. О том, что разработчики подошли к вопросу безопасности со всей строгостью, можно судить даже по самым маленьким мелочам. Например, во время установки клиента, установщик спрашивает разрешение на блокировку всех потенциально опасных служб Windows, которые включены по умолчанию и могут представлять угрозу для безопасности. Правда, помимо всего прочего программа заблокирует и файловый шаринг: обратиться к удаленным файлам и папкам посредством привычных средств Винды уже не удастся.

Универсальный подход: использовать сервер-посредник

Hamachi устанавливает в систему свой виртуальный драйвер, а, значит, для установки, как ни крути, нужны права администратора. А где ж их взять, если доступ необходим к компьютеру, находящемуся в офисе, а непонятливый админ никогда не пойдет на установку софта для удаленного управления ради обычных смертных? Можно, конечно, это обойти, но лучше поступить по-другому: просто справляться без привилегий администратора. Конечно, о VPN-соединении в этом случае придется забыть, но если речь идет об удаленном доступе, то – запросто!

Я лично сталкивался с такой проблемой несколько раз, и каждый раз меня выручала замечательная утилита и онлайн-сервис TeamViewer (www.teamviewer.com). В первую очередь необходимо скачать с офсайта дистрибутив программы. Он без проблем установится в любой системе, несмотря на отсутствие прав администратора, но даже если этому что-то помешает – разработчики любезно предоставили на сайте portable-версию своего приложения. После запуска утилита обращается на специальный сервер, который возвращает ей уникальный идентификатор и пароль: например, 24 153 297/ 3280. Все: теперь подключиться к нему ты сможешь с любого другого компьютера, где также установлен TeamViewer. Просто введи данные на клиентской машине, выбери Remote support и смело жми на Connect to partner. Секунда и… доступ к удаленному рабочему столу получен. Черт подери, как же хорошо это работает!

Главная особенность такой организации подключения — возможность работы через любые файрволы и NAT! Не надо морочить себе голову пробросом портов, хитрой маршрутизацией и т.п., тут все просто, как дважды два.

Качество картинки легко настроить в соответствии с каналом: мы специально проверяли TeamViewer на очень слабом канале, соединяясь с компьютерами в Уругвае – все просто летает. Более того, прога позволяет удобно передавать файлы и управлять питанием компьютера, в том числе быстро отправляя компьютер в ребут. А чего стоит возможность установки VPN-соединения – получается тот же самый Hamachi, правда, также требующий установки специального VPN-адаптера. Если требуется записать все действия на удаленном компьютере или что-то сказать собеседнику посредством чата – нет проблем, соответствующие функции доступны даже в бесплатной версии программы. Кстати говоря, недавно появилась версия и для Mac-пользователей, а в скором времени обещается выйти порт для Linux-систем. Мы искренне этого ждем!

Web 2.0 подход: админим прямо через браузер

Мне довольно часто приходится ездить между городами, и, к сожалению, ноутбук не всегда со мной. После нескольких срочных ситуаций, когда доступ к удаленным компьютерам нужен был «здесь и сейчас», а компьютера или хотя бы Интернет-кафе (где бы я без труда запустил Team Viewer) рядом не было, пришлось изрядно подумать, как быть. А решение, как это обычно и бывает, оказалось ну просто максимально эффективным. После недолгих поисков выяснилось, что в инете уже достаточно давно функционирует отличный сервис LogMeIn (logmein.com). В чем его фишка? А в том, что клиентская часть для управления удаленными компьютерами и серверами реализована в виде обычной веб-страницы и работает практически из любого браузера (IE, Opera, Firefox, Safari) и даже с моего коммуникатора!

Подход просто изумительный: ты регистрируешься на сайте (само собой, бесплатно) и получаешь доступ к своей собственной панели управления. В этой панели отображают все компьютеры, на которых установлена специальная серверная часть. Не надо запоминать IP-шники, порты и вообще заморачиваться какими-либо техническими вопросами. Ты просто заходишь в свою панель, выбираешь нужный тебе компьютер (статус каждого наглядно отображается пиктограммами) и коннектишься из любой точки мира, не задумываясь о проблемах с NAT’ом или брандмауэрами. И вот что я тебе скажу: несмотря на работу через браузер, удаленный рабочий стол работает отменно.

Единственные ограничения бесплатной версии по сравнению с Pro-братом заключаются в отсутствии звука с удаленного компьютера и возможности drag’n’drop’а файлов между текущим и удаленным компьютером. Но ведь без этого вполне можно прожить, правда?

Безопасность соединения и авторизации обеспечиваются продуманными схемами многоуровневой защиты и шифрованием данных. Не зря эта компания приобрела проверенный временем продукт Hamachi (да-да, именно тот, о котором мы говорили ранее). К тому же, сервис используют более 40 миллионов устройств по всему миру, а это уже своего рода гарант качества.

А теперь подумай: можно ли вообще обойтись без серверной программы? Сделать так, чтобы клиентская и серверная часть – обе работали через браузер? Кажется абсурдным, но компания Adobe доказала, что и это реально! По адресу www.adobe.com/acom/connectnow/ находится их новый сервис Adobe ConnectNow, который в данный момент проходит стадию бета-тестирования. Если охарактеризовать его в двух словах, то это – конференция онлайн прямо в твоем браузере. Набор полный шик: аудио и видеоконференция, чат, доска whiteboard, на которой в реальном времени могут рисовать участники, и, конечно же, Remote Desktop! Для доступа ко всей этой красоте есть единственное условие, о котором ты, наверное, догадался, — установленный на компьютерах Adobe Flash Player. Сам Remote Desktop пока еще местами подглючивает, но, уверен, разработчики скоро разберутся с багами!

Телефонный подход: оседлаем Skype

Мы уж много раз писали о VoIP-клиенте Skype и его замечательном протоколе, который хоть и не обламывается расходовать трафик пользователей на свои нужды, но за счет этого позволяет использовать телефонию с любого компьютера практически без ограничений, уверенно проходя через маршрутизаторы. Грех не использовать столь продвинутый протокол, поддерживающий криптостойкое шифрование данных для remote desktop’а! Задача упрощается еще и тем, что Skype имеет продвинутое API, а поэтому плагины к нему появляются, как сосиски в колбасном цеху: чуть ли не каждый день и помногу. Нет ничего удивительного в том, что мы нашли, как минимум, два подходящих аддона: remoteX (www.remotecall.com/remoteX/index.asp) и Mikogo (www.mikogo.com). Первый рассчитан исключительно на remote desktop, а второй – на организацию онлайн собраний с поддержкой удаленного рабочего стола. Установить их проще простого: все плагины распространяются в виде единственного файла с расширением .spark. С установленным в системе Skype’ом достаточно дважды кликнуть по нему и согласиться на установку. Остается только выбрать контакт и в контекстном меню указать название нужного плагина. Забавно, что в русской версии вопрос перед пользователем будет поставлен так: «Вас приглашают сыграть в RemoteX». Какие там игры, серьезные вещи творим! Клиент еще раз спросит о правомерности работы этих плагинов, и после очередного согласия ты получишь доступ к удаленному рабочему столу. Надо сказать, вариант этот требует достаточно шустрого канала. Если канал узкий, то непременные тормоза будут сильно напрягать.

Твой подход!

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

А как же SSH?

Во многих случаях вовсе не обязательно прибегать к удаленному рабочему столу. Обычной консоли вполне достаточно, чтобы подправить конфиг в каком-нибудь демоне. На любой nix-машине SSH-демон уже давно стал стандартом де-факто, но эта история не про Windows-серверы. Долгое время единственным полноценным решением для настройки Secure Shell под Виндой был платный продукт VShell от компании VanDyke (vandyke.com), разработавшей популярный клиент SecureCRT. К сожалению, толку от демо-версии немного. Даже для того, чтобы скачать ее с офсайта, придется попыхтеть. Поэтому появлению альтернативы в виде MobaSSH (mobassh.mobatek.net/en/) я лично очень обрадовался. А когда его опробовал, обрадовался вдвойне, потому что буквально за минуту получилось поднять SSH-сервер с привязкой к пользователям, которые созданы в системе. Простая проверка соединения с разных виндовых и никсовых клиентов показала 100% совместимость. Да, эта штука работает! И теперь безопасный доступ к командной строке через стандартные протоколы, проброс портов и туннелирование действительны и для Винды!

INFO

  • Сервис skyfex.com предоставляет возможность удаленного доступа прямо через браузер (правда, поддерживает только IE), но в концепции удаленного помощника. Желающие могут запросить помощь, а другие – могут им помочь. За денежки. Той же концепции придерживается copilot.com.
  • У программы TeamViewer есть практически 100% аналог, но с русским интерфейсом — Ammyy Assistant (www.ammyy.com).
  • Для обхода файрволов и NAT программами используются хитрые методики: STUN, UDP hole punching и Back connect.

DVD

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

Содержание
ttfb: 7.3189735412598 ms