============高級安全============
計算機防止進入,和進行計算機會需要些什麼驗證步驟,怎麼控制他能幹什麼,到他幹了些什麼我們能知道。
--物理安全-----------要保證主機的是安全的,不在物理上丟失。這裏面不討論
-- 引導-- ----別讓進入系統
安全-- --主機-- -- 密碼安全---驗證方式,安全策略安全算法
-- 權限 ------基本ugo+rwx 高級s+ugid,stiky,acl這此是內核權限,還的文件權限服務權限
--服務
--網絡
主機的安全,---我們討論的內容。(引導,密碼,權限)
(1)本地安全 (主機安全)
訪問控制:首先是引導安全:grub加密(GRUB 登錄驗證),bios加密 。
密碼安全: 密碼學(驗證,加密,完整性檢測)
(2) 密碼破解方式:
1、反向破解
2、暴力破解 利用字典 解決辦法:提高密碼強度加強密碼複雜程度、長度、有規律的密碼,關閉root用戶,另外建立一個0uid用戶就可以了
3、社攻 聲稱自己是管理員,要你告訴密碼
解決辦法:
(1)提高密碼複雜度 ---> 防止暴力破解
(2)密碼定期修改 ---> 防止***得出碰撞值(chage)
(3)使用shadow文件 ---> 權限限制不讓其他用戶訪問(authconfig-tui)
(4)使用更加複雜的加密算法(默認MD5)
本地的身份驗證:主要是通過login進程來驗證的。/etc/shadow,/etc/shadow 驗證的是:這2個文件 ,密碼保存在shadow中。使用md5算法比較安全。
authconfig -tui 驗證配置命令,更改加密的方式,修改密碼保存在那裏,是保存早shadow裏還是直接保存在passwd中。 如果我們取消md5算法,默認使用des,他們都是
散列算法,但是des算法沒有那麼複雜。可以到shadow查看密碼文件。把md5和shadow文件取消並使用 passwd 命令再次設置密碼再看看/etc/passwd文件,你會發現密碼已經
到/etc/passwd文件裏了,並且加密方式也不同了。傳統Unix系統使用 DES加密 Linux系統中,若以 $1$ 開頭就是MD5算法(打開/etc/shadow文件看看就知道了)
login是我們登錄的驗證程序
[root@stu86 ~]# vim /etc/shadow 放密碼
root:$1$cJPio2I4$JW/ABiyBnce4JuwtE5b/o0:14530:0:99999:7:1:2:
root:用戶名
$1$cJPio2I4$JW/ABiyBnce4JuwtE5b/o0: md5算法
14530: 密碼修改時間,以天爲單位,1970年以後的第14530天更改過root密碼
0: 密碼修改時間的最短時間 0 --是限制什麼時間內不能修改,1 是一天內。0是無限
99999: 密碼多久時間必須改,可以用這個選項強制改密碼,--過了這麼長時間一定要改
7: 密碼到期時間警告信息告訴你,要改密碼 密碼警告時間,提前7天警告要改密碼
1: 密碼過了多久就失效了
2: 保留的
[root@ stationx ~]# chage --修改時間
用法:chage [選項] 用戶名
選項:
-d, --lastday 最近日期 將最近一次密碼設置時間設爲“最近日期”
-E, --expiredate 過期日期 將帳戶過期時間設爲“過期日期”
-h, --help 顯示此幫助信息並退出
-I, --inactive 失效密碼 將因過期而失效的密碼設爲“失效密碼”
-l, --list 顯示帳戶年齡信息
-m, --mindays 最小天數 將兩次改變密碼之間相距的最小天數設爲“最小天數”
-M, --maxdays 最大天數 將兩次改變密碼之間相距的最大天數設爲“最大天數”
-W, --warndays 警告天數 將過期警告天數設爲“警告天數”
例子: [root@ stationx ~]# chage -E 2010-10-30 shrek shrek用戶 在這個時候帳戶過期!!
*************************************************************************************************
(3)權限安全 : Linux把進程是用戶對象進程對文件進行訪問控制. 用戶分爲2類: uid=0 和 uid!=0 爲0帳戶的什麼都能幹, 不爲0的就有限制。
|| --------------------> ||
subject object
進程 文件
A、文件基本權限
ugo+-rwx 針對目錄和文件 ,在目錄裏是創建mkdir和刪除rm文件,讀ls 文件是編輯edit和讀cat
總結一:文件的刪除與文件本身沒有任何關係,只與上級目錄的w權限有關。目錄的x相當與cd命令,r相當於ls命令
B、文件的高級權限: Suid Sgid STiky解決文件和目錄, suid對可執行文件,guid針對目錄,sticky針對目錄下的不同用戶誤刪除別人文件問題
-rwsr-xr-x 1 root root 22960 2006-07-17 /usr/bin/passwd #用戶s權限
-rwsr-xr-x 1 root root 23960 2008-10-31 /bin/su #用戶s權限
[root@stu86 aa]# chmod o+t aa/ #root用戶對aa目錄加t粘貼爲權限
[aa@stu86 aa]$ touch abc #切換普通aa用戶建立一個abc文件
[user1@stu86 aa]$ rm -rf abc #切換user1普通用戶無法刪除aa用戶建立的abc文件
rm: 無法刪除 “abc”: 不允許的操作
總結二、
SUID:只對二進制可執行文件加權限,任何人執行可執行文件都已文件的擁有者的身份執行,標記位s。如果無x權限顯示大寫的S
SGID:針對二進制文件和目錄加權限,任何人執行可執行文件都已文件的擁有者的身份執行;如果是對目錄加權限,那麼目錄下建立的文件的權限繼承目錄的權限。標記
位s。如果無x權限顯示大寫的S
Ticky:只對目錄可以加權限,目錄中a用戶建立的文件,必須是a用戶纔可以刪除。root是超級用戶不受此限制
C、文件訪問控制列表facl 更細緻的設置文件權限 ,原因是基本權限不能滿足權限的需求 facl解決ugo對用戶分類太大的問題,指定對某一個目錄和組的權限!
setfacl ----設置
getfacl ----查看
getfacl readme.txt
setfacl -m user:zorro:rw readme.txt ---修改
serfacl -x u:zorro readme.txt ---刪除
getfacl install.log #getfacl查看文件權限
setfacl -m user:user1:rw install.log #setfacl添加user1權限rw權限
setfacl -x u:user1 install.log #刪除user1權限rw
還可以設置組權限、其他用戶權限,以及mask權限
總結三、setfacl可以設置更細緻的權限,彌補基本權限的不足。例如兩個用戶a和b都想對c文件有都是用戶的擁有者,基本權限只能做到的只是加入到這個組中,並不能
使這個文件是兩個用戶的擁有者,setfacl可以做到。
D、文件系統的特殊權限: 只能在ext2/3這樣的文件系統才能用這個權限,針對特定的用戶設置權限chattr權限: lsattr查看權限,chattr更改權限
[root@stu86 ~]# man chattr
+a 只能追加
-a 刪除
= 去掉原來的所有的權限,更改爲自己想設置的權限屬性。
c 壓縮 (是壓縮之後存,解壓之後取,自動壓縮用戶不用手動壓縮)
d 在備份的時候跳過 (有3中備份,完成備份,詫異和增量備份)自動壓縮,對用戶透明,存取空間變高
i 不可變
j 行程 -沒有數據恢復的功能。相當於日誌(只能在ext3裏用,ext2裏沒有日誌功能)一個文件名連接到inod是硬連接 名詞metadasta
日誌journalling解決文件一致性,加快文件系統檢測,data journalling對數據進行日誌。每隔5秒,內核將緩存中的數據寫入磁盤
3種方式記日誌 1.只記inod號
2.記inod 和 block 號
3.看系統忙不忙,不忙就可以記block號。忙就不記了
s 安全刪除要清零 (就是不想要恢復這個文件,底格7編就恢復不出來數據了) 就是完全的刪除,既刪除inod號,又刪除blaock裏面的數據,並且無法恢復
u 便於恢復,inod 仍然保留。 便於恢復數據。undeletable
A 優化,讀文件的時候不更改寫的權限 no atime updates 時間不變,取消時間更新,對文件不更新
D synchronous directory updates(D) 同步目錄更新,修改目錄時直接同步,不經過緩存。直接寫入硬盤。日誌可以同步,因爲小,不頻繁,速度快。
S synchronous updates(S) 同步文件更新,直接同步,不經過緩存。
t 尾部不合並
T 不顯示目錄結構
chattr +a install.log #添加權限,只能追加,不能刪除文件,不能更改文件內容
chattr -a install.log #刪除權限
chattr =i aa #把所有的權限去掉,就是爲i權限,可以刪除和寫入,但是不能更改文件的內容
lsattr b #查看系統權限
總結四、系統權限常用的有a、i、s、j、d,但是這些權限使用的前提條件是必須是ext3文件系統。
inode--->metadata 亞數據,block--->data 數據
硬連結 索引
文件名---->inode---------->block
一個文件名是一個硬連接,刪除一個文件,文件inode對應計數減1
inode爲0表示文件的inode和block可以被隨機佔用
五、系統服務的權限
磁盤配額 quota權限 掛載的時候有權限 mount權限mount 默認以rw方式掛載,mount -o r /home,還有selinux,本身就是一個訪問控制
訪問控制概念:對主體,客體定義規則
linux:主體是進程,客體是文件*****
文件系統掛載參數中的權限設置,以同步只讀的方式掛載,Mout -o r,sync /dev/sda5 /mnt
********************************************************************************************************
不能用root身份登錄,會造成安全隱患,系統管理員都用普通用戶執行命令在切換身份,怕誤操作
設置一個可以使用sudo 的用戶列表
[root@ stationx ~]# vim /etc/sudoers
root ALL=(ALL) ALL 表示:root在所有文件下。
[root@ stationx ~]# visudo ---這個命令就是執行vim /etc/sudoers 這個命令,
[root@stu86 ~]# vim /etc/sudoers 可以設置sudo的用戶列表,需要密碼就是本是用戶的密碼
82 ## Allows people in group wheel to run all commands
83 # %wheel ALL=(ALL) ALL
84
85 ## Same thing without a password
86 # %wheel ALL=(ALL) NOPASSWD: ALL
87 用戶 所有密碼 無密碼
88 ## Allows members of the users group to mount and unmount the
89 ## cdrom as root
90 # %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
92 ## Allows members of the users group to shutdown this system
93 # %users localhost=/sbin/shutdown -h now
[root@stu86 ~]# visudo
***********************************************************************************************************
1.對於目錄來說,沒有x權限就讀不了目錄裏面的文件,查看不了目錄裏的子目錄和權限 就是ls用不了。但是沒有x權限,還是能知道時原文件個數,但是不能寫也不能看。
2. 對於目錄來說,沒有W權限就不能創建和刪除目錄裏的文件和子目錄
3.對於目錄來說,沒有r權限 只有在目錄裏不能用ls別的操作都可以。
文件的創建 刪除是會按所在文件的目錄來決定的,
如果實現每個人都可以創建文件,但每個人只能刪除每個人自己的文件,要加權限 +t
如果uid=0 的用戶不受限制 uid不等於0 受限制
給某些命令在執行時,臨時附於命令所在用戶的的權限,這就是suid sgid
**********************************************