Имеется Windows-сервер с энным количеством зашареных ресурсов. Необходимо отловить факт обращения к ним из сети. Самый простой способ - включить аудит на уровне файловой системы. После чего анализируя event log получать имя пользователя, открывшего (или удалившего) файл. Главный минус - невозможность получить UNC путь, по которому обращался пользователь. А порой это очень важно. Возможен перехват NtCreateFile и иже с ним - однако, опять таки UNC путей мы не видим. В винде есть механизм для определения открытых файлов (NetXXXEnum) - однако, этот метод требует постоянного опроса системы, и поэтому совершенно неприемлем. Возможно, поможет написание некоего драйвера-фильтра - однако, я просто даже и не знаю, в какой именно области сетевой подсистемы винды можно получить UNC-путь, по которому идет обращение к серверу. Может, у кого-то будут идеи? PS Вопрос уже звучал на этом форуме, но ответы сводились к "э-э... лучше ставь BSD"
Grenader Что сделал мелкософт когда купил хотмайл? Поставил вместо солярки свою ось. Через пару дней все умерло так, как будто и никогда не работало. Они вернули солярис и он там стоит до сих пор, и т.д. и т.п. Для качественной работы с сетью необходимо ставить нормальныую в этом плане ОС или искать готовое решение от крупной фирмы (типа анализаторы траффика и пр.), потому что задачка крутовата будет для мастдая, чтобы ее "просто так" (малой кровью) решить.
NoName Думаю, что смена ОС - это не путь исследователей и вообще любителей асма "все работающее кем-то написано". И совсем уж точно не путь для крупной компании. Которая умеет считать деньги. CARDINAL намылил, ждем-с...
Grenader 1. Смена ОС это путь исследователей в том числе. 2. Также любителей асма 3. Все работающее кем то написано и требует оптимизации 4. Это путь (в данном случае) для любой уважающей свои интересы крупной компании (писал учитывая контекст поставленной задачи) 5. Компания которая умеет считать деньги (в плане способности ПО\цену) давно бы перешла бы на солярис 10.
NoName 1. "в том числе" - но к словам придираться не будем, разве что в порядке злостного флуда. 2. туда же 3. к чему это? я имел в виду некий "крутой" платный софт - принципы работы которого тебе не известны. 4. для любой конторы путь - это в рамках существующей инфраструктуры выжать максимум из железа и софта, а не менять ОС только потому, что кому-то вдруг больше понравился солярис. 5. напиши плиз, сколько запросит якобы "крутой" штат админов ("крутость" которых заключается в знании редкой ОС), сколько стоит приличная коммерческая СУБД на солярисе, сколько запросит уже ее админ, и т.д. и т.п. Ответил только из прихоти - религиозные войны "винда сакс, юникс рулез" поднадоели. Все аргументы *ксоидов (и прочих альтернативщиков) сводятся исключитетельно к "нравится/не нравиться/умею/не умею". точка. Если же тебе есть что сказать по существу - дерзай
CARDINAL Спасибо за сырец - однако, это, к сожалению, тот самый пресловутый опрос системы по таймеру с помощью функций NetXXX Нет никакой гарантии, что разрешения таймера хватит для обнаружения всех сессий - например, небольшого изменения файла или его удаления. Не могу понять, почему товарищи из Редмонда не реализовали здесь событийную модель...
Grenader понимаешь, вопрос ты поставил крайне интересно, тебе нужно знать от кого запрос, вот это хрен ево знает, а контроль файлов мона сделать и при поможи перехвата ядерных функций к примеру типа Ioххх. это сработает, но а вот остально ехрен ево знает
Ядерные функции гораздо менее удобно, чем тот же журнал аудита. Тем более, на изменение журнала событий всегда можно подписаться (что я и делаю). А что именно в msdn есть по поводу событийной модели? NetXXX никаких поинтеров на обработчики событий не получают, нет там такого. Есть что-то туманное про ADSI - но, явно опять таки про события не сказано.