複数の Web アプリを備えた Linode (Debian) ボックス - sendmail 経由で複数のドメインから電子メールを送信することは可能ですか?

複数の Web アプリを備えた Linode (Debian) ボックス - sendmail 経由で複数のドメインから電子メールを送信することは可能ですか?

私は Linode インスタンスを持っていて、いくつかの小規模な LEMP アプリをホストする予定です。これらのアプリはそれぞれ、ユーザーにメールを送信する必要があります (主にアカウント登録用、フォーラム/コメント用など)。システムにすでにインストールされている sendmail を使ってこれを実現したいのですが、それは可能ですか? トラフィックやメールの使用量はそれほど多くないと予想されるため、Google の SMTP サーバーを使用しています。

ここに画像の説明を入力してください

アイデアとしては、sendmail は null クライアントになるということです。メールを送信することはできますが (すでにシステム通知 (OSSEC、Fail2ban) を受け取っています)、受信メールを受信することはできません。アプリの連絡フォーム/メカニズムは、アプリ自体の所有者にメッセージを送信し、所有者は自分の電子メールを介して直接連絡することができます。ただし、いくつか質問があります。

  1. 各アプリが独自の送信メール アドレス/ID を持つように設定することは可能ですか? 各アプリを sudo アクセスのない独自の Linux ユーザーに分離しました。そのため (架空の名前)、Bob's Widget Emporium は独自の個別のユーザーであり、Sally's Awesome Political Views も同様です。各アプリは、仮想ホスティングのため、Linode のクラウド DNS マネージャーを通じて独自のドメイン レコードを持ちます。
  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. はい。一部のアプリでは「送信元」アドレスの指定をサポートしています。それ以外の場合は、sendmailのgenericstable機能を使用できます。

非修飾アドレス(つまり、ドメインなし)と、クラス {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と逆引きDNSが一致している必要があります。使用するドメインにSPFを設定する必要があります。IPがhttp://www.anti-abuse.org/multi-rbl-check/別の IP を取得する必要があります。(管理されたメール サービスの使用を検討してください。メール サーバーを実行するのは、スパマーがすべてを台無しにするため面倒です。ただし、sendmail を使用しているということは、苦痛が好きなのでしょう。)

  2. sendmail はデフォルトでは localhost のみをリッスンするため、何もする必要はありません。すべてのインターフェースをリッスンするように設定している場合は、それを元に戻します。

関連情報