第5回 Referenceポリシーの作成と動作テスト
古田 真己サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
2006/6/17
FC5におけるポリシーソースのインストール方法
FC5では、RPMファイルがなくなってしまいポリシーソースが得られません。そこで、今回解説したポリシーモジュールの作成方法で/rootや/srcなどにポリシーのソースを記述したファイルを置いて、全体のソースツリーなしでモジュールとしてコンパイルや追加ができる環境が整えられています。従ってFC4と同じような全体のソースツリーが欲しい場合にはSRPMから抜き出すしか方法がありません。
また、ソースを取り出すために必要なselinux-policy-XXX.src.rpmに以下のようなクセがあるため、いろいろ面倒な気がしておっくうになってしまい、ただでさえ難しいとされているSELinuxのポリシー設定のハードルがさらに高くなってしまっています。
- SPECファイルに%buildの項目がない
- %installのステップでインストール後のファイルを用意して整えるようになっている
FC5においてポリシーソースをインストールするには、次のような形で行うとよいでしょう。
1.ポリシーのSRPMの取得
selinux-policy-XXX.src.rpmを取得し、/usr/src/redhat/SOURCEディレクトリに展開します。
[root@localhost ~]# cd /usr/src/redhat/SOURCES [root@localhost ~]# rpm2cpio selinux-policy-XXX.src.rpm |cpio -ivmd |
2.selinux-policy.specファイルの修正
specファイルにはselinux-develパッケージの作成用に、166行目のような記述があるので、これを利用します。166行目の最後にソースインストール用のターゲット「install-src」を追加します。
(前略) 164 # Install devel 165 make clean 166 make NAME=targeted TYPE=targeted-mcs DISTRO=%{distro} DIRECT_INITRC=y MONOLITHIC=%{monolithic} DESTDIR=$RPM_BUILD_ROOT PKGNAME=%{name}-%{version} POLY=%3 install-headers install-docs install-src 167 make NAME=strict TYPE=strict-mcs DISTRO=%{distro} DIRECT_INITRC=y MONOLITHIC=%{monolithic} DESTDIR=$RPM_BUILD_ROOT PKGNAME=%{name}-%{version} POLY=%3 install-headers install-docs install-src 168 make NAME=mls TYPE=strict-mls DISTRO=%{distro} DIRECT_INITRC=y MONOLITHIC=%{monolithic} DESTDIR=$RPM_BUILD_ROOT PKGNAME=%{name}-%{version} POLY=%3 install-headers install-docs install-src (後略) |
FC5:selinux-policy-2.2.38-1.fc5のselinux-policy.specの例 |
3.rpmbuildコマンドでビルド・インストール
/usr/src/redhat/SOURCESディレクトリでrpmbuild -bi selinux-policy.specを実行するとvar/tmp/serefpolicy-buildroot以下にソースが展開されます。
[root@fc5 ~]# vi selinux-policy.spec [root@fc5 ~]# rpmbuild -bi selinux-policy.spec [root@fc5 ~]# cd /var/tmp/serefpolicy-buildroot/etc/selinux [root@fc5 ~]# cp -rpdfv targeted/src /etc/selinux/targeted [root@fc5 ~]# cp -rpdfv strict/src /etc/selinux/strict [root@fc5 ~]# cp -rpdfv mls/src /etc/selinux/mls |
新しくなったaudit2allowによる設定方法
SELinuxの拒否ログから許可するためのポリシーモジュールを作成できるようになりました。ポリシーモジュール作成の実行例を見てみましょう。ただし、セキュリティを考慮せずに、ただ許可するためだけのルールを作成する点は以前のバージョンと同じなので注意して使う必要があります。
[root@fc5 ~]# ausearch -m AVC|audit2allow -M audit_error Generating type enforcement file: audit_error.te Compiling policy checkmodule -M -m -o audit_error.mod audit_error.te semodule_package -o audit_error.pp -m audit_error.mod ******************** IMPORTANT *********************** In order to load this newly created policy package into the kernel, you are required to execute semodule -i audit_error.pp [root@fc5 ~]# ls -l audit_error.* -rw-r--r-- 1 root root 1152 May 20 21:03 audit_error.mod -rw-r--r-- 1 root root 1168 May 20 21:03 audit_error.pp -rw-r--r-- 1 root root238 May 20 21:03 audit_error.te [root@fc5 ~]# semodule -i audit_error.pp [root@fc5 ~]# semodule -l audit_error 1.0 |
この例の基となったauditのログも掲載しておきます。
[root@fc5 ~]# ausearch -m AVC ---- time->Sat May 20 21:02:51 2006 type=AVC msg=audit(1148126571.190:50): avc:denied{ sendto } forpid=2033 comm="auditd" name="log" scontext=root:staff_r:staff_t:s0-s15:c0.c255 tcontext=system_u:system_r:syslogd_t:s0-s15:c0.c255 tclass=unix_dgram_socket type=AVC msg=audit(1148126571.190:50): avc:denied{ write } forpid=2033 comm="auditd" name="log" dev=tmpfs ino=4278 scontext=root:staff_r:staff_t:s0-s15:c0.c255 tcontext=system_u:object_r:devlog_t:s0 tclass=sock_file |
また、モジュール生成時に作られたteファイルは以下のとおりです。
module audit_error 1.0; require { class sock_file write; class unix_dgram_socket sendto; type devlog_t; type staff_t; type syslogd_t; }; allow staff_t devlog_t:sock_file write; allow staff_t syslogd_t:unix_dgram_socket sendto; |
3/4
|
Index | |
Referenceポリシーの作成と動作テスト | |
Page1 ドメイン名を考える |
|
Page2 実行ファイルのタイプを考える インターフェイスを考える モジュールの作成 ログの再確認と修正 |
|
Page3 FC5におけるポリシーソースのインストール方法 新しくなったaudit2allowによる設定方法 |
|
Page4 SELinuxのこれからの展開 |
Security&Trust記事一覧 |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|