3.4 SELinuxによって保護されているOS

お使いのOSが SELinux サブシステムによって保護されている場合、スキャンを開始しようとした際にエラーメッセージが表示されます(または Scanner Daemon の自動開始を試みた場合にも表示される可能性があります)。下の画像はスキャン開始時に Dr.Web Anti-Virus for Linux Control Desk 上に表示されるエラーメッセージの例です。

SELinux

2. Scanner Daemon エラー

SELinux によって保護されたOS内での Dr.Web Console ScannerDr.Web DaemonDr.Web SpIDer Guard コンポーネントの正常な動作を設定するには、それぞれ drweb-scannerdrweb-daemondrweb-spider モジュールとの動作に対する ポリシーをコンパイルする か、または allow_execheap 変数の値を1に設定する 必要があります。

 

warning

モジュールポリシーのコンパイルに使用されるテンプレートは、Linux ディストリビューションの種類及びそのバージョン、SELinux ポリシーの組み合わせ、ユーザー設定によって大きく異なる場合がありますのでご注意ください。

ポリシーのコンパイルに関する詳細については、お使いの Linux ディストリビューションの該当するドキュメントを参照してください。

SELinux セキュリティポリシー管理コマンドは全て、スーパーユーザー権限で実行する必要があります(sudoまたはsuを使用)。

 

必要なポリシーを作成するには

1.新しい SELinux ポリシーソースファイル(.teファイル)を作成します。このファイルは、記述されたモジュールに関するアクセスルールを定義します。以下の方法で、必要なポリシーを作成することが出来ます。
policygentool ユーティリティを使用
ポリシーモジュール(インタラクションを調整する必要のある)の名前、および該当する実行ファイルへのフルパスの2つのパラメータを指定してください。

 

warning

Red Hat Enterprise Linux 及び CentOS Linux 内のselinux-policyパッケージに含まれている policygentoolユーティリティは正常に動作しない場合がありますのでご注意ください。その場合は、audit2allowユーティリティを使用してください。

 

:

Dr.Web Console Scanner:

# policygentool drweb-scanner /opt/drweb/drweb.real

Dr.Web Daemon:

# policygentool drweb-daemon /opt/drweb/drwebd.real

Dr.Web SpIDer Guard:

# policygentool drweb-spider /opt/drweb/drweb-spider.real

共通するドメイン特性をいくつか入力するよう促され、各モジュールに対して次の3つのファイルが作成されます。

o<module_name>.te
o<module_name>.fc
o<module_name>.if
audit2allow ユーティリティを使用
このユーティリティは、システムログファイル内のアクセス拒否レポートに基づいてポリシーを作成します。レポートはシステムログファイル内で自動的に検索されるか、またはログファイルへのパスを手動で設定することが出来ます。

 

warning

通常、auditデーモンを使用する際には監査ログは/var/log/audit/audit.logファイル内にあります。それ以外の場合、AVCメッセージは/var/log/messagesログファイルに保存されます。

audit2allow ユーティリティはpolicycoreutils-pythonパッケージ(RedHat Enterprise LinuxCentOSFedora の場合)、又はpython-sepolgenパッケージ(DebianUbuntuの場合)に含まれています。

 

:

# audit2allow -M -i /var/log/audit/audit.log drweb

この例では、audit2allowaudit.logファイル内でAVCメッセージを検索します。

:

# audit2allow -a -M drweb

この例では、audit2allowは自動的にシステムログファイル内でAVCメッセージを検索します。

いずれの場合も、audit2allowSELinux ポリシーソースファイル(drweb.te)及びコンパイルされたポリシーモジュールdrweb.ppの2つのファイルを作成します。Dr.Web Anti-Virus for Linux コンポーネントのアクセスルールを変更したい場合、drweb.teを編集し、step 2へ進んでください。ポリシーファイルを変更しない場合はstep 4へ進み、drweb.ppポリシーモジュールをインストールして下さい。

2.checkmoduleユーティリティを使用してポリシーソースファイルのバイナリ表現(.modファイル)を作成します。

 

warning

ポリシーの正常なコンパイルには、システム上に checkpolicy パッケージがインストールされている必要があります。

 

:

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

3.semodule_packageユーティリティを使用してポリシーモジュール(drweb.pp)を作成します。

:

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

4.新しいポリシーモジュールをモジュールストア内にインストールするにはsemoduleユーティリティを使用してください。

:

# semodule -i drweb.pp

SELinux での Dr.Web Console ScannerDr.Web DaemonDr.Web SpIDer Guard の動作を設定するための allow_execheap OS環境変数の値を1に設定することも可能です(推奨しません)。allow_execheap 環境変数は、unconfined ドメインで動作している全てのアプリケーションに対し、ヒープメモリ内のデータ実行を許可または拒否します。allow_execheap変数の値を設定するには以下のコマンドを実行してください。

# setsebool -P allow_execheap=1