24.4. 設定例

24.4.1. SpamAssassin と Postfix

SpamAssasin はオープンソースのメールフィルターで、着信メールから未承諾 Email (スパムメッセージ) をフィルターにかける方法を提供します[23]
Red Hat Enterprise Linux では、spamassassin パッケージが SpamAssassin を提供します。以下のコマンドを実行して spamassassin パッケージがインストールされていることを確認します。
~]$ rpm -q spamassassin
package spamassassin is not installed
このパッケージがインストールされていない場合は、root で yum ユーティリティーを使用してインストールします。
~]# yum install spamassassin
SpamAssassin は Postfix などのメーラーと連携してスパムフィルタリング機能を提供します。メールの効果的な遮断、分析、フィルタリングを実行するために、SpamAssassin はネットワークインターフェース上でリッスンする必要があります。SpamAssassin のデフォルトポートは TCP/783 ですが、変更することもできます。以下では、SELinux がデフォルトで特定のポートでのみアクセスを許可することで SpamAssassin を補完している実践的な例を示します。次に、ポートを変更する方法およびデフォルト以外のポートで SpamAssassin を正常に動作させる方法について説明していきます。
以下に示す例は、シンプルな SpamAssassin 設定に対してどのように SELinux が影響を与えることができるのかを示す一例に過ぎません。SpamAssassin に関する総合的な説明は本ガイドの対象外となります。詳細については、公式の SpamAssassin ドキュメント を参照してください。ここでは、spamassassin がインストールされていること、使用しているポートでのアクセス許可がファイアウォールで設定されていること、SELinux が enforcing モードで実行されていることを前提としています。

手順24.1 デフォルト以外のポートで SpamAssassin を実行する

  1. root で semanage ユーティリティーを使用し、SELinux がデフォルトで spamd デーモンにリッスンすることを許可するポートを表示します。
    ~]# semanage port -l | grep spamd
    spamd_port_t		tcp	783
    上記の出力では、SpamAssassin が動作するポートとして TCP/783 が spamd_port_t で定義されていることを示しています。
  2. /etc/sysconfig/spamassassin 設定ファイルを編集し、SpamAssassin が TCP/10000 で起動するよう変更します。
    # Options to spamd
    SPAMDOPTIONS="-d -p 10000 -c m5 -H"
    上記の行では、SpamAssassin がポート 10000 で動作するよう指定しています。ここからは、このソケットを開くよう SELinux ポリシーを変更する方法を見ていきます。
  3. SpamAssassin を起動すると、次のようなエラーメッセージが表示されます。
    ~]# systemctl start spamassassin.service
    Job for spamassassin.service failed. See 'systemctl status spamassassin.service' and 'journalctl -xn' for details.
    上記の出力は、このポートへのアクセスが SELinux によってブロックされたことを表しています。
  4. 以下のような SELinux 拒否メッセージがログ記録されます。
    SELinux is preventing the spamd (spamd_t) from binding to port 10000.
  5. root で semanage を実行し、SpamAssassin がサンプルポート (TCP/10000) で動作できるように SELinux ポリシーを変更します。
    ~]# semanage port -a -t spamd_port_t -p tcp 10000
  6. SpamAssassin が起動し、TCP ポート 10000 で動作していることを確認します。
    ~]# systemctl start spamassassin.service
    
    ~]# netstat -lnp | grep 10000
    tcp	0	0 127.0.0.1:10000	0.0.0.0:*	LISTEN	2224/spamd.pid
  7. SELinux ポリシーで spamd による TCP ポート 10000 へのアクセスが許可されたため、SpamAssassin がこのポートで正常に動作するようになりました。


[23] 詳細は、『システム管理者のガイド』の「スパムフィルター」セクションを参照してください。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。