SELinuxについて
今回は、Linuxのセキュリティを強化するSELinuxの設定を行います。【連載コラム:Linuxシステム管理標準教科書を読む(23)】
Linuxの基本的なスキルを習得したら、Linuxサーバーをシステムとして長期に運用管理していくためのスキルを身につけるのはいかがでしょうか。このコラムでは、「Linuxシステム管理標準教科書」の全体調整を担当した筆者が改めて大切なポイントを解説していきます。
SELinuxは、Linuxのセキュリティを強化する仕組みです。ユーザー権限によるファイルへのアクセス制御などと異なり、Linuxカーネルの機能としてアクセスの制御を行うので、システム特権を持っているrootでも制限の対象となります。
SELinuxは仕組みをきちんと理解しないと使いこなせないため、苦手意識を持っている人が多いようです。また、以前は強制的にSELinuxを無効にしてしまうことが多くありましたが、最近のディストリビューションでは簡単にSELinuxを無効にできなくなっています。きちんとSELinuxを理解し、適切に設定が行えるようにしましょう。
SELinuxの状態を確認する
SELinuxはカーネルの機能なので、システム起動時に有効になります。まずはSELinuxがどのような状態になっているかを確認しましょう。
SELinuxの有効無効を確認する
SELinuxが有効か無効か確認するには、getenforceコマンドを実行します。
$ getenforce
Enforcing
EnforcingはSELinuxのアクセス制御を強制する状態です。
詳細なSELinuxの状態を確認する
sestatusコマンドを実行すると、より詳細なSELinuxの状態を確認できます。
[linuc@localhost ~]$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 33
現在の状態はCurrent modeが示していますが、その他の状態も確認できます。
SELinuxの状態を変更する
SELinuxの状態を変更してみます。現在はEnforcingですが、アクセス制御を強制しないPermissiveに変更します。
$ sudo setenforce permissive
$ getenforce
Permissive
SELinuxがPermissiveに設定されていると、SELinuxのアクセス制御は適用されますが強制されず、ログにのみ記録されます。システムが思ったように動作せず、SELinuxによってアクセス制御されていると考えられる時は、Permissiveに変更して動作するかを確認し、どのようなアクセス制御が行われているのかをログで確認するとよいでしょう。
ログファイルは/var/log/audit/audit.logになります。
SELinuxを制御する
SELinuxは現在では原則有効であり、セキュリティを高める観点からも適切に設定してシステムを運用することが求められます。実際の設定方法については『Linuxシステム管理標準教科書』に解説されているので、そちらを参考に実際に設定を行ってみてください。
- 筆者紹介
宮原 徹 氏
Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。
<Linuxシステム管理標準教科書とは>
「Linuxシステム管理標準教科書」(システム管理教科書)は2015年4月にリリースされた標準教科書シリーズの1冊です。Linuxシステムの運用管理という観点で書かれており、システム管理者という業務において知っておかなければならない基本的なトピックが解説されています。「Linux標準教科書」「Linuxサーバー構築標準教科書」でコマンド操作やサーバー構築の基本を学んだら、このシステム管理教科書を読んで、単にLinuxを使うのではなく、システムとして長期的に管理運用していくためのスキルを身につけてください。
バックナンバー
第22回:NTPサーバーとして時刻を提供する
第21回:NTPによる時刻合わせ
第20回:anacronによるシステムジョブの実行
第19回:anacronの呼び出し
第18回:カーネルとデバイスの確認