Настройка Ssmtp Centos 7

Обновлено: 21.11.2024

sSMTP — это программа, которая доставляет электронную почту с локального компьютера на настроенный почтовый хост (почтовый концентратор). Это не почтовый сервер (как многофункциональный почтовый сервер sendmail) и не принимает почту, не расширяет псевдонимы и не управляет очередью. Одним из его основных применений является пересылка автоматических сообщений электронной почты (например, системных предупреждений) с вашего компьютера на внешний адрес электронной почты.

Содержание

Установка

Переслать на почтовый сервер Gmail

Чтобы настроить sSMTP, вам нужно будет отредактировать его файл конфигурации ( /etc/ssmtp/ssmtp.conf ) и ввести настройки своей учетной записи.

  • Если ваша учетная запись Gmail защищена двухфакторной аутентификацией, вам необходимо сгенерировать уникальный пароль приложения для использования в ssmtp.conf . Вы можете сделать это на странице паролей приложений. Используйте свое имя пользователя Gmail (не имя приложения) в строке AuthUser и используйте сгенерированный 16-значный пароль в строке AuthPass, пробелы в пароле можно опустить.
  • Если вы не используете двухфакторную аутентификацию, вам необходимо разрешить доступ к незащищенным приложениям. Вы можете сделать это на странице "Небезопасные приложения".

Примечание. Обратите внимание, что показанная конфигурация является примером для Gmail. Возможно, вам придется использовать другие настройки. Если это не работает должным образом, прочтите man-страницу ssmtp(8), пожалуйста.

Создайте псевдонимы для локальных имен пользователей (необязательно)

Чтобы проверить, будет ли сервер Gmail правильно пересылать вашу электронную почту, выполните следующие действия:

Измените текст «От», отредактировав /etc/passwd, чтобы получать почту от «root на моем хосте», а не просто «root».

Что изменяет /etc/passwd на:

Безопасность

Поскольку ваш пароль электронной почты хранится в виде открытого текста в файле /etc/ssmtp/ssmtp.conf , важно обеспечить безопасность этого файла. По умолчанию весь каталог /etc/ssmtp доступен только пользователю root и почтовой группе. Бинарный файл /usr/bin/ssmtp работает как почтовая группа и может читать этот файл. Нет причин добавлять себя или других пользователей в почтовую группу.

Отправка электронной почты

Чтобы отправить электронное письмо с терминала, выполните следующие действия:

или интерактивно как:

Примечание. При интерактивном использовании электронной почты после ввода Subject: subject и других заголовков дважды нажмите клавишу ВВОД, а затем введите текст сообщения. Нажмите Ctrl + d на пустой строке, чтобы завершить сообщение и автоматически отправить его.

Альтернативный способ отправки электронной почты – создать текстовый файл и отправить его с помощью ssmtp или mail

Отправить файл test-mail.txt

Некоторые пользователи могут предпочесть синтаксис mail от s-nail , mailutils или других поставщиков mailx. Например, mail имеет опции для предоставления темы в качестве аргумента. mail требует sendmail и может использовать ssmtp AUR как sendmail.

Вложения

Если вам нужна возможность добавлять вложения, установите и настройте Mutt и Msmtp, а затем посмотрите совет на nixcraft.

Кроме того, вы можете подключиться с помощью uuencode из sharutils . Чтобы прикрепить 'file.txt' как 'myfile.txt':

Почта локальным пользователям

Сообщения, отправленные локальным пользователям (или на любой другой адрес, не заканчивающийся на @fqdn), обрабатываются одним из двух способов

  • целевой пользователь имеет UID root=user@fqdn в файле /etc/ssmtp/ssmtp.conf
  • целевой пользователь имеет UID ≥ 1000 или пользователь неизвестен — значение из rewriteDomain= в файле /etc/ssmtp/ssmtp.conf добавляется в конец идентификатора пользователя.

Чтобы обойти это, вы можете использовать mail от s-nail . Команда mail может читать псевдонимы, определенные в /etc/mail.rc. Пример:

Тогда вы можете направлять сообщения в mail вместо sendmail.

Примечание. У вас может возникнуть соблазн создать символическую ссылку sendmail на /bin/mail . Не делайте этого. sendmail и mail имеют различный синтаксис как для аргументов, так и для стандартного ввода. Лучше найти процессы, которые напрямую используют sendmail, и настроить их на использование почты.

