SELinuxのセキュリティポリシーを設定する

GNU/LinuxディストリビューションにSELinux(Security-Enhanced Linux)が含まれている場合は、インストール後にDr.Web for UNIX Internet Gatewaysのサービスコンポーネント(スキャンエンジンなど)を正常に動作せるために、SELinuxのセキュリティポリシーを設定することが必要になる場合があります。

ユニバーサルパッケージを使用したインストールの問題

SELinuxが有効になっている場合、Dr.Web for UNIX Internet Gatewaysコンポーネントを動作させるdrwebユーザーの作成がブロックされることがあり、インストールファイル.run)からのインストールに失敗する場合があります。

drwebユーザーを作成できないために、このファイルからのDr.Web for UNIX Internet Gatewaysのインストールに失敗する場合は、getenforceコマンドを使用してSELinuxの動作モードを確認してください。このコマンドは現在のスキャンモードを出力します。

Permissive - 保護は有効ですが、許可方式が使用されています。セキュリティポリシーに違反するアクションは拒否されませんが、そのアクションに関する情報はログに記録されます。

Enforced - 保護は有効で、制御方式が使用されています。セキュリティポリシーに違反するアクションはブロックされ、そのアクションに関する情報はログに記録されます。

Disabled - SELinuxはインストールされていますが、有効になっていません。

SELinuxがEnforcedモードで動作している場合は、Permissiveモードに変更してください。それには、以下のコマンドを使用します。

# setenforce 0

このコマンドはSELinuxのPermissiveモードを一時的に(次の再起動まで)有効にします。

setenforceコマンドで有効にした動作モードに関係なく、OSの再起動後、SELinuxは設定で指定された安全な動作モードに戻ります(SELinuxの設定ファイルは通常、/etc/selinuxディレクトリにあります)。

Dr.Web for UNIX Internet Gatewaysが正常にインストールされた後、製品を起動させる前にEnforcedモードを再度有効にしてください。それには、以下のコマンドを使用します。

# setenforce 1

Dr.Web for UNIX Internet Gatewaysの動作に関する問題

SELinuxの実行中にいくつかのDr.Web for UNIX Internet Gatewaysコンポーネント(drweb-sedrweb-filecheckなど)が起動できないことがあります。これにより、オブジェクトのスキャンやファイルシステムのモニタリングができなくなります。これらのコンポーネントが起動できない場合は、syslogサービスによって管理されるシステムログ(通常このログは/var/log/ディレクトリにあります)に119および120のエラーメッセージが表示されます。

SELinuxセキュリティシステムによってアクセスが拒否された場合、そのようなイベントのログが記録されます。一般的に、システムでauditデーモンが使用されている場合、audit(監査)に関するログが/var/log/audit/audit.logファイルに保存されます。それ以外の場合、ブロックされた動作に関するメッセージが一般的なログファイル(/var/log/messagesまたは/var/log/syslog)に保存されます。

SELinuxにブロックされているために製品のスキャンコンポーネントが機能しない場合は、該当するコンポーネントに対して特別なセキュリティポリシーを設定する必要があります。

一部のGNU/Linuxディストリビューションには、以下のユーティリティが備わっていません。その場合、ユーティリティの追加パッケージをインストールする必要がある場合があります。

SELinuxのセキュリティポリシーを設定する

1.SELinuxのポリシーソースコードを記述したファイル(.teファイル)を新たに作成します。このファイルでは、記述されているポリシーモジュールに関連した制限を規定します。このポリシーソースコードは以下のいずれかの方法で作成できます。

1)audit2allowユーティリティの使用は、最もシンプルな方法です。ユーティリティはシステムログファイル内のアクセス拒否に関するメッセージからpermissiveルールを生成します。自動でメッセージを検索するよう設定するか、手動でログファイルへのパスを指定できます。

この方法は、Dr.Web for UNIX Internet GatewaysのコンポーネントがSELinuxのセキュリティポリシーに違反していて、それらのイベントが監査ログファイルに記録されている場合にのみ使用できます。そうでない場合、そのようなイベントが起こるのを待つか、policygentoolユーティリティを使用して強制的にpermissiveポリシーを作成してください(下記参照)。

 

audit2allowユーティリティは、policycoreutils-pythonパッケージまたはpolicycoreutils-develパッケージ(Red Hat Enterprise Linuxの場合はCentOS、Fedora OSの場合はバージョンにより異なる)にあり、DebianおよびUbuntu OSの場合はpython-sepolgenパッケージにあります。

audit2allowの使用例:

# grep drweb-se.real /var/log/audit/audit.log | audit2allow -M drweb-se

この例では、drweb-seコンポーネントに対するアクセス拒否メッセージを見つけるために、audit2allowユーティリティが/var/log/audit/audit.logファイル内で検索を実行します。

作成されるファイルは、ポリシーソースファイルdrweb-se.teと、インストール可能なdrweb-se.ppポリシーモジュールの2つです。

システム監査ログ内でセキュリティ違反イベントが見つからなかった場合、ユーティリティはエラーメッセージを返します。

ほとんどの場合、audit2allowユーティリティで作成したポリシーファイルを変更する必要はありません。したがって、手順4drweb-se.ppポリシーモジュールのインストールに進むことを推奨します。

audit2allowユーティリティはsemoduleコマンドの呼び出しを出力します。この出力をコマンドラインにコピーして実行すると、手順4が完了します。Dr.Web for UNIX Internet Gatewaysコンポーネント用に自動的に生成されたセキュリティポリシーを変更する場合にのみ、手順2に進みます。

2)policygentoolユーティリティを使用する。そのためには、異なる方法で処理するコンポーネントの名前とその実行ファイルへのフルパスを指定します。

Red Hat Enterprise LinuxとCentOS向けのselinux-policyパッケージに含まれているpolicygentoolユーティリティは正常に機能しない場合があります。その場合はaudit2allowユーティリティを使用してください。

policygentoolを使用したポリシー作成の例:

drweb-seコンポーネントの場合:

# policygentool drweb-se /opt/drweb.com/bin/drweb-se.real

drweb-filecheckコンポーネントの場合:

# policygentool drweb-filecheck /opt/drweb.com/bin/drweb-filecheck.real

ドメインを作成するための一般的なプロパティをいくつか指定するように求められます。その後、ポリシーを決定する以下の3つのファイルが(コンポーネントごとに)作成されます。

<module_name>.te、<module_name>.fc<module_name>.if

2.必要に応じて、生成されたポリシーソースファイル<module_name>.teを編集し、その後、checkmoduleユーティリティを使用して、ローカルポリシーのこのソースファイルをバイナリ形式に変換(.modファイル)します。

コマンドを正常に実行するには、システムにcheckpolicyパッケージがインストールされている必要があります。

使用例:

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

3.semodule_packageユーティリティを使用して、インストール用のポリシーモジュールを作成します(.ppファイル)。

例:

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

4.作成されたポリシーモジュールをインストールするには、semoduleユーティリティを使用します。

例:

# semodule -i drweb-se.pp

SELinuxの動作と設定に関する詳細は、お使いのUNIXディストリビューションのマニュアルを参照してください。