. За последние несколько лет я собрал подборку замечательных утилит, которыми пользуюсь ежедневно. Эти инструменты позволяют мне быстрее справляться с работой, дают возможность получать более точные результаты, а также помогают моим клиентам. Отобранные утилиты умещаются на съемном накопителе USB, так что они всегда у меня под рукой. При этом лучшая часть моего набора инструментов распространяется бесплатно. Подробную информацию о том, где загрузить нужные инструменты, можно найти во врезке «Дополнительная информация».
Коммуникационные утилиты
FileZilla
По роду своей деятельности я связан с обслуживанием клиентов на сервере web-узлов и мне часто приходится перемещать большое количество каталогов и папок с одного сервера на другой. Мои клиенты должны делать то же самое, когда они выпускают новые версии кода на своих Web-узлах. Проводить клиентов по сессии протокола FTP с командной строкой по телефону едва ли возможно, ведь многие пользователи незнакомы с протоколом FTP. Хотя коммерческие программы с графическим интерфейсом для FTP всегда были под рукой, перспектива платить от 10 до 30 долларов за лицензию на графический интерфейс для доступного протокола мне не нравилась. И вот однажды возникла идея альтернативного решения, которое было бы графическим, бесплатным и позволяло бы за один раз переносить большое количество файлов с одного места на другое по протоколу FTP. Один инструмент мог с этим справиться, это был клиент с открытым кодом - FileZilla.
Клиент с открытым кодом FileZilla является клиентом FTP с графическим интерфейсом; данный инструмент запускается на всех 32-разрядных версиях Windows, начиная с Windows 95 и кончая Windows XP. Клиент FileZilla поддерживает передачи по протоколу FTP и SSH File Transfer Protocol (SFTP), операции drag-and-drop, очереди из нескольких файлов и передачу по нескольким соединениям, а также режим PASV (passive). Проще говоря, он предоставляет любую возможность, которую предлагает большинство коммерческих пакетов, и платить за него не нужно. Эта утилита должна присутствовать в наборе инструментов каждого администратора.
В качестве бонуса FileZilla также приходит в версии сервера, если нужен быстрый и простой сервер FTP при нежелании устанавливать Microsoft IIS. Или если IIS установить нельзя, как в случае с XP Home Edition. На Экране 1 (http://www.windowsitpro.com/Files/50122/Экран_01.gif ) показан клиент FileZilla в действии.
OpenSSH
Лет десять назад финский инженер Тату Илёне разработал первую версию протокола, известного как Secure Shell (SSH). Первая версия (теперь, как правило, ссылаются на SSH-1) позволяла создавать шифрованные сессии с командной оболочкой (с приглашением на ввод команд) на системах UNIX в небезопасных сетях типа Internet. Теперь de facto протокол SSH превратился в стандарт для удаленного управления в мире UNIX, причем c OpenSSH он доступен и для Windows.
Для чего же нужен протокол SSH, если Microsoft уже включает сервер и клиент Telnet со всеми самыми свежими версиями Windows? Очень просто: для безопасности. Microsoft Telnet можно использовать для удаленного создания сессии на основе приглашения для ввода команд по Internet, но такая коммуникационная сессия будет идти в открытом виде. Поэтому все желающие смогут увидеть, что делается в такой сессии Telnet.
Протокол SSH был призван заменить опасные протоколы типа Telnet, причем он предоставлял все нужные возможности. Хотя администраторы обычно пользуются протоколом SSH для Windows, чтобы создавать сессию на основе приглашения для ввода команд в небезопасных сетях, они также используют протокол SSH для доступа к портам TCP по туннелю SSH, все для той же безопасной передачи файлов.
Я считаю, что протокол SSH может пригодиться моим клиентам для удаленного управления. Часто для беспроводного подключения по сотовым сетям (например, через сети General Packet Radio Service—GPRS) мне бывает необходимо удаленное подключение к системам клиентов. С помощью протокола SSH я могу установить сессию на основе командной строки с удаленной системой, поскольку такое подключение безопасно и при этом можно быстро устранить возникающие проблемы. На Экране 2 (http://www.windowsitpro.com/Files/50122/Экран_02.gif) показана клиентская сессия OpenSSH. Графические протоколы типа терминальных служб, Terminal Services, хороши, когда есть широкая полоса пропускания, если же ее нет, то протокол SSH является наиболее подходящим решением.
В качестве бонуса предлагается несколько хороших клиентов SSH для портативных устройств, как для PocketPC, так и для Palm OS, причем предоставляется широкий набор возможностей для безопасного удаленного управления.
Утилиты прослушивания
WinDump
Иногда я мечтаю перестать заниматься серверной техникой и консультированием, и поработать с сетевой аппаратурой. Ведь, в конце концов, сети проще - пакет либо есть, либо его нет. Конечно, я слишком упрощаю дело – просто я предлагаю одну из своих любимых командных утилит, WinDump.
Утилита WinDump - исключительно мощный пакетный командный сниффер (программа для пассивного прослушивания с поддержкой командной строки). Перенесенный с утилиты Tcpdump, доступной для UNIX, WinDump обладает той же мощью и гибкостью в мире Windows и при этом имеет всего 440 Kбайт исполняемого кода.
Утилита WinDump бывает полезна в тех случаях, когда необходимо быстро выполнить пакетный сбор данных для выявления сетевой проблемы. Это гибкая утилита, она может захватить и отобразить детали по каждому пакету, который пересекает сетевой интерфейс. Она способна фильтровать результаты на выходе на основе протокола (например, протокола разрешения адресов Address Resolution Protocol—ARP, IP, TCP, UDP), сети или хоста источника, сети или хоста назначения, порта источника, порта назначения и на основе многих других критериев.
Для использования WinDump сначала надо ее загрузить и установить библиотеку захвата пакетов Windows Packet Capture Library (WinPcap), портированную на Windows открытую библиотеку захватов пакетов и сетевого анализа libpcap для UNIX. Библиотека WinPcap работает на всех версиях Windows. Самая последняя бета-версия (на момент написания статьи) - 3.1 beta 4.
После установки WinPcap можно загрузить автономный исполняемый файл WinDump. Версия 3.8.3 – самая последняя версия на момент написания данной статьи, она вполне прилично работает вместе с последней бета-версией для WinPcap. Для старта WinDump достаточно просто запустить пакет с командной строки с правильными параметрами, с которыми следует проводить захват и чтение. Подробное руководство по WinDump содержится в файле http://windump.polito.it/docs/manual.htm .
Как показано на Рисунке 3 (http://www.windowsitpro.com/Files/50122/Экран_03.gif), первая команда для исполнения – это Win-Dump -D. Данная команда показывает список интерфейсов, доступных на компьютере, и соответствующий номер для каждого интерфейса. Эта информация показывает, какой интерфейс надо использовать для снифинга. После определения, какой интерфейс следует запускать, можно просто использовать этот номер с помощью параметра -i (например, WinDump -i 3, если номер 3 – тот интерфейс, который выбран для применения) для запуска просмотра пакетных данных в реальном времени. Поскольку эти номера представляют собой портированные утилиты UNIX, переключатели командной строки чувствительны к выбору регистра.
Ngrep
Хотя WinDump – превосходная утилита, иногда она требует значительной дополнительной работы или знаний, чтобы правильно выполнить поиск. Предположим, вы пытаетесь определить, проходит ли запрос DNS по вашей сети, но не разбираетесь в протоколах, и не знаете, какой из них DNS использует по умолчанию. Или, например, у вас проходит большой трафик через сетевое подключение, и вы в затруднении из-за того, что он слишком велик для промотра всех пакетов, чтобы найти нужный. В таких ситуациях я всегда полагаюсь на ngrep, известную сетевую утилиту для быстрого просмотра.
Это, вероятно, одна из наиболее известных и часто используемых утилит в UNIX. Утилита grep находит соответствия в текстовых строках (с помощью механизма, известного как регулярные выражения) в файлах системы, затем выводит строки на дисплей. Эту утилиту можно сравнить с утилитой командной строки Find в Windows, только grep предоставляет большие возможность при поиске по текстовым строкам.
Предлагая похожие возможности на сетевом уровне, ngrep дает такой же уровень функциональности для снифинга пакетов. В результате необязательно знать, какие протоколы, порты, сети или IP-адреса используют эти два устройства для передачи данных. Нужно только знать что-то о полезной нагрузке этого пакета, и ngrep найдет его — неважно, как он передается.
Я часто применяю ngrep, чтобы устранить проблемы с запросами DNS. В большой среде Active Directory (AD) обычно в сети обрабатываются десятки запросов DNS в секунду. Если я пытаюсь устранить специфический комплекс проблем, то просмотр каждого пакета в поисках нужного как минимум требует очень много времени. Вместо того чтобы полагаться на прямой пакетный захват всего трафика DNS, я просто использую ngrep, чтобы найти текстовую строку, которую ищу, потому что запросы и ответы DNS выполняются в незашифрованном тексте.
Ngrep в настоящее время распознает протоколы ICMP, IGMP, Raw, TCP и UDP на интерфейсах 802.11, Ethernet, FDDI, PPP, SLIP, Token Ring и null. Для утилиты нужна библиотека WinPcap (как и для WinDump) для правильной работы. (Ngrep 1.43 проверялась для работы с WinPcap 3.1 beta 4.) Как видно из Рисунка 4 (http://www.windowsitpro.com/Files/50122/Экран_04.gif), я запустил команду ngrep для выбора всех пакетов со словом utilization. Ngrep нашел пакет в соединении AOL Instant Messenger (IM), которое у меня в то время было с моим коллегой.
Ethereal
В том случае, если нужно закатать рукава и погрузиться в область захвата и анализа трафика сети, вспоминается еще одна утилита: самый популярный сетевой анализатор, Ethereal. Сетевые эксперты во всем мире пользуются утилитой Ethereal, потому что в ней есть все стандартные возможности, которые имеются в большинстве анализаторов протоколов, но она содержит и то, чего нет в других продуктах. Более 400 разработчиков со всего мира внесли свой вклад в это приложение открытого кода. Десять лет назад я заплатил 20 000 долл. за приложение с такими же возможностями, но Ethereal предлагает их бесплатно.
Утилита Ethereal может снять информацию о сетевом подключении, отфильтровать эти данные, получить подробную информацию о каждом пакете, сохранить захват пакета для подробного анализа, послать пакетные захваты другим сетевым инженерам (или источникам), чтобы помочь с отладкой, открыть пакетные захваты многих других ведущих утилит цифровой фиксации пакетов. Утилита Ethereal может перехватывать данные с Classical IP over ATM (CIP), Ethernet, Fiber Distributed Data Interface (FDDI), Point-to-Point Protocol (PPP), Token Ring, 802.11 и кольцевых интерфейсов (хотя и не поддерживает все типы на всех платформах). По всем этим сетевым транспортам Ethereal может анатомировать более 750 типов протоколов, в том числе FTP, HTTP, NetBIOS, POP3, RPC, SNMP, SSH, SMTP и Telnet.
Подобно другим утилитам прослушивания, о которых я говорил, Ethereal зависит от правильной установки WinPcap, поэтому сначала надо установить ее. Затем после установки самой свежей версии Ethereal для Windows просто доберитесь до меню Capture, Interfaces и выберите нужный интерфейс, чтобы начать ввод. Далее можно начать анализ трафика. Экран 5 (http://www.windowsitpro.com/Files/50122/Экран_05.gif ) дает ясное представление об интерфейсе Ethereal.
Утилиты для сканирования, контроля и мониторинга
BareTail
Многие приложения сохраняют все регистрационные сведения в прямых текстовых файлах, потому что журналы регистрации событий не подходят для некоторых типов данных в Windows (например, регистрационных файлов IIS). При мониторинге и поиске неисправностей эти типы приложений полезны для просмотра регистрационных данных в реальном времени. Однако, поскольку они являются текстовыми файлами, этот процесс обычно состоит из следующих шагов: необходимо открыть файл в Notepad или другом текстовом редакторе, просмотреть его содержание и закрыть файл, а затем вновь открыть файл, чтобы посмотреть, что изменилось.
В мире UNIX для этой цели предназначена одна утилита, которая легко выполняет такое задание. Это и есть Tail. Разработчики фирмы Bare Metal Software создали BareTail – бесплатную версию данного инструмента. Хотя BareTail не является инструментом c открытым кодом, как все остальные утилиты, рассмотренные в данной статье, он быстро занял свое место среди моих любимых утилит – причем обнаружил я его совсем недавно.
Утилита BareTail прекрасно подходит для просмотра файлов журналов, в том числе журналов IIS, кластерных журналов и других типов журналов, которые могут быстро создавать большое количество данных. На Экране 6 (http://www.windowsitpro.com/Files/50122/Экран_06.gif) мы видим этот инструмент в действии. Утилита BareTail может обрабатывать большие регистрационные файлы (например, более 2 Гбайт) так же быстро, как и файлы меньших размеров, причем для более легкого визуального распознавания она может селективно выделять определенные записи, которые появляются в файле, базируясь на соответствиях в текстовых строках. Предположим, нам нужно выделить ссылки на cmd.exe в файле журнала IIS, чтобы легко определить, какие входящие подключения пытаются использовать известные слабые места этого продукта.
Одно из самых ценных качеств BareTail состоит в том, что это автономный исполняемый файл. Пакетов для установки нет, поэтому можно использовать данную утилиту на системе клиента и чувствовать, что вы если и повлияли на его систему после завершения работы, то совсем чуть-чуть.
NeWT
Когда я думаю о безопасности, я обычно обращаюсь к программам с открытым кодом, а не к решениям конкретных производителей. Прежде всего, в этом сообществе работают неутомимые трудоголики, которые вникают во все аспекты, особенности и дефекты. Яркий пример тому – сканер уязвимых мест Nessus.
Этот сканер уязвимостей - самый популярный в мире. Примерно 75 000 организаций используют его для оценки и проверки безопасности своих сетей. Впервые Nessus был выпущен в 1998 году для UNIX; портированная на Windows компанией Tenable Network Security версия Nessus называется NeWT.
Tenable Network Security предоставляет стандартную версию NeWT бесплатно. Единственное ограничение состоит в том, что хост, на котором запускается NeWT, может сканировать только свои локальные подсети. Эта утилита может сканировать более 6000 известных уязвимых мест, вот почему NeWT на сегодня - самый нужный сканер для платформы Windows.
Когда вы запускаете утилиту NeWT в своей локальной подсети, она начинает процесс проверки каждого хоста, который обнаружит, на предмет уязвимости в своей базе данных. Можно настроить утилиту NeWT на проверку только выделенных уязвимостей – например, если вы стопроцентный пользователь Microsoft, то вам не надо проверять уязвимости для UNIX. Утилита NeWT может проверять уязвимые места, связанные с переполнением буфера, может контролировать ошибочные настройки прикладных служб (например, почты или Web), находить все прослушивающие порты на сервере и определять тип операционной системы, искать тайные ловушки, установленные на зараженном хосте и т.д. На экране 7 (http://www.windowsitpro.com/Files/50122/Figure_07.gif) показаны результаты работы NeWT в процессе сканирования уязвимостей.
Если наделить утилиту NeWT административными правами, то можно заглянуть в систему еще глубже и проверить имеющиеся исправления или наличие шпионского программного обеспечения. Например, на контрольной системе-жертве в моей лаборатории утилита NeWT обнаружила несколько пакетов шпионящих программ и бесплатных программ с рекламой, которые я нарочно установил на этом хосте для проверки. Утилита NeWT посоветовала мне удалить эти приложения. Утилита NeWT – это первый инструмент, который я беру, чтобы начать оценку безопасности клиента. Рекомендую всем администраторам иметь ее в своем арсенале инструментальных средств.
Winfingerprint
Предположим, нам нужно быстро получить информацию об удаленной системе. Для этой цели подойдет Winfingerprint – сетевой сканер, работающий на Windows. В отличие от большинства сетевых сканеров, Winfingerprint специально разработан для получения информации о хостах и приложениях Microsoft. Winfingerprint может использовать ICMP, RPC, SMB, SNMP, TCP и UDP для получения информации о целевых системах (например, позволяет узнавать версию операционной системы, учетные записи пользователей, группы, идентификаторы безопасности, политики, службы, пакеты обновлений и исправления, совместные ресурсы NetBIOS, транспорты, сессии, диски). Утилита Winfingerprint имеет как версию с графическим интерфейсом, так и версию для командной строки: какой бы способ ни был вам по душе, всегда найдется подходящий вариант.
Как видно из Рисунка 8 (http://www.windowsitpro.com/Files/50122/Экран_08.gif), Winfingerprint определяет число дисков, установленных на целевой системе, адреса MAC-интерфейсов, версию операционной системы и пакета обновлений. Однако на экране не видно, что Winfingerprint перечислила все совместные ресурсы на выбранной системе, а также все установленные службы и имена учетных записей пользователей. Инструмент получил все данные за 20 секунд – т.е. утилита Winfingerprint представляет собой замечательный инструмент для быстрого сбора данных об учетных записях в сетевых системах.
«Дополнительная информация»
"BareTail"
"Ethereal"
"NeWT"
"Ngrep"
"OpenSSH"
"WinDump"
"WinPcap"