HOMEサンプル問題・例題解説303試験の例題と解説327.2 強制アクセス制御

303試験の例題と解説

327.2強制アクセス制御

LinuC 303試験の試験範囲から「327.2 強制アクセス制御」についての例題を解いてみます。
このテーマは【重要度4】です。SELinux の設定、管理、使用方法や、その他の強制アクセス制御などについて、出題範囲を確認しましょう。

■トピックの概要
このトピックの内容は以下の通りです。

<327.2 強制アクセス制御>
重要度 4

<説明>
Linuxの強制アクセス制御に精通していることが求められる。特にSELinuxを完全に理解していること。また、Linuxの他の強制アクセス制御についても知っていること。これには、それらのシステムの主な機能は含むが、設定と使用については含まない。

<主要な知識範囲>
・TE, RBAC, MAC および DACの概念の理解。
・SELinuxを設定、管理、および使用。
・AppArmor とSmackの知識。

<重要なファイル、用語、ユーティリティ>
・getenforce, setenforce, selinuxenabled
・getsebool, setsebol, togglesebool
・fixfiles, restorecon, setfiles
・newrole, runcon
・semanage
・sestatus, seinfo
・apol
・seaudit, seaudit-report, audit2why, audit2allow
・/etc/selinux/*

■例題
/myapp/write.txtというファイルが存在し、以下のファイルコンテキストであるとします。
-----------------------------------------------
# ls -Z /myapp/write.txt
-rw-r--r--. apache root unconfined_u:object_r:usr_t:s0   /myapp/write.txt
-----------------------------------------------

このファイルのタイプを「usr_t」から「httpd_sys_rw_content_t」へ即時変更し、
また、恒久的にも設定するコマンドは次のうちどれですか?

1. # chcon -t httpd_sys_rw_content_t /myapp/write.txt
2. # semanage fcontext -a -t httpd_sys_rw_content_t /myapp/write.txt
3. # chcon -t httpd_sys_rw_content_t /myapp/write.txt; restorecon /myapp/write.txt
4. # semanage fcontext -a -t httpd_sys_rw_content_t /myapp/write.txt; restorecon /myapp/write.txt

※この例題は実際の試験問題とは異なります。

解答と解説

答えは 「4.」です。

SELinuxのファイルコンテキストの変更には、一時的な変更と恒久的な変更があります。

ファイルコンテキストの一時的な変更は、chconコマンドで行います。
(構文) # chcon [オプション] <対象ファイル|対象ディレクトリ>
chconコマンドの主なオプションは以下の通りです。
       -u USER, --user=USER
              対象となるセキュリティコンテキストのユーザーを USER に設定
       -r ROLE, --role=ROLE
              対象となるセキュリティコンテキストのロールを ROLE に設定
       -t TYPE, --type=TYPE
              対象となるセキュリティコンテキストのタイプを TYPE に設定
       -l RANGE, --range=RANGE
              対象となるセキュリティコンテキストの範囲を RANGE に設定
       -R, --recursive
              ファイルとディレクトリを再帰的に操作
chconコマンドでファイルコンテキストの変更をすると、ファイルコンテキストは即時変更されますが、サーバ再起動や、restoreconコマンドの実行によってもとのファイルコンテキストに戻ります。

ファイルコンテキストの恒久的な変更は、「semanage fcontext」コマンドで行えます。
(構文) # semanage fcontext [オプション] <対象ファイル|対象ディレクトリ>
semanage コマンドの主なオプションは以下の通りです。
       -a, --add
              ファイルコンテキストのマッピング定義に新規レコードを追加
       -d, --delete
              ファイルコンテキストのマッピング定義からレコードを削除
       -m, --modify
              ファイルコンテキストのマッピング定義のレコードを編集
       -l, --list
              ファイルコンテキストのマッピング定義のレコード一覧を表示
上記の「-a」,「-m」オプションによってレコードを追加・編集する場合は、さらに以下のオプションを用いてレコードの内容を指定します。
       -s SEUSER, --seuser SEUSER
              対象となるセキュリティコンテキストのユーザーを SEUSER に設定
       -t TYPE, --type TYPE
              対象となるセキュリティコンテキストのタイプを TYPE に設定
       -r RANGE, --range RANGE
              対象となるセキュリティコンテキストの範囲を RANGE に設定
semanage fcontextコマンドでファイルコンテキストの変更を実行すると、ファイルコンテキスト変更は恒久的に設定されますが、即時反映はされません。
変更を反映するには、restoreconコマンドの実行または、サーバ再起動が必要です。

また、restoreconコマンドは、対象ファイル・ディレクトリのSELinuxコンテキストを恒久設定値に復元します。
(構文) # restorecon [オプション] <対象ファイル|対象ディレクトリ>
restorecon コマンドの主なオプションは以下の通りです。
       -e DIRECTORY
              対象ディレクトリから、DIRECTORYに指定したフルパス配下を除外
       -f INFILENAME
              対象ファイル・対象ディレクトリを指定しない代わりにINFILENAMEに記述されたファイルリストを対象
       -i     存在しないファイルを無視
       -R, -r 
              対象ディレクトリ配下を再帰的に処理
       -v     
              コンテキストが変更される場合、何から何に変更されるかを表示


選択肢を一つずつ見ていきましょう。

[1. # chcon -t httpd_sys_rw_content_t /myapp/write.txt]
誤りです。このコマンドを実行すると、ファイルコンテキストは「httpd_sys_rw_content_t」に変更されますが、一時的です。

[2. # semanage fcontext -a -t httpd_sys_rw_content_t /myapp/write.txt]
誤りです。このコマンドを実行すると、恒久設定はされますが、現在のファイルコンテキストはまだ「usr_t」のままです。

[3. # chcon -t httpd_sys_rw_content_t /myapp/write.txt; restorecon /myapp/write.txt]
誤りです。このコマンドを実行すると、恒久設定もされず、ファイルコンテキストも「usr_t」に戻ってしまいます。

[4. # semanage fcontext -a -t httpd_sys_rw_content_t /myapp/write.txt; restorecon /myapp/write.txt]
正しいです。1つ目のコマンドを実行すると、/myapp/write.txtのファイルコンテキストに恒久設定がされます。
2つ目のrestorecon コマンドで、現在のファイルコンテキストが恒久設定のコンテキストに置き換わります。

強制アクセス制御のSELinuxの設定、制御方法全般について学習し、理解しておきましょう。

■例題作成者

  • 今回の解説について、理解できないポイントがあればどんどん質問を。
  • 採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
  • ご質問・ご意見はこちら
  • ※上記の解説とその内容については、例題作成者の監修です。
    内容や試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

このページのトップへ