「SELinux」の版間の差分
提供: セキュリティ
(同じ利用者による、間の3版が非表示) | |||
行1: | 行1: | ||
− | |||
− | |||
− | |||
[[SELinux]] は、[[Linuxカーネル]] に [[強制アクセス制御]] (MAC) 機能を付加するモジュールです。[[SELinux]] は、[[セキュアOS]]です。 | [[SELinux]] は、[[Linuxカーネル]] に [[強制アクセス制御]] (MAC) 機能を付加するモジュールです。[[SELinux]] は、[[セキュアOS]]です。 | ||
− | 読み方 | + | '''読み方''' |
;[[SELinux]]: えすぃーりなっくす | ;[[SELinux]]: えすぃーりなっくす | ||
;Security-Enhanced Linux: せきゅりてぃ えんはんすど りなっくす | ;Security-Enhanced Linux: せきゅりてぃ えんはんすど りなっくす | ||
行10: | 行7: | ||
== 概要 == | == 概要 == | ||
− | |||
[[SELinux]] は、[[Linuxカーネル]] に [[強制アクセス制御]] (MAC) 機能を付加するモジュールです。 | [[SELinux]] は、[[Linuxカーネル]] に [[強制アクセス制御]] (MAC) 機能を付加するモジュールです。 | ||
− | [[Unix]] | + | [[Unix]] のシステムは、ディレクトリやファイルなどのリソースに対するアクセス制御は、パーミッションで行われます。パーミッションは、[[任意アクセス制御]] (DAC) と呼ばれます。 |
パーミッションは、オーナー、グループ、その他に対して、rwx(読み、書き、実行) を設定します。 | パーミッションは、オーナー、グループ、その他に対して、rwx(読み、書き、実行) を設定します。 | ||
[[root]] ユーザは、パーミッションの制限を受けることなく、あらゆるリソースにアクセスできるため、 [[Linux]] を含む [[Unix]] 系の OS では、 [[root]] ユーザに権限が集中し過ぎているといえます。 | [[root]] ユーザは、パーミッションの制限を受けることなく、あらゆるリソースにアクセスできるため、 [[Linux]] を含む [[Unix]] 系の OS では、 [[root]] ユーザに権限が集中し過ぎているといえます。 | ||
行23: | 行19: | ||
; [[ロールベースアクセス制御]](RBAC): [[root]]ユーザを含むすべてのユーザに制限をかける | ; [[ロールベースアクセス制御]](RBAC): [[root]]ユーザを含むすべてのユーザに制限をかける | ||
− | + | == SELinux の アクセス制御 == | |
− | [[SELinux]] の | + | [[SELinux]] の '''アクセス制御''' |
* [[強制アクセス制御]] (MAC, Mandatory Access Control) | * [[強制アクセス制御]] (MAC, Mandatory Access Control) | ||
行31: | 行27: | ||
** [[ドメイン遷移]] | ** [[ドメイン遷移]] | ||
** [[ロールベースアクセス制御]] (RBAC, Role Base Access Control) | ** [[ロールベースアクセス制御]] (RBAC, Role Base Access Control) | ||
− | * | + | * 監査ログ ( [[SELinuxの監査ログ]] ) |
− | + | == SELinux では防げないもの == | |
+ | * 設定の不備 | ||
+ | * 付与された権限内での破壊活動 | ||
+ | * 過大な権限を付与したユーザによる不正行為 | ||
+ | * 脆弱なパスワードの設定による「なりすまし行為」 | ||
+ | * システムやアプリケーションの脆弱性への攻撃 | ||
+ | * [[DoS攻撃]] | ||
== インストール == | == インストール == | ||
− | |||
[[SELinux]] は、あらかじめインストールされている場合があります。 | [[SELinux]] は、あらかじめインストールされている場合があります。 | ||
* [[SELinux を Ubuntu にインストールする]] | * [[SELinux を Ubuntu にインストールする]] | ||
行61: | 行62: | ||
| インストール | | インストール | ||
|} | |} | ||
− | |||
== セキュリティコンテキストとファイルシステム == | == セキュリティコンテキストとファイルシステム == | ||
− | |||
[[SELinux]] の [[SELinuxのセキュリティコンテキスト|セキュリティコンテキスト]] は、ファイルシステムの拡張属性(EXtended Attribute, xattr) に保存されます。 | [[SELinux]] の [[SELinuxのセキュリティコンテキスト|セキュリティコンテキスト]] は、ファイルシステムの拡張属性(EXtended Attribute, xattr) に保存されます。 | ||
− | + | ext2, ext3, ext4, jff2 などの [[ファイルシステム]] が拡張属性をサポートしています。 | |
− | + | ||
== SELinux のモード == | == SELinux のモード == | ||
− | |||
* [[SELinuxのモード]] | * [[SELinuxのモード]] | ||
** [[sestatus]] | ** [[sestatus]] | ||
行79: | 行76: | ||
** [[/etc/selinux/config]] | ** [[/etc/selinux/config]] | ||
**: 設定ファイル | **: 設定ファイル | ||
− | |||
== SELinux の設定 == | == SELinux の設定 == | ||
− | |||
* [[SELinuxの設定ファイル]] | * [[SELinuxの設定ファイル]] | ||
** [[/etc/selinux/config]] | ** [[/etc/selinux/config]] | ||
− | * | + | * SELinuxのポリシーファイル |
* [[SELinuxのセキュリティコンテキスト]] | * [[SELinuxのセキュリティコンテキスト]] | ||
+ | == ラベル == | ||
+ | * [[SELinux]] が無効のときに、作成されたファイルには、ラベルが設定されません。 | ||
+ | == ラベルの再設定 == | ||
+ | 起動時にファイルシステム全体にラベルが設定されます。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo touch /.autorelabel | ||
+ | sudo shutdown -r now | ||
+ | </syntaxhighlight> | ||
+ | == SELinuxのログ == | ||
+ | SELinuxには、拒否ログと監査ログの2つがあります。 | ||
+ | ;拒否ログ:SELinuxの設定で許可されていないアクセスに対して、出力されるログです。 | ||
+ | ;[[SELinuxの監査ログ]]:SELinuxの設定で「アクセスの証跡を残す」設定がされているアクセスに対して、出力されるログです。 | ||
− | + | 拒否ログは、不正なアクセスの検知に利用できます。 | |
− | + | ||
− | + | ||
− | + | ||
== 使い方 == | == 使い方 == | ||
− | |||
=== ファイルやディレクトリのセキュリティコンテキストの確認方法 === | === ファイルやディレクトリのセキュリティコンテキストの確認方法 === | ||
− | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
$ ls -Z /etc/hosts.allow | $ ls -Z /etc/hosts.allow | ||
行107: | 行109: | ||
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 17377 pts/7 S+ 0:00 fgrep auditd | unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 17377 pts/7 S+ 0:00 fgrep auditd | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
=== コマンド === | === コマンド === | ||
− | + | * selinuxconlist | |
− | * | + | * secon |
− | * | + | * chcon |
* [[sestatus]] | * [[sestatus]] | ||
行117: | 行118: | ||
* [[setenforce]] | * [[setenforce]] | ||
− | * | + | * setsebool |
+ | * sealert | ||
+ | * semanage | ||
+ | |||
+ | * audit2allow | ||
+ | * ausearch | ||
+ | |||
+ | * semodule | ||
== 関連項目 == | == 関連項目 == | ||
− | |||
* [[SELinuxのモード]] | * [[SELinuxのモード]] | ||
* [[Linux]] | * [[Linux]] | ||
− | * | + | * パーミッション |
* [[強制アクセス制御]] | * [[強制アクセス制御]] | ||
* [[SELinux Policy Editor]] (SEEdit) | * [[SELinux Policy Editor]] (SEEdit) | ||
− | * | + | * SETroubleShoot |
* [[auditd]] | * [[auditd]] | ||
行135: | 行142: | ||
* [[セキュアOS]] | * [[セキュアOS]] | ||
+ | |||
+ | * Multi Level Security (MLS) | ||
+ | * Multi Category Security (MCS) | ||
+ | <!-- vim: filetype=mediawiki | ||
+ | --> |
2015年9月22日 (火) 21:04時点における最新版
SELinux は、Linuxカーネル に 強制アクセス制御 (MAC) 機能を付加するモジュールです。SELinux は、セキュアOSです。
読み方
- SELinux
- えすぃーりなっくす
- Security-Enhanced Linux
- せきゅりてぃ えんはんすど りなっくす
目次
概要
SELinux は、Linuxカーネル に 強制アクセス制御 (MAC) 機能を付加するモジュールです。
Unix のシステムは、ディレクトリやファイルなどのリソースに対するアクセス制御は、パーミッションで行われます。パーミッションは、任意アクセス制御 (DAC) と呼ばれます。 パーミッションは、オーナー、グループ、その他に対して、rwx(読み、書き、実行) を設定します。 root ユーザは、パーミッションの制限を受けることなく、あらゆるリソースにアクセスできるため、 Linux を含む Unix 系の OS では、 root ユーザに権限が集中し過ぎているといえます。 root ユーザのパスワードの漏えいは、致命的な被害を及ぼす可能性をもたらします。
SELinux では、以下の制限を設け、root ユーザの権限の集中を防ぎ、堅牢なシステム構築を目指しています。
- Teyp Enforcement (TE)
- プロセスごとのアクセス制御
- ロールベースアクセス制御(RBAC)
- rootユーザを含むすべてのユーザに制限をかける
SELinux の アクセス制御
SELinux の アクセス制御
- 強制アクセス制御 (MAC, Mandatory Access Control)
- 最小特権
- TE (Type Enforcement)
- ドメイン遷移
- ロールベースアクセス制御 (RBAC, Role Base Access Control)
- 監査ログ ( SELinuxの監査ログ )
SELinux では防げないもの
- 設定の不備
- 付与された権限内での破壊活動
- 過大な権限を付与したユーザによる不正行為
- 脆弱なパスワードの設定による「なりすまし行為」
- システムやアプリケーションの脆弱性への攻撃
- DoS攻撃
インストール
SELinux は、あらかじめインストールされている場合があります。
ディストリビューション | どのように入れるか |
---|---|
Red Hat Enterprise Linux (4+) | デフォルト |
CentOS | デフォルト |
Fedora (2+) | デフォルト |
Ubuntu | インストール |
Debian | アドオン |
Gentoo | インストール |
セキュリティコンテキストとファイルシステム
SELinux の セキュリティコンテキスト は、ファイルシステムの拡張属性(EXtended Attribute, xattr) に保存されます。
ext2, ext3, ext4, jff2 などの ファイルシステム が拡張属性をサポートしています。
SELinux のモード
- SELinuxのモード
- sestatus
- SELinux のステータスの確認
- getenforce
- 動作モードの確認
- setenforce
- 動作モードの変更
- /etc/selinux/config
- 設定ファイル
- sestatus
SELinux の設定
- SELinuxの設定ファイル
- SELinuxのポリシーファイル
- SELinuxのセキュリティコンテキスト
ラベル
- SELinux が無効のときに、作成されたファイルには、ラベルが設定されません。
ラベルの再設定
起動時にファイルシステム全体にラベルが設定されます。
sudo touch /.autorelabel sudo shutdown -r now
SELinuxのログ
SELinuxには、拒否ログと監査ログの2つがあります。
- 拒否ログ
- SELinuxの設定で許可されていないアクセスに対して、出力されるログです。
- SELinuxの監査ログ
- SELinuxの設定で「アクセスの証跡を残す」設定がされているアクセスに対して、出力されるログです。
拒否ログは、不正なアクセスの検知に利用できます。
使い方
ファイルやディレクトリのセキュリティコンテキストの確認方法
$ ls -Z /etc/hosts.allow -rw-r--r--. root root system_u:object_r:etc_t:s0 /etc/hosts.allow
プロセスのコンテキスト。
$ ps axZ |fgrep auditd system_u:system_r:kernel_t:s0 467 ? S 0:01 [kauditd] unconfined_u:system_r:auditd_t:s0 16834 ? S<sl 0:00 auditd unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 17377 pts/7 S+ 0:00 fgrep auditd
コマンド
- selinuxconlist
- secon
- chcon
- setsebool
- sealert
- semanage
- audit2allow
- ausearch
- semodule
関連項目
- SELinuxのモード
- Linux
- パーミッション
- 強制アクセス制御
- SELinux Policy Editor (SEEdit)
- SETroubleShoot
- auditd
- syslog
- Linux Security Modules (LSM)
- Access Vector Cache (AVC)
- Multi Level Security (MLS)
- Multi Category Security (MCS)