Столкнулся с такой проблемой. Модуль 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 просто не доходит - он все-же работает на уровне vfs, а неверные логины вполне могут отсекаться уровнями выше.
капля логики в этом конечно же есть!
Но если логи типо "connect|ok" пишутся .. то неужто в случае если не коннект не ок.. то почему бы не писать "connect|erorr" ?А есть еще какието вменяемые способы решения этого вопроса? Никогда не поверю что никто это не делал...
> капля логики в этом конечно же есть!
> Но если логи типо "connect|ok" пишутся .. то неужто в случае если
> не коннект не ок.. то почему бы не писать "connect|erorr" ?Еще раз: когда дело доходит до full_audit, соединение уже установлено, пользователь опознан, пароль принят. Запись "connect|error" может появиться, если какой-то vfs-модуль после full_audit вернет ошибку. Да и сам этот вызов (connect) существует в основном для того, чтобы vfs-модули могли произвести инициализацию соединения.
> А есть еще какието вменяемые способы решения этого вопроса? Никогда не поверю
> что никто это не делал...Анализировать логи самбы? Там такая информация должна быть. Подобрать оптимальный уровень протоколирования оставляю как домашнее задание, т.к. сам таким не занимался.
> Анализировать логи самбы? Там такая информация должна быть. Подобрать оптимальный уровень
> протоколирования оставляю как домашнее задание, т.к. сам таким не занимался.Уровни log level не подходят, т.к. инфа там пишется в очень не уднобночитаемом виде, и не в одной строчке.. нужно чтоб писалось чтото типо
25.06.12 22:33 auth FAIL user admin IP 10.11.10.11
За эти дни меня не покидала надежда найти решение этого ворпоса, начал править исходники самбы, если поправить строки 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), как дописать хз - в си не настолько селен...
Помогите!
> то он уже будет писать при ошибка логина строчки вида
> [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 по днс? )
> отресолвить user-pc по днс? )ну типо того )
Всем спасибо за ответы, проблему удалось решить правкой исходников 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