%20%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%20-%20sendmail%20%E7%B5%8C%E7%94%B1%E3%81%A7%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%81%8B%E3%82%89%E9%9B%BB%E5%AD%90%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%92%E9%80%81%E4%BF%A1%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
私は Linode インスタンスを持っていて、いくつかの小規模な LEMP アプリをホストする予定です。これらのアプリはそれぞれ、ユーザーにメールを送信する必要があります (主にアカウント登録用、フォーラム/コメント用など)。システムにすでにインストールされている sendmail を使ってこれを実現したいのですが、それは可能ですか? トラフィックやメールの使用量はそれほど多くないと予想されるため、Google の SMTP サーバーを使用しています。
アイデアとしては、sendmail は null クライアントになるということです。メールを送信することはできますが (すでにシステム通知 (OSSEC、Fail2ban) を受け取っています)、受信メールを受信することはできません。アプリの連絡フォーム/メカニズムは、アプリ自体の所有者にメッセージを送信し、所有者は自分の電子メールを介して直接連絡することができます。ただし、いくつか質問があります。
- 各アプリが独自の送信メール アドレス/ID を持つように設定することは可能ですか? 各アプリを sudo アクセスのない独自の Linux ユーザーに分離しました。そのため (架空の名前)、Bob's Widget Emporium は独自の個別のユーザーであり、Sally's Awesome Political Views も同様です。各アプリは、仮想ホスティングのため、Linode のクラウド DNS マネージャーを通じて独自のドメイン レコードを持ちます。
- これらのメールがスパムとみなされないようにするには、何をする必要がありますか? また、この設定は集中ボックス レベルで行われますか、それともアカウントごとに行われますか?
- 外部ソースからの受信メールをブロックするにはどうすればいいでしょうか? 私の 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
- はい。一部のアプリでは「送信元」アドレスの指定をサポートしています。それ以外の場合は、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]
メールサーバーの正引きDNSと逆引きDNSが一致している必要があります。使用するドメインにSPFを設定する必要があります。IPがhttp://www.anti-abuse.org/multi-rbl-check/別の IP を取得する必要があります。(管理されたメール サービスの使用を検討してください。メール サーバーを実行するのは、スパマーがすべてを台無しにするため面倒です。ただし、sendmail を使用しているということは、苦痛が好きなのでしょう。)
sendmail はデフォルトでは localhost のみをリッスンするため、何もする必要はありません。すべてのインターフェースをリッスンするように設定している場合は、それを元に戻します。