SELinuxSecurity-Enhanced LinuxでセキュアOSとしての機能を持ったLinuxです。FedoraやCentOs?等はデフォルトで有効になってます。 環境とりあえず、FedoraCore3で試してましたが、今はCentOSでやってます。 語彙TEとかラベルとかいろいろと言葉がでてきて、紛らわしいので整理していきます。まずプロセス単位のアクセス制御のことをTE(Type Enforcement)と呼びます。このときアクセス制御をする際にプロセスやリソースにラベルをつけて制御をするのですが、このときプロセスにつけているラベルをドメイン、リソースにつけているラベルをタイプといいます。またこのファイルや、ディレクトリといったリソースのことをオブジェクトとよばれ、そのオブジェクトごとにどのような操作を行うことが出来るかをアクセスベクタと呼びます。ですので、ラベルのついたプロセス(ドメイン)が、ラベルのついたリソースに対して、何が出来るか(アクセスベクタ)を関連させ制御を行うことがTEになります。 cat /etc/sysconfig/selinux このSELINUXTYPE=targetedがいまのポリシーになってます。せっかくSELinuxをつかうんですから、strictにしておきたいところですが、普通にインストールするとtargetedポリシーしか使えないので、 ftp://fr2.rpmfind.net/linux/fedora/core/updates/3/i386/selinux-policy-strict-sources-1.19.10-2.noarch.rpm ftp://fr2.rpmfind.net/linux/fedora/core/updates/3/i386/selinux-policy-strict-1.19.10-2.noarch.rpm をダウンロードして、インストールしておきます。ではついでにこのファイルにSELINUX=enforcingと記述があります。これはなんでしょうか。これは動作モードをあらわしています。permissiveとenforcingの2種類があり、permissiveはポリシーに反する場合は、ログに出力されますが、enforcingはTEを行いますので、まずpermissiveで動かしエラーがなければ、変更して動かします。 ついでにtargetedのソースも入れておきます。 yum install selinux-policy-targeted-sources 設定
/etc/selinux/strict/src/policydomains user.te:user_t,staff_rに関する設定 admin.te:sysadm_tに関する設定 program:各アプリケーションの設定 allow file_contexts program:各アプリケーションの設定 domains/programと対 ログ/var/log/messages を見てみましょう。ちなみに TIPSaudit2allowallowポリシーを作成してくれます。/etc/selinux/strict/src/policyで、 audit2allow -d -v >> domains/add_org.te とするとadd_org.teが作成されます。エラーが出る場合はコメントしておきましょう。touch tmp/loadが表示され作成できましたら、make reloadです。ただあくまでも参考程度にしてください。 セキュリティコンテキストの表示各コマンドでセキュリティコンテキストを表示できます。 id ユーザ ls ファイル -Z,--context セキュリティコンテキスト表示 --lcontext 詳細 ps プロセス -Z,--context セキュリティコンテキスト表示 ラベルを振るchcon fixfiles /etc/selinux/strict/src/policy/file_contexts/file_contextsの内容ですべてふる 引数checkで間違ったラベルを表示、restoreでまちがっているものをすべて変更、relabelですべて変更 restorecon /etc/selinux/strict/src/policy/file_contexts/file_contextsの1つ以上ふる 例:restorecon /etc/rc.local setfiles mysqlをインストールして、スクリプトを/etc/init.dにコピーしたんですが、その時点ではおかしかったのですが、restoreconでsystem_u:object_r:initrc_exec_tに変更されました。また再起動時にラベルを振りなおすには/に .autorelabel を空ファイルで作成しておきます。 デーモンの起動run_init /etc/init.d/httpd start 標準のロールstaff_r sysadm_rに遷移する許可のあるユーザが通常使用するロール sysadm_r システム管理者用 system_r プロセスが使用するロール user_r 一般ユーザ用 ロールの変更newrole -r sysadm_r タイプ付与chcon -R system_u:object_r:タイプ ファイルorディレクトリ リンクhttp://fedoranews.yanbaru.dyndns.org/creativecommons/selinux-faq-ja/ 参考書籍SELinux徹底ガイド コメント
|