Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

23.4. 設定の例

23.4.1. SpamAssassin および Postfix

SpamAssasin は、オープンソースのメールフィルターで、受信したメールから迷惑メール (spam メッセージ) をフィルターにかける方法を提供します。[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 がデフォルト以外のポートで動作するようにする方法を示します。
これは単なる例で、SELinux が SpamAssassin の単純な設定にどのように影響するかを示していることに注意してください。SpamAssassin に関する包括的なドキュメントは、このドキュメントの範囲外です。詳細は、公式の SpamAssassin のドキュメント を参照してください。この例では、spamassassin がインストールされていることを前提としています。ファイアウォールは、使用中のポートへのアクセスを許可するように設定されており、SELinux Targeted ポリシーが使用され、SELinux が Enforcing モードで実行されていることを前提としています。

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

  1. semanage ユーティリティーを root で実行し、SELinux により spamd デーモンがデフォルトでリッスンできるようになっているポートを表示します。
    ~]# semanage port -l | grep spamd
    spamd_port_t		tcp	783
    
    これは、TCP/783 が spamd_port_t で SpamAssassin の動作ポートとして定義されていることを示しています。
  2. /etc/sysconfig/spamassassin 設定ファイルを編集して、サンプルポート TCP/10000 で SpamAssassin を起動するように変更します。
    # 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 を実行して SELinux ポリシーを変更し、SpamAssassin がサンプルポート (TCP/10000) で動作できるようにします。
    ~]# 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. この時点で、spamd は、SELinux ポリシーでそのポートへのアクセスが許可されているため、TCP ポート 10000 で適切に動作しています。


[23] 詳細は、System Administrator's GuideSpam Filters セクションを参照してください。