SELinux徹底ガイドのサポート情報
by 中村雄一

日経BP社より発売された書籍
SELinux 徹底ガイド」に関する
著者による補足情報を掲載します。

ただし、このページに書かれている内容については無保証です。

★ ニュース2004/06/19:日本SELinuxユーザ会準備委員会が 設立されました。

目次
・ 誤植情報(2004/07/09)
・ FedoraCore2 のSELinuxで書籍の内容を試す場 合の注意(2004/06/08)
・   セキュリティ上の注意点(2004/4/24)
・ その他補足情報(2004/5/8)

・ SELinux 新バージョンでの変更点メモ

誤植等の情報は、 mailto までお願いします。

インデックスへ




誤植・間違い
場所
内容
p59のコマンド列
# cd ../domains/program
# mv unused/*.te .
# cd ../domains/misc

# cd ../domains/program
# mv unused/*.te .
# cd ../misc
P79
下から11行目
それぞれに対応した3種類のドメインsystem_t, staff_t,user_t

それぞれに対応した3種類のドメインsysadm_t,staff_t,user_t
p127 図11 図中央: httpd_php_exec_t→ipchains_exec_t
p213下と
p214写真1
ネームサーバのポート番号が「TCP42,UDP42」となってます が、間違いです。
正しくは「TCP53、UDP53」です。
P288
.default_contextsファイルが存在しない場合は、
 /etc/default_contextsファイルが参照される
          ↓
 .default_contextsファイルが存在しない場合は、
/etc/security/default_contextsファイルが参照される


セキュリティ上の注 意点

カーネルのセキュリティホール情報(2004年4月 24日)
書籍に収録したSELinuxのベースとなるカーネル2.4.23にセ キュリティホールが見つかっています(CAN- 2004-0077  CAN-2004-0003, CAN-2004-0003, CAN-2004-0003, CAN-2004-0003, CAN-2004-0003iSEC)
書籍p151でも触れたように、カーネル自体のセキュリティホールはSELinuxでも影響を受ける可能性が高くなります。

注 意! 4/16日のkernel-2.4.25-selinux1.p1.i386.rpmでは,一部のセキュリティホールがふさがっていませんでした。再度 アップグレードをお願いします。

以下の手順でアップグレードしましょう。
(1)
SELinux for Japanese Users Projectのサイトより,パッチ済みのカーネル
kernel-2.4.25-selinux1.p2.i386.rpm
(マルチプロセッサの場合は,kernel-smp-2.4.25-selinux1.p2.i386.rpm
をダウンロードします。

(2)
外部に公開しているサービスを落とす(又はネットワークから遮断)する。

(3)
permissiveモードにて,
#rpm -ivh kernel-2.4.25-selinux1.p2.i386.rpm
# cd /etc/security/selinux/src/policy
# make relabel
# reboot
にて,カーネルをアップグレードします。
アップグレード後、kernel-2.4.25-selinux1.p2を選択して起動します(permissiveモードで起動します)。
kernel-2.4.25-selinux1.p2.src.rpm
(4) 正常に動作することが分かったら古いカーネルは以下のコマンドで消去できます。
# rpm -e <古いカーネルのバージョン>
例:rpm -e kernel-2.4.25-selinux1.p1


補足:
なお、
カーネルのコンパイルが必要になった場合は、

がソースです。p226の手順でコンパイル&インストールします。
インストール後、
#make relabel
を忘れないでください。


FedoraCore2の SELinuxで書籍の内容 を試す場合の注意
FedoraCore2のSELinuxのインストールについては,
ITPro の連載記事を見ると良いでしょう。
ユーザ登録が必要ですが、無料です。

(1) policy-sources,checkpolicyパッケージが入っていません。
policy-sources,checkpolicyRPMパッケージをCDROMからインストールするか,
#yum install policy-sources checkpolicy
にてネットワークインストールします。
これらを入れないと、/etc/security/selinux/src以下の設定を編集できません。

(2) サービス起動時に,run_initコマンドの必要が無くなっています。

(3) vsftpdに対応した設定が用意されています。domains/programs/ftpd.te, file_contexts/programs/ftp.fc
SELinuxの勉強という意味では、
書籍の手順で1からvsftpdの設定を行うことを推奨します。
そのため、デフォルトで用意されているvsftpdの設定を使わないようにします。
#mv domains/programs/ftpd.te  domains/programs/unused
にて,設定を無効にして、書籍の設定方法を試してみましょう。

(4) 3章Part1 「1管理用ロールの新規作成」
   p157の「ホームディレクトリとタイプの関連付け」が不要になっています。
FedoraCore2では,
”make reload”時に,ホームディレクトリとタイプの関連付けが自動的に作成されます。

(5) permissveモードとenforcingモードの切り替えについて
  書籍では、permissiveモードとenfocingモードの切り替えは「/selinux/enforceファイル」を介して行っています。
しかし、実はもっと楽に切り替えが行えます。
・ setenforceコマンド
permissive,enforcingモードを切り替えるコマンド
<使い方>
setenforce  1または0
# setenforce  1
で、enforcingモードに、
# setenforce 0
で、permissiveモードに切り替えます。

・ getenforceコマンド
<使い方>
getenforce オプションは無し
#getenforce
とすると、「permissive」または「enforcing」と表示されます。

(6) 証明書を使ったSSHログインについて
~/.sshに適切なタイプがつかないため、sshdが~/.sshにアクセスできず,
証明書を使ったSSHログインできません。
#setfiles file_contexts /home
でタイプを付け直しましょう。

(7) デフォルト設定について
 デフォルト設定が揃いまくっているため、滅多に設定の追加の必要はありません。動作しない場合は,ファイルのタイプがおかしくなっている場合が多いで す。ファイルのタイプを付け直すコマンド "fixfiles relabel"にてタイプを付け直してから様子を見ましょう。



その他補足情報
 その他、補足情報を随時掲載していきます。

(1) permissveモードとenforcingモードの切り替えについて
  書籍では、permissiveモードとenfocingモードの切り替えは「/selinux/enforceファイル」を介して行っています。
しかし、実はもっと楽に切り替えが行えます。
・ setenforceコマンド
permissive,enforcingモードを切り替えるコマンド
<使い方>
setenforce  1または0
# setenforce  1
で、enforcingモードに、
# setenforce 0
で、permissiveモードに切り替えます。

・ getenforceコマンド
<使い方>
getenforce オプションは無し
#getenforce
とすると、「permissive」または「enforcing」と表示されます。

(2) DHCPでIPアドレスを取得している際の注意点
書籍添付のSELinuxの設定ファイルで,DHCPでIPアドレスを取得している環境の場合
audit2allowで設定を追加すると,assertionのエラーがでます。
書籍292ページの方法で回避できます。

domains/program/dhcpc.teファイルを
daemon_domain(dhcpc)

daemon_domain(dhcpc,`,etc_writer')
のように変更します。



(C)2004 Yuichi Nakamura