Computer Crime Research Center

Удаленное управление Win2K сервером: Три безопасных решения

Рассмотрим обычную ситуацию: вы работаете в крупной российской компании в удобно расположенном центральном офисе с системой центрального кондиционирования и другими благами цивилизации. В ваши обязанности входят все вопросы работы компьютеров, серверов, в том числе, естественно, и вопросы компьютерной безопасности. Коллектив попался хороший, зарплата достойная. Все бы хорошо, но ваша компания имеет удаленный IIS Web сервер. Может быть, даже в другом городе, на расстоянии этак километров в пятьсот от вашего любимого офиса. Сеть, в принципе, устойчива, да и вопрос цены для вашего руководства является важным, но не первостепенным.

Удаленное управление представляет несколько проблем, самая очевидная из которых - то, что трафик между вами и сервером идет по общедоступному Интернет, может быть перехвачен. Другая проблема состоит в том, что удаленное (да и любое другое) администрирование обычно включает установку программного обеспечения и открытие портов, а это – еще два фактора, увеличивающие возможность нападения на ваш сервер. В случае, когда вы осознано выбираете удаленное администрирование, необходимо во главу угла ставить проблемы безопасности. Вы должны удостовериться, что вы (и только Вы) можете сделать свою работу, не подвергая сервер дополнительному риску.

В частности, основными проблемами при управлении удаленным сервером являются:

Контроль доступа

Целостность

Конфиденциальность

Аудит

Удаленные Методы Управления

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

Вариант 1: Терминальный сервис через Zebedee

Zebedee. Zebedee – исходно-открытая программа, которая позволяет переадресовывать TCP или UDP трафик по зашифрованным, сжатым туннелям. Использование Zebedee очень тяжело выявить методом «отпечатков пальцев», программа использует дополнительное кодирование, аутентификацию, фильтрацию по IP- адресу, туннелирование, и ведение всех записей. Zebedee прекрасно сочетается с Терминальным сервисом и дополняет его всеми недостающими качествами, что должно сделать это сочетание очень безопасным решением для удаленного администрирования.

Zebedee просматривает локальный порт, затем шифрует, сжимает трафик и посылает его к другой копии Zebedee, запущенной на сервере. Результат - туннель, который могут использовать многочисленные TCP или UDP соединения через единственный TCP порт.

Это осуществляется следующей командой:

c: \> zebedee -s -o server.log

Далее, вы запускаете Zebedee на вашем клиенте и настраиваете его на просматривание 3389 порта и переадресуете трафик к выбранному порту сервера.

C: \> zebedee 3389:serverhost:3389

Рисунок 1: Терминальный Сервис на Zebedee

В этом месте вы можете открыть ваш Terminal Services клиент и войти в localhost как сервер. Клиент соединится с местным Zebedee клиентом, который переправит его Zebedee серверу, который, в свою очередь, отправит удаленному Terminal Services порту. Терминальный сервис продолжает считать, что соединяется непосредственно, но фактически весь трафик туннелируется через безопасный канал.

Zebedee имеет множество опций для конфигурирования методов аутентификации, шифрования, фильтрации IP-адресов и ведения записей. Перед работой рекомендуем изучить их и убедиться, что ваш вариант гарантирует безопасность.

Так как терминальный сервис не имеет никакой опции для передачи файлов, вы должны будете использовать другие варианты. Один из возможных способов - использовать FTP сервер. Хотя FTP справедливо считается небезопасным, вы можете также туннелировать его через Zebedee. Выполнение этой связки является несколько трудной для настройки, но в документах к Zebedee имеется детализированная инструкция о том, как это сделать.

Есть также два других достаточно безопасных решения для транспортировки файлов непосредственно по Terminal Services. Один из них – находящийся в свободном доступе инструмент TSDropCopy от компании Analogx, а другой – также доступный инструмент WTS-FTP от Ibexsoftware.com.

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

Вариант 2: VNC на SSH

VNC - удаленный десктоп, очень похожий на Terminal Services, обеспечивающий удаленный доступ серверу. Есть, однако, некоторые ключевые отличия, к примеру:

VNC действительно имеет некоторые преимущества, но, очевидно, не может быть использован достаточно безопасно отдельно. Самая существенная проблема - отсутствие шифрования. Но трафик в VNC, как и в случае Terminal Services, может быть туннелирован, что сразу восполнит недостатки программы. В этом случае, мы можем использовать для усиления SSH (Windows OpenSSH доступен по адресу http://www.networksimplicity.com/openssh). OpenSSH использует концепции, подобные Zebedee, но в данном случае это - намного более разноплановый продукт, который также учитывает путь к удаленным программам, имеет secure file copy (SCP), и secure FTP (SFTP). Как и в случае Zebedee, возможно туннелирование трафика по единственному порту; однако, это ограничено TCP трафиком. SSH поддерживает сильное шифрование и широко-используемый протокол с сильной пользовательской поддержкой.

Концепция движения через SSH очень схожа использованию Zebedee. Вы конфигурируете сервер, чтобы он просматривал единственный порт (по умолчанию TCP порт 22), затем соединяетесь с тем портом, используя клиента SSH. Клиент SSH - по существу зашифрованный telnet клиент, который дает вам быстрый командный доступ к серверу. Но SSH также позволяет вам использовать перенаправление порта, чтобы позволить другим протоколам работать по той же самой зашифрованной связи. Чтобы конфигурирования SSH клиента перенаправлять VNC порты на соединение, используйте следующую команду:

C:> ssh? L 5901:serverhost:5900 serverhost

Это создаст VNC просмотр в локальной системе, перенаправляющий трафик к serverhost. Для соединения, укажите его в localhost:1 следующим образом:

C: \> vncviewer:1

Figure 2: VNC on SSH

Вариант 3: Windows через VPN

Чтобы сделать это, вы должны разрешить Routing и Remote Access, Server  и Workstation сервисы. Затем, откройте Routing and Remote Access administrative tool и сделайте правый клик на сервере. Выберите Configure и опцию Enable Routing and Remote Access и далее следуйте инструкциям, чтобы создать новый Virtual Private Network server.

Обратите внимание, что VPN сервер будет слушать на TCP порте 1723. Если вы не желаете доступности для других этого открытого порта, важно ограничить доступ к нему, ограничив диапазон IP-адресов на соединение.

Для клиента вы должны теперь создать новую связь в My Network Places в опции Properties. Оттуда выберите Make New Connection, и Connect to a Private Network through the Internet. Следуйте инструкциям для формирования связи для вашего сервера. Когда закончите, у вас будет новая иконка для вашей VPN связи. Далее создайте имя пользователя и пароль для соединения с сервером. После этого вы будете иметь новое сетевое соединение с новым IP-адресом, которое соединяется непосредственно с сервером так же, как если бы вы установили новый сетевой адаптер и подсоединили бы кабель непосредственно к серверу. Единственное отличие - связь осуществляется через шифрованный туннель сквозь Интернет.

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

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

Другие варианты

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



По материалам: securitylab.ru.

    Новости | О Центре | Статьи | Форум
    Документы | Ссылки | Контакты

    Copyright © Центр исследования проблем компьютерной преступности, 2001-2002 Все права защищены.
    При публикации информации взятой в нашем каталоге ссылка на http://www.crime-research.ru обязательна.