Разное

Debian настройка sendmail: Настройка sendmail в Debian — Sm0k3.Net

Содержание

Настройка sendmail в Debian — Sm0k3.Net

Небольшая инструкция, что делать сразу после установки Linux (в моем примере Debian) чтобы нормально работал sendmail и письма отправлялись.

Сразу стоит проверить, есть ли sendmail вообще и как оно работает, соответственно смотрим где чего лежит и пробуем отправить тестовое письмо:

$ whereis sendmail
$ which sendmail
$ echo "Test message" | sendmail [email protected]

В случае, если после выполнения первых команд ничего не находит, то придется ставить sendmail, если проблема после выполнения третьей команды заключается в том, что sendmail медленно отправляет письма — значит решать уже надо другую проблемку, но обо всем по порядку.

В первом случае, если у нас нету sendmail, значит его надо установить:

$ apt-get update
$ apt-get install sendmail

Либо, если где-то что-то завалялось, либо он есть но на что-то ругается при выполнении, лучше сразу все удалить:

$ apt-get purge sendmail && apt-get update
$ apt-get install sendmail

В некоторых случаях может ругаться на отсутствие sendmail-bin:

$ apt-get install sendmail-bin

После того, как мы установили sendmail, можно попробовать отправить письмо. Если при отправке sendmail долго думает или не отправляет письмо, то далее будем править конфиги:

  • hosts
  • sendmail.mc
  • Так же возможно стоит обновить hostname, если сразу он был указан не корректно

Первым делом давайте обновим наш хостнейм:

$ hostnamectl set-hostname myhostname.com

Либо хостнейм можно обновить временно (до перезагрузки сервера):

$ hostname myhostname.com

 

Далее, давайте подправим файлик hosts и приведем его к нормальному виду:

$ curl ifconfig.io

 

Смотрим предварительно наш IP если у вас его нет  на виду и копируем в буфер, далее открываем и редактируем файл hosts

$ nano /etc/hosts

В моем случае файл hosts после исправлений имел следующий вид:

127.0.0.1 localhost
192.168.1.15 mydomain.com mydomain

192.168.1.15 — тут должен быть ваш IP адрес, который вы получили при выполнении команды курла, далее mydomain.com — ваш домен.

 

На следующем этапе идем слегка изменить файлик sendmail. mc:

$ nano /etc/mail/sendmail.mc

Листаем в самый низ файла и далее правим параметр MASQUERADE_AS:

