2012年6月22日金曜日

SELinux基本コマンドの備忘録

● SELinux の基本コマンド

◆ls
 オプションに -Z をつければ、ポリシー・タイプを表示することができます。
 # ls -Z

◆chcon
 ファイルやディレクトリのタイプを一時的に変更します。

 # chcon -t samba_share_t /var/smb -R
 -u でユーザ、-r でロールを変更できる。

この例では、/var/smb ディレクトリ以下のディレクトリとファイルすべてのポリシー・タイプを samba_share_t に変更しています。

◆restorecon
 ポリシー・タイプの不整合を修正します。

 # /sbin/restorecon -RF /var/smb
 -Rは再帰的に適用、-Fは強制的に適用します。
 (強制でないと変わらないときがある)

◆setsebool
 各booleanパラメータを変更します。

 # setsebool -P allow_smbd_anon_write 1
 -Pオプションは、システムを再起動しても設定を反映するようにする。

◆semanage
 ファイルに関するタイプのほか、ポートに対するタイプも変更可能なコマンドです。chcon では file_contexts ファイル内の内容は変更できないので、yum update などでポリシーをアップデートした場合は変更内容が消えてしまいます。semanage では file_contexts ファイルの内容を書き換えるのでそのような問題は起きません。

 # semanage fcontext -a -t samba_share_t "/var/smb/(/.*)?"

・設定内容を反映させるには restorecon コマンドを使います。
 # restorecon -RF /var/smb

・設定内容を削除するには -a の代わりに -d を使用します。
 # semanage fcontext -d -t samba_share_t "/var/smb/(/.*)?"
 # restorecon -RF /var/smb

・ポートに対するタイプを見るには
 # semanage port -l

・Apache に TCP 8080 番ポートを使えるようにさせるには
 # semanage port -a -t http_port_t -p tcp 8080

ポートの場合は即座に設定が反映されます。

● booleanパラメータの調整とトラブルの回避

ポリシーを変更せずにトラブルを解決したり,セキュリティ・レベルを調整したりするのに役立つのが,booleanパラメータです。booleanパラメータを切り替えて,不要なアクセス許可を与えないようにしていけば,セキュリティを高められます。逆に,必要なアクセス許可をbooleanパラメータの切り替えで設定可能な場合は,トラブル解決にも役立ちます。

  • Apacheが他のアプリケーションに接続できない
    【解決法】 httpd_can_network_connectをonにする
  • Sambaのホームディレクトリを公開できない
    【解決法】 samba_enable_home_dirsをonにする
  • Javaアプリケーションが動かない
    【解決法】 allow_execmodをonにする
  • ログにexecmod、execstackのアクセス拒否が出力される
    【解決法】 allow_execmod/allow_execstackをonにする

《具体的な設定例》

「Sambaでホーム・ディレクトリを公開できない」という問題を「samba_enable_home_dirs」のon/offを切り替えて対処してみましょう。

  • samba_enable_home_dirsを次のようにonに切り替えます。

    # setsebool -P samba_enable_home_dirs 1

  • onに切り替わったことを確認します。

    # getsebool samba_enable_home_dirs
    samba_enable_home_dirs -->on

0 件のコメント:

コメントを投稿