iptablesは送信メールをブロックしないようです

iptablesは送信メールをブロックしないようです

CentOS ボックスで exim を実行しています。送信メールを 1 つのドメイン (domain.com とします) のみに制限し、他のすべてのドメインへのメールをブロックしようとしています。domain.com への送信メールを許可する特定のルール (行番号 6、7、8) を追加しましたが、出力チェーンのデフォルトのアクションはブロックです。しかし、gmail、yahoo、その他のドメインにはまだメールが送信されています。iptables ルールの何が間違っているのでしょうか?

以下はアウトバウンドルールです

    root@host1 [/tmp/logd]# /sbin/iptables -L OUTPUT -n --line-number -v
    Chain OUTPUT (policy DROP 0 packets, 0 bytes)
    num   pkts bytes target     prot opt in     out     source               destination
    1        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.x.x.x      /* test */
    2     3455  420K ACCEPT     tcp  --  *      *       0.0.0.0/0            23.x.x.x      tcp dpt:443
    3        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            104.x.x.x       tcp dpt:80
    4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            104.x.x.x       tcp dpt:80
    5      0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            104.20.5.21         tcp dpt:80 /* www.spamhaus.org */
    6      0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            216.x.x.x      tcp dpt:25 /* allow mails to domain.com */
    7     69 16484 ACCEPT     tcp  --  *      *       0.0.0.0/0            216.x.x.x      tcp dpt:25 /* allow mails to domain.com */
    8     68 10803 ACCEPT     tcp  --  *      *       0.0.0.0/0            173.x.x.x      tcp dpt:25 /* allow mails to domain.com */
    9   800K  826M LOCALOUTPUT  all  --  *      !lo     0.0.0.0/0            0.0.0.0/0
    10      0     0 ACCEPT     tcp  --  *      !lo     0.0.0.0/0            0.0.0.0/0           tcp dpt:53
    11      0     0 ACCEPT     udp  --  *      !lo     0.0.0.0/0            0.0.0.0/0           udp dpt:53
    12      9   536 ACCEPT     tcp  --  *      !lo     0.0.0.0/0            0.0.0.0/0           tcp spt:53
    13   2147  313K ACCEPT     udp  --  *      !lo     0.0.0.0/0            0.0.0.0/0           udp spt:53
    14  11324   17M ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0
    15   797K  826M INVALID    tcp  --  *      !lo     0.0.0.0/0            0.0.0.0/0
    16   797K  826M ACCEPT     all  --  *      !lo     0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    17      0     0 ACCEPT     icmp --  *      !lo     0.0.0.0/0            0.0.0.0/0           icmp type 0
    18      0     0 ACCEPT     icmp --  *      !lo     0.0.0.0/0            0.0.0.0/0           icmp type 8
    29      0     0 ACCEPT     icmp --  *      !lo     0.0.0.0/0            0.0.0.0/0           icmp type 11
    20      0     0 ACCEPT     icmp --  *      !lo     0.0.0.0/0            0.0.0.0/0           icmp type 3
    21    372 25376 LOGDROPOUT  all  --  *      !lo     0.0.0.0/0            0.0.0.0/0

答え1

このボックスに IPv6 もインストールされているかどうかはわかりません。インストールされている場合、exim はデフォルトで IPv6 経由で送信しようとし、その後 IPv4 にフォールバックします。ただし、ここでの問題は iptables 自体ではなく、それらのドメインの処理方法と検索方法にあると思います。大企業では、レイテンシを短縮し、トラフィックをドメインにルーティングするためのさまざまなルーティングと BGP トリックがあるため、IP アドレスに基づいてフィルタリングすることはほぼ不可能です。

代わりに、次のような方法で、許可された送信ドメインにのみ電子メールを送信するように exim4 を設定し、それ以外には送信しないようにすることをお勧めします。exim で一部のユーザーへの送信メールをブロックする

答え2

これをどうやって行うかというあなたの一般的な考え方は間違っていると思います。このような主題は典型的には本がいっぱいになるのですが、簡単に説明してみます。

おそらく、 のメール サーバーは、自身domain.comと同じ IP アドレスにあると想定しているでしょうdomain.com。偶然にも、これは一部 (または多くの場合) のケースでは当てはまるかもしれませんが、一般的には当てはまりません。

むしろ、ドメインの DNS レコードには、どのサーバー (IP アドレス) がドメインのメールを処理するかを決定するエントリがあります。次のような DNS レコードをすでに見たことがあるかもしれません。

domain.com.        1H MX 50    mail.domain.com
domain.com.        1H IN A     2.3.4.5
mail.domain.com    1H IN A     1.2.3.4

これは、 のメール サーバー (例mail.domain.com) が、それ自体domain.comとは異なる IP アドレスにある可能性があることを意味しますdomain.com

さて、電子メール ソフトウェア プログラム (MUA - メール ユーザー エージェントとも呼ばれます) から電子メールを送信すると、MUA はメッセージを Exim に配信します。Exim がメッセージを受信者に中継しようとすると、まず受信者のドメインのメールを処理するメール サーバーを検索し、次にそのサーバーに接続してメッセージをそこに配信しようとします。

この意味はあなたの方法は送信を妨げる可能性がありますどれでもEメール。domain.comに解決されます1.1.1.1が、 のメール サーバーdomain.comは にあります (または が に解決されます) 2.2.2.2。ファイアウォールは へのトラフィックのみを通過させるため1.1.1.1、 への電子メールは に配信される必要があるdomain.comため、domain.comにさえ電子メールを送信できません2.2.2.2

これは、目的を達成するためにファイアウォールを使用すべきではないさまざまな理由の 1 つにすぎません。@Fredrik Lundhag が言ったように、代わりに Exim を適切に構成する必要があります。

関連情報