URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID14
Нить номер: 2534
[ Назад ]

Исходное сообщение
"full_audit - не пишутся ошибки логина"

Отправлено zett , 20-Июн-12 14:41 
Столкнулся с такой проблемой. Модуль full_audit.so даже при указании на то из конфига самбы
vfs objects = full_audit
full_audit:prefix = %u|%I|%m|%S
full_audit:failure = all
full_audit:success = all
full_audit:facility = local5
full_audit:priority = notice

пишет только удачные попытки подключения

Jun 20 13:29:18 yoserv smbd[45722]: user|192.168.х.х|user11-pc|share|connect|ok|share
Jun 20 13:29:18 yoserv smbd[45723]: user|192.168.х.х|admin-pc|IPC_|connect|ok|IPC$

при этом попытки логина скажем с неправильным именем пользователя оставляет без внимания, не говоря уж о неверном пароле. Очень хотелось бы решить эту проблему.

Уважаемые Оупеннетовцы! Помогите победить фул аудит :)


Содержание

Сообщения в этом обсуждении
"full_audit - не пишутся ошибки логина"
Отправлено zett , 25-Июн-12 16:05 
Неужели никто не занимался вопросами безопасности самбы?

"full_audit - не пишутся ошибки логина"
Отправлено JohnProfic , 25-Июн-12 22:07 
Есть предположение, что в случае неверных логинов, дело до full_audit просто не доходит - он все-же работает на уровне vfs, а неверные логины вполне могут отсекаться уровнями выше.

"full_audit - не пишутся ошибки логина"
Отправлено zett , 25-Июн-12 22:17 
капля логики в этом конечно же есть!
Но если логи типо "connect|ok" пишутся .. то неужто в случае если не коннект не ок.. то почему бы не писать "connect|erorr" ?

А есть еще какието вменяемые способы решения этого вопроса? Никогда не поверю что никто это не делал...


"full_audit - не пишутся ошибки логина"
Отправлено JohnProfic , 26-Июн-12 21:53 
> капля логики в этом конечно же есть!
> Но если логи типо "connect|ok" пишутся .. то неужто в случае если
> не коннект не ок.. то почему бы не писать "connect|erorr" ?

Еще раз: когда дело доходит до full_audit, соединение уже установлено, пользователь опознан, пароль принят. Запись "connect|error" может появиться, если какой-то vfs-модуль после full_audit вернет ошибку. Да и сам этот вызов (connect) существует в основном для того, чтобы vfs-модули могли произвести инициализацию соединения.

> А есть еще какието вменяемые способы решения этого вопроса? Никогда не поверю
> что никто это не делал...

Анализировать логи самбы? Там такая информация должна быть. Подобрать оптимальный уровень протоколирования оставляю как домашнее задание, т.к. сам таким не занимался.


"full_audit - не пишутся ошибки логина"
Отправлено zett , 26-Июн-12 22:36 
> Анализировать логи самбы? Там такая информация должна быть. Подобрать оптимальный уровень
> протоколирования оставляю как домашнее задание, т.к. сам таким не занимался.

Уровни log level не подходят, т.к. инфа там пишется в очень не уднобночитаемом виде, и не в одной строчке.. нужно чтоб писалось чтото типо
25.06.12 22:33 auth FAIL user admin IP 10.11.10.11


"full_audit - не пишутся ошибки логина"
Отправлено zett , 27-Июн-12 17:31 
За эти дни меня не покидала надежда найти решение этого ворпоса, начал править исходники самбы, если поправить строки 318-320 файла auth/auth.c на соответсвующие

    DEBUG(2, ("check_ntlm_password:  Authentication for user [%s] -> [%s] FAILED from %s with error %s\n",
          user_info->client.account_name, user_info->mapped.account_name, user_info->workstation_name,
          nt_errstr(nt_status)));


то он уже будет писать при ошибка логина строчки вида
[2012/06/27 17:59:26.523359,  2] auth/auth.c:319(check_ntlm_password)
  check_ntlm_password:  Authentication for user [werwer] -> [werwer] FAILED from user-pc with error NT_STATUS_NO_SUCH_USER

вопрос! Как заставить его писать всеже ип а не хостнейм машины, в user_info нету ничего подобного про ип (файл user_info.c), как дописать хз - в си не настолько селен...

Помогите!


"full_audit - не пишутся ошибки логина"
Отправлено кегна , 28-Июн-12 00:45 
> то он уже будет писать при ошибка логина строчки вида
> [2012/06/27 17:59:26.523359,  2] auth/auth.c:319(check_ntlm_password)
>   check_ntlm_password:  Authentication for user [werwer] -> [werwer] FAILED from
> user-pc with error NT_STATUS_NO_SUCH_USER
> вопрос! Как заставить его писать всеже ип а не хостнейм машины, в
> user_info нету ничего подобного про ип (файл user_info.c), как дописать хз
> - в си не настолько селен...
> Помогите!

отресолвить user-pc по днс? )


"full_audit - не пишутся ошибки логина"
Отправлено zett , 28-Июн-12 11:28 
> отресолвить user-pc по днс? )

ну типо того )


"full_audit - не пишутся ошибки логина"
Отправлено zett , 28-Июн-12 18:31 
Всем спасибо за ответы, проблему удалось решить правкой исходников auth.c
Кому если нужно, мне не жалко - делюсь :)

Меняем строки 317-319 на следующее
    DEBUG(2, ("check_ntlm_password:  Authentication for user [%s] -> [%s] FAILED from %s with error %s\n",
          user_info->client.account_name, user_info->mapped.account_name, smbd_server_conn->client_id.addr,
          nt_errstr(nt_status)));

и компилим самбу - make package
Логи примут вид:

[2012/06/28 22:24:51.898170,  2] auth/auth.c:319(check_ntlm_password)
  check_ntlm_password:  Authentication for user [user] -> [user] FAILED from 192.168.11.111 with error NT_STATUS_WRONG_PASSWORD
[2012/06/28 22:24:51.903520,  2] auth/auth.c:319(check_ntlm_password)
  check_ntlm_password:  Authentication for user [user] -> [user] FAILED from 192.168.11.111 with error NT_STATUS_WRONG_PASSWORD
[2012/06/28 22:25:02.329675,  2] auth/auth.c:319(check_ntlm_password)
  check_ntlm_password:  Authentication for user [sdfsf] -> [sdfsf] FAILED from 192.168.11.111 with error NT_STATUS_NO_SUCH_USER