IRPStackSize и LanmanServer. Недоступность сетевых ресурсов.

Пора наверное мне писать книгу "Системное администрирование для Тыжэникеев" ;) Вообщем ситуация в следующем, она немного нетривиальна, и лишний раз подчеркивает что иногда неплохо бывает включить мозг. Начну с предыстории. Жила была в славном городе N одна небольшая контора, с несколькими ПК, желто-красной программой и приходящим мальчиком из стиля "ты ж программист". Вот только "тыжпрограммистом" он был только на словах, а на деле не дотягивал даже до заместителя эникея. В один прекрасный день на фирме пропала сеть. Т.е. интернет работал, но связи между ПК не было. Общие ресурсы не открывались, файловые базы 1С, размещенные в расшаренных папках тоже. Единственное логичное решение, которое пришло в голову "тыжэникею" было - "не знаю" (ну это помимо варианта с переустановкой ОС, который предусмотрительные бухгалтера не дали претворить ему в жизнь).

Стандартная диагностика показала что сеть работает в штатном режиме, т.е. ПК пингуются между собой, основной шлюз в интернет доступен. Однако, SMB шары действительно не работали. Вернее работали только в одну сторону, с одного ПК можно было открыть ресурсы другого, а вот наооборот - нет. Служба сервера на проблемном ПК (т.е. ресурсы которого в сети были недоступны) работала, по крайней мере в оснастке управления службами состояние службы "Сервер" отображалось как "Работает", однако при этом, попытка открыть в проводнике собственный ПК через сетевое окружение - была безуспешной (т.е. зайти по \\MACHINENAME, где MACHINAME - имя этого же ПК было нельзя). Детальное изучение журнала системы выявило наличие ошибок с кодом (ID) 2011 от Источника SRV - "В конфигурации сервера параметр "irpstacksize" имеет слишком малое значение для использования локального устройства сервером.  Увеличьте значение данного параметра."

Конечно, первой попыткой было увеличение значения IRPStackSize в HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters и о чудо, после перезапуска службы LanmanServer (Сервер) зайти на собственные сетевые шары с этого же ПК получалось. Но при попытке любого обращения из сети - ПК уходил в перезагрузку. Теперь нужно было разобраться в причиных происходящего. Во-первых, просто так система о малом значении IRPStackSize писать не может. Т.е. и с дефолтными настройками все у всех и всегда работает успешно. Где-то в дебрях интернета писали что к такой ошибке может приводить "кривое антивирусное" ПО, но версии того ПО уже давно в прошлом. Также на форуме CryptoPro, было замечено сообщение от пользователя - что после установки CryptoPro - система стала выдавать у него именно это сообщение в журнале, плюс отвалились SMB шары, но тут ситуация была явно не в этом. Ведь до какого-то момента все работало и нового софта в систему не устанавливалось.

Для того чтобы понять подобное поведение системы не лищним было бы прочитать Описание параметра IRPStackSize в Windows 2000, Windows XP и Windows Server 2003.  Т.е. для начала нужно было ответить на вопрос "а почему система вдруг стала требовать больше?" ... Как следует из описания: "Any software that uses a file system filter driver will cause the system to use more IRP stack.  Accordingly, this event may be seen after installing open file backup agents, antivirus software, quota software, replication software, etc." ... Так что логично было предположить что какой-то софт на этом ПК, использовал драйвер фильтра файловой системы и запрашивал больше ресурсов IRP стека. Если никакого софта не ставилось ... а ресурсов IRP стало требоваться больше, значит в системе был какой-то драйвер ... скорее всего вредоносный, который мешал ее нормальному функционированию.

Помните я говорил о том, что после увеличения параметра IRPStackSize при любом обращении из сети к SMB шаре ПК перезагружался? Так вот, я взял BlueScreenView v1.52  от NirSoft и проанализировал mini-дампы. Так и есть ... в системе присутствовала просто куча драйверов с именами {GUID}St.sys, {GUID}t.sys, которых там явно не должно было быть (где GUID - это огромный идентификатор из hex символов). Присутствие этих драйверов я увидел в стеке минидампа. Однозначно подобная активность в системе - ненормальна. Дальше все просто ... LiveCD, удаление запуска подозрительных сервисов (служб), драйверов в соответствующих ветках реестра, физический перенос всех {....}t.sys файлов в отдельную папку, перезагрузка ... Тааа-даааам. Бинго. Все работает. Т.е. проблема была именно в вирусе, одним из компонентов которого были эти {....}t.sys драйвера. Последующая проверка собранных файлов на VirusTotal показала однозначное заражение (вот только название вредоноса я уже забыл).

Мораль. Не спешите переустанавливать систему или осуществлять какие-то манипуляции необдуманно. В данном случае - система просила увеличить IRPStackSize в реестре. Но просто так такого быть не может, особенно если в системе ничего не менялось (т.е. не ставилось никакое backup agents, antivirus software, quota software, replication software и т.п. ПО) ... Ложным путем в данном случае было простое увеличение значения IRPStackSize, но как оказалось, "решение" одной проблемы порождало другую (самопроизвольную перезагрузку ПК при обращении к нему из сети). Поэтому необходимо было разобраться в причинах ... что, как, почему. Ну и мораль #2 ... для руководителей. Вы все еще хотите доверять обслуживание ПК в вашей организации "тыжэникею" или "мальчику", который при возникновении любой нетривиальной проблемы отвечает "не знаю" или решает все свои "не знаю" переустановкой ОС? ;)

p.s. К слову, куча "желто-красных" баз в той организации находятся на том же ПК ... и никуда не backup'ятся ) Т.е. случить что с HDD или, не дай б-г, заразись он трояном-шифровальщиком - и привет :( Также в процессе исследования системы выяснилось что ОС на этом ПК переустанавливалась местным приходящим "специалистом" не менее 5-ти раз (именно столько различных каталогов от предыдущих установок Windows было обнаружено на всех разделах), что еще раз подтвердило предположение что абсолютно все возникающие проблемы человек решал переустановкой.

Вообщем, учитесь думать ) И ваши ОС будут мягкими и шелковистыми ))
Share This :



sentiment_satisfied Emoticon