Как отключить систему защиты файлов Windows.

В предыдущих статьях я  рассказал о том, как работает функция NAT и как организовать подключение к Internet   через провайдера услуг (ISP) или через корпоративную сеть.  В примере я настроил маршрутизатор на предоставление доступа к Internet любому пользователю частной немаршрутизируемой сети 192.168.0.0 и привязал один конкретный порт маршрутизатора  к порту компьютера из внутренней сети. Теперь мы продвинемся еще на шаг дальше и вместо того, чтобы ограничить маршрутизатор NAT портами общего доступа по одному маршрутизируемому адресу,  полностью используем достоинства маршрутизатора,  который задействует все маршрутизируемые адреса целой подсети.

Настройка маршрутизатора NAT

Обычно, назначение группы адресов позволяет маршрутизатору выступать в роли статического маршрутизатора  как промежуточное звено между двумя или более подсетями, каждая из которых содержит маршрутизируемые адреса. Конечно, было бы неплохо иметь в наличии большое количество маршрутизируемых адресов для назначения их каждой системе во внутренней сети, однако  этого может и не быть. В такой ситуации вы не сможете дать каждому компьютеру сети свой личный маршрутизируемый адрес. Вместо этого маршрутизатор настраивается на трансляцию адресов, а это означает, что большая часть трафика от внутренней сети к внешней будет осуществляться с помощью простой трансляции адресов, наподобие функции Internet Connection Sharing – ICS. Разница в том, что маршрутизатор NAT настраивается на привязку маршрутизируемого адреса к некоторому компьютеру внутренней немаршрутизируемой сети.

Для простоты  приведу конкретный пример.  Допустим, система Windows 2000, действующая как маршрутизатор, подключена к Internet по каналу Ethernet и имеет IP-адрес 206.246.253.9. Предположим  также, что местный ISP  или ИТ-отдел сообщили вам адреса из небольшого диапазона, скажем, от 206.246.253.180 до 206.246.253.183. В терминах сети с IP-адресами это означает, что вы обладаете адресом сети 206.246.253.180  с маской подсети 255.255.255.252. Поскольку в подсети нельзя использовать первый и последний адреса, у вас есть только два маршрутизируемых адреса - 206.246.253.181 и 206.246.253.182. Первый вам нужен для маршрутизатора, так что для назначения внутреннему компьютеру остается только один адрес: 206.246.253.182.

Допустим, во внутренней сети есть почтовый сервер с адресом 192.168.0.10, который должен быть доступен из внешнего мира. Тогда задача состоит в том, чтобы связать маршрутизируемый адрес 206.246.253.182 с немаршрутизируемым 192.168.0.10 так,  чтобы любой пользователь мог  из Internet отправить пакет на адрес 206.246.253.182, а ответ получить не от маршрутизатора, а от внутреннего компьютера с адресом 192.168.0.10.

Процесс настройки разделяется на три этапа. Во-первых, следует убедиться, что внешние маршрутизаторы отправляют поток данных, предназначенный адресам .181 и .182, на маршрутизатор с адресом 206.246.253.9.  О данном этапе настройки заботится ИТ-отдел или служба ISP. Провайдер должен нацелить свои маршрутизаторы на систему Windows 2000 как на маршрутизатор для адресов .181 и .182.

Во-вторых, вы должны подготовить свой маршрутизатор для приема входящего трафика в назначенном диапазоне адресов. Для этого нужно открыть окно Routing and Remote Access Administration и правым щелчком мыши выбрать объект, представляющий сетевой адаптер, соединенный с Internet. Откройте Properties - появится диалоговое окно Local Area Connection Properties со следующими закладками: General, Address Pool, Special Ports. Перейдите на закладку Address Pool (откроется экран, изображенный на Рисунке 1). Для установки диапазона адресов щелкните Add, заполните появившееся диалоговое окно и нажмите OK. Теперь система готова работать в качестве маршрутизатора в   заданном  диапазоне адресов.

 В-третьих, нужно привязать адрес 206.246.253.182 к почтовому серверу с адресом 192.168.0.10. На закладке Address Pool щелкните Reservations - откроется диалоговое окно, где будет поле Reserve  this  public  IP  address. Введите маршрутизируемый адрес 206.246.253.182. В поле For this computer on the private network введите немаршрутизируемый IP-адрес почтового сервера. Затем следует поставить галочку в поле Allow incoming sessions to this address,  и процедура окончена.

 

