13.4. 設定例
13.4.1. SpamAssassin と Postfix リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SpamAssassin プロジェクトページより抜粋:
原文: "Open Source mail filter, written in Perl, to identify spam using a wide range of heuristic tests on mail headers and body text. Free software." (訳文: Perl で記述されたオープンソースのメールフィルターです。メールのヘッダーおよび本文で幅広い範囲の発見的テストを使用してスパムを識別するフリーソフトウェアです。)
Red Hat Enterprise Linux を使用する場合、SpamAssassin は spamassassin パッケージで提供されます。
rpm -q spamassassin を実行して、spamassassin パッケージがインストールされているか確認してください。インストールされていない場合は、root ユーザーで次のコマンドを実行してインストールを行ないます。
yum install spamassassin
yum install spamassassin
SpamAssassin は Postfix などのメーラーと連携してスパムフィルタリング機能を提供します。メールの効果的な遮断、分析、フィルタリングが行なわれるためには、SpamAssassin はネットワークインターフェース上でリッスンを行なう必要があります。SpamAssassin のデフォルトポートは TCP/783 ですが、変更することもできます。SELinux で特定のポートに限ったアクセスをデフォルトで許可することにより SpamAssassin を補完している実践的な例を以下に示します。次に、ポートを変更する方法およびデフォルト以外のポートで SpamAssassin を正常に動作させる方法について説明していきます。
以下に示す例は、 シンプルな SpamAssassin 設定に対してどのように SELinux が影響を与えることができるのかを示す一例に過ぎません。 SpamAssassin に関する総合的な説明は本ガイドの範疇を越えてしまいますので、 詳細については、 公式の SpamAssassin ドキュメント を参照してください。 ここでは、spamassassin がインストールされていること、使用しているポートでのアクセス許可がファイアウォールで設定されていること、SELinux が enforcing モードで実行されていることを前提としています。
デフォルト以外のポートで SpamAssassin を実行する
semanageコマンドを実行して、SELinux でspamdによるリッスンをデフォルトで許可しているポートを表示させます。semanage port -l | grep spamd
# semanage port -l | grep spamd spamd_port_t tcp 783Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の出力では、SpamAssassin が動作するポートとして TCP/783 がspamd_port_tで定義されていることを示しています。/etc/sysconfig/spamassassin設定ファイルを編集し、SpamAssassin が TCP/10000 で起動するよう変更します。Options to spamd
# Options to spamd SPAMDOPTIONS="-d -p 10000 -c m5 -H"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の行は、SpamAssassin がポート 10000 で動作するよう指定しています。ここからは、このソケットを開くよう SELinux ポリシーを変更する方法を見ていきます。- SpamAssassin を起動すると、次のようなエラーメッセージが表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の出力は、このポートへのアクセスが SELinux によってブロックされたことを表しています。 - SELinux により次のような拒否がログ記録されます。
SELinux is preventing the spamd (spamd_t) from binding to port 10000.
SELinux is preventing the spamd (spamd_t) from binding to port 10000.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - root ユーザーで
semanageコマンドを実行し、SpamAssassin のサンプルポート (TCP/10000) での動作を許可するよう SELinux ポリシーを変更します。semanage port -a -t spamd_port_t -p tcp 10000
semanage port -a -t spamd_port_t -p tcp 10000Copy to Clipboard Copied! Toggle word wrap Toggle overflow - SpamAssassin が起動し、TCP ポート 10000 で動作していることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - SELinux ポリシーで
spamdによる TCP ポート 10000 へのアクセスが許可されたため、SpamAssassin がこのポートで正常に動作するようになりました。