Fedora Core 6 SELinuxのもう1つの新機能が「secmark」である。現時点ではカーネルのみの対応で、ユーティリティもそろっておらず、実際に使えるようになっていないが、今後のアップデートで使えるようになる可能性が高い機能である。ここでは、機能の概要を紹介しよう。
secmarkは、パケットにラベルを付与することで、きめ細かいネットワークアクセス制御を実現するための機能である。従来のSELinuxでは、IPアドレス、ポート番号を使ったアクセス制御ができたが、これらを組み合わせたアクセス制御ができなかった。例えば、「Apacheは、IPアドレス192.168.0.5にアクセスできる」、「ApacheはMySQLのポート番号(TCP3306番)にアクセスできる」といった設定は可能であったが、「Apacheは、IPアドレス192.168.0.5のMySQLポートにだけアクセスできる」という設定はできなかった。
今回のsecmarkにより、IPアドレスとポート番号を組み合わせた設定を行えるようになる。iptablesとSELinuxが拡張されており、iptablesでタイプ・ラベルを付与し、SELinuxでそのタイプを使ってアクセス制御する。例とともに、仕組みを見てみよう。図4は、Apacheが、192.168.0.5にあるMySQLサーバ(ポート番号TCP3306)にアクセスしようとしている例だ。
現段階のFedora Core6では、iptablesコマンドでラベル付与設定できるようになっていないため、secmarkをまだ使えない状態だ。しかし、iptablesコマンドの開発版がRedhat開発者のサイトで公開されており(関連リンク参照)、これが今後のアップデートで入ってくることが予想される。
なお、記事執筆時点ではここで公開されているパッケージはバグを含んでいるため、iptables-1.3.5-2.src.rpmに含まれるソースファイルをコンパイルする必要がある(以下はrootユーザーの手順)。
# rpm -i iptables-1.3.5-2.src.rpm
# cd /usr/src/redhat/
# rpmbuild -bi SPECS/iptables.spec
ソースファイルのコンパイルが終了すると、BUILD/iptables-1.3.5/extensions以下にlibipt_SECMARK.so, libipt_CONNSECMARK.soが生成されているので、これを/lib/iptables以下にコピーすればよい。
Fedora Core 6でのSELinux関連パッケージは活発なアップデートが予想される。実際、Fedora Core 6のリリース後、一週間も経たないうちに、SELinux関連のパッケージのアップデートが公開されている。過去のFedora Coreの場合は、アップデートにバグフィックスだけでなく、新機能まで盛り込まれることがあり、ユーザーにも多少混乱が見られた。大きな変更があった場合は、SELinuxユーザー会のメーリングリストにもアナウンスされることが多いので、参考にしていただきたい。
Copyright © ITmedia, Inc. All Rights Reserved.