selinux與systemd

selinux :
service enhanced linux 安全增強的Linux 

軟件的安全性

選擇安全系數較高的系統
提高現有系統的安全性 

計算機的安全等級
D  最低的安全級別,提供最少的安全防護,系統訪問無限制。DOS   
C  訪問控制的權限,能夠實現可控的安全防護,個人賬戶管理,審計和資源隔離 Unix Linux windowNT
B  支持多級安全,通過硬件對安全數據進行保護
A  最高級別,提供驗證設計,要求數據從生產到傳輸都能夠實現狀態跟蹤

訪問控制:
基本要素:
主體:主動的實體,用戶、服務、進程等 
客體: 被動的實體,包括數據、文件等 
規則:主體對客體訪問的策略集合 
基本類型:
DAC訪問控制:自主訪問控制
通過權限列表(訪問控制列表)來限定特定主體對特定客體可以執行什么操作。
特點:
1、每個主體都擁有一個用戶名或組來獲取操作權限
2、每個客體都擁有一個限定主體對其訪問的訪問控制列表
3、訪問時,基于訪問控制列表檢查主體用戶標示以實現授權或拒絕。

進程的訪問權限
進程擁有超過其本該擁有的權限
管理員的訪問權限 
管理員擁有超過其本該有用的權限
普通用戶的訪問權限

MAC訪問控制:強制訪問控制

特點:
1、主體被分配一個安全等級 機密
2、客體被分配一個安全等級 絕密
3、訪問時,對主體和客體的安全級別進行對比,最終獲得授權或拒絕。

sandbox 沙箱 虛擬化技術 

折中方案:將部分服務或進程納入到MAC的訪問控制范圍即可。

阿里云盾 
ECS

對跨網絡訪問的服務或進程啟用MAC訪問控制機制

selinux:
配置文件:/etc/sysconfig/selinux /etc/selinux/config
工作模式:
strict   嚴格模式 ,每個進程都會受到Selinux的控制 
targeted  寬松模式,僅對部分進程啟用selinux的控制
啟動狀態:
enforcing 強制開啟 
permissive  警告級別,不阻止訪問,但會記錄日志 
disabled  禁用

臨時啟動:
getenforce 查看當前SELinux狀態
setenforce 0|1 
0 關閉SELinux
1 啟動SELinux 

格式:
subjcet  operation  object 

subject: 進程
object: 進程  文件
operation:操作 
open  close  read  write  chown  chmod 

生效條件:
1、SELinux是否生效,取決于subject和object是否處于同一個操作空間
2、操作類型必須滿足條件 

安全標簽:
用戶:角色:類型

查看與配置:
查看文件安全標簽(安全上下文):ls -lZ
查看進程安全標簽:ps auxZ

修改安全標簽:
chcon 修改安全標簽
-u 用戶
-r 角色
-t 類型(域)
-R 遞歸
restorecon  還原安全標簽
-R 遞歸 
修改布爾值
添加/刪除進程或服務本身開啟的功能模塊 

getsebool 模塊名稱
-a 查看所有布爾值

setsebool 模塊名稱 on/off 
-P 將修改結果保存進本地磁盤 
日志文件:

/var/log/audit/audit.log

systemd 
1、啟動流程:
POST -> BIOS -> MBR bootloader -> kernel 臨時根 -> 根文件系統 -> init 

能夠管理、控制init進程的模塊,就是init系統 
能夠讓系統在用戶預定義的級別下運行 

shell  
x-window 

設備管理器:
sysvinit : CentOS 5
第一個廣泛應用的init系統 
簡單、穩定:
只需要編寫服務的啟動腳本
設置啟動順序時,通過連接即可完成
執行效率較高,需要時間較長
對新的Linux特性 支持不夠好  
 
upstart:  CentOS 6 
啟動速度大大提高 
反向兼容sysvinit  
設計更先進 

systemd:  CentOS 7 
替代了所有的sysvinit的功能,并且添加更多的功能。
極大提高了啟動速度 
標準化管理 
按需激活進程 
分配套接字,但不啟動服務
系統狀態快照 

systemd配置:
核心:unit 

常見unit類型:
service類型  服務類型  
擴展名.service 
定義系統服務
socket類型  套接字類型 
擴展名.socket 
標示進程間通信時使用到的socket文件 
device類型  設備類型
擴展名.device 
定義內核能夠識別的設備
mount類型  掛載點類型 
擴展名.mount 
定義文件系統的默認掛載點
cgroup 控制組 實現內核資源合理分配的機制
automount類型  自動掛載類型 
擴展名.automount 
定義文件系統自動掛載點設備 
target類型 啟動目標類型 
擴展名.target  用來模擬實現“運行級別”
snapshot類型 快照類型
擴展名.snapshot 
用來管理系統快照
swap類型 交換分區類型 
擴展名.swap 
用來管理和定義交換分區
path類型 監視文件類型 
擴展名.path 
用來定義文件系統的某一文件或目錄 
timer 任務計劃
slice  資源控制
scope  外部進程 

關鍵特性:
1、基于socket的激活機制 
2、基于bus的激活機制 
若總線上存在對某一服務的訪問,可以基于該請求,將設備激活
3、基于device的激活機制
當接入新設備時,激活device unit、mount unit、automount unit
首先創建設備文件,再自動掛載到某掛載點,若掛載點不存在,則自動創建 。
4、基于PATH的激活機制 
5、系統快照
能夠將各個unit的狀態信息保存至持久存儲設備中 
6、向后兼容 sysvinit 
/etc/init.d/服務腳本 也能夠通過 systemd 啟動 

