0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

〜Linuxにおける「誰が・何に・どこまで触れるか」を制御する仕組み〜

333.1 任意アクセス制御(DAC)

DAC(Discretionary Access Control)とは

DAC は、

リソースの所有者がアクセス権を決められる仕組み

Linux の基本的なファイルパーミッションは、すべて DAC に該当します。

ファイル所有権とパーミッション

Linux のファイルには以下が設定されています。

  • 所有者(user)
  • グループ(group)
  • その他(others)
  • 権限(r / w / x)
chmod 755 file
chown user:group file

「誰が決められるか」=所有者

SetUID / SetGID ビット

通常、プログラムは 実行したユーザの権限で動きますが、
SetUID / SetGID を付与すると挙動が変わります。

  • SetUID:所有者権限で実行
  • SetGID:グループ権限で実行
chmod u+s program
chmod g+s program

ACL(Access Control List)

従来の rwx だけでは表現できない場合に利用します。

  • ユーザ単位の権限付与
  • グループ単位の権限付与
  • デフォルト ACL
setfacl -m u:user:rwx file
getfacl file

「この人だけ特別に権限を与えたい」 場合に有効
複雑になりやすいため管理が重要

拡張属性(Extended Attributes)

ファイルに 追加のメタデータ を付与する仕組みです。

  • user.*
  • security.*
  • system.*
setfattr -n user.comment -v "sample" file
getfattr file

用途例:

  • SELinux のコンテキスト
  • セキュリティツールの管理情報

333.2 強制アクセス制御(MAC)

MAC(Mandatory Access Control)とは

MAC は、

システムが強制的にアクセスを制御する仕組み

DAC と異なり、

  • 所有者であっても制限される
  • 管理者が定義したポリシーが最優先

DAC / MAC / RBAC / TE の関係

  • DAC:所有者が制御
  • MAC:システムが強制
  • RBAC:役割ベース
  • TE(Type Enforcement):SELinux の基本モデル

SELinux は、
MAC + RBAC + TE を組み合わせた非常に強力な仕組みです。

SELinux の基本

SELinux は、

  • プロセス
  • ファイル
  • ポート

などに セキュリティコンテキスト(ラベル) を付与し、
ポリシーに基づいてアクセスを制御します。

状態確認:

getenforce
sestatus

モード:

  • Enforcing(強制)
  • Permissive(警告のみ)
  • Disabled(無効)

SELinux の管理操作

一時的な切り替え

setenforce 0   # Permissive
setenforce 1   # Enforcing

ブール値(boolean)の制御

getsebool -a
setsebool -P httpd_can_network_connect on

機能単位で挙動を調整可能

コンテキスト管理

  • 自動修復:restorecon
  • 一時変更:chcon
  • 永続設定:semanage
restorecon -Rv /var/www

SELinux トラブルシューティング

  • 原因分析:audit2why
  • ポリシー生成:audit2allow

SELinux 関連ツール

  • seinfo:ポリシー情報
  • apol:ポリシー分析
  • seaudit:監査ログ解析
  • newrole / runcon:ロール・コンテキスト変更

AppArmor と Smack

SELinux 以外の MAC 実装も存在します。

  • AppArmor

    • パスベース制御
    • Ubuntu 系で多い
  • Smack

    • ラベルベース
    • 組み込み・特殊用途向け
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?