【Linux】 SELinux

■ はじめに

SELinux についてメモ。

目次

【1】SELinux
 補足:任意アクセス制御と強制アクセス制御
【2】利点
【3】機能
【4】動作モード
【5】設定変更方法
【6】関連コマンド
 1)sestatusコマンド
 2)chconコマンド
 3)restoreconコマンド
 4)semanageコマンド

【1】SELinux

* SELinux = Security-Enhanced-Linux 
 => 【直訳】セキュリティ強化されたLinux
* Linuxに強制アクセス制御機能 (MAC: Mandatory Access Control) 
 を加えるモジュール

補足:任意アクセス制御と強制アクセス制御

https://www.jpcert.or.jp/tips/2007/wr071001.html

より抜粋

任意アクセス制御(DAC:Discretionary Access Control)

* リソースの所有者にアクセス制御を任せる方式

強制アクセス制御(MAC: Mandatory Access Control)

* リソース所有者の意図に関らず、
 システムの管理者により一定のアクセス制御を強制する方式

【2】利点

 * 細かなアクセス制御が可能になり、
 セキュリティ強化になる

補足事項

* サーバ侵入されたとしても被害を最小限に食い止めるため
 の仕組みで、あくまで事後防衛手段である
 => 侵入自体を防衛するための仕組みではないことに注意

【3】機能

[1] TE(type enforcement)
[2] ドメイン遷移
[3] RBAC(Role Based Access Control:ロールベースアクセス制御)
[4] MAC(Mandatory Access Control:強制アクセス制御)

【4】動作モード

[1] Enforcing

* SELinux 有効
* ルール外の動作があれば止める

[2] Permissive

* SELinux 有効
* ただしルール外の動作はログに記録するのみ

[3] Disable

* SELinux 無効。

【5】設定変更方法

sudo vi /etc/selinux/config
~~~~~~
SELINUX=permissive
~~~~~~

# OS再起動
sudo reboot

【6】関連コマンド

【関連用語】SELinux コンテキスト

 * ls コマンドや ps コマンドに -Z オプションを
 つけることで確認でき、「:」で区切られた 4 つの項目からなり、
 それぞれユーザー、ロール、タイプ、機密ラベルで構成

1)sestatusコマンド

* SELinux の状態を表示

sestatus

2)chconコマンド

* chcon = CHange file selinux security CONtext
* ファイルのSELinuxコンテキストを一時的に変更

sudo chcon -R -t httpd_sys_rw_content_t /var/www/cgi-bin

sudo chcon -R -t httpd_sys_rw_content_t /var/www/taskboard

3)restoreconコマンド

* RESTORE file(s) default selinux security CONtext
* デフォルトの状態に戻す

sudo restorecon -R /var/www/cgi-bin

4)semanageコマンド

* SElinux  policy MANAGEment tool
* ファイルのSELinuxコンテキストを永続的に変更

sudo semanage fcontext -a -t httpd_sys_rw_content_t /var/www/cgi-bin

参考文献

http://itpro.nikkeibp.co.jp/article/COLUMN/20060718/243512/
https://www.designet.co.jp/faq/term/?id=U0VMaW51eA
使用を推進するサイト
https://qiita.com/yunano/items/857ab36faa0d695573dd
https://blog.fenrir-inc.com/jp/2016/09/selinux.html
Linuxコマンド
http://mimumimu.net/blog/2012/01/31/selinux-%E3%81%A7-restorecon-%E3%81%97%E3%81%A6%E3%81%82%E3%81%86%E3%81%82%E3%81%86%E3%80%82/
http://www.torutk.com/projects/swe/wiki/SELinux#%E8%A8%AD%E5%AE%9A%E7%B3%BB%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89
https://blog.fenrir-inc.com/jp/2016/09/selinux.html