Cuadro Linode (Debian) con múltiples aplicaciones web: ¿es posible enviar correos electrónicos desde múltiples dominios a través de sendmail?

Cuadro Linode (Debian) con múltiples aplicaciones web: ¿es posible enviar correos electrónicos desde múltiples dominios a través de sendmail?

Tengo una instancia de Linode en la que alojaré varias aplicaciones LEMP pequeñas. Cada una de estas aplicaciones necesita enviar correos electrónicos a los usuarios (principalmente para el registro de cuentas... foros/comentarios y todo eso). Me gustaría poder usar sendmail para lograr esto, ya que ya está instalado en el sistema. ¿Es eso posible? No espero mucho tráfico/uso de correo electrónico, así que estoy usando el servidor SMTP de Google:

ingrese la descripción de la imagen aquí

La idea es que sendmail sea un cliente nulo: puede enviar correo (y ya recibo notificaciones del sistema (OSSEC, Fail2ban)), pero no recibir correo entrante. Cualquier formulario/mecanismo de contacto de la aplicación envía un mensaje al propietario de la aplicación, mediante el cual puede comunicarse directamente con él a través de su propio correo electrónico. Tengo algunas preguntas, sin embargo:

  1. ¿Es posible configurar cosas para que cada aplicación tenga su propia dirección/identidad de correo electrónico saliente? He separado cada aplicación en su propio usuario de Linux sin acceso a sudo. Entonces (nombres ficticios), Bob's Widget Emporium es su propio usuario independiente, al igual que Sally's Awesome Political Views. Cada aplicación tiene sus propios registros de dominio a través del administrador de DNS en la nube de Linode debido al alojamiento virtual.
  2. ¿Qué debo hacer para que estos correos electrónicos no sean considerados spam? ¿Y esta configuración se haría a nivel de caja centralizada o por cuenta?
  3. ¿Qué debo hacer para bloquear los correos electrónicos entrantes de fuentes externas? Mis iptables son las siguientes:

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 mi instancia puede enviar correos electrónicos, supongo que actualmente también puede recibirlos.

Entonces, ¿es posible hacer todo esto solo con sendmail y, de ser así, cómo configuraría las cosas? O, si esta es una pregunta demasiado amplia, hágamelo saber y la dividiré.

Respuesta1

  1. Sí. Algunas aplicaciones admiten especificar la dirección "de". De lo contrario, puedes hacer uso de la función genericstable de sendmail, que

hará que las direcciones no calificadas (es decir, sin un dominio) y las direcciones con un dominio enumerado en la clase {G} se busquen en un mapa y se conviertan en otra forma ("genérica"), que puede cambiar tanto el nombre de dominio como el usuario. nombre.

Ejemplo:

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

En /etc/mail/genericstable

bob [email protected]
sally [email protected]
  1. Debe tener el DNS directo e inverso del servidor de correo. Debe configurar SPF para los dominios que utilizará. Si la IP aparece enhttp://www.anti-abuse.org/multi-rbl-check/necesitas obtener una IP diferente. (Considere la posibilidad de utilizar un servicio de correo administrado. Ejecutar un servidor de correo es molesto debido a que los spammers arruinan todo. Sin embargo, como está utilizando sendmail, le debe gustar el dolor).

  2. sendmail de forma predeterminada solo escucha en localhost, por lo que no necesita hacer nada. Si ha configurado para escuchar en todas las interfaces, deshaga eso.

información relacionada