Как получить имя юзера, открывшего файл на удаленной машине?

Тема в разделе "WASM.NETWORKS", создана пользователем Grenader, 11 янв 2005.

  1. Grenader

    Grenader New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    23
    Адрес:
    Russia
    собвственно, сабж. пусть у меня есть сервер S, на нем некие расшаренные ресурсы (поднят домен, все как надо). требуется отследить, кто из пользователей открывает файлы на сервере. понятно, что можно включить аудит на доступ к файлам - однако, этот вариант даст нам "c:\users\data" вместо, скажем "\\s\data".



    поэтому вопрос - можно ли относиетльно просто это сделать? плиз, не надо советовать "написать драйвер" - а просто подскажите, где именно вставлять свой код в ядре :)



    заранее спасибо!
     
  2. MoKC0DeR

    MoKC0DeR New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2003
    Сообщения:
    136
    Адрес:
    Russia
    Ну вы блин и описываете!

    Ни указали ни операционку ни чего по существу!

    По пробую поиграть в оракула:

    Преплагаю что операционка от MS тогда - досуп к такой информации можно легко получить как из kernel так и из user.

    Вам что надо ?

    user - смотрим в MSDN NetSessionEnum

    kernel - надо будет слать irp к Lanmanserver (srv.sys) Коды различные для разных ос NT,W2k&WXP(одинаковые),W2k3
     
  3. Grenader

    Grenader New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    23
    Адрес:
    Russia
    да, согласен - забыл указать "w2k+" :dntknw:



    NetSessionEnum не подходит по причине того, что он не позволяет установить момент подключения. вызывать же его в бесконечном цикле - слишком дорогое удовльствие. также данный метод не позволит отследить кратковеременные подключения.



    что качается IRP к ланмену, то опять таки это стратегия последовательного опроса.



    возможно, я не совсем корректно сформулировал вопрос, исправляюсь - "как отследить момент открытия файла пользователем с удаленной машины?". может, прстой перехват NtCreateFile с последующей раскруткой стека может помочь?
     
  4. MoKC0DeR

    MoKC0DeR New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2003
    Сообщения:
    136
    Адрес:
    Russia
    Это уже по делу. Готового решения не дам но ИМХО надо писать драйвер-фильтр к lanmanserver. Какие конкретно пакеты обрабатывать не подскажу см. winsrc\nt4\private\ntos\srv\*.* поиск по SrvSmbOpen должен помочь
     
  5. Grenader

    Grenader New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    23
    Адрес:
    Russia
    да, интересный вариант, покопаю. есть еще WMI, там существует объект Win32_Shareб b Win32_ServerSession - т.е. я погу узнать, кто подключен, но не могу увидеть, что он юзает. интеерсно, как именно реализована эта функциональность в оснастке "управленеи компьютером"? ясно же, что ребята из M$ дров дял этого не писали...
     
  6. rst

    rst New Member

    Публикаций:
    0
    Регистрация:
    5 май 2003
    Сообщения:
    165
    NetFileEnum



    The NetFileEnum function returns information about some or all open files on a server, depending on the parameters specified.



    NET_API_STATUS NetFileEnum(

    LMSTR servername,

    LMSTR basepath,

    LMSTR username,

    DWORD level,

    LPBYTE* bufptr,

    DWORD prefmaxlen,

    LPDWORD entriesread,

    LPDWORD totalentries,

    PDWORD_PTR resume_handle

    );



    Это касательно твоего первого вопроса.



    А касательно "перехвата" доступа к файлам - а не проще ли настроить security так, как надо ? -)
     
  7. Grenader

    Grenader New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    23
    Адрес:
    Russia
    NetFileEnum

    опять таки - последовательный опрос :) важно отловить именно момент открытия, а не каждую секунду опрашивать сервер - это некрасиво, и непроизводительно,в конце концов. плюс, не дает гарантии того, что событие не было пропущено. Жаль, нет времени слазить внутрь Computer Managment - глянуть, идет там опрос по таймеру, или все же ожидание события.



    что же касается security - то задача как раз в том, что бы отслеживать доступ именно к "разрешенным" ресурсам. по сути, это реализация аудита. в данный момент есть рабочее решение - включение аудита NT на доступ к объектам, и подписка на события в event log'e. но у этого варианта есть недостатки - постоянно идет запись в журнал, отслеживать что-то другое в журнале "security" будет просто невозможно. также, страдает оперативность.
     
  8. MoKC0DeR

    MoKC0DeR New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2003
    Сообщения:
    136
    Адрес:
    Russia


    Там идет ожидание нажатия F5/Refresh
     
  9. rst

    rst New Member

    Публикаций:
    0
    Регистрация:
    5 май 2003
    Сообщения:
    165
    Grenader:

    касательно аудита - можно удалять сообщения из EventLog программно, по одному. Т.е. получил нужное тебе сообщение - прибил. и т.д.

    пункт №2 - чтоб не париться - поставь самбу :derisive:
     
  10. Grenader

    Grenader New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    23
    Адрес:
    Russia
    MoKC0DeR

    да, действительно... однако, только сейчас заметил. жаль.



    rst

    увы - NT, NT и еще раз NT :)



    с аудитом же я поступаю проще - автоочистка по достижении нескольких мегабайт.
     
  11. rst

    rst New Member

    Публикаций:
    0
    Регистрация:
    5 май 2003
    Сообщения:
    165
    насчет нт - вай?делаешь линуховый прокси и все.

    т.е. на серваке под вмварой ставишь самбу, монтируешь туда нтшную шару для которой тебе такие фокусы нужны, и шаришь её через линух
     
  12. Grenader

    Grenader New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    23
    Адрес:
    Russia
    хех, это подходит для домашнего баловства :) а вот юзать таким образом терабайтные рейды, ДВД библиотеки, учитывая, что у на 3 домена, все построено под АД... не тот уровень, к сожалению. смешанные среды админить на порядок сложнее.



    в данный момент я занимаюсь изучением того, в какой момент НТ обрабатывает выдает событие аудита - хочу туда хук из драйвера поставить, и все. что бы в журнал не писать лишнего.
     
  13. rst

    rst New Member

    Публикаций:
    0
    Регистрация:
    5 май 2003
    Сообщения:
    165
    Ну дык надо было сказать, что это продакшен -)
     
  14. Grenader

    Grenader New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    23
    Адрес:
    Russia
    еще раз позор мне - во всем продолжаю видеть поделку "для себя" :)



    но это уже не в тему... пока новых идей нету.