不兼容的特性:
1、systemctl的命令是固定不變的 
2、若服務不是通過systemctl啟動的,那么systemctl無法與之通信

管理系統服務:
1、命令
service -> systemctl 
2、啟動服務
service NAME start -> systemctl start NAME.service
3、關閉服務
service NAME stop -> systemctl stop NAME.service
4、重啟 
service NAME restart -> systemctl restart NAME.service 
5、查看狀態
service NAME status -> systemctl status NAME.service
6、條件式重啟
若服務已啟動,則重啟;若服務未啟動,則放棄操作
systemctl try-restart NAME.service 
7、重載或重啟
systemctl reload-or-restart 
重新加載未成功,則重新啟動 
8、重載或條件式重啟
systemctl reload-or-try-restart NAME.service 
9、查看服務的當前的激活狀態
systemctl is-active NAME.service
服務啟動則返回active;服務未啟動則返回unknown 
10、查看所有已激活的服務 
systemctl list-units 
11、查看所有服務
systemctl list-units -a 
12、查看服務是否開機自啟:
chkconfig –list 
systemctl is-enabled NAME.service
13、是否禁止用戶設置服務開機啟動狀態 
systemctl mask NAME.service 
systemctl unmask NAME.service 

管理target unit 
1、設置運行級別
0 -> runlevel0.target poweroff.target 
1 -> runlevel1.target multi-user.target 
2 -> runlevel2.target multi-user.target
3 -> runlevel3.target multi-user.target
  4 -> runlevel4.target multi-user.target
5 -> runlevel5.target graphical.target
6 -> runlevel6.target reboot.target 
2、查看當前運行級別 
runlevel 
systemctl list-units -type target 
3、切換運行級別
init N
systemctl isolate NAME.target  
4、查看默認運行級別 
systemctl get-default 
5、修改默認運行級別 
systemctl set-default NAME.target 
6、切換救援模式 
systemctl rescue

其它相關命令:
關機:systemctl halt.target 
掛起:systemctl suspend 
快照:systemctl hibernate

配置文件:
【unit】 
description  unit的基本描述信息 
after 與before作用相反 。  
【service】
type 定義啟動腳本的類型 
simple 默認值,定義execstart選項指定的程序是主程序
forking  定義execstart選項調用的某一子進程做主程序。 
notify  進程在收到notify函數的通知時再啟動 。

【install】  
wantedby 運行依賴的模式  弱依賴
requiredby 運行依賴的模式

原創文章,作者:yaobinbin,如若轉載,請注明出處:http://www.www58058.com/76703

(1)
yaobinbinyaobinbin
上一篇 2017-05-22
下一篇 2017-05-22

相關推薦

  • 初識文件系統和軟硬鏈接

    什么是文件系統?         磁盤分區以后必須設置磁盤的文件系統才可以正式使用,文件系統定義了文件存儲的類型,也就是這個文件要按照怎樣的方式存入磁盤分區。         linux中文件系統的類…

    2017-07-20
  • LVM邏輯卷管理器(Logical Volume Manager)

    邏輯卷管理器(Logical Volume Manager) 簡介      LVM的做法是將幾個物理的分區通過軟件組合成為一塊看起來是獨立的大磁盤(VG),然后將這塊大磁盤再分成可以使用的分區(LV),最終就能夠掛載使用了。內部通過PE來進行擴展或縮小。 PV(PhysicalVolume)物理卷 用fdisk命令調整系統標識…

    Linux干貨 2016-09-01
  • bash腳本初探

                              (注)$@和$*的區別,以及$0..$n [root@ _6_ ~]# cat weizhi.sh  #!/bin/bash e…

    Linux干貨 2016-08-15
  • 系統基礎之壓縮歸檔工具詳解

    壓縮和解壓縮工具 概論  在使用操作系統時,我們常會遇到大文件,會使我們很頭疼.在面對時間和空間上的選擇,只能選擇空間,這就要用到壓縮工具和歸檔工具,下面為大家一一介紹.  壓縮文件只壓縮文本格式的文件,通常不壓縮已經是壓縮的文件.  壓縮文件就會涉及到壓縮比:    原理:通過了解文本文件的數據形式,運用壓…

    Linux干貨 2016-08-18
  • raid各級別簡介

    一. raid 是什么       RAID:(Redundant Array of indenpensive Disk) 獨立磁盤冗余陣列: 磁盤陣列是把多個磁盤組成一個陣列,當作單一磁盤使用,它將數據以分段(striping)的方式儲存在不同的磁盤中,存取數據時,陣列中的相關磁盤一起動作,大幅減低數據的存…

    Linux干貨 2016-02-14
  • 推薦-CentOS 6的系統啟動流程

    ?一、POST加電自檢     按下電源后ROM芯片中的CMOS程序執行并檢測CPU、內存等設備是否存在并正常運行,CMOS中的程序叫BIOS,可以設置硬盤接口,網卡聲卡開關之類的簡單設置。一般PC機主板上有一個紐扣電池,這個電池就是給ROM供電的,可以保證主板斷電后BIOS的一些基本設置不會重置。  &nb…

    Linux干貨 2016-04-10
欧美性久久久久