Sendmail — это многофункциональный MTA (агент передачи почты), использующий протокол SMTP для отправки почты. Хотя Sendmail был заменен постфиксом в современных версиях RHEL, он широко используется в RHEL 5 или его более ранней версии. Sendmail рекомендуется большинством системных администраторов в качестве сервера MTA (агента пересылки почты) по сравнению с другими MTA.

Предварительные требования перед установкой Sendmail Server на Centos 7

Настоятельно рекомендуется иметь привилегии root для выполнения следующих шагов:

Шаг 1

Добавьте репозитории Centos 7 EPEL, откройте терминал и вставьте следующую команду:

Шаг 2

Установите Sendmail с зависимостью от менеджера пакетов yum

(Примечание: m4 — это макропроцессор, который необходимо использовать для компиляции файла конфигурации Sendmail.)

После завершения установки вы получите следующий вывод:

Шаг 3. Настройка сервера Sendmail

Прежде чем непосредственно редактировать /etc/mail/sendmail.mc для настройки, нам нужно понять наличие важного файла в каталоге /etc/mail.

  • доступ: разрешение или запрет другим системам использовать Sendmail для исходящих сообщений электронной почты.
  • domaintable: используется для сопоставления доменного имени для Sendmail.
  • local-host-names: используется для определения псевдонима хоста.
  • mailertable: используется для переопределения маршрутизации для определенных доменов.
  • virtusertable: возможность размещения нескольких виртуальных доменов на одном компьютере.

Внесите следующие изменения в файл sendmail.mc, ниже приведена команда:

Примечание. Укажите имя хоста SMTP выше

Сохраните и закройте файл.

Шаг 4. Создайте каталог аутентификации

Назначив соответствующее разрешение для создания каталога авторизации внутри /etc/mail

Создайте новый файл client-info и ниже авторизируйтесь в файле.

Добавьте свой релейный IP-адрес

Подключение: [ваш-ip ] RELAY

Шаг 5. Повторная компиляция конфигурации Sendmail

Обновите конфигурацию Sendmail, скомпилировав файл /etc/mail/sendmail.mc с помощью макропроцессора m4.

После перекомпиляции перезапустите службу с помощью приведенной ниже команды.

Шаг 6. Отправьте первое электронное письмо

Распространенные ошибки и исключения

Эта проблема возникает, когда ваше имя хоста/доменное имя не сопоставлено с вашим сервером. Это предупреждение о том, что ваше имя хоста не будет работать за пределами вашей локальной сети.

Вы можете просто установить в качестве имени хоста зарегистрированный домен с помощью следующей команды:

«550 5.1.1 Пользователь неизвестен» — наиболее распространенная проблема, возникающая при отправке почты на серверы Exchange/Recipient. Ошибка 550 означает, что на сервере получателя возникла проблема, из-за которой такие письма не доставляются. Такие проблемы возникают не только с сервером Sendmail, но и с postfix, exim и т.д.

Возможные причины возникновения этой проблемы:

<р>1. Неверный адрес получателя

  • Отправитель получит сообщение о недоставке "550 5.1.1 Пользователь неизвестен", если почтовый ящик получателя недоступен.
  • Это происходит из-за человеческой ошибки при подписке на список рассылки или если вы приобрели список рассылки (это плохая практика, которая может привести к снижению вашей репутации IP).
  • Почтовый ящик получателя перемещен или удален с почтового сервера получателя.
  • Неправильная конфигурация или ошибка на почтовом сервере получателя может привести к недоступности почтового аккаунта получателя.

Как этого избежать?
Всегда проверяйте идентификатор электронной почты, отправляя подтверждение по электронной почте перед отправкой регулярных обновлений.

<р>2. Настройка DNS неверна для домена

Как этого избежать?
Проверьте запись MX с помощью dig из командной строки:

Примечание. Если программа dig не установлена, попробуйте использовать;

<р>3. Фильтры электронной почты, установленные для домена

  • Эти фильтры в основном применяются к взаимодействующим почтовым ящикам. Кроме того, если для учетной записи электронной почты получателя установлена ​​служба пересылки, которая неправильно установлена ​​на несуществующую учетную запись, это приведет к ошибке 550.
  • Фильтрация входящей почты с помощью фильтров электронной почты или брандмауэров для защиты от спама может привести к тому, что электронные письма будут возвращаться с определенных серверов отправителей.

