Вопрос или проблема
Итак, я использую LogWatch некоторое время и хочу немного настроить его, так что это одна из вещей, которую я хочу изменить.
Я хочу, чтобы LogWatch проверял через SMTP?
Мой почтовый сервер (iREDmail) имеет довольно строгие правила в отношении аутентификации, поэтому я должен установить пароль для учетной записи, и он должен быть в системе.
Как настроить LogWatch для аутентификации через STMP с использованием электронной почты и пароля?
Привет, если вы хотите, чтобы logwatch отправлял почту используя учетную запись smtp, вы можете использовать пакет msmtp (debian) и настроить logwatch его использовать, он отправит аутентифицированную почту через smtp. Вам не нужен postfix, настройка не влияет на существующую конфигурацию MTA в системе.
Шаг 1:
установите и протестируйте msmtp
apt-get install msmtp
настройте его, создав файл конфигурации в домашней папке пользователя
cd ~
touch ./.msmtprc
edit .msmtprc
отредактируйте и вставьте это содержимое в соответствии с вашими потребностями
account default
host mail.domain.tld
port 587
from [email protected]
auth on
user [email protected]
password myverysecretpass
tls on
tls_certcheck off
tls_certcheck off # если вы не хотите проверять ssl-сертификат почтового сервера
tls_trust_file mycacertificatefile # если вы хотите проверить сертификат ca
Сохраните файл и проверьте/подтвердите конфигурацию с помощью команды
msmtp -S
Шаг 2:
отредактируйте конфигурацию logwatch
edit /etc/logwatch/conf/logwatch.conf
найдите существующую строку mailer и закомментируйте ее.
создайте новую строку и измените адрес электронной почты получателя
mailer = "/usr/bin/msmtp [email protected]"
Убедитесь, что адрес электронной почты в logwatch соответствует адресу в .msmtprc, иначе вы получите отчет о недоставке
MailFrom = [email protected]
сохраните и выполните сценарий logwatch, проверьте электронную почту в почтовом ящике назначения, если ничего не пришло, проверьте почтовый ящик [email protected] на наличие отчетов о недоставке для выявления проблем
Это решение работает для меня, я получаю почту правильным образом, и я использую DMARC и DKIM правильно для отчетов, которые мне нужны.
Список всех допустимых настроек Logwatch и их значения по умолчанию находятся в файле logwatch.conf
по умолчанию, который вы, вероятно, можете найти в /usr/share/logwatch/default.conf/logwatch.conf
. Почтовые опции Logwatch очень ограничены; нет никакой аутентификации. Комментарии в файле конфигурации документируют все возможное:
#Выходные/форматные опции
#По умолчанию Logwatch выведет информацию на stdout в текстовом формате без кодирования.
#Чтобы сделать отправку по электронной почте по умолчанию, установите Output = mail, чтобы сохранить файл, установите Output = file
Output = stdout
#Чтобы сделать HTML форматированием по умолчанию Format = html
Format = text
#Чтобы сделать кодирование Base64 [также известное как uuencode] Encode = base64
Encode = none
# По умолчанию лица для отправки отчетов. Может быть локальной учетной записью или
# полным адресом электронной почты. Переменная Output должна быть установлена в mail или
# --output mail должна быть передана в командной строке для включения функции отправки почты.
MailTo = root
# При использовании опции --multiemail, возможно указать другого
# получателя электронной почты для каждого обрабатываемого хоста. Например, чтобы отправить отчет
# для узла host1 на [email protected], используйте:
#Mailto_host1 = [email protected]
# Несколько получателей могут быть указаны, разделяя их пробелом.
# По умолчанию лица для отправки отчетов. Может быть локальной учетной записью или
# полным адресом электронной почты.
MailFrom = Logwatch
Это указывает, что вы должны разрешить Logwatch отправлять электронную почту без аутентификации на локальном MTA.
Использование аутентификации, вероятно, принудительно в Postfix с помощью
smtpd_client_restrictions =
permit_sasl_authenticated,reject
smtpd_sender_restrictions =
reject_sender_login_mismatch
.
Это нормальные настройки на представлении на порту 587
, но разрешение permit_mynetworks
в Postfix smtpd, прослушивающего на порту 25
, позволит локальным пользователям отправлять почту без аутентификации. Это обычно достаточно для того, чтобы позволить Logwatch отправлять почту.
Ваш iRedMail использует Postfix как почтовый агент передачи (MTA). Документация iRedMail также содержит статью о разрешении пользователю отправлять электронную почту без аутентификации SMTP с использованием двух различных методов. Оба из них предполагают ручное редактирование файлов конфигурации. Вы должны добавить ваш Logwatch как разрешенного отправителя.
Если у вас возникнут проблемы:
.msmtprc: содержит секреты и, следовательно, должно иметь не более чем пользовательские
разрешения на чтение/запись
вы должны предоставить разрешения:
chmod 600 ~/.msmtprc
Ответ или решение
Для настройки SMTP-аутентификации LogWatch с использованием электронной почты и пароля, следуйте приведенным ниже шагам, которые помогут интегрировать msmtp с LogWatch для отправки отчетов по электронной почте через ваш сервер iREDmail.
Установка и настройка msmtp
-
Установка msmtp:
На системах Debian выполните следующую команду для установки msmtp:apt-get install msmtp
-
Создание и редактирование конфигурации msmtp:
Перейдите в домашнюю директорию пользователя и создайте файл конфигурации.msmtprc
:cd ~ touch .msmtprc
Отредактируйте файл, чтобы он соответствовал вашим требованиям. Пример конфигурации:
account default host mail.domain.tld port 587 from [email protected] auth on user [email protected] password myverysecretpass tls on tls_certcheck off
Примечание: Опция
tls_certcheck off
отключает проверку SSL-сертификата сервера. Чтобы включить проверку, используйтеtls_trust_file
с указанием файла сертификата CA. -
Проверка конфигурации:
Убедитесь, что конфигурация корректна, выполнив следующую команду:msmtp -S
Настройка LogWatch для использования msmtp
-
Редактирование конфигурации LogWatch:
Откройте файл конфигурацииlogwatch.conf
:edit /etc/logwatch/conf/logwatch.conf
Найдите строку, ответственную за почтовую отправку, и измените на:
mailer = "/usr/bin/msmtp [email protected]"
Замените
mailer
на ваш почтовый адрес, чтобы он совпадал с настройкой в.msmtprc
. -
Проверка работы LogWatch:
После изменения конфигурации выполните скрипт LogWatch и проверьте наличие отчетов в указанном почтовом ящике. При возникновении проблем проверьте почтовый ящик на наличие ошибок недоставки и соблюдение правильных параметров DMARC и DKIM.
Дополнительные рекомендации
У iRedMail в роли SMTP-сервера используется Postfix. Рассмотрите возможность настройки Postfix для разрешения отправки без аутентификации с локального узла, что может потребовать изменения параметров, таких как permit_mynetworks
, чтобы LogWatch мог отправлять почту без необходимости аутентификации.
Устранение проблем
Если вы столкнулись с ошибками прав доступа, возможно, потребуется изменить права на файл .msmtprc
:
chmod 600 ~/.msmtprc
Следуя этим шагам, вы сможете настроить LogWatch для использования SMTP-аутентификации с использованием электронной почты и пароля, что позволит отправлять отчеты через ваш сервер iREDmail без нарушения его строгих политик аутентификации.