○ selinuxの調整 4 Router (参考)

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

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

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

○参照ファイル

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

○インストール環境

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

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



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

# rpm -Uvh selinux-policy-devel*

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

○configファイルの修正

:/etc/selinux/config

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

SELINUX=permissive
SELINUXTYPE=targeted

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

# fixfiles relabel

○audit.logを空にする

# cat /dev/null >/var/log/audit/audit.log

○再起動します

# shutdown -r now

○ audit警告の修正

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

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

# 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にアクセスする場合

# 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モードにする

# setenforce 1

*確認

# getenforce
Enforcing

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