linux安全(一)

 ============高級安全============

 
 
計算機防止進入,和進行計算機會需要些什麼驗證步驟,怎麼控制他能幹什麼,到他幹了些什麼我們能知道。
 
 
--物理安全-----------要保證主機的是安全的,不在物理上丟失。這裏面不討論
 -- 引導-- ----別讓進入系統
安全--  --主機--  -- 密碼安全---驗證方式,安全策略安全算法
 -- 權限 ------基本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
 
**********************************************
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章