Как этого избежать?
Проверьте исходящие брандмауэры и правила, если они есть. Если все в порядке, обратитесь в службу поддержки сервера получателя и проверьте фильтры электронной почты на наличие ошибочных фильтров или правил, которые могут блокировать почту.

Надеюсь, вам понравилась эта статья, в которой простым языком объясняются все аспекты Sendmail от А до Я. Используя эти простые шаги, вы можете установить Sendmail Server на Centos.

Если вы столкнулись с некоторыми проблемами, которые не перечислены выше в руководстве, или у вас есть предложения, не стесняйтесь вносить свой вклад в комментарии ниже.

Это началось как личное путешествие по странному миру администрирования систем, сетей и хранилищ. Первоначальные остановки были на обычных (Linux/Windows/Unix/OSX/Cisco/Brocade/Juniper) станциях, но позже было добавлено больше. Пожалуйста, не давайте чаевые курьеру. Это никогда не планировалось как окончательный авторитетный источник знаний, а скорее как быстрые заметки и мысли, которые помогут мне вспомнить, как что-то делать. Если вы чему-то научитесь, прочитав это, не вините меня!

Вторник, 27 августа 2013 г.

Установка ssmtp в RedHat/CentOS

Мне нравится ssmtp, и да, у него есть дополнительная буква "s" по сравнению с smtp-сервером. Существует множество MTA с множеством функций, настроек и так далее. Я сам устанавливал и развертывал postfix во многих организациях и ни разу не пожалел об этом. Но postfix, sendmail и все остальные являются полноценными MTA корпоративного уровня.Иногда все, что вам нужно, это иметь возможность отправить пару электронных писем с серверов всякий раз, когда они хотят рассказать вам что-то интересное («кто стучит по моему ssh-порту?», «где мой чай?»). Возьмем, к примеру, CentOS. Если вы не будете осторожны, он поставит postfix на каждый рабочий стол, на который вы его установите. Кому нужен postfix на своем рабочем столе, когда у них, вероятно, есть доступ к совершенно хорошему почтовому серверу серверного класса (который может быть даже postfix, заметьте)?

Итак, введите ssmtp. Это небольшой. Можно даже сказать, что он довольно ограничен и не особенно безопасен. Но если все, что вам нужно, это знать, завершила ли какая-либо машина, скажем, пакетное задание или добавила нового пользователя и может ли она обойти свои ограничения, вы можете проверить это.

Установка ssmtp

Как я уже упоминал в заголовке, мы будем устанавливать ssmtp на какой-нибудь компьютер с RedHat/CentOS. Для этого потребуется настроить ящик для использования дополнительных репозиториев. Вы можете проверить, есть ли он у вашего любимого; Я сам люблю epel и знаю, что ssmtp есть. repoforge (раньше он назывался rpmforge) тоже может иметь это. Как добавить репозиторий? Я дам вам разобраться.

Затем мы добавляем ssmtp:

Я буду спешить с немногочисленными настройками в ssmtp, потому что они хорошо описаны в другом месте. Что я сделаю, так это остановлюсь на тех, которые, по моему мнению, могут вас заинтересовать; по крайней мере я:

  • UseSTARTTLS: если ваш smtp-сервер поддерживает TLS, обязательно используйте его! Или SSL! ssmtp может справиться и с этим; проверьте справочные страницы!.
  • mailhub: это, как вы уже догадались, адрес smtp-сервера. Удобно то, что вы можете определить не только имя, но и порт, если вы не используете порт 25. Вот несколько примеров:

Но что, если вам нужно пройти аутентификацию для отправки электронной почты (SMTP Auth)? Итак, ssmtp допускает некоторую форму аутентификации. Никаких kerberos или пар ключей, просто старое имя пользователя и пароль. Если вам это нужно, вы можете добавить что-то подобное в свой файл /etc/ssmtp/ssmtp.conf. Пароль будет в текстовом виде, поэтому убедитесь, что только root может прочитать этот файл. Примечание. В качестве имени пользователя я использовал server1. Причина этого в том, что я думаю, что либо каждый сервер будет иметь свою собственную учетную запись электронной почты, либо будет использоваться учетная запись электронной почты сервера commom. Вам решать.