MASQUERADE_AS(`mydomain.com')dnl

 

Сохраняем и закрываем, перезапускаем sendmail:

$ service sendmail restart

Отправляем тестовое письмо и смотрим вывод:

$ (echo "Subject: Test msg"; echo "This is test message";) | sendmail -v -f "[email protected]" [email protected]

Письмо должно дойти в ваш ящик (возможно, упадет в спам).

 

Может быть интересно:

8.5. Настройка почты

8.5. Настройка почты

Сегодня электронная почта (email) — это очень важная часть жизни многих людей. Так как при настройке почты используется много параметров, а правильность настройки влияет на многие программы в Debian, в этом разделе мы попытаемся описать основные моменты настройки.

Почтовая система состоит из трёх частей. Первая: пользовательский почтовый агент [Mail User Agent] (MUA) — это программа, с которой работает пользователь для написания и чтения писем. Вторая: агент пересылки почты [Mail Transfer Agent] (MTA) — отвечает за пересылку сообщений между компьютерами. Третья: агент доставки почты [Mail Delivery Agent] (MDA) — отвечает за доставку входящей почты в почтовый ящик пользователя.

Данные части могут выполняться разными программами, но могут быть и объединены в одной или двух программах. Также можно настроить, чтобы разные виды почты обрабатывались разными программами.

Исторически, в системах Linux и Unix очень популярным MUA является mutt. Как и большинство классических программ Linux он имеет текстовый интерфейс. Часто он используется в связке с exim или sendmail, работающих в качестве MTA и procmail в качестве MDA.

В связи с ростом популярности систем с графическим рабочим столом, становятся более востребованными почтовые программы с графическим интерфейсом типа GNOME evolution, KDE kmail или Mozilla thunderbird (в Debian имеет название icedove). В этих программах объединены функции MUA, MTA и MDA, но они могут (так часто и происходит) использоваться совместно с классическими утилитами Linux.

8.5.1. Почтовая конфигурация по умолчанию

Даже если вы планируете использовать почтовую программу с графическим интерфейсом, очень важно, чтобы в системе Debian GNU/Linux также были установлены и правильно настроены классические MTA/MDA. Они нужны для различных утилит, которые работают в системе , чтобы они могли послать важные уведомления по почте системному администратору о (потенциальных) проблемах или изменениях.

По этой причине по умолчанию устанавливаются пакеты exim4 и mutt (если вы не отменили задачу «стандарт» во время установки). exim4 — это комбинация MTA/MDA, имеет относительно небольшой размер, но очень гибок в настройке. По умолчанию, он настраивается на обработку только локальной почты самой системы, а почта, предназначенная системному администратору (учётная запись root), будет доставлена на учётную запись обычного пользователя, созданного во время установки.

При доставке почты она добавляется в файл /var/mail/учётная_запись. Почту можно читать с помощью mutt.

8.5.2. Отправка почты из системы

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

Если вы хотите, чтобы exim4 обрабатывал внешнюю почту, перейдите в следующий подраздел, в котором описаны основные параметры настройки. Обязательно протестируйте приём и отправку почтовых сообщений.

Если вы будете использовать почтовую программу с графическим интерфейсом с почтовым сервером вашего провайдера интернет (ISP) или вашей компании, то необязательно настраивать exim4 для обработки внешней почты. Просто укажите в любимой почтовой программе с графическим интерфейсом нужные серверы для отправки и приёма сообщений (не описано в данном руководстве).

Однако, в этом случае вам потребуется правильно настроить отдельные утилиты, чтобы они могли отправлять почту. Одной из таких утилит является reportbug, программа для отправки сообщений об ошибках в пакетах Debian. По умолчанию, она настроена на использование exim4.

Чтобы правильно настроить reportbug на использование внешнего почтового сервера, запустите команду reportbug —configure и ответьте «нет» на вопрос о доступности MTA. Затем вас попросят указать сервер SMTP, который нужно использовать для отправки сообщений об ошибках.

8.5.3. Настройка агента пересылки почты Exim4

Если вы хотите, чтобы система также работала с внешней почтой, то вам нужно перенастроить пакет exim4:

# dpkg-reconfigure exim4-config

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

Затем вам будет предложено несколько общих почтовых сценариев. Выберите тот, который подходит вам больше всего.

интернет-сайт

Ваша система подключена к сети, почта отправляется и получается напрямую по протоколу SMTP. На следующих экранах вам зададут несколько основных вопросов, таких как почтовое имя вашей машины или список доменов, для которых вы принимаете или передаёте почту.

отправка почты через компьютер-шлюз (smarthost)

По этому сценарию ваша исходящая почта переправляется на другую машину, называемую «smarthost», которая и отправит письмо по назначению. Smarthost обычно ещё и хранит входящую почту, адресованную вашему компьютеру, так что вам не надо постоянно находиться в сети. Это также означает, что вам нужно загружать почту со smarthost с помощью программ типа fetchmail.

В большинстве случаев, в качестве smarthost используется почтовый сервер вашего ISP, что очень подходит пользователям, которые используют модемное подключение по телефонной линии. Также это может быть почтовый сервер компании или другая система в вашей сети.

отправка почты через smarthost; локальная почта отсутствует

То же самое, что и предыдущее значение, кроме того, что система не будет настроена на обработку почты локального домена. Почта от самой системы (например, для системного администратора) всё равно будет обработана.

доставка только локальной почты

Настроено в системе по умолчанию.

в данный момент конфигурация отсутствует

Выберите этот вариант, если вы абсолютно уверены в том, что делаете. Это оставит вас с ненастроенной почтовой системой; до тех пор пока вы не настроите её, вы не сможете отправлять или получать почту и вы можете пропустить некоторые важные сообщения от ваших системных утилит.

Если ни один из этих сценариев не подходит, или нужна более тонкая настройка, то после завершения установки вам нужно отредактировать файлы конфигурации в каталоге /etc/exim4. Дополнительную информацию про exim4 можно найти в каталоге /usr/share/doc/exim4; в файле README.Debian.gz содержатся дополнительные подробности о настройке exim4 и указано где найти дополнительную документацию.

Заметим, что если у вас нет официального доменного имени и вы отправляете почту в интернет напрямую, это может привести к тому, что ваша почта не будет приниматься серверами, так как на них установлены средства борьбы со спамом. Предпочтительней использовать почтовый сервер ISP. Если вы всё равно хотите отправлять почту напрямую, то вам нужно использовать другой почтовый адрес, а не сгенерированный по умолчанию. Если в качестве MTA используется exim4, это это делается добавлением записи в файл /etc/email-addresses.

Настройка почтовых оповещений о различных системных событиях / Хабр

В этой заметке перечислены несколько простых способов заблаговременно узнать о различных проблемах на сервере, не замусоривая почтовый ящик и не настраивая сложных систем мониторинга. Из разряда «если вам лень что-то проверять и настраивать, то настройте и проверяйте хотя бы это».

Часть перечисленных ниже утилит умеет самостоятельно отправлять email-уведомления, для остальных предлагаются несложные shell-обёртки.

В качестве получателя используется дополнительная локальная рассылка admins, которая включает в себя локального root и внешнего [email protected]. Почему вместо этого не переопределяется локальный root?

Во-первых, root может по умолчанию принимать много информационных писем, которые помогают _понять_ причину уже _обнаруженной_ проблемы. Они важны, но если отправлять все эти письма наружу, либо потребуется настраивать их фильтрацию, либо повышается вероятность пропустить в их потоке письма, позволяющие _обнаружить_ ещё _неизвестную_ проблему.

Во-вторых, т.к. admins не является стандартным аккаунтом или группой в популярных Linux/Unix-системах, то «grep -r admins /etc /usr/local/etc позволяет быстро определять, для каких утилит настройка уже выполнена.

Настройка почтового сервера

Определение используемого сервера:

  1. dpkg-query -S /usr/sbin/sendmail (Debian-based)
  2. rpm -qf /usr/sbin/sendmail (RPM-based)
  3. sudo netstat -ntlp | grep :25 (all Linux)
  4. sockstat -4l | grep :25 (FreeBSD)

Возможные варианты в Debian и Ubuntu: http://packages.debian.org/file:/usr/sbin/sendmail

Дальше все пути и ключи команд приведены в расчёте на Debian, за исключением утилит для FreeBSD, отсутствующих в Linux.

Exim

/etc/aliases:
admins: root, [email protected]

Postfix

  1. /etc/postfix/main.cf: virtual_alias_maps = hash:/etc/postfix/virtual
  2. /etc/postfix/virtual: admins root [email protected]
  3. cd /etc/postfix && postmap virtual && cd /etc && postalias aliases && /etc/init.d/postfix restart

Полный минимальный main.cf:

#relayhost = mx.example.ru
mynetworks_style = host
inet_interfaces = loopback-only
#inet_protocols = ipv4
virtual_alias_maps = hash:/etc/postfix/virtual
SSMTP, MSMTP, ESMTP

Формальные достоинства по сравнению с полноценным MTA:

  1. не занимают места в ОЗУ,
  2. проще в настройке,
  3. менее уязвимы, т.к. работают с правами вызвавшего пользователя и не принимают сетевых подключений.

Фактические недостатки:

  1. если в момент отправки письма по каким-то причинам нет связи с внешним SMTP-сервером, или SMTP-сервер отказался его принять, письмо пропадёт,
  2. адреса получателей иногда формируются по таким странным правилам, что SMTP-сервер не в состоянии правильно определить, кому и куда её следует доставить,
  3. см. выше соображения про редирект root@

Таким образом, единственное место, где imho имеет смысл их использовать — легковесные виртуальные контейнеры, для пересылки на SMTP-сервер, запущенный на Host OS.

Настройка служб мониторинга

Включение сервера

Даже о таком важном событии, как внеплановые перезагрузки, некоторые администраторы узнают, случайно проверив uptime или last. Немедленно быть в курсе событий поможет следующая строка над «exit» в /etc/rc.local:

M="Booting complete on $(hostname)."; echo $M | mail -s "$M" admins
Linux SoftRAID (mdraid)

  1. /etc/mdadm/mdadm.conf: MAILADDR admins
  2. /etc/init.d/mdadm restart
SMART

  1. /etc/smartd.conf: DEVICESCAN ... -m admins ...
  2. /etc/init.d/smartmontools restart

Полный минимальный smartd.conf:
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner

lm_sensors

  1. Запуск из rc. local: /usr/local/sbin/healthd.sh &
  2. Код healthd.sh:
    #!/bin/sh
    
    test -z "$(which sensors)" && { echo "No sensors binary, exit."; exit 1; }
    
    while : ; do
    	sensors | grep -q ALARM || { sleep 15; continue; }
    	sensors | grep -q ALARM | logger -s -t "sensors" -p local0.crit
    	sensors | mail -s "Hardware Health Warning"  "admins"
    	sleep 600
    done
    

Другие варианты:

  1. healthd.sh — lm-sensors.org/browser/lm-sensors/trunk/prog/daemon/healthd.sh
  2. sensormon — www.lm-sensors.org/attachment/ticket/2133/sensormon
  3. lm-monitor — sourceforge.net/projects/lm-monitor
Adaptec RAID

  • Используется утилита arcconf (репозиторий с пакетом для Debian, порт для FreeBSD)
  • Исходный текст: /usr/local/sbin/aacraid-check (убедитесь, что $PROG внутри содержит правильный путь к arcconf)
  • Ежедневный вызов под Linux через /etc/cron.daily/aacraid-check:
    /usr/local/sbin/aacraid-check | mail -e -s "Adaptec RAID Alert on $(hostname)" admins
  • Ежедневный вызов под FreeBSD через /usr/local/etc/periodic/daily/aacraid-check:
    /usr/local/sbin/aacraid-check | mail -E -s "Adaptec RAID Alert on $(hostname)" admins

Другие варианты:

  1. quad3datwork — www. sysadmintalk.net/forums/thread-1062.html
  2. aacraid-status — hwraid.le-vert.net/wiki/Adaptec#a3.3.aacraid-status
Intel MatrixRAID под FreeBSD

  1. Запуск: /usr/local/etc/periodic/daily/raidcheck
  2. Код:
    #!/bin/sh
    
    cd /dev
    for n in ar?; do
            test "$n" = 'ar?' && exit  # ..no ATA RAID 
            #echo "Check $n..." 
            atacontrol status $n | egrep -qv '(READY|ONLINE|subdisks:)' || continue
            atacontrol status $n | mail -s 'ATA RAID Warning' admins
            atacontrol status $n | logger -p local4.crit -t RAIDCheck -s
    done
    
OpenVZ

Ежедневная проверка переполнения квот в контейнерах – sources.homelink.ru/openvz

P.S.

На 90% заметка представляет собой копипасту из локальной wiki. Если кому-то пригодится — хорошо. Не пригодится — ничего страшного ;-))

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

Он включает SMTP (Simple Mail Transfer Protocol) для пересылки почты и доставки электронной почты.

Большинство системных администраторов предпочитают использовать сервер Sendmail в качестве MTA.

Вы также можете использовать сервер Sendmail для отправки электронной почты через внешние SMTP-серверы, такие как Gmail, Amazon SES, MailChimp и т. д.

1. Удалите Постфикс

Postfix — это служба SMTP по умолчанию, предварительно установленная в операционных системах Ubuntu.

И если вы готовы использовать сервер Sendmail в вашей системе, прежде всего, удалите существующую установку postfix в Ubuntu.

sudo systemctl stop postfix
sudo apt remove postfix && apt purge postfix

2. Установите Sendmail

Если вы не установили Sendmail, используя следующую команду, чтобы установить Sendmail с другими необходимыми пакетами, используя менеджер пакетов yum.

sudo apt install sendmail

Sendmail хранит все свои файлы конфигурации в каталоге /etc/mail.

Ниже вы найдете подробную информацию о файлах конфигурации Sendmail.

  • access — разрешить / запретить другим системам использовать Sendmail для исходящих писем.
  • domaintable — используется для сопоставления доменного имени для Sendmail.
  • local-host-names — используется для определения псевдонимов для хоста.
  • mailertable — Определяет инструкции, которые переопределяют маршрутизацию для определенных доменов.
  • virtusertable — определяет специфичную для домена форму псевдонимов, позволяющую разместить несколько виртуальных доменов на одном компьютере.

2.1 Закомментируйте строку ниже в /etc/mail/sendmail.mc, чтобы разрешить получение электронной почты из любой точки мира.

Чтобы закомментировать строку в sendmail.mc, просто поставьте dnl в начале строки.

dnl DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
dnl DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127. 0.0.1')dnl

2.2 Добавьте эту строку также в sendmail.mc над опцией «MAILER»

FEATURE(`relay_hosts_only')dnl

2.3 Добавьте полное имя хоста вашего ПК в этот файл.

hostname >> /etc/mail/relay-domains

4. Перекомпилируйте конфигурацию Sendmail

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

sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

Перезапустите сервис Sendmail

sudo /etc/init.d/sendmail restart

4. Настройка доменной маршрутизации электронной почты

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

1. Все электронные письма, адресованные домену @example.com, доставляются по адресу [email protected]

@example.com [email protected]

2. Все электронные письма, адресованные support@mydomain. com, будут перенаправлены на локального пользователя jack

[email protected]  jack

3. Все электронные письма, адресованные @mydomain.com, будут пересылаться на домен @otherdomain.com с соответствующими именами пользователей.

@mydomain.com    %[email protected]

4. Все письма, адресованные @otherdomain.com, будут отклонены моим почтовым сервером с подтверждением отправителя с сообщением

@otherdomain.com 	 error:nouser User unknown

После внесения всех изменений в virtusertable выполните следующую команду, чтобы создать обновленный файл virtusertable.db, содержащий новую конфигурацию.

sudo makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable

Теперь перезапустите сервис Sendmail

sudo /etc/init.d/sendmail restart

 

Поделитесь статьей:

Настраиваем почтовые уведомления в Linux

Довольно часто возникает необходимость настроить почтовые оповещения от системы (речь конечно же про Linux, если что). Это могут быть послания от cron, всяческих mdadm (мониторинг RAID), да и вообще при всём бурном развитии мессенджеров старый добрый пуленепробиваемый email ещё никто не отменял. Тем более, что большинство утилит (тот же cron) и умеют как раз-таки общаться именно через почту.
Полноценный почтовый сервер поднимать не имеет смысла, особенно, когда речь идёт про одноплатные компьютеры. Там дорог каждый байт, как и в RAM, так и на флешке.
Поэтому будем обходиться простым средством и сведём задачу к простой отправке писем на наш самый обычный email адрес.

Итак, дано:

  • Свежеустановленный Armbian (Debian stretch).
  • Почтовый адрес на Яндексе.

Не проверял на Ubuntu, но думаю будет всё тоже самое. И да, с gmail это тоже заработает. Важно, чтобы в настройках вашего почтового аккаунта на Яндекс/Gmail/whatever была разрешена отправка через SMTP.

Надо:

  • Уметь отсылать почту на произвольный почтовый адрес.
  • Всю почту адресованную root, вашему_пользователю и служебным аккаунтам (типа www-data) отсылать на некий внешний адрес.

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

А ведь я помню времена, когда все работало без всяких авторизаций. А потом появились интернет-маркетологи, нигерийские принцы и прочие пидорасы.

Так что будем пользоваться этим самым Яндексом, упомянутым выше.

Итак, поехали…

Первое, что нужно сделать — обеспечить функционирование команды mail в свежепоставленном Linux.
Две команды:

1
2
sudo apt-get install heirloom-mailx
sudo update-alternatives --install /usr/bin/mail mail /usr/bin/heirloom-mailx 1

Первая ставит старорежимный почтовый клиент (она будет эмулировать команду mail), вторая же делает “официальную запись о том, что в качестве команды mail мы будем использовать другой бинарник”. Нет, вопрос можно решить и симлинком, но это способ более каноничный.

Дальше можно набрать команду mail и получить гордый отлуп No mail for my_username.

Теперь нам нужно настроить почтовый транспорт, то есть обеспечить работу sendmail. Настройка каноничного sendmail — занятие требующее самоотречения, поэтому поставим его заменитель.

1
2
sudo apt-get install msmtp
sudo update-alternatives --install /usr/sbin/sendmail sendmail /usr/bin/msmtp 1

msmtp — небольшая утилита, которая умеет делать только одно — отсылать почту на сконфигурированный smtp сервер. К недостаткам можно отнести следующее — в моем случае она не делает никакую очередь. То есть в случае проблем с сетью письмо просто пропадет. В принципе, для “домашнего пользованя” очень даже подойдет.

Если же сохранность оповещений критична — используте другой транспорт, например exim4. Но это уже совсем другая история.

Дальше нужно отконфигурировать _msmtp. Шага три:

  • Создать папку для логов (я хз почему она не создается сама).
  • Создать конфигурационный файл
  • Настроить алиасы

Раз:

1
2
sudo mkdir /var/log/msmtp
sudo chmod 777 /var/log/msmtp

На самом деле chmod/owner должны быть более адекватные-другие. Но мне лениво искать, какие именно, поэтому пусть будет можно всё всем.

Два:

Предположим, наш аккаунт на Яндексе — [email protected].
Тогда файл /etc/msmtprc должен иметь следующее содержание:

1
2
3
4
5
6
7
8
9
10
11
12
13
defaults
account default
host smtp.yandex.ru
port 465
auth on
tls on
tls_starttls off
tls_certcheck off
user zaloopa
password ZalupaSecret
from zaloopa@yandex. ru
aliases /etc/mail_aliases
logfile /var/log/msmtp/msmtp.log

В случае использования Gmail нужно будет сменить то, что в поле host. Ну и возможно настройки tls, хотя вроде всё должно работать. Если используется “ПДД — почта для домена”, то вместо логина нужно писать полный адрес — [email protected]

Три:

Алиасы важны. Вот пример файла /etc/mail_aliases:

1
2
3
root: [email protected]
my_username: [email protected]
www-data: [email protected]

Теперь вся почта для пользователей root,my_username и www-data будет уходить на внешний адрес.

Отлично. Проверить довольно просто — пишем три письма командой mail. Одно для root, второе для my_username, третье — для www-data. Если вы осилили работу с консольным почтовым клиентом и успешно написали их, то в логе msmtp будет примерно следующее:

1
Feb 20 10:45:09 host=smtp. yandex.ru tls=on auth=on user=zaloopa [email protected] [email protected] mailsize=144 smtpstatus=250 smtpmsg='250 2.0.0 Ok: queued on smtp4o.mail.yandex.net as 1550659509-c1eIJdfssfdgsgen-j9fgfQghhgX' exitcode=EX_OK

Письма благополучно приняты почтовым сервером и теперь их доставка на могучих плечах Яндекс или Google.

Ещё раз о приемуществах и недостатках такого setup.

Плюсы:

  • Он занимает мало места
  • Прост, понятен и прозрачен в конфигурации
  • Не висит никакой процесс в памяти

Минусы:

  • Нет очереди (письма потеряются при недоступности сервера)

У меня на подобной фигне вполне бодро работает гейтвей sms2email и приходят уведомительные письма от cron.

И да, для “разработчиков на ПоХаПэ” — это будет работать с функциями php_mail, или как там называется это ваше поделие. Короче, будет работать со всем, что умеет использовать sendmail в Linux. А это 99.9% случаев.


В массы
В трубу

Отправка почты для root на внешний ящик

Задался вопросом а как отслеживать события на подконтрольных серверах, вроде отвалившегося раздела из RAID-массива. По умолчанию система отправляет системные сообщения на почту root, т.е. в файл /var/mail/root. Нам же нужно, чтобы почту уходила не внешний ящик, информацию на котором мы сразу увидим.
Решить вопрос можно двумя (как минимум) путями:

postfix

Задача разбивается на 2 части:

  1. Научить систему отправлять почту. И если вам не нужно настраивать полноценный почтовый сервер с доступом в мир, то проще всего завести relay, например через Яндекс. Как это сделать я уже писал ранее http://help.ubuntu.ru/wiki/postfix_relay_yandex
  2. Перенаправить почту для root в наш внешний почтовый ящик.

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

sudo su
echo "root: [email protected]" >> /etc/aliases
newaliases

Вот и все, почта для root будет падать на наш внешний почтовый ящик. Проверил на ВМ, имитацией отказа одного из разделов в RAID1.

ssmtp

Также, вместо postfix, можно воспользоваться утилитой ssmtp.

Установка

sudo apt-get install ssmtp

Настройка

Редактируем файл /etc/ssmtp/ssmtp.conf

root=
mailhub=smtp.yandex.ru:465 # SMTP-сервер яндекса
UseTLS=Yes
AuthUser=почта@с_которой_отсылаем # Почтовый ящик
AuthPass=pass # Пароль
hostname=localhost
FromLineOverride=YES

Настраиваем отправителей писем:

Редактируем файл /etc/ssmtp/revaliases

root:почта@с_которой_отсылаем:smtp.yandex.ru:465
user:почта@с_которой_отсылаем:smtp. To: .*$/To: почта@куда_отсылаем/' \
| /usr/sbin/ssmtp 'почта@куда_отсылаем' 

Даём права на исполнение

sudo chmod +x /usr/sbin/sendmail 

Обратите внимание, теперь почта будет отправляться только на адрес, который указали в /usr/sbin/sendmail,
независимо от того, какие электронные адреса указаны в консоли и скриптах.

Sendmail — ArchWiki

Sendmail — классический агент передачи почты из мира Unix. Эта статья основана на почтовом сервере.

Целью данной статьи является настройка Sendmail для учетных записей локальных пользователей без использования MySQL или другой базы данных, а также создание учетных записей только для почты .

Установка

Фактическая точность данной статьи или раздела оспаривается.

Причина: sendmail может использоваться с другими MDA, кроме procmail.(Обсудить в Talk: Sendmail #)

Установите пакеты sendmail AUR , procmail и m4.

Добавление пользователей

Создайте пользователя Linux для каждого пользователя, который хочет получать электронную почту по адресу [email protected] . Чтобы добавить учетных записей только для почты , то есть пользователей, которые могут получать электронную почту, но не имеют доступа к оболочке или входа в систему X, вы можете добавить их следующим образом:

 # useradd -m -s / usr / bin / nologin  имя пользователя 
 

Конфигурация

Получить сертификат TLS

Чтобы получить сертификат, см. Использование OpenSSL #.

sendmail.cf

Создайте файл /etc/mail/sendmail.mc .
Вы можете прочитать все варианты настройки sendmail в файле / usr / share / sendmail-cf / README .

Предупреждение: Если вы создаете свой собственный файл sendmail.mc, помните, что проверка подлинности открытого текста для без TLS очень рискованна. В следующем примере принудительно используется TLS, поэтому он более безопасен, если вы не знаете, что делаете.

Вот пример использования аутентификации через TLS.В примере есть комментарии, объясняющие, как это работает. Комментарии начинаются с dnl .

 /etc/mail/sendmail.mc 
 включают (`/usr/share/sendmail-cf/m4/cf.m4 ')
define (`confDOMAIN_NAME ',` your-domain.com') dnl
ОСОБЕННОСТЬ (use_cw_file)
dnl Следующее позволяет ретранслировать, если пользователь аутентифицируется,
dnl и запрещает аутентификацию открытым текстом (PLAIN / LOGIN) на
dnl не-TLS ссылки:
define (`confAUTH_OPTIONS ',` A p y') dnl
dnl
dnl Принять аутентификацию PLAIN и LOGIN:
TRUST_AUTH_MECH (`LOGIN PLAIN ') dnl
define (`confAUTH_MECHANISMS ',` LOGIN PLAIN') dnl
dnl
dnl Убедитесь, что эти пути правильно указывают на ваши файлы сертификатов SSL:
определить (`confCACERT_PATH ',` / etc / ssl / certs')
определить (`confCACERT ',` / etc / ssl / cacert.pem ')
определить (`confSERVER_CERT ',` / etc / ssl / certs / server.crt')
определить (`confSERVER_KEY ',` / etc / ssl / private / server. key')
dnl
ОСОБЕННОСТЬ (`virtusertable ',` hash /etc/mail/virtusertable.db')dnl
OSTYPE (linux) dnl
ПОЧТОВЫЙ (местный) dnl
ПОЧТОВЫЙ (smtp) dnl
 

Затем обработайте его

 # m4 /etc/mail/sendmail.mc> /etc/mail/sendmail.cf
 

имена локальных хостов

Поместите свои домены в файл local-host-names :

 / и т. Д. / Почта / имена локальных хостов 
 локальный
ваш домен.com
mail.your-domain.com
localhost.localdomain
 

Убедитесь, что домены также разрешены вашим файлом / etc / hosts .

access.db

Создайте файл / etc / mail / access и поместите туда базовые адреса, по которым вы хотите пересылать почту. Предположим, у вас есть vpn на 10.5.0.0/24 , и вы хотите ретранслировать почту с любого ip в этом диапазоне:

 / и т.д. / почта / доступ 
 10.5.0 РЕЛЕ
127.0.0 РЕЛЕ
 

Затем обработайте его

 # хеш makemap / etc / mail / access. БД 

псевдонимов.db

Отредактируйте файл / etc / mail / aliases и раскомментируйте строку #root: human being here и измените ее так:

 корень: ваше имя пользователя 

Вы можете добавить туда псевдонимы для своих имен пользователей, например:

 coolguy: ваше имя пользователя
somedude: ваше-имя пользователя 

Затем обработайте его

 # newaliases
 

virtusertable.db

Создайте виртуальный файл и поместите туда псевдонимы, включающие домены (полезно, если на вашем сервере размещено несколько доменов)

 / и т. Д. / Mail / virtusertable 
 ваше-имя пользователя @ ваш-домен.com ваше-имя пользователя
[email protected] joenobody
 

Затем обработайте его

 # хеш makemap /etc/mail/virtusertable.db 

Запуск при загрузке

Включите и запустите следующие службы. Прочтите Демоны для получения дополнительных данных.

  • saslauthd.service
  • sendmail.service
  • sm-client.service

SASL аутентификация

Добавьте пользователя в базу данных SASL для аутентификации SMTP.

 # saslpasswd2 -c ваше-имя пользователя
 

Советы и хитрости

Перенаправить всю почту одного домена определенному пользователю

Чтобы пересылать всю почту, адресованную любому пользователю в домене my-other.tk , на адрес [email protected] , добавьте в файл / etc / mail / virtusertable :

 @ my-other.tk [email protected] 

Не забудьте снова обработать

 # хеш makemap / etc / mail / virtusertable.БД 

Ubuntu - Подробная информация об исходном пакете sendmail в xenial

Ссылки для sendmail

Ресурсы Ubuntu:

Сопровождающий:

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

Исходный сопровождающий (обычно из Debian):

Обычно пользователям не нужно связываться с первоначальным сопровождающим.

Внешние ресурсы:

Следующие двоичные пакеты построены из этого пакета с исходным кодом:

libmilter-dev
Sendmail Mail Filter API (Milter) (файлы разработки)
libmilter1.0,1
API почтового фильтра Sendmail (Milter)
libmilter1.0.1-dbg
API почтового фильтра Sendmail (Milter) (символы отладки)
rmail
MTA-> UUCP удаленный обработчик почты
sendmail
мощный, эффективный и масштабируемый агент почтового транспорта (метапакет)
база sendmail
мощный, эффективный и масштабируемый агент почтового транспорта (независимые от архива файлы)
sendmail-bin
мощный, эффективный и масштабируемый агент транспорта почты
sendmail-cf
мощный, эффективный и масштабируемый агент транспорта почты (макросы конфигурации)
sendmail-doc
мощный, эффективный и масштабируемый агент почтового транспорта (документация)
разумный-мда
Обертка агента доставки почты

Другие пакеты, относящиеся к sendmail

  • адеп:
    сделать
    (>> 3. 79,1-14)
    утилита для направления компиляции
    также виртуальный пакет, предоставляемый

    лукавство

  • адеп:
    м4

    язык обработки макросов
  • адеп:
    лоскутное одеяло

    Инструмент для работы с сериями заплат
  • адеп:
    патчи

    Утилиты для работы с патчами
  • адеп:
    dh-buildinfo

    Надстройка Debhelper для отслеживания версий пакетов, используемых для создания пакета
  • адеп:
    debhelper
    (> = 9)
    вспомогательные программы для debian / rules
  • адеп:
    Linux-libc-dev
    (> = 2. 6.21-3)
    [linux-any]
    Заголовки ядра Linux для разработки
  • адеп:
    libdb-dev

    Библиотеки баз данных Беркли [разработка]
  • адеп:
    libldap2-dev

    Библиотеки разработки OpenLDAP
  • адеп:
    libwrap0-dev

    Библиотека оболочек TCP Wietse Venema, файлы для разработки
  • адеп:
    liblockfile-dev

    Библиотека разработки для liblockfile
  • адеп:
    libsasl2-dev

    Cyrus SASL - файлы для разработки библиотеки абстракции аутентификации
  • адеп:
    libssl-dev

    Набор инструментов Secure Sockets Layer - файлы для разработки
  • idep:
    Groff

    Система форматирования текста GNU troff
  • idep:
    bsdmainutils

    сборник дополнительных утилит от FreeBSD

Искусство настройки сервера sendmail в Debian 8

Но почему?

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

Тем не менее, если для вас важна доставка почты, скорее всего, нет другого выхода. И я не говорю о возможности массовой рассылки. Даже наличие простых, написанных вручную сообщений, доставленных этой полубезопасной компании, даже если у нее есть вложение ZIP, может быть проблемой. И независимо от того, какой у вас интернет-провайдер или другой платный почтовый ретранслятор, всегда будет кто-то другой, проталкивающий нежелательную почту через тот же канал, что поставит под сомнение репутацию используемого почтового ретранслятора.

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

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

Ключевой вопрос - взять под контроль свою репутацию. Так просто, как, что. Используйте все возможные средства (подробно описанные ниже), чтобы убедиться, что получатель отправил его именно вы, и пусть отсутствие черного списка сделает все остальное.

Но, хм, после всей этой проповеди настоящая причина, по которой я установил свой собственный почтовый сервер, заключалась в том, что у меня не было выбора: мой веб-хостинг, который также заботился об исходящей почте с моего сайта, сводил меня с ума от обновлений из ниоткуда.Итак, я выбрал VPS-хостинг, а для этого нужен собственный почтовый сервер. К лучшему и к худшему. Или воспользуйтесь услугами какой-нибудь службы пересылки почты, что фактически означает, что все мои письма выглядят как спам.

Порт 25 может быть заблокирован интернет-провайдером

Это не имеет прямого отношения, но достаточно важно: мой интернет-провайдер, Netvision, блокирует соединение с по порт 25 с моего компьютера, вероятно, чтобы избежать внесения их IP-адресов в черный список из-за рассылки спама от них.

Это означает, что тестирование порта 25 с моего локального компьютера бесполезно и вводит в заблуждение.Я полагаю, что другие интернет-провайдеры поступают так же.

Используйте внешние инструменты для тестирования порта 25.

Выбор серверного ПО

Debian 8 по умолчанию поставляется с Postfix. Exim популярен. Я привык к qmail и sendmail. Сложно выбрать. Безопасность важна. Если сервер будет взломан, мой домен в лучшем случае превратится в рассадник спама. Мне также нужны некоторые дополнительные функции (в частности, DKIM).

Я выбрал sendmail 8.14.4 . О нем не говорят, но его рекомендации по безопасности за последние десять лет лучше, чем Postfix, и, безусловно, лучше, чем Exim.Это сюрприз, но с фактами не поспоришь.

И я мог бы пойти туда для qmail, но похоже, что он нуждается в исправлении для поддержки DKIM, и тогда кто знает, если я просто не проделал дыру.

Голы

Сервер должен

  • Откройте порты 25 и 587, чтобы любой мог подключиться.
  • Ретранслировать любое электронное письмо, полученное через порты 25 и 587 только от локального хоста, без аутентификации
  • Принимать электронные письма на порты 25 и 587 локальных получателей при подключении с внешнего хоста.Порт 25 необходим для входящей почты, но иногда он блокируется брандмауэрами, поэтому откройте и другой порт.
  • Добавить DKIM-подпись в электронные письма, отправляемые только на зарубежные хосты
  • Отказаться от VRFY и EXPN
  • Принимать все электронные письма (в том числе и от внешних почтовых программ), даже если в них нет записей rDNS и т. Д. (Пусть их обрабатывает спам-фильтр)

Контрольный список

Обратите внимание, что многие из этих предметов подробно описаны ниже в этом посте. Я также предлагаю взглянуть на мой пост о SPF, DKIM и DMARC и, возможно, о том, о том и о том.

  • Убедитесь, что ваш IP-адрес устойчив. Репутация, которую ваш почтовый сервер создает с годами, больше всего связана с IP-адресом. Это также означает, что поставщик услуг хостинга работает стабильно, потому что, если он выйдет из строя, переместить сервер, возможно, будет легко, но вы потеряете IP-адрес.
  • Убедитесь, что ни ваш IP, ни ваше доменное имя не имеют плохой репутации с помощью проверки черного списка.
  • Сделайте запись rDNS для IP-адреса почтового сервера. Лучше начинать с поддомена «mail», «smtp» или «mx».Убедитесь, что есть только одна запись rDNS с обратным поиском DNS (например, dig -x). Звучит глупо, но случилось со мной.
  • Настройте почтовый сервер правильно и безопасно. Выполните проверку безопасности.
  • Отключите DSN, чтобы сервер не отправлял уведомления о возврате. Подробно обсуждается в другом моем посте, но TL; DR должен добавить noreceipts в confPRIVACY_FLAGS в /etc/mail/sendmail.mc.
  • Настройте брандмауэр для уничтожения любого трафика IPv6 (в частности, отклоняет , а не отбрасывает исходящие пакеты)
  • Создайте DNS-запись SPF, DKIM и DMARC для сервера. Для SPF с субдоменом «mx» и без него.
  • Если у сервера есть внутреннее имя (отличное от поддомена mx), убедитесь, что у него есть запись A DNS, а также запись SPF.
  • Убедитесь, что исходящая почта отправляется правильно с этим валидатором DKIM, который позволяет отправлять ему почту, а затем посмотрите, как именно она пришла + результаты проверки. Бесценно.
  • Запустите подробную ручную отправку почты и убедитесь, что все имеет смысл. В частности, убедитесь, что домен HELO / EHLO соответствует rDNS.Однако не ожидайте, что EHLO при внутренней передаче (из программы, которую мы запускаем на локальный сервер) будет известен извне.
  • Проверьте DNS-запись DMARC для своего домена, отправив тестовое электронное письмо на адрес [email protected] (или на любой другой указанный здесь). Мой неофициальный опыт показывает, что Gmail отказывался принимать почту (как в случае отказа SMTP «Служба недоступна») от домена до тех пор, пока я не добавил запись DMARC.
  • Проверьте все программы (в частности, веб-приложения), кроме отправки электронной почты, и убедитесь, что отправитель конверта (MAIL FROM) имеет смысл (предпочтительно такой же, как заголовок From).Лучше всего отправить почту на какую-нибудь учетную запись Gmail и посмотреть, что это за smtp.mailfrom. Это не законный домен, Gmail отказывается принимать почту.

А затем подружитесь с теми, кто имеет право голоса в области обнаружения спама:

  • Запросите статус вашего IP в SPFBL и, возможно, удалите его из черного списка. Для этого требуется работающий MTA на сервере с пользователем в домене postmaster. Spamassassin полагается на этот сервис.
  • Зарегистрируйте домен в Gmail's Postmaster Tools, чтобы решить проблемы с доставкой в ​​Gmail, если таковые возникнут.У меня также есть ощущение, что это может снизить рейтинг спама Gmail для домена (это как будто кто-то берет на себя ответственность за это).
  • Создайте учетную запись Microsoft и присоединитесь к SDNS и JMRP. Я написал об этом отдельный пост, потому что все, что связано с Microsoft, требует дополнительных усилий.

Настройка sendmail

Важное общее замечание: Sendmail сразу готов к работе. Достаточно умен, чтобы ретранслировать любую почту, полученную с localhost, на внешние серверы, а не делать это с почтой от внешних подключений.Если только вы явно не укажете, что он станет ретранслятором спама. Файлы конфигурации по умолчанию устанавливаются с помощью apt, это нормально и, вероятно, безопасно.

С другой стороны, внутреннее устройство Sendmail

, со всеми макросами и прочим, совершенно ужасно.

Итак, фокус в том, чтобы внести минимальные изменения. На самом деле мало что нужно сделать. Для обычной конфигурации почты делать очень мало (то есть в Debian 8).

Итак, сначала установите его:

 # apt install sendmail 

Не только sendmail-bin.Это не сработает. Не устанавливайте rmail - это для UUCP. Который в любом случае древний и инвалид.

Теперь изменения в конфигурационном файле. По умолчанию в Debian 8 sendmail прослушивает порты 25 и 587 только на локальном хосте IPv4 и при необходимости ретранслирует почту на внешние серверы. Чтобы открывать порты 25 и 587 для входящей почты на локальные адреса только с любого хоста, измените строку в /etc/mail/sendmail.mc на

 DAEMON_OPTIONS (`Family = inet, Name = MTA-v4, Port = smtp, Addr = 127.0.0.1 ') dnl
DAEMON_OPTIONS (`Family = inet, Name = MSP-v4, Port = submission, M = Ea, Addr = 127.0.0.1 ') dnl 

С

по

 DAEMON_OPTIONS (`Family = inet, Name = IPv4-port-25, Port = smtp, M = E ') dnl
DAEMON_OPTIONS (`Family = inet, Name = IPv4-port-587, Port = submission, M = E ') dnl 

Поясним изменения:

Самое время упомянуть, что в sendmailish это как если бы было два отдельных демона MTA, по одному для каждого порта. Это терминология, используемая в журнале.

Цитата вверху файла, после назначения DOMAN () я добавил

 define (`confDOMAIN_NAME ',`  mx. example.com  ') dnl 

Устанавливает имя хоста sendmail в том виде, в каком оно отображается во время разговора с клиентами, в частности, в HELO / EHLO (нет необходимости устанавливать параметр confHELO_NAME / HeloName). Даже если получится дать правильное имя без него, я бы установил его так. Очень важно идентифицировать себя по имени, которое он должен дать, иначе проверки SPF могут не пройти.

И, конечно же, установите его на rDNS вашего IP-адреса, а не на mx.example.com.

Настройка «виртуальных пользователей»

Наличие адресов электронной почты, не совпадающих ни с одним из реальных имен пользователей на машине, требует определения «виртуальных пользователей».Но сначала необходимо указать sendmail принимать письма не в свой собственный, а в другие домены. Для этого добавьте по одной строке для каждого домена. Если есть поддомены, добавьте по одной строке для каждого (по умолчанию sendmail явно этого требует). Поэтому я добавил в / etc / mail / local-host-names следующую строку:

 billauer. co.il 

Это заставляет sendmail считать эти домены локальными. Важным побочным эффектом этого является то, что теперь [email protected] является допустимым псевдонимом для локальной учетной записи root. Это адрес, который часто угадывают спамеры.Рассматривается ниже.

Затем включите виртуальных пользователей. Я помещаю это после других операторов FEATURE в / etc / mail / sendmail.mc:

 ОСОБЕННОСТЬ ("виртуозность") dnl 

Затем запустите «make» в / etc / mail, чтобы обновить sendmail.cf. И перезапустите sendmail.

Наконец, подготовьте файл со списком почтовых адресов, и какому пользователю они должны быть направлены. Первый столбец в почтовом адресе, второй - адресат. Для простоты оставьте второй столбец с реальными локальными пользователями, но также можно использовать другие записи первого столбца в качестве целевых.Зачем баловаться.

Это относится к файлу с именем / etc / mail / virtusertable. Вот как это может выглядеть:

 кто-то@billauer. co.il корень
[email protected] корень 

Затем вызовите make в / etc / mail, который обновит /etc/mail/virtusertable.db. Нет необходимости в перезапускать sendmail, чтобы изменения в virtusertable.db вступили в силу.

Почтовые адреса и домены, конечно, нечувствительны к регистру. Но нет ярлыков с поддоменами: все, что находится после «@», должно совпадать.

Теперь не позволяет спамерам отправлять письма на [email protected]. Просто добавьте эту строку в / etc / mail / virtusertable:

 [email protected] ошибка: nouser Пользователь неизвестен 

Это заставляет sendmail отклонять плоский адрес электронной почты при подключении:

 23 апреля 08:29:05 sm-mta [12752]: x3N8T4Sn012752:  ... Пользователь неизвестен 

Но что произойдет, если внутренняя почта будет отправлена ​​root, например, из некоторого задания cron? Он тоже отклонен? Не в этом была цель.Что ж, на моей машине это не проблема, потому что эти письма отправляются root @ на сервер . billauer.co.il (как определено в / etc / hosts?), Поэтому они не перехватываются виртуальным пользователем. правило выше. Я не знаю, каков был бы результат без этого субдомена.

Отклонение IPv6

Почему? Потому что с IPv6 все становится беспорядочно. Sendmail уже настроен так, чтобы не слушать IPv6, но когда он собирается ретранслировать на другой сервер, все становится некрасиво. В частности, с Gmail, который предоставляет запись DNS IPv6 AAAA для своих серверов MX.

Проблема в том, что sendmail сначала пытается использовать IPv6, несмотря ни на что (см. Замечание от 30 ноября 2018 г. после обсуждения на этой странице). Похоже, это попытка в стиле Microsoft протолкнуть IPv6, заставляя всех использовать его. Я бы сам скомпилировал sendmail, чтобы избавиться от этой «возможности», но есть более простой способ. Итак, моя собственная попытка добавить

 CLIENT_OPTIONS (`Family = inet ') dnl 

в файле sendmail.mc, превращаясь в

 O ClientPortOptions = Семья = inet 

в sendmail. ср, не имело никакого значения. Он должен был отключить IPv6, но этого не произошло: Sendmail сначала пробует IPv6, терпит неудачу, в том числе потому, что мой брандмауэр уничтожает все входящие пакеты IPv6, а через минуту переходит на IPv4. Так зачем ждать?

Мое решение состояло в том, чтобы установить брандмауэр на , чтобы отклонить исходящий пакет IPv6, чтобы любое TCP-соединение немедленно получало RST. Это не мешает sendmail пробовать IPv6, но дает понять, что это недопустимо. Так что он не тратит на это время.

Это мои правила брандмауэра для этого.Это правила OUTPUT, которые я добавил специально для sendmail:

 # ip6tables -A ВВОД -i lo -j ПРИНЯТЬ
# ip6tables -A INPUT -j DROP
# ip6tables -A ВЫХОД -o lo -j ПРИНЯТЬ
# ip6tables -A OUTPUT -j  REJECT  --reject-with icmp6-addr-unreachable 

Добавить доверенных пользователей

Если у вас есть сценарии CGI на веб-сервере с использованием флага -f для установки отправителя, вероятно, появится сообщение такого рода (по крайней мере, с sendmail 8. 14), если только www-data (или любой другой пользователь, запущенный веб-сервером) с) считается доверенным:

 X-Authentication-Warning: www-data отправитель отправляет mailer @ mydomain.com с использованием -f 

Это вроде срабатывает спам-фильтры. Чтобы остановить это, добавьте следующую строку в /etc/mail/submit.mc

 ФУНКЦИЯ (use_ct_file) dnl 

непосредственно перед строкой «FEATURE (« msp »и т. Д.

Затем добавьте список пользователей, которым разрешено использовать флаг -f без предупреждения, в / etc / mail / trusted-users. Это просто пользователь для каждой строки. Так может быть:

 www-данные
Эли 

, а затем запустите «make», чтобы создать submit.cf, и перезапустите sendmail.

Обратите внимание, что эта процедура сильно зависит от версии sendmail, и она работала в sendmail 8.14.

Проверка настройки sendmail

Для настоящих мазохистов откройте /etc/sendmail.cf.

  • Строки, начинающиеся с символа #, конечно же, являются комментариями.
  • Строки, начинающиеся с «O», являются вариантами.
  • Поиск в файле по запросу «= /» обнаруживает все настройки, относящиеся к файлу (поскольку это назначение, за которым следует начало абсолютного пути)

Настройка DKIM

У меня отдельный пост по DKIM и друзьям.Лучше посмотрите, если это для вас китайский.

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

Следуя этому руководству (более или менее). И man opendkim.conf, что хорошо. Сначала установите:

 # apt install opendkim opendkim-tools 

Затем создайте ключи:

 # mkdir -p opendkim / keys / billauer.co.il
# opendkim-genkey -D /etc/opendkim/keys/billauer.co.il/ -d billauer.co.il -s dkim2019
# chown -R opendkim: opendkim / etc / opendkim / keys / 

Теперь конфигурация. Единственные изменения, которые мне нужно было внести из файлов по умолчанию, были: Отредактируйте / etc / default / opendkim, добавив в конце следующую строку, чтобы открылся порт TCP:

 SOCKET = "inet: 8891 @ localhost" # прослушивание порта localhost 8891 

, и поскольку мне нужно подписать несколько доменов, я добавил эти две строки в /etc/opendkim.conf

 Ссылка на KeyTable: / etc / opendkim / KeyTable
Ссылка на SigningTable: / etc / opendkim / SigningTable 

и добавил два следующих файла./ etc / opendkim / KeyTable чтение

 dkim2019._domainkey.billauer.co.il billauer.co.il:dkim2019:/etc/opendkim/keys/billauer.co.il/dkim2019.private
dkim2019._domainkey.example.com example.com:dkim2019:/etc/opendkim/keys/example.com/dkim2019.private 

и / etc / opendkim / SigningTable:

 *@billauer.co.il dkim2019._domainkey.billauer.co.il
*@example.com dkim2019._domainkey.example.com 

Для сервера, исходящие сообщения которого приходят только с localhost, нет необходимости устанавливать ни InternalHosts, ни ExternalIgnoreList, поскольку это значение по умолчанию. Они появляются во многих руководствах.

Наконец, сделайте DKIM фильтром почты («Milter») в sendmail, добавив эту строку в конец sendmail.mc (и запустите «make» + перезапустить sendmail):

 INPUT_MAIL_FILTER (`opendkim ',` S = inet: [email protected], F = T') 

Обратите внимание на часть «F = T». Это заставит sendmail отказываться принимать почту, если сервер DKIM не отвечает должным образом с

 451 4.3.2 Повторите попытку позже 

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

Не забудьте настроить записи DNS TXT с файлами * .txt, созданными с помощью opendkim-genkey. Эти файлы записываются в формате зоны для демона связывания. Фактический текст - это объединение двух строк в кавычках после удаления этих кавычек. Думайте об этом как о многострочной строке на языке C.

Готово? Используйте этот валидатор DKIM, чтобы узнать, насколько хорошо он прошел.

Удалить исходящие сообщения из очереди рассылки

 #  mailq 
Состояние очереди MSP ...
/ var / spool / mqueue-client пуст
Всего запросов: 0
Статус очереди MTA ...
/ var / spool / mqueue (2 запроса)
----- Q-ID ----- --Size-- ----- Q-Time ----- ------------ Отправитель / получатель ---- -------
x22FdWV1010569 1864 Сб, 2 мар, 10:39 MAILER-DAEMON
                 (Отложено: время ожидания соединения с сервером истекло.ком.)

x22FMGAi009668 17 сб, 2 мар, 10:23 
                 (Отложено: истекло время ожидания соединения с example.com.)

Всего запросов: 2
#  cd / var / spool / mqueue
  #  rm * x22FdWV1010569
  #  RM * x22FMGAi009668
  #  systemctl перезапустить sendmail
  

Gmail ни с кем не разговаривает

Сервер Gmail не отвечает на SYN на порте 587 или 25 и не будет разговаривать с вами, если у вас нет rDNS. Только после установки rDNS на сервере:

 # nc gmail-smtp-in.l.google.com. 25
220 mx.google.com ESMTP y6si2100605wmi.83 - gsmtp 

И это только начало. Без настройки DMARC он не будет ретранслировать мои письма. Также кажется очень хорошей идеей, чтобы политика DMARC отклоняла электронных писем, которые не соответствуют критериям для значительно лучшей доставки с помощью Gmail. Просто догадка, но основанная на опыте.

Подробнее о DMARC здесь.

Источники информации

Установите iRedMail в Debian или Ubuntu Linux

Установите iRedMail в Debian или Ubuntu Linux

Системные требования

Предупреждение

  • iRedMail разработан для развертывания на серверной системе FRESH , которая
    означает, что на вашем сервере НЕ на установлены почтовые компоненты,
    е.грамм. MySQL, OpenLDAP, Postfix, Dovecot, Amavisd и т. Д. IRedMail установит
    и настроить их автоматически. В противном случае он может переопределить ваш
    существующие файлы / конфигурации, хотя перед
    изменение, и он может работать не так, как ожидалось.
  • Многие интернет-провайдеры по умолчанию блокируют порт 25, он используется для связи между
    почтовые серверы, он должен быть открыт, иначе ваш сервер может не
    получать и / или отправлять электронные письма. Обратитесь к своему интернет-провайдеру, чтобы убедиться, что
    не заблокированы, или попросите их разблокировать.

    • Amazon AWS EC2. Просьба снять дроссель на 25.
    • Облачная платформа Google.
    • Microsoft Azure.
    • Линод. Объясняется в сообщении блога,
      вы можете открыть заявку в службу поддержки и попросить команду Linode ее открыть.
    • DigitalOcean. Согласно сообщению в их сообществе, SEEMS невозможно разблокировать порт 25, это означает, что вы можете НЕ запускать почтовый сервер на DigitalOcean VPS.

Для установки iRedMail в Debian или Ubuntu Linux вам необходимо:

  • A FRESH , рабочий Debian / Ubuntu Linux. Поддерживаемые выпуски перечислены на
    Страница загрузки.
  • Минимум 2 ГБ памяти требуется для производственного почтового сервера с низким трафиком, но
    4 ГБ настоятельно рекомендуется, чтобы ClamAV не потреблял слишком много памяти для большого вируса
    база данных подписей.
  • Убедитесь, что 3 UID / GID не используются другим пользователем / группой: 2000, 2001, 2002.

Примечания:

  • Все бинарные пакеты будут установлены с официального сайта Debian / Ubuntu
    репозитории.
  • Если вы выберете Ubuntu Linux, рекомендуется использовать последнюю версию Ubuntu LTS.
    (Долгосрочная поддержка) выпуск для производственного использования.

Препараты

Установите полное доменное имя (FQDN) на вашем сервере

Независимо от того, является ли ваш сервер тестовой машиной или производственным сервером, он
рекомендуется установить полное доменное имя (FQDN) hostname.

Введите команду hostname -f для просмотра текущего имени хоста:

  $ имя хоста -f
mx. example.com
  

В Debian / Ubuntu Linux имя хоста задается в двух файлах: / etc / hostname и / etc / hosts .

  • / etc / hostname : короткое имя хоста, а не полное доменное имя.
  м x
  
  • / etc / hosts : поиск в статической таблице имен хостов. Предупреждение : перечислите
    FQDN имя хоста в качестве первого элемента.
  # Часть файла: / etc / hosts
127.0.0.1 mx.example.com mx localhost localhost.localdomain
  

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

  $ имя хоста -f
mx.example.com
  

Включить официальные репозитории Debian / Ubuntu по умолчанию apt

  • iRedMail нужны официальные репозитории Debian / Ubuntu apt, включите их в
    /etc/apt/sources. list .
  • Установите пакет gzip , чтобы вы могли распаковать загруженный пакет iRedMail.
  # sudo apt-get install gzip
  

Загрузите последнюю версию iRedMail

  • Посетите страницу загрузки, чтобы получить
    последняя стабильная версия iRedMail.

  • Загрузите iRedMail на свой почтовый сервер через ftp или scp или любым другим способом.
    можно использовать, войдите на сервер, чтобы установить iRedMail. Мы предполагаем, что вы загрузили
    это /root/iRedMail-x.y.z.tar.gz (замените x.y.z на реальный номер версии).

  • Распаковать архив iRedMail:

  # cd / root /
# tar zxf iRedMail-x.y.z.tar.gz
  

Запустить установщик iRedMail

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

  # cd /root/iRedMail-x.y.z/
# bash iRedMail.sh
  

Скриншоты установки:

  • Добро пожаловать и благодарим за использование
  • Укажите место для хранения всех почтовых ящиков. По умолчанию - / var / vmail / .
  • Выберите серверную часть, используемую для хранения учетных записей электронной почты. Вы можете управлять почтовыми аккаунтами
    с iRedAdmin, нашей веб-панелью администратора iRedMail.

Примечание

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

  • Если вы решите хранить учетные записи электронной почты в OpenLDAP, установщик iRedMail будет
    попросите установить суффикс LDAP.

Пользователям MySQL / MariaDB / PostgreSQL

Если вы выбрали хранение почтовых учетных записей в MySQL / MariaDB / PostgreSQL, iRedMail
Установщик сгенерирует для вас случайный надежный пароль. Вы можете найти это
в файле iRedMail.tips .

  • Добавьте свое первое имя почтового домена
  • Установите пароль учетной записи администратора вашего первого почтового домена.

Примечание : Эта учетная запись является учетной записью администратора и пользователем почты. Это означает, что вы можете
войдите в веб-почту и админ-панель (iRedAdmin) с этой учетной записью, войдите в систему.
это полный адрес электронной почты.

После ответов на вышеуказанные вопросы установщик iRedMail попросит вас просмотреть и
подтвердите, чтобы начать установку. Он установит и настроит необходимые пакеты
автоматически. Введите y или Y и нажмите Введите , чтобы начать.

Важные вещи, которые ДОЛЖНЫ знать после установки

Предупреждение

Самая слабая часть почтового сервера - ненадежный пароль пользователя. Спамеры не
хотят взломать ваш сервер, они просто хотят рассылать спам с вашего сервера.
Пожалуйста, ВСЕГДА ВСЕГДА ВСЕГДА заставляет пользователей использовать надежный пароль.

Доступ к веб-почте и другим веб-приложениям

После успешного завершения установки вы можете получить доступ к веб-программам.
если вы решите установить их.Замените your_server ниже своим реальным сервером
имя хоста или IP-адрес.

Получить техническую поддержку

Отправка электронной почты через PHP в CentOS 7 с использованием Sendmail

Автор: Франческо Монделло,

Если вы используете веб-сервер или VPS , вы можете столкнуться с необходимостью отправки электронных писем с помощью приложения PHP .

Таким же образом, если вы ведете блог WordPress или используете какой-либо тип CMS , и вы позволяете своим посетителям отправлять вам электронные письма, используя контактную форму (например, используя плагин Contact Form 7 ). для WordPress ) вам может потребоваться установить простую программу на свой веб-сервер под названием sendmail .

«Sendmail - это средство межсетевой маршрутизации электронной почты общего назначения, которое поддерживает множество видов передачи и методов доставки почты, включая простой протокол передачи почты (SMTP), используемый для передачи электронной почты через Интернет.»Через Википедию.

Sendmail можно просто установить с помощью диспетчера пакетов вашего дистрибутива.

Вот инструкции по установке Sendmail на CentOS 7 .

Установка

Чтобы установить sendmail на сервере CentOS 7 , выполните следующую команду:

# yum install sendmail

Разрешение серверу отправлять электронные письма

Если вы используете SELinux на своем сервере CentOS 7 , вы должны разрешить sendmail отправлять электронные письма, используя следующую команду:

# setsebool -P httpd_can_sendmail = на

Отправьте тестовое электронное письмо с помощью PHP

Войдите в интерактивную оболочку php с помощью этой команды:

php -a

В интерактивной оболочке вставьте следующую строку кода:

mail ('пользователь @ получатель. com ', «Тестовое письмо», «Тестовое письмо из Интернета», null, «-f [email protected]»);

Не забудьте заменить [email protected] на адрес электронной почты получателя и [email protected] на адрес отправителя.

Просмотр журнала sendmail

Для отслеживания журнала почты вы можете использовать эту команду:

хвост / var / log / maillog

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

Теги: CentOS, Linux, Сервер, VPS, Интернет, WordPress

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *