%20con%20m%C3%BAltiples%20aplicaciones%20web%3A%20%C2%BFes%20posible%20enviar%20correos%20electr%C3%B3nicos%20desde%20m%C3%BAltiples%20dominios%20a%20trav%C3%A9s%20de%20sendmail%3F.png)
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:
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:
- ¿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.
- ¿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?
- ¿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
- 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]
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).
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.