○ selinuxの調整 4 Router (参考)

・ソースインストールファイルへの対応
・CentOS 5.6 ではpolicy-sourceファイルは配布されていません
・個々の設定はモデュールで組み込めるようになっています
・Permissiveでの動作を確認してからEnforcingに変更します

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文 (英文) を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○参照ファイル

パッケージの追加
最初の設定 (Router)

○インストール環境

:OS CentOS 5.6
:selinux permissive
:インストール先
:作業 /usr/src
:言語 LANG=en_US.UTF-8
:ユーザー root

・メンテナンスの場合は一般ユーザから行います



○policy-develファイルのインストール

[root@venus:~]
# rpm -Uvh selinux-policy-devel*

○モデュールファイルの作成と組み込み

○configファイルの修正

:/etc/selinux/config

・permissiveモードで起動するようにします

SELINUX=permissive
SELINUXTYPE=targeted

○selinuxのリラベルを実行しておきます

[root@venus:~]
# fixfiles relabel

○audit.logを空にする

[root@venus:~]
# cat /dev/null >/var/log/audit/audit.log

○再起動します

[root@venus:~]
# shutdown -r now

○ audit警告の修正

・auditdデーモンが起動していると/var/log/auditにログが作られます
・auditdデーモンを止めているので/var/log/messagesにログが出されます

・messagesからselinuxの情報を集める

[root@venus:~]
# audit2why < /var/log/messages > se-error.txt

・audit.logとdmesgからTEファイルを作る

# audit2allow -a -m local > local.te

・audit.logからTEファイルを作る場合は

# audit2allow -i /var/log/audit/audit.log -m local > local.te

・dmesgからTEファイルを作る場合は

# audit2allow -d -v -m local > local.te

・messagesからTEファイルを作る

# audit2allow -i /var/log/messages -m local > local.te

・バイナリー形式のモデュールの作成

# checkmodule -M -m local.te -o local.mod

・モデュールパッケージ化

# semodule_package -o local.pp -m local.mod

・SELinuxに組み込む

# semodule -i local.pp

・組み込みモデュールの確認

# semodule -l | grep local

・組み込みモデュ−ルの解除

# semodule -r local

:参考 local.te (root root 600)


module local 1.0;

require {
        type pppd_exec_t;
        type pppd_t;
        type getty_t;
        type syslogd_t;
        type var_t;
        type tmpfs_t;
        class sock_file { create setattr };
        class file { create execmod };
        class dir { write search add_name };
}

#============= getty_t ==============
allow getty_t tmpfs_t:dir search;

#============= pppd_t ==============
allow pppd_t pppd_exec_t:file execmod;

#============= syslogd_t ==============
allow syslogd_t tmpfs_t:dir { write add_name };
allow syslogd_t tmpfs_t:file create;
allow syslogd_t var_t:dir { write add_name };
allow syslogd_t var_t:sock_file { create setattr };

:booleansの変更で対処する場合

・sambaでhome_dirsにアクセスする場合

[root@venus:~]
# getsebool -a
・・・・・・・・・・・・・・・・・・
samba_enable_home_dirs --> off
・・・・・・・・・・・・・・・・・・
# setsebool -P samba_enable_home_dirs 1

# getsebool -a
・・・・・・・・・・・・・・・・・・
samba_enable_home_dirs --> on
・・・・・・・・・・・・・・・・・・

・offに変更

# setsebool -P samba_enable_home_dirs 0      

○モード変更

・再起動した場合、/etc/selinux/configの設定になります

・Enforcingモードにする

[root@venus:~]
# setenforce 1

・確認

# getenforce
Enforcing

○ Copyright(c) 528p.com All Rights Reserved.