勉強前イメージ
一旦何も考えず構築するサーバはoffにするって感じ。
セキュリティのなにか?
よく簡単にwebサーバ立ててアクセスしたらselinuxに弾かれてることある
調査
Selinux とは?
Secure-Enhanced Linux の略
強制アクセス制御(MAC:Mandatory Access Control)と呼ばれるセキュリティを強化する機能である。
アメリカ国家安全保障局(NSA)が提供しているセキュリティ用のモジュールになります。
基本的には、Linuxをインストールすると最初からONになっている
元々Linuxではすべての権限がrootでは許可されており、root権限が何者かによって変更されると致命的な被害が及びことがあった。
SElinuxでType Enforcement(TE)
と ロールベースアクセス制御(RBAC)
で制御を行うことによってrootにも制限をかけることができ、被害を少なくなるように設計されている
Type Enforcement(TE) と ロールベースアクセス制御(RBAC)
-
Type Enforcement(TE)
- プロセスがアクセスできる場所を制限できる機能
-
プロセス : ドメイン
,リソース : タイプ
を割り当てて読み書きに対して制限をかける仕組み。 - アクセス権の設定は
アクセスベクタ
と呼ばれる
-
ロールベースアクセス制御(RBAC)
- ユーザがアクセスできる場所を制限できる機能
- ユーザごとにアクセスできるロールが決まっており、ロールごとにアクセス可能なドメイン(プロセス)が決まっている
- TEによってドメイン(プロセス)ごとにアクセス可能なタイプ(リソース)が決まっているので、ユーザのアクセス制限が行える
動作モード(enforcing/permissive/disabled)
- enforcing
- SElinux有効になっている。
- ルール以外の動作があれば止める
- permissive
- SElinux有効になっている。
- ルール以外の動作があっても、止めずにログに記録のみ行う。
- disabled
- SElinux無効になっている。
- ルール以外の動作があっても、止めないしログに記録も行わない。
動作モードの確認
- 確認方法
# getenforce
動作モードの変更方法
一時的に変更(再起動すると設定は元に戻る)
- 確認
# getenforce
Enforcing
- 変更
# setenforce Permissive
- 確認
# getenforce
Permissive
永久に変更(再起動しても元に戻らない)
- 確認
# getenforce
Enforcing
- 変更
vi /etc/selinux/config
==========
SELINUX=enforcing
==========
もしくは
cat /etc/selinux/config | sed -e s/^SELINUX=enforcing/SELINUX=disabled/
- 確認
# getenforce
Disabled
勉強後イメージ
そもそもrootもあまり権限持たないようにしようねって思考ってことかな?
プロセスについてもアクセスができないようにしようねってことか。
今回は簡単にしか調べられなかったけど、結構面白そう。