CentOS 運維 - 讓你的Linux服務器更安全
- 一、賬戶安全管理
- ①清理系統賬戶
- ②密碼安全控制
- ?設定新用戶的密碼有效期
- ?強制使某個用戶下次登陸時更換密碼
- ③防止歷史記錄泄露
- ?減少記錄的命令條數
- ?登錄時自動清理歷史記錄
- ④終端自動注銷
- ⑤su用戶切換命令
- ?限制用戶進行切換用戶操作
- ?給某個用戶切換用戶操作的權限
- 二、PAM安全認證
- ①PAM 認證原理
- 三、賬戶權限管理
- ①單個用戶權限
- ②別名組權限
- 四、GRUB保護
- ①設定GRUB密碼
- ?使用grub2-mkpasswd-pbkdf2生成密鑰

一、賬戶安全管理
①清理系統賬戶
- 將非登陸用戶的Shell設為/sbin/nologin或者/bin/falsh
usermod -s /sbin/nologin 用戶名
- 鎖定長期不使用的賬號
usermod -L 用戶名 //鎖定用戶賬戶
passwd -l 用戶名 //鎖定用戶密碼
passwd -S 用戶名 //查看用戶狀態
- 洗掉無用的賬號
userdel -r 用戶名 //洗掉用戶及其宿主目錄
- 清空一個賬號密碼
passwd -d 用戶名 //清空賬戶密碼
- 鎖定賬號檔案passwd、shadow
chattr +i /etc/passwd /etc/shadow //鎖定檔案
lsattr /etc/passwd /etc/shadow //查看檔案狀態
chattr -i /etc/passwd /etc/shadow //解鎖檔案

- 禁止root用戶登錄
在 Linux 系統中,login 程式會讀取/etc/securetty 檔案,以決定允許 root 用戶從哪些終端(安全終端)登錄系統
vi /etc/securetty
#tty5
//想要不讓在哪個終端登陸就在該終端前加注釋#
tty6
- 禁止普通用戶登錄
- login 程式會檢查/etc/nologin 檔案是否存在,如果存在,則拒絕普通用戶登錄系統(root 用戶不受限制)
touch /etc/nologin
//創建/etc/nologin檔案即禁止普通用戶登錄
rm -rf /etc/nologin
//洗掉該檔案即取消登錄限制
②密碼安全控制
chage -M 日期 用戶 //設定用戶密碼有效期
chage -E xxxx-xx-xx //設定過期日期
[xxxx為年][xx為月]-[xx為日]

?設定新用戶的密碼有效期
vim /etc/login.defs //修改密碼組態檔適用于新建用戶

?強制使某個用戶下次登陸時更換密碼
chage -d 0 用戶 //強制在下次登陸時更改密碼
③防止歷史記錄泄露
不法分子會查看上次輸入的記錄,可能導致root密碼等重要資訊揭露
?減少記錄的命令條數
vi /etc/profile //編輯全域變陣列態檔
export HISTZIZE=200 //將內容插入最后一行

輸出的歷史記錄將只保留200條
?登錄時自動清理歷史記錄
vim ~/.bashrc
echo " " > ~/.bash_history //將內容插入最后一行

④終端自動注銷
當終端處于閑置一段時間后實作自動注銷
vim /etc/profile //編輯全域變陣列態檔
export TMOUT=600 //將內容插入最后一行

⑤su用戶切換命令
su命令使得每個用戶都具有反復嘗試其他用戶的登陸密碼,若是root用戶,則風險更大
- 將允許使用su命令的用戶加入wheel組
- 啟用pam_wheel認證模塊
vim /etc/pam.d/su

