最終回 メールを守れ! セキュアなメールサーバ構築法:SELinuxで強化するソリューション(3/3 ページ)
最近注目のSELinuxについて学ぶ同連載、今回は、これまでの知識を総動員して、Postfixを使用したセキュアなメールサーバの構築方法を紹介しよう。
*** 一部省略されたコンテンツがあります。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にチャレンジしてみてはいかがだろうか。
関連記事
- 連載第1回 SELinuxの概要
- 連載第2回 SELinuxモジュールの詳細
- 連載第3回 基本操作とポリシーファイルの設定
- 日立ソフトの中村氏が語る、SELinuxのメリットと限界
- セキュリティ上当然のことを、日本SELinuxユーザー会中村雄一氏コラム
- Linuxをよりセキュアに――日本SELinuxユーザー会が正式に設立
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.