「SELinux」の版間の差分
提供: セキュリティ
(ページの作成:「<!-- vim: filetype=mediawiki --> 読み方 ;SELinux: えすぃーりなっくす ;Security-Enhanced Linux: せきゅりてぃ えんはんすど りなっくす __...」) |
|||
(同じ利用者による、間の15版が非表示) | |||
行1: | 行1: | ||
− | + | [[SELinux]] は、[[Linuxカーネル]] に [[強制アクセス制御]] (MAC) 機能を付加するモジュールです。[[SELinux]] は、[[セキュアOS]]です。 | |
− | + | ||
− | + | ||
− | 読み方 | + | '''読み方''' |
;[[SELinux]]: えすぃーりなっくす | ;[[SELinux]]: えすぃーりなっくす | ||
;Security-Enhanced Linux: せきゅりてぃ えんはんすど りなっくす | ;Security-Enhanced Linux: せきゅりてぃ えんはんすど りなっくす | ||
行9: | 行7: | ||
== 概要 == | == 概要 == | ||
+ | [[SELinux]] は、[[Linuxカーネル]] に [[強制アクセス制御]] (MAC) 機能を付加するモジュールです。 | ||
− | [[ | + | [[Unix]] のシステムは、ディレクトリやファイルなどのリソースに対するアクセス制御は、パーミッションで行われます。パーミッションは、[[任意アクセス制御]] (DAC) と呼ばれます。 |
− | + | ||
− | + | ||
パーミッションは、オーナー、グループ、その他に対して、rwx(読み、書き、実行) を設定します。 | パーミッションは、オーナー、グループ、その他に対して、rwx(読み、書き、実行) を設定します。 | ||
[[root]] ユーザは、パーミッションの制限を受けることなく、あらゆるリソースにアクセスできるため、 [[Linux]] を含む [[Unix]] 系の OS では、 [[root]] ユーザに権限が集中し過ぎているといえます。 | [[root]] ユーザは、パーミッションの制限を受けることなく、あらゆるリソースにアクセスできるため、 [[Linux]] を含む [[Unix]] 系の OS では、 [[root]] ユーザに権限が集中し過ぎているといえます。 | ||
行22: | 行19: | ||
; [[ロールベースアクセス制御]](RBAC): [[root]]ユーザを含むすべてのユーザに制限をかける | ; [[ロールベースアクセス制御]](RBAC): [[root]]ユーザを含むすべてのユーザに制限をかける | ||
+ | == SELinux の アクセス制御 == | ||
+ | [[SELinux]] の '''アクセス制御''' | ||
+ | |||
+ | * [[強制アクセス制御]] (MAC, Mandatory Access Control) | ||
+ | * [[最小特権]] | ||
+ | ** TE ([[Type Enforcement]]) | ||
+ | ** [[ドメイン遷移]] | ||
+ | ** [[ロールベースアクセス制御]] (RBAC, Role Base Access Control) | ||
+ | * 監査ログ ( [[SELinuxの監査ログ]] ) | ||
+ | == SELinux では防げないもの == | ||
+ | * 設定の不備 | ||
+ | * 付与された権限内での破壊活動 | ||
+ | * 過大な権限を付与したユーザによる不正行為 | ||
+ | * 脆弱なパスワードの設定による「なりすまし行為」 | ||
+ | * システムやアプリケーションの脆弱性への攻撃 | ||
+ | * [[DoS攻撃]] | ||
== インストール == | == インストール == | ||
− | + | [[SELinux]] は、あらかじめインストールされている場合があります。 | |
− | [[SELinux]] | + | * [[SELinux を Ubuntu にインストールする]] |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | [[ | + | |
{|class="wikitable" | {|class="wikitable" | ||
− | |+ | + | |+ OSとSELinux |
− | + | ! ディストリビューション | |
− | + | ! どのように入れるか | |
− | + | |- | |
− | + | | Red Hat Enterprise Linux (4+) | |
− | + | | デフォルト | |
− | |- | + | |- |
− | | | + | | CentOS |
− | | | + | | デフォルト |
− | |- | + | |- |
− | | | + | | Fedora (2+) |
− | | | + | | デフォルト |
− | |} | + | |- |
+ | | Ubuntu | ||
+ | | インストール | ||
+ | |- | ||
+ | | Debian | ||
+ | | アドオン | ||
+ | |- | ||
+ | | Gentoo | ||
+ | | インストール | ||
+ | |} | ||
+ | == セキュリティコンテキストとファイルシステム == | ||
+ | [[SELinux]] の [[SELinuxのセキュリティコンテキスト|セキュリティコンテキスト]] は、ファイルシステムの拡張属性(EXtended Attribute, xattr) に保存されます。 | ||
− | [[sestatus]] | + | ext2, ext3, ext4, jff2 などの [[ファイルシステム]] が拡張属性をサポートしています。 |
+ | == SELinux のモード == | ||
+ | * [[SELinuxのモード]] | ||
+ | ** [[sestatus]] | ||
+ | **: [[SELinux]] のステータスの確認 | ||
+ | ** [[getenforce]] | ||
+ | **: 動作モードの確認 | ||
+ | ** [[setenforce]] | ||
+ | **: 動作モードの変更 | ||
+ | ** [[/etc/selinux/config]] | ||
+ | **: 設定ファイル | ||
+ | == SELinux の設定 == | ||
+ | * [[SELinuxの設定ファイル]] | ||
+ | ** [[/etc/selinux/config]] | ||
+ | * SELinuxのポリシーファイル | ||
+ | * [[SELinuxのセキュリティコンテキスト]] | ||
+ | == ラベル == | ||
+ | * [[SELinux]] が無効のときに、作成されたファイルには、ラベルが設定されません。 | ||
+ | == ラベルの再設定 == | ||
+ | 起動時にファイルシステム全体にラベルが設定されます。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | sudo touch /.autorelabel | |
− | + | sudo shutdown -r now | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | == SELinuxのログ == | ||
+ | SELinuxには、拒否ログと監査ログの2つがあります。 | ||
+ | ;拒否ログ:SELinuxの設定で許可されていないアクセスに対して、出力されるログです。 | ||
+ | ;[[SELinuxの監査ログ]]:SELinuxの設定で「アクセスの証跡を残す」設定がされているアクセスに対して、出力されるログです。 | ||
+ | 拒否ログは、不正なアクセスの検知に利用できます。 | ||
+ | == 使い方 == | ||
=== ファイルやディレクトリのセキュリティコンテキストの確認方法 === | === ファイルやディレクトリのセキュリティコンテキストの確認方法 === | ||
− | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
$ ls -Z /etc/hosts.allow | $ ls -Z /etc/hosts.allow | ||
行106: | 行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]] |
− | * [[ | + | * [[getenforce]] |
+ | * [[setenforce]] | ||
− | + | * setsebool | |
+ | * sealert | ||
+ | * semanage | ||
+ | |||
+ | * audit2allow | ||
+ | * ausearch | ||
+ | |||
+ | * semodule | ||
+ | == 関連項目 == | ||
+ | * [[SELinuxのモード]] | ||
* [[Linux]] | * [[Linux]] | ||
− | * | + | * パーミッション |
* [[強制アクセス制御]] | * [[強制アクセス制御]] | ||
+ | |||
+ | * [[SELinux Policy Editor]] (SEEdit) | ||
+ | * SETroubleShoot | ||
+ | |||
+ | * [[auditd]] | ||
+ | * [[syslog]] | ||
+ | * [[Linux Security Modules]] (LSM) | ||
+ | * [[Access Vector Cache]] (AVC) | ||
+ | |||
+ | * [[セキュア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)