- 以上兩行是默認狀態(即開啟第一行,注釋第二行),這種狀態下是允許所有用戶間使用
su命令進行切換的 - 兩行都注釋也是允許所有用戶都能使用
su命令,但root下使用su切換到其他普通用戶需要輸入密碼;如果第一行不注釋,則root使用su切換普通用戶就不需要輸入密碼
pam_rootok.so模塊的主要作用是使uid為0的用戶,即 root用戶能夠直接通過認證而不用輸入密碼
- 如果開啟第二行,表示只有
root用戶和wheel組內的用戶才可以使用su命令 - 如果注釋第一行,開啟第二行,表示只有
wheel組內的用戶才能使用su命令,root用戶也被禁用su命令
?第一列代表PAM認證模塊型別
①auth:對用戶身份進行識別,如提示輸入密碼,判斷是否為root,
②account:對賬號各項屬性進行檢查,如是否允許登錄系統,帳號是否已經過期,是否達到最大用戶數等,
③password:使用用戶資訊來更新資料,如修改用戶密碼,
④session:定義登錄前以及退出后所要進行的會話操作管理,如登錄連接資訊,用戶資料的打開和關閉,掛載檔案系統,
?第二列代表PAM控制標記
①required:表示需要回傳一個成功值,如果回傳失敗,不會立刻將失敗結果回傳,而是繼續進行同型別的下一驗證,所有此型別的模塊都執行完成后,再回傳失敗,
②requisite:與required類似,但如果此模塊回傳失敗,則立刻回傳失敗并表示此型別失敗,
③sufficient:如果此模塊回傳成功,則直接向程式回傳成功,表示此類成功,如果失敗,也不影響這型別的回傳值,
④optional:不進行成功與否的回傳,一般不用于驗證,只是顯示資訊(通常用于 session 型別),
⑤include:表示在驗證程序中呼叫其他的PAM組態檔,比如很多應用通過完整呼叫/etc/pam.d/system-auth(主要負責用戶登錄系統的認證作業)來實作認證而不需要重新逐一去寫配置項,
?第三列代表PAM模塊,默認是在/lib64/security/目錄下,如果不在此默認路徑下,要填寫絕對路徑,
?第四列代表PAM模塊的引數,這個需要根據所使用的模塊來添加,
?限制用戶進行切換用戶操作
vim /etc/pam.d/su
#auth required pam_wheel.so use_uid
//去除此段的#


?給某個用戶切換用戶操作的權限
gpasswd -a fox wheel //將用戶“fox”加入到whell組中

二、PAM安全認證
?Linux-PAM是linux可插拔認證模塊,是一套可定制、可動態加載的共享庫,使本地系統管理員可以隨意選擇程式的認證方式
?PAM使用/etc/pam.d/下的組態檔,來管理對程式的認證方式,應用程式呼叫相應的PAM組態檔,從而呼叫本地的認證模塊,模塊放置在/lib64/security下,以加載動態庫的形式進行認證,比如使用su命令時,系統會提示輸入root用戶的密碼,這就是su命令通過呼叫PAM模塊實作的
查看su操作記錄
安全日志檔案:/var/log/secure
cat /var/log/secure

①PAM 認證原理
?PAM 認證一般遵循的順序:Service(服務)→PAM(組態檔)→pam_*.so(認證模塊)
?PAM認證首先要確定哪一項應用服務,然后加載相應的PAM的組態檔(位于/etc/pam.d下),最后呼叫認證模塊(位于 /lib64/security/下)進行安全認證
?用戶訪問服務器的時候,服務器的某一個服務程式把用戶的請求發送到PAM模塊進行認證,不同的應用程式所對應的PAM 模塊也是不同的
如果想查看某個程式是否支持 PAM 認證,可以用 ls 命令進行查看/etc/pam.d/
ls /etc/pam.d/ //PAM組態檔

ls /lib64/security/ //認證模塊

三、賬戶權限管理
vim /etc/sudoers //默認為只讀,保存方式:wq!
或
visudo
①單個用戶權限
?格式1:用戶 主機名=命令程式串列
?格式2:(用戶) 主機名=命令程式串列
fox foxhome=/sbin/ifconfig //使fox擁有ifconfig權限
fox foxhome=!/sbin/reboot //使fox沒有reboot權限
fox foxhome=/sbin/* //使fox擁有所有sbin權限
fox foxhome=/sbin/reboot,poweroff //加逗號自定義
?禁止某用戶開關機

②別名組權限
?用戶別名 User_Alias
?主機別名 Host_Alias
?命令別名 Cmnd_Alias
User_Alias USERS=fox,cat
//用戶的別名users包含fox和cat
Host_Alias HOSTS=foxhome,cathome
//主機別名hosts包括:foxhome和cathome
Cmnd_Alias CMNDS=/sbin/reboot,poweroff
//可執行的命令包括關機和重啟
USERS HOSTS=CMNDS
//相當于:用戶組 主機組 = 命令程式串列
四、GRUB保護
不法分子會借著開關機的期間進入BIOS界面篡改GRUB的內容,最后導致服務器無法正常開啟
①設定GRUB密碼
?使用grub2-mkpasswd-pbkdf2生成密鑰
grub2-mkpasswd-pbkdf2
從grub到最后都是密鑰,記得保存好

創建登錄用戶前記得先備份
//對重要檔案進行備份
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
vim /etc/grub.d/00_header

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/256305.html
標籤:其他
上一篇:windows下常用的dos命令
下一篇:nginx筆記
