Windows NT 4 с Service Pack 3 включает усовершенствованную версию протокола аутентификации SMB, известную также как протокол совместного использования файлов общей системы файлов Интернета (CIFS). Модернизированный протокол имеет два основных усовершенствования. Он поддерживает взаимную аутентификацию, которая препятствует использованию атаки "человек в середине", и поддерживает аутентификацию сообщений, что препятствует использованию атак активных сообщений. Механизм подписи SMB обеспечивает эту аутентификацию, помещая цифровую подпись безопасности в каждый SMB. Затем она проверяется клиентом и сервером.
Чтобы использовать механизм подписи SMB, имеется две возможности: сделать возможным или потребовать ее использование на клиенте и на сервере. Если подпись SMB сделана возможной на сервере, то имеющие возможность клиенты будут использовать CIFS во время всех последующих сеансов. Преимущество такого подхода состоит в том, что клиенты, не имеющие возможности подписи SMB, смогут использовать более старый протокол SMB. Если на сервере требуется подпись SMB, то клиент не сможет создать сеанс, не будучи был специально инициирован для подписи SMB. Подпись SMB отключена по умолчанию на серверной системе при установке служебного пакета (service pack). Она, однако, инициирована по умолчанию, когда служебный пакет устанавливается на системе рабочей станции.
Примечание. Подпись SMB не будет работать с прямым протоколом хоста IPX. Это связано с тем, что прямой протокол хоста IPX изменяет SMB способом, который несовместим с поддерживающим подпись SMB. Эта несовместимость наиболее очевидна, когда используются прямые клиенты хоста IPX, и на сервере требуется подпись SMB. Требование на сервере подписей SMB не позволит серверу связываться с прямым интерфейсом хоста IPX, что заставит подписать все соединения с сервером. Если отключить связывание NWLink с сервером, то можно будет использовать подпись SMB.
Кроме того, подпись SMB будет снижать производительность системы. Хотя она не потребляет дополнительную полосу пропускания, но использует центральный процессор на клиенте и на сервере.
Следующие примеры показывают интерфейс командной строки, позволяющий серверу предлагать дисковый ресурс, а клиенту соединяться и использовать этот ресурс.
a) NET SHARE
Команда NET SHARE при выполнении на сервере определяет имя каталога, который будет сделан доступным для клиентов в сети. Должно быть задано общее имя, которое предоставляется клиентам, желающим получить доступ к каталогу.
Примеры:
NET SHARE docs=c:\dirl\
Делает общедоступными все файлы в каталоге C:\DIR1 и его подкаталогах с общим именем docs в качестве имени, используемого для соединения с этим ресурсом.
b) NET USE
Клиенты могут получить доступ к одному или нескольким предлагаемым каталогам с помощью команды NET USE. Когда посылается команда NET USE, пользователь может свободно получить доступ к файлам без дополнительных специальных требований.
Примеры:
NET USE: d: \\SERVERl\DOCS отображает диск d: в общедоступный каталог DOCS на сервере Serverl. Пользователь может теперь обращаться к файлам на SERVER1 C:\DIR1, используя d:. Например, dir d: *.* выдаст список всех файлов на SERVER1 c:\dirl.
NET USE * \\SERVERl\DOCS mycoolpwd отображает следующий доступный диск, который использует DOCS на server 1, защищенный паролем mycoolpwd.
Для серверов уровня пользователя клиент обычно не должен предоставлять пароль с помощью команды NET USE. Если пользователю предлагается ввести пароль, обычно это указывает на сетевую проблему (например, он не может контактировать с контроллером домена, чтобы проверить полномочия). Этот сценарий предоставляет хорошую возможность проверить инструменты сетевого мониторинга (см. часть IV). Сейчас можно попробовать проверить, существует ли проблема безопасности:
NET USE * \\SERVERl\DOCS/USER:domainname\username password
Клиентское программное обеспечение должно помнить идентификатор диска, поставляемый вместе с запросом NET USE, и связать его со значением идентификатора дерева (TID), возвращаемого сервером в заголовке SMB. Последующие запросы, использующие этот TID, должны включать только имя пути доступа относительно присоединенного поддерева, так как сервер интерпретирует поддерево как корневой каталог (виртуальный корень). Когда пользователь ссылается на один из удаленных дисков, клиентское программное обеспечение просматривает свой список дисков для этого узла и включает идентификатор дерева, связываемый с этим диском в поле TID каждого запроса.
Отметим, что когда каталог объявляется общедоступным, будут затронуты все файлы, лежащие под этим каталогом. Если определенный файл находится внутри области нескольких общих ресурсов, то соединение с любой из областей общих ресурсов получает доступ к файлу с полномочиями, определенными для предложения, поименованного в NET USE. Сервер не будет проверять вложенные каталоги с более ограничительными полномочиями.
Когда Exchange общается с другим сервером, он использует не РОРЗ или SMTP, а вызовы удаленной процедуры (RPC), которые являются значительно более безопасной и надежной формой коммуникации. Чтобы понять более полно, как работает эта коммуникация, нам необходимо рассмотреть несколько вещей, уникальных для RPC. Служба вызова удаленной процедуры выполняется на сервере Windows NT и решает множество задач, таких как идентификация номера порта, на котором действует определенная служба. Вызов удаленной процедуры помогает Exchange при поиске номеров UUID (универсальной уникальной идентификации), связанных с определенной службой. Эти UUID классифицируются по первым двум символам числа, и хотя другие службы помимо Exchange используют эти числа, несколько из них являются уникальными для продукта. Три наиболее важных номера перечислены ниже.
• А4 — хранилище обмена
• F5 — каталог обмена
• Е1 — служба вызова удаленной процедуры
Если служба вызова удаленной процедуры отказывает, то серверы обмена (Exchange) не могут общаться друг с другом, а также с другими клиентскими машинами. По этой причине хорошее понимание функции RPC может существенно помочь при поиске неисправностей.
Если два сервера обмена (Exchange) хотят общаться друг с другом, прежде всего необходимо запросить службу вызова удаленной процедуры на другом сервере обмена, чтобы определить, где осуществляет прием МТА (агент транспорта сообщений). Необходимость этого обусловлена тем, что МТА будет перемещаться и осуществлять прием на различных портах при последовательных перезагрузках. Служба вызова удаленной процедуры занимается отслеживанием всех различных служб и поддерживает список портов, которые они используют. Когда сервер Microsoft Exchange запускается, он зарегистрируется в службе вызова удаленной процедуры и запросит номер выделенного порта. Служба вызова удаленной процедуры обслуживает запросы TCP/IP на порте 135. Она имеет фиксированный UUID, равный E1AF8308-5D1F-11C9-91A4-08002B14A0FA.
Общение между серверами будет начинаться с механизма разрешения имени (поиск WINS, DNS, Broadcast, LMHOST), после чего следует трехходовое квитирование. Затем Exchange посылает кадр в порт TCP 135, который является службой местонахождения на другом сервере, и связывает RPC со службой вызова удаленной процедуры на другом сервере обмена. Мы узнаем об этом, рассматривая абстрактный интерфейс UUID E1AF8308-5D1F-11C9-91A1-08002B14A0FA. El сообщает нам, что это служба вызова удаленной процедуры.
Если требуется автоматически запускать сетевой монитор либо с помощью пакетного файла с триггером, либо с помощью службы планировщика Windows NT (команда AT), можно использовать следующие ключи командной строки. Каждый из этих ключей изменяет команду netmon. Пример пакетного файла включен в каталог batch на сайте издательства "ЛОРИ". Чтобы облегчить использование Netmon из командной строки, добавьте каталог с исполняемым файлом в путь доступа компьютера, изменяя переменную path системного окружения.
• /autostart — заставляет сетевой монитор запустить перехват данных немедленно после запуска. Пример: netmon /autostart.
• /remote computer - computer является именем удаленного агента, с которым
• желательно соединиться. Пример: Netmon /remote exchange.
• /net number - number определяет соединение с указанным сетевым интерфейсом. Эту информацию получают при помощи команды networks из меню capture. Пример: Netmon /net 2 (запустит Netmon, используя интерфейс сети #2, указанный в диалоговом окне сетей, но не начнется перехват данных, так как не определен ключ /autostart).
• /capturefilter path — определяет фильтр перехвата, который будет использоваться при работе сетевого монитора. Path задает расположение определенного фильтра перехвата.
• /displayfilter path — определяет фильтр вывода, который будет загружаться при запуске сетевого монитора.
• /buffersize number — задает размер буфера в байтах (одномегабайтный буфер перехвата будет определяться как /buffersize 1024000).
• /quickfilter type, address — указывает, что сетевой монитор начнет перехват данных сразу после запуска, и будет фильтровать на указанном адресе.
• /autostop — заставляет сетевой монитор остановить перехват данных, когда буфер заполнится. Пример: Netmon /autostart /buffersize 1024000 /autostop (запускает Netmon и немедленно начинает перехват данных с буфером перехвата в один мегабайт. Когда буфер перехвата заполнится, он остановится).
