Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:отравка_почты_для_root_на_внешний_ящик [2015/08/19 13:29] |
wiki:отравка_почты_для_root_на_внешний_ящик [2015/09/04 14:16] (текущий) [postfix] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Отравка почты для root на внешний ящик ====== | + | ====== Отправка почты для root на внешний ящик ====== |
Задался вопросом а как отслеживать события на подконтрольных серверах, вроде отвалившегося раздела из RAID-массива. По умолчанию система отправляет системные сообщения на почту root, т.е. в файл /var/mail/root. Нам же нужно, чтобы почту уходила не внешний ящик, информацию на котором мы сразу увидим. | Задался вопросом а как отслеживать события на подконтрольных серверах, вроде отвалившегося раздела из RAID-массива. По умолчанию система отправляет системные сообщения на почту root, т.е. в файл /var/mail/root. Нам же нужно, чтобы почту уходила не внешний ящик, информацию на котором мы сразу увидим. | ||
+ | Решить вопрос можно двумя (как минимум) путями: | ||
- | ===== Вариант 1: postfix ===== | + | ===== postfix ===== |
Задача разбивается на 2 части: | Задача разбивается на 2 части: | ||
Строка 13: | Строка 14: | ||
<code> | <code> | ||
sudo su | sudo su | ||
- | echo "root: my@email.ru" > /etc/aliases | + | echo "root: my@email.ru" >> /etc/aliases |
newaliases</code> | newaliases</code> | ||
- | ===== Вариант 2: ssmtp ===== | + | Вот и все, почта для root будет падать на наш внешний почтовый ящик. Проверил на ВМ, имитацией отказа одного из разделов в RAID1. |
- | Второй вариант более легковесный и быстрее настраивается, но он менее гибкий в том плане, что для отправки почты можно использовать только сам ssmtp, который менее удобен, чем, например, mutt в части описания темы письма и добавления вложения. | + | ===== ssmtp ===== |
+ | Также, вместо postfix, можно воспользоваться утилитой ssmtp. | ||
- | <note tip>Стрелками отмечены строки, которые нужно исправить</note> | + | ==== Установка ==== |
- | /etc/ssmtp/ssmtp.conf | ||
<code> | <code> | ||
- | #sSMTP sendmail | + | sudo apt-get install ssmtp |
- | # | + | </code> |
- | # The person who gets all mail for userids < 1000 | + | |
- | # Make this empty to disable rewriting. | + | |
- | root=user@yandex.ru <---------------------------- | + | |
- | # The place where the mail goes. The actual machine name is required no | + | ==== Настройка ==== |
- | # MX records are consulted. Commonly mailhosts are named mail.domain.com | + | |
- | mailhub=smtp.yandex.ru:465 | + | Редактируем файл **/etc/ssmtp/ssmtp.conf** |
+ | <code> | ||
+ | root= | ||
+ | mailhub=smtp.yandex.ru:465 # SMTP-сервер яндекса | ||
UseTLS=Yes | UseTLS=Yes | ||
- | AuthUser=user@yandex.ru <---------------------------- | + | AuthUser=почта@с_которой_отсылаем # Почтовый ящик |
- | AuthPass=passwd <---------------------------- | + | AuthPass=pass # Пароль |
+ | hostname=localhost | ||
+ | FromLineOverride=YES | ||
+ | </code> | ||
- | # Where will the mail seem to come from? | + | Настраиваем отправителей писем: |
- | #rewriteDomain= | + | |
- | # The full hostname | + | Редактируем файл **/etc/ssmtp/revaliases** |
- | hostname=localhost | + | <code> |
+ | root:почта@с_которой_отсылаем:smtp.yandex.ru:465 | ||
+ | user:почта@с_которой_отсылаем:smtp.yandex.ru:465 | ||
+ | </code> | ||
- | # Are users allowed to set their own From: address? | + | Измените user на пользователя, который заведен в вашей системе. |
- | # YES - Allow the user to specify their own From: address | + | |
- | # NO - Use the system generated From: address | + | Проверим настройки, отправив тестовое письмо |
- | FromLineOverride=NO | + | |
+ | <code> | ||
+ | echo test | sendmail -v почта@куда_отсылаем | ||
</code> | </code> | ||
- | /etc/ssmtp/revaliases.conf | + | Теперь вы можете отправлять почту из консоли и скриптов. |
+ | Однако, таким способом системная почта для root и пользователей отправляться не будет. | ||
+ | Чтобы заставить ssmtp работать и с системной почтой, выполним следующие действия: | ||
<code> | <code> | ||
- | # sSMTP aliases | + | sudo rm /usr/sbin/sendmail |
- | # | + | </code> |
- | # Format: local_account:outgoing_address:mailhub | + | <code> |
- | # | + | sudo nano /usr/sbin/sendmail |
- | # Example: root:your_login@your.domain:mailhub.your.domain[:port] | + | </code> |
- | # where [:port] is an optional port number that defaults to 25. | + | Пишем следующее: |
- | root:user@yandex.ru:smtp.yandex.ru:465 <---------------------------- | + | <code> |
+ | #!/bin/sh | ||
+ | sed -r \ | ||
+ | -e 's/^From: .*$/From: Server <почта@с_которой_отсылаем>/' \ | ||
+ | -e 's/^To: .*$/To: почта@куда_отсылаем/' \ | ||
+ | | /usr/sbin/ssmtp 'почта@куда_отсылаем' | ||
</code> | </code> | ||
- | Вот и все, почта для root будет падать на наш внешний почтовый ящик. Проверил на ВМ, имитацией отказа одного из разделов в RAID1. | + | Даём права на исполнение |
+ | <code> | ||
+ | sudo chmod +x /usr/sbin/sendmail | ||
+ | </code> | ||
+ | <note warning>Обратите внимание, теперь почта будет отправляться только на адрес, который указали в /usr/sbin/sendmail, | ||
+ | независимо от того, какие электронные адреса указаны в консоли и скриптах. | ||
+ | </note> | ||
- | {{tag>отравка_почты_для_root_на_внешний_ящик}} | + | {{tag>отправка_почты_для_root_на_внешний_ящик ssmtp}} |