這裡寫目錄标題
- 一 賬号安全控制
- 二 密碼安全控制
- 三指令曆史限制
- 四 使用su指令切換使用者
- 五 密碼驗證
- 六 限制使用su指令的使用者
- 七 PAM安全認證流程
- 八 PAM驗證的構成
- 九 PAM認證原理
- 十 su指令的安全隐患
- 十一 PAM可插拔式認證子產品
- 十二 使用sudo機制提升權限
- 十三 GRUB限制
一 賬号安全控制
1 賬号安全基本措施
- 系統賬号清理
- 将非登入使用者的shell設為/sbin/nologin
- 鎖定長期不使用的賬号
usermod -L [賬号名] #####鎖定賬号
passwd -S [賬号名] ######檢視帳号狀态
usermod -U [賬号名] ######解鎖帳号
- 删除無用的賬号
- 鎖定賬号檔案passwd、shadow
[[email protected] ~]# chattr +i /etc/passwd /etc/shadow #####鎖定檔案
[[email protected] ~]# lsattr /etc/passwd /etc/shadow #####檢視為鎖定
----i----------- /etc/passwd
----i----------- /etc/shadow
[[email protected] ~]# chattr -i /etc/passwd /etc/shadow #####解鎖檔案
[[email protected] ~]# lsattr /etc/passwd /etc/shadow #####檢視為解鎖狀态
--------------- /etc/passwd
--------------- /etc/shadow
1、“+”:在原有參數設定基礎上,追加參數;
2、“-”:在原有參數設定基礎上,移除參數;
3、“=”;更新為指定參數設定。
“A”:檔案或目錄的atime(access time)不可被修改(modified),可以有效預防例如手提電腦,磁盤I/O錯誤的發生;
“S”:硬碟I/O同步選項,功能類似sync;
“a”:即append,設定參數後,隻能向檔案中添加資料,而不能删除,多用來伺服器日志檔案安全,隻有root才能設定這個屬性;
“c”,即compresse,設定檔案是否經壓縮後再存儲,讀取時需要經過自動解壓操作;
“d”:即no dump 設定檔案不能成為dump程式的備份目标;
“i”:設定檔案不能被删除、改名、設定連結關系,同時不能寫入或新增内容。i參數對檔案系統的安全設定有很大幫助;
“j”:即journal,設定此參數使得當通過mount參數:data=ordered或者data=writeback挂載的檔案系統,檔案在寫入時會被記錄(在journal中)。如果filesystem被設定參數為data=journal,則該參數自動失效;
“s”:保密性地删除檔案或者目錄,即硬碟空間被全部收回;
“u”:與s相反,當設定為u時,資料内容其實還存在磁盤中,可以用于undeletion。
各參數選項中常用到的是“a”和“i”。“a”選項強制隻可添加不可删除,多用于日志系統的安全設定,而“i”是更為嚴格的安全設定,隻有superuser(root)或具有CAP_Linux_IMMUYABLE處理能力(辨別)的程序能夠施加該選項。
二 密碼安全控制
1、設定密碼有效期;
2、要求使用者下次登陸修改密碼。
vi /etc/login.defs
……
PASS_MAX_DATS 30
(适用于建立使用者)
chage –M 30 aaa (适用于已有使用者)
chage –d 0 aaa (強制在下次登入時更改密碼)
chage -d 0 aaa
init 6