Опция -v является подробной, поэтому вы можете увидеть, что происходит, и, возможно, получить некоторые подсказки на случай, если все пойдет не так. Более причудливый тест ssmtp (который должен дать вам представление о том, как использовать его в ваших собственных скриптах) будет

Теперь проверьте, пришло ли письмо в ваш почтовый ящик и что об этом думает ваш спам-фильтр. Помните, более причудливый пример позволяет вам сделать вашу электронную почту немного более правильной. просто говорю!

Вручную установите этот модуль глобально с помощью модуля модуля Puppet:

Прямая загрузка обычно не является способом использования модуля Puppet для управления вашей инфраструктурой, но вы можете загрузить модуль, чтобы проверить код.

Документация

Содержание

Обзор

Модуль ssmtp обеспечивает процедуру установки SSMTP, включая настройку альтернативной системы, если она не перезаписана параметром класса.

Описание модуля

Модуль SSMTP дополняет стандартную конфигурацию почтового сервера облегченным сервером только для отправки. Поведение такое же, как у sendmail, но без возможности получать почту из внешних систем.

Настройка

На что влияет ssmtp

  • пакет ssmtp.
  • файл конфигурации ssmtp.
  • конфигурация альтернативной службы ssmtp.

Требования к установке

Перед настройкой экземпляра SSMTP необходимо активировать репозиторий EPEL. Если вы используете систему на основе rpm из семейства RedHat, вы можете использовать мой модуль yum (thbe-yum):

Начиная с ssmtp

include '::ssmtp' достаточно, чтобы запустить вас, если параметры указывают на правильные значения. Если вы хотите передать параметры, например, какие серверы использовать, вы можете использовать:

Использование

Все взаимодействие с модулем ssmtp может осуществляться через основной класс ssmtp. Это означает, что вы можете просто переключать параметры в классе ssmtp, чтобы получить доступ к полной функциональности.

Мне просто нужен SSMTP, какой минимум мне нужен?

Я просто хочу перенаправлять всю почту на центральный почтовый шлюз, и ничего больше.

Ссылка

Классы

  • ssmtp: основной класс, включая все остальные.
  • ssmtp::install: обрабатывает пакеты.
  • ssmtp::config: обрабатывает файл конфигурации.
  • ssmtp::service: обрабатывает ссылку на альтернативную службу.

Параметры

В модуле ssmtp доступны следующие параметры

default_mta

Замените MTA по умолчанию на ssmtp, если установлено значение ssmtp.

корневая_почта

Укажите, какой адрес электронной почты должен получать все письма от root.

почтовый_хаб

Определите почтовый сервер, который должен доставлять все письма.

повторные псевдонимы

Массив для определения обратных псевдонимов.

имя хоста

Переопределить параметр ssmtp.conf, см. man 5 ssmtp.conf

from_line_override

Переопределить параметр ssmtp.conf, см. man 5 ssmtp.conf

переписать домен

Переопределить параметр ssmtp.conf, см. man 5 ssmtp.conf

автопользователь

Переопределить параметр ssmtp.conf, см. man 5 ssmtp.conf

авторизация

Переопределить параметр ssmtp.conf, см. man 5 ssmtp.conf

метод аутентификации

Переопределить параметр ssmtp.conf, см. man 5 ssmtp.conf

tlscert

Переопределить параметр ssmtp.conf, см. man 5 ssmtp.conf

tlskey

Переопределить параметр ssmtp.conf, см. man 5 ssmtp.conf

автопользователь

Переопределить параметр ssmtp.conf, см. man 5 ssmtp.conf

tlscafile

Переопределить параметр ssmtp.conf, см. man 5 ssmtp.conf

tlscadir

Переопределить параметр ssmtp.conf, см. man 5 ssmtp.conf

require_yum (bool, по умолчанию = true)

Переопределить параметр ssmtp.conf, см. man 5 ssmtp.conf

Ограничения

Этот модуль был создан и протестирован на Puppet 3.4 и выше.

Модуль был протестирован на:

  • RedHat Enterprise Linux 5, 6, 7
  • CentOS Linux 5, 6, 7
  • Научный Linux 5, 6, 7
  • Убунту 16.04
  • Дебиан 7, 8
  • FreeBSD 11, 12

Тестирование на других платформах было легким и не может быть гарантировано.

Разработка

Если вы хотите добавить или улучшить этот модуль, создайте его ответвление и отправьте мне запрос на слияние с модификацией.

Читайте также: