У меня Dovecot 2.2.27 успешно работает на Debian Stretch. На моем сервере наблюдается подозрительная активность, и я хочу регистрировать ВСЕ необработанные сообщения IMAP, отправленные / полученные моим сервером. Вот файл .conf в /etc/dovecot/conf.d/
service imap-login {
executable = imap-login -R rawlogs
}
(Источник: https://wiki.dovecot.org/Debugging/Rawlog )
Rawlog записывает, когда пользователь входит на мой IMAP-сервер (предварительный журнал rawlog). Но вот когда это прекращается. После этого он не записывает никаких сообщений. Я хочу, чтобы все сообщения IMAP были получены / отправлены для соединения (вход в систему, проверка почтового ящика, загрузка новой почты и т. Д.)
Вот пример файла .in:
1523905191.015557 1 LOGIN ***EMAIL ADDRESS HERE*** ***PASSWORD HERE***
И файл .out:
1523905190.806295 * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
Я добавил следующий код в вышеупомянутый файл .conf для ведения журнала после входа в систему:
service imap {
# tell imap to do post-login lookup using a socket called "imap-postlogin"
executable = imap imap-postlogin
}
# The service name below doesn't actually matter.
service imap-postlogin {
# all post-login scripts are executed via script-login binary
executable = script-login /usr/lib/dovecot/rawlog
# the script process runs as the user specified here (v2.0.14+):
# user = $default_internal_user
user = pksml
# this UNIX socket listener must use the same name as given to imap executable
unix_listener imap-postlogin {
}
}
(Источник: https://wiki.dovecot.org/PostLoginScripting )
Это не имело значения. Ведение журнала по-прежнему существует только для аутентификации и ничего более, даже когда я проверяю учетную запись электронной почты. Я что-то делаю не так, или это не возможность Dovecot? Спасибо.
PS Я перезагрузил сервис Dovecot после внесения изменений в файл .conf.
PS # 2: пользователи почты - это виртуальные пользователи, а не настоящие пользователи системы Linux
РЕДАКТИРОВАТЬ - Текущий .conf
файл:
import_environment = $import_environment DEBUG=1
service imap-login {
executable = imap-login -R rawlogs
}
protocol imap {
rawlog_dir = /var/run/dovecot/login/rawlogs
}
service imap {
executable = imap imap-postlogin
}
service imap-postlogin {
executable = script-login -d /usr/lib/dovecot/rawlog -I
unix_listener imap-postlogin {
}
}
Наконец я добился регистрации команд IMAP.
Кстати, я изначально настроил свой сервер, используя руководство по адресу https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql/
Вот соответствующие команды конфигурации dovecot для rawlog:
mail_location = maildir:/var/mail/vhosts/%d/%n
userdb {
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
driver = static
}
service imap-login {
executable = imap-login -R rawlogs
inet_listener imaps {
port = 993
ssl = yes
}
}
service imap-postlogin {
executable = script-login -d rawlog
}
service imap {
executable = imap imap-postlogin
}
protocol imap {
rawlog_dir = /var/run/dovecot/login/rawlogs
}
Ты получаешь .in
и .out
файлы для аутентификации хранятся в /var/run/dovecot/login/rawlogs
(rawlog_dir
).
В настоящее время rawlog_dir
каталог имеет 777
разрешения.
После аутентификации IMAP-соединение, передаваемое на / с сервера для конкретного пользователя, находится в домашней папке пользователя во вложенной папке с именем dovecot.rawlog
(что вы должны создать). Например, в моей настройке я создал папку /var/mail/vhosts/domain.com/user/dovecot.rawlog
. В этой папке есть 777
разрешения и принадлежит root:vmail
.
Примечание: в этих .in
и .out
файлов вы увидите всю переданную информацию IMAP, включая электронную почту в виде обычного текста. Также обратите внимание, что эта папка будет быстро завалить файлами. Следи за этим.
Заключительные мысли: Скорее всего, необработанное ведение журнала используется для отладки или понимания протокола IMAP. Не рекомендуется оставлять его включенным на несколько месяцев подряд!