Linode (Debian) с несколькими веб-приложениями — возможно ли отправлять электронные письма с нескольких доменов через sendmail?

Linode (Debian) с несколькими веб-приложениями — возможно ли отправлять электронные письма с нескольких доменов через sendmail?

У меня есть экземпляр Linode, в котором я собираюсь разместить несколько небольших приложений LEMP. Каждое из этих приложений должно отправлять электронные письма пользователям (в основном для регистрации аккаунтов... форумов/комментариев и всего такого). Я бы хотел иметь возможность просто использовать sendmail для этого, поскольку он уже установлен в системе. Возможно ли это? Я не ожидаю большого трафика/использования электронной почты, поэтому я использую SMTP-сервер Google:

введите описание изображения здесь

Идея в том, что sendmail будет нулевым клиентом — он может отправлять почту (и я уже получаю от него системные уведомления (OSSEC, Fail2ban)), но не получать входящую почту. Любая контактная форма/механизм приложения отправляет сообщение владельцу самого приложения, посредством чего он может напрямую общаться с ним через его собственную электронную почту. Однако у меня есть несколько вопросов:

  1. Можно ли настроить все так, чтобы каждое приложение имело свой собственный исходящий адрес электронной почты/идентификатор? Я выделил каждое приложение в отдельного пользователя Linux без доступа sudo. Итак (вымышленные имена), Bob's Widget Emporium — это отдельный пользователь, как и Sally's Awesome Political Views. Каждое приложение имеет собственную запись(и) домена через облачный DNS-менеджер Linode из-за виртуального хостинга.
  2. Что мне нужно сделать, чтобы эти письма не считались спамом? И будет ли эта настройка сделана на уровне централизованного ящика или для каждой учетной записи?
  3. Что мне нужно сделать, чтобы заблокировать входящие письма из внешних источников? Мои iptables следующие -

ipv4:

$ sudo iptables -vL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 8887  909K f2b-ssh    tcp  --  any    any     anywhere             anywhere             multiport dports ssh
 1282  128K ACCEPT     all  --  lo     any     anywhere             anywhere            
    0     0 REJECT     all  --  !lo    any     127.0.0.0/8          anywhere             reject-with icmp-port-unreachable
  162  5770 ACCEPT     icmp --  any    any     anywhere             anywhere             state NEW icmp echo-request
  668 38256 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:ssh state NEW
  355 19004 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http state NEW
  424 22736 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:https state NEW
48568 4098K ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
 6996  368K LOG        all  --  any    any     anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables_INPUT_denied: "
 7413  388K REJECT     all  --  any    any     anywhere             anywhere             reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  any    any     anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables_FORWARD_denied: "
    0     0 REJECT     all  --  any    any     anywhere             anywhere             reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain f2b-ssh (1 references)
 pkts bytes target     prot opt in     out     source               destination         
 8531  881K RETURN     all  --  any    any     anywhere             anywhere

ipv6:

sudo ip6tables -vL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all      lo     any     anywhere             anywhere            
    0     0 REJECT     all      !lo    any     localhost            anywhere             reject-with icmp6-port-unreachable
67580 6991K ACCEPT     ipv6-icmp    any    any     anywhere             anywhere            
   31  2480 ACCEPT     tcp      any    any     anywhere             anywhere             tcp dpt:http state NEW
   33  2640 ACCEPT     tcp      any    any     anywhere             anywhere             tcp dpt:https state NEW
10922   50M ACCEPT     all      any    any     anywhere             anywhere             state RELATED,ESTABLISHED
    4  2956 LOG        all      any    any     anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "ip6tables_INPUT_denied: "
    4  2956 REJECT     all      any    any     anywhere             anywhere             reject-with icmp6-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all      any    any     anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "ip6tables_FORWARD_denied: "
    0     0 REJECT     all      any    any     anywhere             anywhere             reject-with icmp6-port-unreachable

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

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

Итак, возможно ли сделать все это только с помощью sendmail, и если да, то как мне настроить все это? Или, если это слишком общий вопрос, пожалуйста, дайте мне знать, и я его разделю.

решение1

  1. Да. Некоторые приложения поддерживают указание адреса "от". В противном случае вы можете использовать функцию genericstable от sendmail, которая

приведет к тому, что неквалифицированные адреса (т. е. без домена) и адреса с доменом, указанным в классе {G}, будут найдены на карте и преобразованы в другую («общую») форму, которая может изменить как доменное имя, так и имя пользователя.

Пример:

FEATURE(masquerade_envelope)
FEATURE(genericstable, `hash -o /etc/mail/genericstable')
GENERICS_DOMAIN_FILE(`/etc/mail/genericsdomain') 

В /etc/mail/genericstable

bob [email protected]
sally [email protected]
  1. Вам необходимо, чтобы прямой и обратный DNS почтового сервера совпадали. Вам необходимо настроить SPF для доменов, которые вы будете использовать. Если IP-адрес появляется вhttp://www.anti-abuse.org/multi-rbl-check/вам нужно получить другой IP-адрес. (Рассмотрите возможность использования управляемой почтовой службы. Работа почтового сервера раздражает, поскольку спамеры все портят. Однако, поскольку вы используете sendmail, вам, должно быть, нравится боль.)

  2. sendmail по умолчанию слушает только на localhost, так что вам не нужно ничего делать. Если вы настроили прослушивание на всех интерфейсах, то отмените это.

Связанный контент