【Linux】【セキュリティ】 SELinux (Security-Enhanced-Linux)

SELinux

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

■ 利点

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

補足事項

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

■ 機能

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

■ 動作モード

[1] Enforcing: SELinux 有効。ルール外の動作があれば止める。
[2] Permissive: SELinux 有効。ただしルール外の動作はログに記録するのみ。
[3] Disable: SELinux 無効。

設定変更

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

# OS再起動
sudo reboot

■ 関連コマンド

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

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

sestatusコマンド

 * SELinux の状態を表示

sestatus

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

restoreconコマンド

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

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

semanageコマンド

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

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

参考文献

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