三指令曆史限制
1、減少記錄的指令條數;
vi /etc/profile
HISTSIZE=200
2、登出時自動清空曆史指令。
vi ~/.bash_logout
history -c
clear
history –c
該指令可以清空本次登入的所有輸出指令,但不清空.bash_history檔案,是以下次登陸後,舊指令還将出現,曆史指令是存在于目前使用者根目錄下的./bash_history檔案。
echo > $home./bash_history
每個使用者根目錄下都有一個.bash_history檔案用于儲存曆史指令,當每次登出時,本次登陸所執行的指令将被寫入該檔案。是以可以直接清空該檔案,下次登入上次儲存的指令将消失,清空效果将在下次登陸生效。
四 使用su指令切換使用者
1、用途:Substitute User 切換使用者;
2、格式:su 目标使用者
五 密碼驗證
1、root——任意使用者 不驗證密碼;
2、普通使用者——其他使用者 驗證目标使用者的密碼。
六 限制使用su指令的使用者
1、将允許使用su指令的使用者加入wheel組;
2、啟用pam_wheel認證子產品。
七 PAM安全認證流程
控制類型也稱做Control Flags,用于PAM驗證類型的傳回結果。
1、required驗證失敗時仍然繼續,但傳回Fail;
2、requisite驗證失敗時立即結束整個驗證過程,傳回Fail;
3、sufficien驗證成功則立即傳回,不再繼續,否則忽略結果并繼續;
4、optional不用于驗證,隻顯示資訊(通常用于session類型)
八 PAM驗證的構成
1、看某個程式是否支援PAM認證,可以用ls指令
例:檢視su是否支援PAM子產品認證
[[email protected] ~]# ls /etc/pam.d | grep su
ksu
su
sudo
sudo-i
su-l
[[email protected] ~]#
2、檢視su的PAM配置檔案
[[email protected] ~]# cat /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so
[[email protected] ~]#
1、每一行都是一個獨立的認證過程;
2、每一行可以區分為三個字段
認證類型,控制類型,PAM子產品及其參數
PAM認證類型包括四種:
認證管理(authentication management):接受使用者名稱和密碼,進而對該使用者的密碼進行認證;
賬号管理(account management):檢查賬戶是否被允許登陸系統,賬号是否已經過期,賬号的登陸是否有時間段的限制等;
密碼管理(password management):主要用來修改使用者的密碼;
會話管理(session management):主要是提供對會話的管理和記賬。
九 PAM認證原理
1、一般遵循的順序:
Service(服務)——PAM(配置檔案)——pam_*.so
2、首先要确定哪一項服務,然後加載相應的PAM的配置檔案(位于/etc/pam.d下),最後調用認證檔案(位于/lib/security下)進行安全認證
3、使用者通路伺服器時,伺服器的某一服務程式把使用者的請求發送到PAM子產品進行認證
4、不同的應用程式所對應的PAM子產品是不同的
十 su指令的安全隐患
1、預設情況下,任何使用者都允許使用su指令,有機會反複嘗試其他使用者(如root)的登陸密碼,帶來安全風險;
2、為了加強su指令的使用控制,可借助于PAM認證子產品,隻允許極個别使用者使用su指令進行切換。
十一 PAM可插拔式認證子產品
1、是一種高效而且靈活便利的使用者級别的認證方式;
2、也是目前Linux伺服器普遍使用的認證方式。
十二 使用sudo機制提升權限
1、sudo指令的用途及用法
(1)、以其他身份(如root)執行授權的指令
(2)、用法:sudo 授權指令
2、配置sudo授權
3、4個ALL代表的含義
(1)、從左到右第一個ALL代表的是使用者;
(2)、從左到右第二個ALL代表的是機器;
(3)、從左到右第三個ALL代表的是新使用者身份(sun_as_user,如root);
(4)、從左到右第四個ALL代表的是指令。
sudo –l可以檢視結果
[[email protected] ~]# sudo -l
比對 %2$s 上 %1$s 的預設條目:
!visiblepw, always_set_home, match_group_by_gid, env_reset,
env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
使用者 root 可以在 localhost 上運作以下指令:
(ALL) ALL
檢視sudo操作記錄
(1)、需啟用Defaults logfile配置;
(2)、預設日志檔案:/var/log/sudo
十三 GRUB限制
1、使用grub2-mkpasswd-pdkdf2生成密鑰;
2、修改/etc/grub.d/00_header檔案,添加密鑰記錄;
3、生成新的grub.cfg配置檔案