Отключение WFP

Теперь я хотел бы переменить тему и немного  рассказать о системе защиты файлов Windows (Windows File Protection – WFP). Эта тонкая функция Windows 2000 предотвращает затирание приложениями важных системных файлов.

Предположим, например, что дизайнеру программных приложений пришла в голову оригинальная идея  оформления диалогового окна. Разработчик решает не только использовать это диалоговое окно в приложении, но и установить к нему разделенный доступ для внешних пользователей, внося изменения в файл comdlg32.dll. comdlg32.dll является динамически загружаемой библиотекой Windows, которая содержит программы нескольких общих диалоговых окон, таких как имеющиеся во многих приложениях окна открытия документа. Описываемое развитие событий основано "на фактах из жизни", как часто пишут в рекламе художественных фильмов. Несколько лет назад я устанавливал графическое приложение, использующее обновленную версию этого файла.  В таком сценарии написанное программистом новое диалоговое окно может работать не с каждым приложением Windows. Несмотря на то, что новое приложение работает хорошо  (оно  написано с учетом измененного файла comdlg32.dll),  другие приложения, прежде работавшие нормально, начинают   неизвестно почему сбоить.

От подобных проблем может защитить WFP. Если бы вы установили на систему Windows 2000 описанное графическое приложение, а встроенная программа установки приложения переписала файл comdlg32.dll, то WFP сработала бы в течение нескольких секунд, и выдала   сообщение о том, что файл comdlg32.dll был изменен. Затем WFP достигла бы скрытой папки \winnt\system32dllcache, взяла резервную копию исходного файла comdlg32.dll, заменила ею новый файл comdlg32.dll и все  работало  бы прекрасно. WFP защищает все .dll, .ocx, .exe и .sys файлы, поставляемые с Windows 2000, но не те файлы, которые   добавляются позже.

Но что если  потребуется переписать DLL?  Хорошо продуманные приложения не предполагают внесение изменений в какой-либо системный файл, правда, не всегда. Можно выйти из положения, применив   следующий   прием.

Перейдите в каталог приложения и создайте пустой файл с именем appname.exe.local. Затем скопируйте конкретный файл .dll (или .exe, .sys, .ocx файл, одним словом, любой файл, который приложение пытается использовать вместо стандартного файла операционной системы) в каталог приложения. Наличие указанного пустого (0-байтного) файла в каталоге приложения для операционной системы означает, что сначала файлы типа .dll,  .exe, .sys и .ocx, которые используются приложением,  следует искать в этой папке, а затем в каталоге \winnt\system32.

Например, предположим, я хочу запустить некое приложение marksapp.exe, которое установил в папку C:\coolapp на своей машине Windows 2000. Попытка запуска  оказывается неудачной, несмотря на то, что раньше  приложение работало под Windows NT. Звоню продавцу, мне объясняют, что приложение не может работать без измененной версии файла route.exe. Даже если  консультант  не скажет, измененная версия какого именно файла  мне нужна,  несложно и самому отыскать его. Требуется просмотреть с помощью Event Viewer системный журнал (System log), в котором  должна быть запись Event ID 64002 от источника "Windows File Protection", предупреждающая о том, что кто-то   пытался переписать файл route.exe, но WFP спасла положение и восстановила файл.

Теперь можно   заставить работать marksapp.exe. Сначала я   открываю папку C:\coolapp и создаю пустой файл с именем marksapp.exe.local. Затем копирую измененный файл route.exe в папку C:\coolapp. Marksapp.exe работает нормально.

Есть и дугой способ: перейти в раздел реестра HKEY_LOCAL_MACHINE\SOFTWAREMicrosoft\ Windows NT\CurrentVersionWinlogon, установить параметр SFCDisable в FFFFFFD9 и перезагрузиться. Однако полностью отключать WFP не  следует, и я не рекомендую этот  вариант.

Марк Минаси - редактор Windows NT Magazine, имеет сертификат MCSE; является автором книги «Mastering Windows NT Server 4.0» (издательство Sybex). С ним можно связаться по адресу: mailto:mark@minasi.com.