SELinuxを無効化する方法

最初に無効化する方法を説明します。その後にSELinuxの特徴について簡単に説明します。これはSELinuxを無効化することのリスクなど、自分が何をしているのか理解するためにです。

目次

SELinuxを無効化する

一時的および恒久的に無効化する方法を紹介します。

動作モードの確認

まずは動作モードの確認方法から。
SELinuxの動作モードはgetenforceコマンドで確認できます。

# getenforce
Enforcing

より詳しい内容を確認するには、sestatusコマンドを使います。

# 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
Max kernel policy version:      31

SELinuxの動作モードには次の3つのがあります。

Enforcing

SELinuxは有効

Permissive

SELinuxは警告モードで有効にされている。アクセス制御は実施しないが、ログは記録されている

Disabled

SELinuxは無効

一時的な動作モードの変更

動作モードがDisabled以外のときであれば、setenforceコマンドを使って動作モードをEnforcingまたはPermissiveに変更できます。

# setenforce Enforcing
# setenforce Permissive

これは一時的な変更なので、再起動すると元へ戻ります。

恒久的な動作モードの変更

恒久的な動作モードの変更、つまり起動時の動作モードを変更するには/etc/selinux/configファイルを編集します。
SELinuxを無効化するには次のようにSELINUXパラメータをdisabledに設定します。

SELINUX=disabled

EnforcingまたはPermissiveに設定するにはそれぞれ次のように記述します。

SELINUX=enforcing
SELINUX=permissive

SELinuxの特徴

ここではSELinuxについて簡単に概要を説明します。SELinuxを無効化することによるリスクなどの理解の助けになればと思います。

従来のLinuxのセキュリティリスク

SELinuxはSecure OSの1つでセキュリティが従来のLinuxに比べてセキュリティが強化されている。
まずは、SELinuxの特徴を見る前に従来のLinuxに存在するセキュリティリスクについて考えてみます。

すべての権限を有するrootユーザーの存在

rootユーザーはすべての権限を持っています。つまりrootユーザーであれば何でもできてしまうということです。このroot権限を悪人に奪取されてしまったら、マシンの持つセキュリティ機能はすべて無力化されたも同然です。SELinuxではrootユーザーの権限にも制限を加えることができるため、奪取された場合の影響範囲を限定することもできます。

任意アクセス制御

従来のLinuxはファイル(やディレクトリ)について、所有者、グループ所有者、その他の3者について読み・書き・実行のアクセス権の機構があります。しかし、このアクセス権はファイルの所有者が自由に設定できてしまいます。これを任意アクセス制御と言います。SELinuxでは強制アクセス制御を使用してセキュリティを強化しています。

SELinuxの特徴

次にどのようにセキュリティが強化されているか、SELinuxの特徴を見ていきましょう。

ロールベースのアクセス制御

アクセス権が設定されたロール(role)をrootユーザを含むすべてのアカウントに対して割り当てることによってアクセス制御を実施します。

強制アクセス制御

ディレクトリやファイルに対するアクセス制御は個々のユーザーが行うのではなく、「セキュリティポリシーファイル」と呼ばれる設定ファイルで一元的に管理します。これは強制アクセス制御(Mandatory Access Control)と呼ばれます。システム全体のアクセス権をセキュリティポリシーファイルで一元管理するため、アクセス権の管理が容易になります。

Type Enforcement

Type Enforcementはプロセスに対してファイルなどのシステム資源へのアクセスを制限します。これによりプロセスを乗っ取られた場合でも被害の範囲を限定的にできます。

簡単にSELinuxの概要を見ていきましたがいかがだったでしょうか。
確かにセキュリティは強化されますが、実際に現場で使うにはいくつか課題がありそうです。
まずはセキュリティは正しく設計・運用してはじめて機能します。
これにはSELinuxに精通した人の確保が必要になります。
また設計のパラダイムも変わるため工数の増大も考えられます。
アプリケーションを開発する場合にも同様に人や工数が課題になりそうです。
SELinuxを使うか使わないかはこれらを総合的に判断して決める必要がありそうです。

よかったらシェアしてね!
  • URLをコピーしました!
目次