Назад | Перейти на главную страницу

Запись информации об авторизации в sendmail

Проблема: конфигурация ведения журнала sendmail по умолчанию не регистрируется за сообщение информация об авторизации, которая мне нужна (т.е. я хочу знать, какой пользователь / метод аутентификации использовался для определенного идентификатора сообщения). Следуя совету от эта запись, Я получил следующие строки cf:

LOCAL_CONFIG
Klog syslog
 # This works
HSubject: $>+LogSubject
 # this does not
HX-Authost: ${mail_host}
HX-Authost: $>+LogAuthAuthor

LOCAL_RULESETS

SLogSubject
R$* $: $(log Subject: $1 authenticated-by: $&{auth_type}, $&{auth_authen}, $&{auth_ssf}, $&{auth_author}, $&{mail_mailer}, $&{mail_host}, $&{mail_addr} $) $1

SLogAuthAuthor
R$* $: $(log Authenticated-by: $1 $&{auth_type}, $&{auth_authen}, $&{auth_ssf}, $&{auth_author}, $&{mail_mailer}, $&{mail_host}, $&{mail_addr} $) $1

Первый дает (в почтовом журнале):

sendmail[10814]: r2DEJl9P010814: Subject:the Subject.authenticated by:PLAIN,auser,0,,esmtp,example.com.,someone@example.com

Второй:

sendmail[10814]: r2DEJl9P010814: Authenticated-by:example.com.,,,,esmtp,example.com.,auser@example.com

Поэтому кажется, что макрос {auth_xxxx} пуст, когда срабатывает второе правило ... но это не так. Фактически, я могу записать их, если вместо этого помещу их в строку H:

HX-Authost: ${mail_host} ${auth_type} ${auth_authen} ${auth_ssf} ${auth_author}
HX-Authost: $>+LogAuthAuthor1

За исключением того, что я не хочу этого делать, потому что я бы отправил информацию об авторизации там, где я хочу только ее зарегистрировать. На самом деле все решение уродливо койот, не говоря уже об ужасающем бездельничании, и я приветствовал бы лучшее решение (то, которое не начинается с «изменить MTA» - я полностью доволен sendmail)

Обратите внимание, что повышение LogLevel до 10 и выше (как было предложено), похоже, не сокращает его, потому что информация об авторизации регистрируется один раз за сеанс (т.е. при входе в систему), в то время как я хочу, чтобы она была в контексте сообщения.

Привет, альф

Вы можете создавать записи журнала, которые хотите check_eoh (конец заголовков) или check_data наборы правил (после команды smtp data).

LOCAL_RULESETS
Scheck_data
R$*    $: $(log Authenticated-by: $&{auth_type}, $&{auth_authen}, $&{auth_ssf}, $&{auth_author}, $&{mail_mailer}, $&{mail_host}, $&{mail_addr} $) $1

[Перед $:] должна стоять TAB
check_data получает как ввод number_of_recipients, check_eoh получает на входе number_of_headers $| total_headers_bytes

check_mail было бы лучше, но FEATURE(delay_checks) делает это более сложным.

Измените LogLevel в соответствии с вашими потребностями, например

define(`confLOG_LEVEL', `14')dnl

http://answers.google.com/answers/threadview?id=398644 В: Ведение журнала авторизованного пользователя sendmail.

Вкратце: увеличьте LogLevel до 14


Файл RELEASE_NOTES в состояниях рассылки sendmail:

8.10.0/8.10.0   2000/03/01
[...]
  Log basic information about authenticated connections at LogLevel 10 or higher.