SELinuxサポート
- English
- 日本語
Security-Enhanced Linux (SELinux) は、米国防総省スタイルの強制アクセス制御 (MAC) などのアクセス制御セキュリティポリシーをサポートするメカニズムを提供する、Linux カーネルセキュリティモジュールです。
CentOS Linux の公式ビルドはすべて、SELinux が有効化され、強制モードに設定された状態で事前に構成されています。SELinux が有効なシステムでエージェントを実行するには、次の2つのアプローチがあります。
SELinux を許可モードに設定するか、SELinux を完全に無効にする
モジュールとエージェントが通信できるように SELinux を設定する
SELinux が強制モードで有効になっているか確認する
システム管理者は、モジュールをエージェントに接続しようとした際に次のようなエラーが発生するまで、SELinux がインストールされていることに気付かない場合があります。
2016/05/11 22:16:29 [crit] 3193#3193: *10 connect()to unix:/var/run/sigsci.sock failed(13: Permission denied), client: 192.0.2.209,server: localhost, request: "GET /ping HTTP/1.1",host: "192.0.2.209"SELinux のステータスを確認するには、コマンド sestatus を実行します。次のような出力が生成されます。
$ sestatusSELinux status: enabledSELinuxfs mount: /sys/fs/selinuxSELinux root directory: /etc/selinuxLoaded policy name: targetedCurrent mode: enforcingMode from config file: enforcingPolicy MLS status: enabledPolicy deny_unknown status: allowedMax kernel policy version: 28SELinux を許可モードに設定するか、SELinux を完全に無効にする
SELinux のメイン設定ファイルは /etc/selinux/config です。次のコマンドを実行してその内容を確認します。
$ cat /etc/selinux/config出力は次のようになります。
# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=enforcing# SELINUXTYPE= can take one of these two values:# targeted - Targeted processes are protected,# minimum - Modification of targeted policy. Only selected processes are protected.# mls - Multi Level Security protection.SELINUXTYPE=targeted無効にするか、許可(ログ記録)モードに切り替えるのが良いでしょう。ログ記録を保持する場合は、保守的な最初のステップとして、設定行を SELINUX=permissive に変更します。この変更を適用するには、システム全体を再起動してから、別の sestatus コマンドで SELinux の新しいステータスを確認する必要があります。
モジュールとエージェントが通信できるように SELinux を設定する
システムに SELinux が許可モードまたは強制モードに設定されており、SELinux が /var/log/audit/audit.log ファイルに書き込むと仮定します (他の Unix フレーバーでは、他の場所に書き込む可能性があります)。
root としてログインして、Next-Gen WAF エージェントとモジュールをインストールします。
Web サーバーを再起動し、エージェントを起動します。
Web サイトを閲覧すると、モジュールがエージェントとの通信を呼び出します。
許可モードの場合、監査ログにはブロックされるはずだった内容に関するメッセージが記録されます。
強制モードの場合、同じログメッセージが監査ログに追加されます。
ホームディレクトリから次のコマンドを実行し、
.teファイルと.pp(ポリシーパッケージ) ファイルを作成します :cat /var/log/audit/audit.log | audit2allow -M sigsci > sigsci.te)。semodule -i sigsci.ppを使用してポリシーパッケージファイルをインストールします。次のコマンドを実行し、ポリシーがインストールおよびロードされたことを確認します :
semodule -l。出力は次のようになります。## Policy definition for SigSci Agent package on Rocky Linux 8## Use make sigsci.pp (with a link to the SELinux policy devel Makefile)## Requires policycoreutils-devel package## make -f /usr/share/selinux/devel/Makefile sigsci.pp## to create a module. Then run semodule -i sigsci.pp to install itpolicy_module(sigsci, 1.0)require {type httpd_t;}#============= httpd_t =============files_write_generic_pid_sockets(httpd_t)Web サーバーとNext-Gen WAFエージェントを再起動してください。