HOMEサンプル問題・例題解説303試験の例題と解説321.3 SELinux

303試験の例題と解説

321.3SELinux

今回は303試験の試験範囲から、「321.3 SELinux」についての例題を解いてみます。
試験例題は以下のアドレスにあります。


○Exam 303: Sample Questions
https://www.lpi.org/eng/certification/the_lpic_program/lpic_3/exam_303_sample_questions

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

<321.3 SELinux>
重要度 6

<説明>
 SELinux全般の知識があること。

<主要な知識範囲>   
・SELinuxの設定
・TE、RBAC、MAC、およびDACの概念と使用方法

<重要なファイル、用語、ユーティリティ>
・fixfiles/setfiles
・newrole
・setenforce/getenforce
・selinuxenabled
・semanage
・sestatus
・/etc/selinux/
・/etc/selinux.d/


■例題
What command line tool can be used to obtain SELinux related information on a system such as whether SELinux is enabled or not?
(Please provide the command without path information)

訳)SELinuxが有効かどうか等の情報を得るために使用するコマンドラインツールは何か?
(回答はコマンドのみでよくパス情報は不要)

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

解答と解説

答えは sestatus です。

SELinuxの情報を得るには、getenforceコマンドやselinuxenabledコマンドなどがありますが、SELinuxが有効かどうか、という情報しか得ることが出来ません。設問では"SELinux related information"と表現しているので、有効無効以外の情報も必要としていると考えるべきでしょう。また、前の2つのコマンドはそれぞれ同じような働きをするので、答えを1つに絞れません。

それに対して、sestatusコマンドはSELinuxが有効な場合、より詳細な情報を得ることができます。


○設定ファイルの確認
# cat /etc/selinux/config
SELINUX=enforcing
SELINUXTYPE=targeted

○sestatusの実行例
# sestatus
SELinux status:         enabled
SELinuxfs mount:   /selinux
Current mode:      enforcing
Mode from config file: enforcing
Policy version:         18
Policy from config file:targeted

Policy booleans: ↓以下、各種設定の真偽値
allow_syslog_to_console inactive
allow_ypbind       inactive
dhcpd_disable_trans    inactive
httpd_builtin_scripting active
httpd_disable_trans    inactive
httpd_enable_cgi   active
httpd_enable_homedirs  active
httpd_ssi_exec          active
httpd_tty_comm          inactive
httpd_unified      active
mysqld_disable_trans   inactive
named_disable_trans    inactive
named_write_master_zonesinactive
nscd_disable_trans inactive
ntpd_disable_trans inactive
pegasus_disable_trans  inactive
portmap_disable_trans  inactive
postgresql_disable_transinactive
snmpd_disable_trans    inactive
squid_disable_trans    inactive
syslogd_disable_trans  inactive
use_nfs_home_dirs  inactive
use_samba_home_dirs    inactive
use_syslogng       inactive
winbind_disable_trans  inactive
ypbind_disable_trans   inactive


SELinuxが有効な場合、/selinux以下に各種ファイルが存在します。

○/selinux/以下を確認
# ls -lF /selinux/
合計 0
-rw-rw-rw-  1 root root    0  1月 12  2011 access
dr-xr-xr-x  1 root root    0  1月 12  2011 avc/
dr-xr-xr-x  1 root root    0  1月 12  2011 booleans/
--w-------  1 root root    0  1月 12  2011 commit_pending_bools
-rw-rw-rw-  1 root root    0  1月 12  2011 context
-rw-rw-rw-  1 root root    0  1月 12  2011 create
--w-------  1 root root    0  1月 12  2011 disable
-rw-r--r--  1 root root    0  1月 12  2011 enforce
-rw-------  1 root root    0  1月 12  2011 load
-r--r--r--  1 root root    0  1月 12  2011 mls
crw-rw-rw-  1 root root 1, 3  1月 12  2011 null
-r--r--r--  1 root root    0  1月 12  2011 policyvers
-rw-rw-rw-  1 root root    0  1月 12  2011 relabel
-rw-rw-rw-  1 root root    0  1月 12  2011 user

setenforceコマンドで状態を変更できます。


○setenfoceコマンドでモードをpermissiveに変更
# setenforce 0
# sestatus
SELinux status:         enabled
SELinuxfs mount:   /selinux
Current mode:      permissive ← 状態が変更しているのが分かる
Mode from config file: enforcing
Policy version:         18
Policy from config file:targeted


SELinuxは設定がなかなか難解ですが、より高度なセキュリティが要求される状況では有効なセキュリティ確保の手段です。まずはその仕組みを理解するところから始めてはどうでしょうか。

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

このページのトップへ