Caixa Linode (Debian) com vários aplicativos da web - é possível enviar e-mails de vários domínios via sendmail?

Caixa Linode (Debian) com vários aplicativos da web - é possível enviar e-mails de vários domínios via sendmail?

Eu tenho uma instância Linode na qual hospedarei vários aplicativos LEMP pequenos. Cada um desses aplicativos precisa enviar e-mails aos usuários (principalmente para registro de conta... fóruns/comentários e outros enfeites). Eu gostaria de poder usar o sendmail para fazer isso, pois ele já está instalado no sistema. Isso é possível? Não estou esperando muito uso de tráfego/e-mail, então estou usando o servidor SMTP do Google:

insira a descrição da imagem aqui

A idéia é que o sendmail seja um cliente nulo - ele pode enviar mensagens (e eu já recebo notificações do sistema (OSSEC, Fail2ban) dele), mas não receber mensagens recebidas. Qualquer formulário/mecanismo de contato de aplicativo envia uma mensagem ao proprietário do próprio aplicativo, por meio da qual ele pode se comunicar diretamente com ele por meio de seu próprio e-mail. Tenho algumas perguntas, no entanto:

  1. É possível configurar coisas para que cada aplicativo tenha seu próprio endereço/identidade de e-mail de saída? Separei cada aplicativo em seu próprio usuário Linux sem acesso sudo. Então (nomes fictícios), Bob's Widget Emporium é seu próprio usuário separado, assim como Sally's Awesome Political Views. Cada aplicação tem o(s) seu(s) próprio(s) registo(s) de domínio através do gestor DNS na nuvem da Linode devido ao alojamento virtual.
  2. O que preciso fazer para que esses e-mails não sejam considerados spam? E essa configuração seria feita em nível de caixa centralizada ou por conta?
  3. O que preciso fazer para bloquear e-mails recebidos de fontes externas? Meus iptables são os seguintes -

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

Dado que minha instância pode enviar e-mails, acho que atualmente ela também pode recebê-los.

Então, é possível fazer tudo isso apenas com o sendmail e, em caso afirmativo, como eu configuraria as coisas? Ou, se esta for uma pergunta muito ampla, por favor me avise e eu dividirei.

Responder1

  1. Sim. Alguns aplicativos suportam a especificação do endereço “de”. Caso contrário, você pode usar o recurso genericstable do sendmail, que

fará com que endereços não qualificados (ou seja, sem domínio) e endereços com domínio listado na classe {G} sejam consultados em um mapa e transformados em outra forma (“genérica”), que pode alterar tanto o nome do domínio quanto o usuário nome.

Exemplo:

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

Em /etc/mail/genericstable

bob [email protected]
sally [email protected]
  1. Você precisa ter DNS direto e reverso da correspondência do servidor de e-mail. Você precisa configurar o SPF para os domínios que usará. Se o IP aparecer emhttp://www.anti-abuse.org/multi-rbl-check/você precisa obter um IP diferente. (Considere usar um serviço de e-mail gerenciado. Executar um servidor de e-mail é irritante porque os spammers estragam tudo. No entanto, como você está usando o sendmail, você deve gostar de sofrer.)

  2. sendmail por padrão escuta apenas no localhost então você não precisa fazer nada. Se você configurou para escutar em todas as interfaces, desfaça isso.

informação relacionada