検索
特集

最終回 メールを守れ! セキュアなメールサーバ構築法SELinuxで強化するソリューション(3/3 ページ)

最近注目のSELinuxについて学ぶ同連載、今回は、これまでの知識を総動員して、Postfixを使用したセキュアなメールサーバの構築方法を紹介しよう。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 前回解説したように、Turbolinux 10 serverをインストールした直後は、SELinuxが無効な状態だ。SELinuxカーネルを有効化し、ファイルのタイプ付けを行なう必要がある。SELinuxカーネルの有効化、ファイルのタイプ付けは、こちらを参照してほしい。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 各プロセスに必要なアクセス権限を設定するため、アプリケーションのアクセス拒否ログを採取する。デフォルトの状態では、各プロセスに必要なアクセス権限が完全に設定されていないため、enforcingモードでメール送受信を行なうとエラーが表示される。SELinuxのモードをpermissiveに変更して、以下の操作を行ないアクセス拒否ログを採取しよう。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 audit2allowコマンドを使用し、セキュリティポリシーに違反したアクセス拒否ログをallow文に変換する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 audit2allowコマンドで出力されたallow文のうち、postfixに関するallow文は、メール送信時にアクセス拒否されたログが変換されたもので、inetdに関するallow文は、メール受信時にアクセス拒否されたログが変換されたものだ。上記のallow文を、/etc/selinux/strict/src/policy/domains/program 以下の.teファイルに追加する。

 .teファイルへの追加は、該当するアプリケーションの設定ファイルに追加するのが望ましいが、異なるファイルにallow文を追加することもできる。例えば、postfix.teにinetdに関するallow文を追加しても動作上、問題はない。今回は、手順を簡略化させるために、postfix.teの末尾にすべてのallow文を追加する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 allow文をpostfix.teに追加したら、/etc/selinux/strict/src/policy/ に移動し、make reload(追加したallow文をバイナリに変換)を実行する。このままmake reloadを実行すると、以下のエラーが表示されるはずだ。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 これは、/etc/selinux/strict/src/policy/assert.teファイルにて、タイプ(リソースに付与されるラベル)であるshadow_tが、neverallow文によって設定の制約を受けていることが原因だ。neverallow文は、設定ミスなどを防ぐために利用するもので、これを定義しておくことで設定に制約を設けることができる。make reloadを実行する前に、assert.teファイルの該当箇所をコメントアウトしておこう。具体的な場所は以下を参考にして欲しい。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 assert.teファイルを編集後に、maker reloadを実行する。今度は正常に実行されるはずだ。

 ただし、1つ注意してほしいこととして、今回は手順を簡素化するために、audit2allowコマンドの結果やneverallow設定を精査せずに加えたりコメントアウトしている。精査せずにいると危ない設定が含まれる可能性があるので、本運用の前に十分に精査することを心がけてほしい。

enforcingモードでの運用

 SELinuxでは、実際の運用はenforcingモードで行なわれるため、メール送受信に必要なポリシーを追加したらenforcingモードで動作確認を行なおう。setenforceコマンドでenforcingモードに変更してから、メールクライアントからの送受信を確認する。enforcingモードで正常に送受信できれば、設定は完了だ。

 今回紹介したメール環境は、あくまでも一例で実際の運用ではSMTP Authなどのメール送信時認証も必要だろう。採用する認証技術が異なる場合でも、今回案内したフローでポリシーを追加できる。

 全4回に渡ってSELinuxの概念から実際の環境構築までを解説した。今回の連載ではポリシーの簡易設定について解説したが、外部からアクセスが可能な企業の重要なサーバにSELinuxを導入する場合は、少々手間だがリソースに独自のタイプを付与する方法をお勧めしたい。SELinuxは難しいと思われがちだが、ポリシー追加の要領さえ掴んでしまえば容易にセキュアなサーバを構築できる。今回の連載をきっかけにSELinuxにチャレンジしてみてはいかがだろうか。

前のページへ |       

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る