身为一名合格root管理员的基本防范措施 Linux系统安全及应用
系統安全及應用
- 一.賬號安全基本措施
- ① 系統賬號清理
- ② 密碼安全控制
- ③ 命令歷史限制
- ④ 終端自動注銷
- 二.SU命令切換用戶
- ① 用途及用法
- ② 驗證密碼
- ③ 限制使用su命令的用戶
- ④ 查看su操作記錄
- 補充
- 三.Linux中的PAM安全認證
- ① su命令的安全隱患
- ② PAM(Pluggable Authentication Modules)可插拔式認證模塊
- ③ PAM認證原理
- ④ 認證流程
- 四.sudo機制提升權限
- ① sudo命令的用途及用法
- ② 配置sudo授權
- ③ 查看sudo操作記錄
- ④ 查看授權的sudo操作
- 總結
一.賬號安全基本措施
① 系統賬號清理
? 將非登錄用戶的Shell設為/sbin/nologin
usermod -s /sbin/nologin 用戶名? 鎖定長期不使用的賬號
usermod -L 用戶名 passwd -l 用戶名? 刪除無用的賬號
userdel [-r] 用戶名? 鎖定賬號文件 passwd、shadow
chattr +i /etc/passwd /etc/shadow #鎖定文件并查看狀態Isattr /etc/passwd /etc/shadow #查看chattr -i /etc/passwd /etc/shadow #解鎖文件
② 密碼安全控制
? 設置密碼有效期
? 要求用戶下次登錄時修改密碼
適用于新建用戶:
vi /etc/login.defs
適用于已有用戶:
chage -M xx xx
強行在下次登錄時更改密碼:
chage -d 0 xxx
③ 命令歷史限制
? 減少記錄的命令條數
vi /etc/profile
? 登錄時自動清空命令歷史
vi .bashrc
echo " " > ~/.bash_history
減少記錄的命令條數:
vi /etc/profile
登錄時自動清空命令歷史:
vi .bashrc
echo " " > ~/.bash_history
④ 終端自動注銷
閑置360秒后自動注銷
vi /etc/profile
二.SU命令切換用戶
① 用途及用法
? 用途: Substitute User,切換用戶
? 格式: su-目標用戶
② 驗證密碼
? root>任意用戶,不驗證密碼
?普通用戶→其他用戶,驗證目標用戶的密碼
③ 限制使用su命令的用戶
? 將允許使用su命令的用戶加入wheel組
? 啟用pam_ wheel認證模塊
④ 查看su操作記錄
安全日志文件:/var/log/secure
補充
在/etc/ pam. d/su文件里設置禁止用戶使用su命令
vim /etc/pam.d/ su
2// auth sufficient pam_ rootok. so
6// #auth required pam_ wheel.so use_ uid
a) 以上兩行是默認狀態(即開啟第一-行,注釋第二行),這種狀態下是允許所有用戶間使用su命令進行切換的
b) 兩行都注釋也是運行所有用戶都能使用su命令,但root.下使用su切換到其他普通用戶需要輸入密碼;
如果第一行不注釋,則root使用su切換普通用戶就不需要輸入密碼(pam_ rootok. so模塊的主要作用是使uid為0的用戶,即root用戶能夠直接通過認證而不用輸入密碼)
c) 如果開啟第二行,表示只有root用戶和wheel組內的用戶才可以使用su命令
d) 如果注釋第一行,開啟第二行,表示只有wheel組內的用戶才能使用su命令,root用戶也被禁用su命令
gpasswd -a lili wheel #添加授權用戶zhangsan 到wheel組中 groups lilivim /etc/pam.d/su auth required pam_wheel.so use_uid #去掉此行開頭的注釋啟用pam_wheel認證以后,未加入到wheel組內的其他用戶將無法使用su命令三.Linux中的PAM安全認證
PAM使用/etc/pam.d/下的配置文件,來管理對程序的認證方式
應用程序調用相應的PAM配置文件,從而調用本地的認證模塊,模塊放置在/lib64/security下以加載動態庫的形式進行認證。比如使用su命令時,系統會提示輸入root用戶的密碼,這就是su命令通過調用PAM模塊實現的
① su命令的安全隱患
? 默認情況下,任何用戶都允許使用su命令,有機會反復嘗試其他用戶(如root) 的登錄密碼,帶來安全風險
? 為了加強su命令的使用控制,可借助于PAM認證模塊只允許極個別用戶使用su命令進行切換
② PAM(Pluggable Authentication Modules)可插拔式認證模塊
? 是一種高效而且靈活便利的用戶級別的認證方式
? 是當前Linux服務器普遍使用的認證方式
③ PAM認證原理
1.PAM認證一般遵循的順序:Service(服務)–>PAM(配置文件)–>pam_*.so
2.PAM認證首先要確定哪一項應用服務,然后加載相應的PAM的配置文件(位于7etc/pam.d下),最后調用認證模塊(位于/lib64/security/下)進行安全認證
3.用戶訪問服務器的時候,服務器的某–個服務程序把用戶的請求發送到PAM模塊進行認證。不同的應用程序所對應的PAM模塊也是不同的
4.不同的應用程序所對應的PAM模塊是不同的
? 如果想查看某個程序是否支持PAM 認證,可以用ls命令進行查看/etc/ pam.d/
? PAM的配置文件中的每一行都是一個獨立的認證過程,它們按從上往下的順序依次由PAM模塊調用
第一列代表PAM認證模塊類型
auth: 對用戶身份進行識別,如提示輸入密碼,判斷是否為root
account: 對賬號各項屬性進行檢查,如是否允許登錄系統,帳號是否已經過期,是否達到最大用戶數等
password: 使用用戶信息來更新數據,如修改用戶密碼
session: 定義登錄前以及退出后所要進行的會話操作管理,如登錄連接信息,用戶數據的打開和關閉,掛載文件系統
第二列代表PAM控制標記
required: 表示需要返回一個成功值,如果返回失敗,不會立刻將失敗結果返回,而是繼續進行同類型的下一驗證,所有此類型的模塊都執行完成后,再返回失敗
requisite: 與required類似,但如果此模塊返回失敗,則立刻返回失敗并表示此類型失敗
sufficient: 如果此模塊返回成功,則直接向程序返回成功,表示此類成功,如果失敗,也不影響這類型的返回值
optional: 不進行成功與否的返回,一般不用于驗證,只是顯示信息(通常用于session 類型)
include: 表示在驗證過程中調用其他的PAM配置文件。比如很多應用通過完整調用/etc/pam.d/system-auth(主要負責用戶登錄系統的認證工作)來實現認證而不需要重新逐一去寫配置項
第三列代表PAM模塊
默認是在/lib64/security/目錄下,如果不在此默認路徑下,要填寫絕對路徑
同一個模塊,可以出現在不同的模塊類型中,它在不同的類型中所執行的操作都不相同,這是由于每個模塊針對不同的模塊類型編制了不同的執行函數
第四列代表PAM模塊的參數
這個需要根據所使用的模塊來添加傳遞給模塊的參數。參數可以有多個,之間用空格分隔開
④ 認證流程
控制類型也稱做Control Flags,用于PAM驗證類型的返回結果
1.required驗證失敗時仍然繼續,但返回Fail
2.requisite驗證失敗則立即結束整個驗證過程,返回Fail
3. sufficient驗證成功則立即返回,不再繼續,否則忽略結果并繼續
4.optional不用于驗證,只顯示信息
(通常用于session類型)
required : 表示該行以及所涉及模塊的成功是用戶通過鑒別的[必要條件]。換句話說,只有當對應于應用程序的所有帶requi red標記的模塊全部成功后,該程序才能通過鑒別。同時,如果任何帶requi red標記的模塊出現了錯誤,PAM并不立刻將錯誤消息返回給應用程序,而是在所有此類型模塊都調用完畢后才將錯誤消息返回調用他的程序
說白了,就是必須將所有的此類型模塊都執行一次,其中任何一個模塊驗證出錯,驗證都會繼續進行,并在執行完成之后才返回錯誤信息。這樣做的目的就是不讓用戶知道自已被哪個模塊拒絕,通過一種隱蔽的方式來保護系統服務。就像設置防火墻規則的時候將拒絕類的規則都設置為drop-樣,以致于用戶在訪問網絡不成功的時候無法準確判斷到底是被拒絕還是目標網絡不可達
requisite: 與required相仿, 只有帶此標記的模塊返回成功后,用戶才能通過鑒別。不同之處在于其一旦失敗就不再執行堆中后面的其他模塊,并且鑒別過程到此結束,同時也會立即返回錯誤信息。與上面的required相比,似乎要顯得更光明正大一-些
sufficient: 表示該行以及所涉及模塊驗證成功是用戶通過鑒別的[充分條件]。也就是說只要標記為sufficient的模塊一旦驗證成功,那么PAM便立即向應用程序返回成功結果而不必嘗試任何其他模塊。即便后面的層疊模塊使用了requisite或者required控制標志也是一樣。當標記為sufficient的模塊失敗時,sufficient模 塊會當做optional對待。因此擁有sufficient標志位的配置項在執行驗證出錯的時候并不會導致整個驗證失敗,但執行驗證成功之時則大門]敞開。所以該控制位的使用務必慎重
optional: 表示即便該行所涉及的模塊驗證失敗用戶仍能通過認證。在PAM體系中,帶有該標記的模塊失敗后將繼續處理下一模塊。也就是說即使本行指定的模塊驗證失敗,也允許用戶享受應用程序提供的服務。使用該標志,PAM框架會忽略這個模塊產生的驗證錯誤,繼續順序執行下一個層疊模塊
四.sudo機制提升權限
① sudo命令的用途及用法
用途:以其他用戶身份(如root)執行授權的命令
用法:sudo 授權命令
② 配置sudo授權
? visudo 或者 vi /etc/sudoers此文件的默認權限為440,保存退出時必須執行 “:wq!”命令來強制操作
? 記錄格式:用戶 主機名=(用戶)命令程序列表
用戶: 直接授權指定的用戶名,或采用“。組名"的形式(授權一個組的所有用戶)
主機名: 使用此規則的主機名。沒配置過主機名時可localhost,有配過主機名則用實際的主機名,ALI則代表所有主機
(用戶): 用戶能夠以何種身份來執行命令。此項可省略,缺省時以root用戶的身份來運行命令
命令程序列表: 允許授權的用戶通過sudo方式執行的特權命令,需填寫命令程序的完整路徑,多個命令之間以逗號“,”進行分隔。ALL則代表系統中的所有命令
樣例一:
Tom ALL=/ sbin/ ifconfigJerry localhost=/sbin/*, ! /sbin/ reboot, ! /sbin/ poweroff 通配符*"表示所有、取反符號、!”表示排除%wheel ALL=NOPASSWD:ALL 表示wheel組成員無需驗證密碼即可使用sudo執行任何命令Mike ALL= (root) NOPASSWD: /bin/kill, /usr/bin/killall
注:帶有感嘆號的意思為 不可以執行這個操作
注:加入wheel組,可以使用sudo執行任何命令
樣例二:
使用關鍵字User_ Alias、Host_ Alias、Cmnd_ Alias 來進行設置別名( 別名必須為大寫)
User_Alias USERS=Tom, Jerry, MikeHost_Alias HOSTS=localhost, bogonCmnd_Alias CMNDS=/ sbin/ ifconfig, /usr/ sbin/useradd,/usr/sbin/ userdelUSERS HOSTS=CMNDSUSERS HOSTS=NOPASSWD:CMNDS #執行過程不需要驗證密碼
注:這里我只是讓這兩位小情侶只能執行 添加用戶和重啟操作
③ 查看sudo操作記錄
? 需啟用Defaults logfile配置
? 默認日志文件: /var/log/sudo
注:這里進入的編輯模式一樣是執行 visudo
④ 查看授權的sudo操作
sudo -l
初次使用sudo時需驗證當前用戶的密碼,默認超時時長為5分鐘,在此期間不再重復驗證密碼
總結
1.賬號安全基本措施
? 鎖定賬號文件 passwd、shadow
? chattr +i /etc/passwd /etc/shadow
鎖定文件并查看狀態
? Isattr /etc/passwd /etc/shadow
查看
? chattr -i /etc/passwd /etc/shadow
解鎖文件
? 密碼安全控制
? 適用于新建用戶
vi /etc/login.defs
? 適用于已有用戶
chage -M xx xx
? 強行在下次登錄時更改密碼
chage -d 0 xxx
? 命令歷史限制
? 減少記錄的命令條數
vi /etc/profile
? 登錄時自動清空命令歷史
vi .bashrc
echo " " > ~/.bash_history
? 終端自動注銷
vi /etc/profile
2.限制使用su命令的用戶
? 將允許使用su命令的用戶加入wheel組
? vim /etc/pam.d/ su
? 啟用pam_ wheel認證模塊
查看su操作記錄
安全日志文件:/var/log/secure
3.Linux中的PAM安全認證
?PAM使用/etc/pam.d/下的配置文件,來管理對程序的認證方式
? 如果想查看某個程序是否支持PAM 認證,可以用ls命令進行查看/etc/ pam.d/
? PAM的配置文件中的每一行都是一個獨立的認證過程,它們按從上往下的順序依次由PAM模塊調用
4.sudo機制提升權限
? 記錄格式:用戶 主機名=(用戶)命令程序列表
Tom ALL=/ sbin/ ifconfig
? 使用關鍵字User_ Alias、Host_ Alias、Cmnd_ Alias 來進行設置別名( 別名必須為大寫)
? 查看sudo操作記錄
? 需啟用Defaults logfile配置
? 默認日志文件: /var/log/sudo
? 查看授權的sudo操作
sudo -l
總結
以上是生活随笔為你收集整理的身为一名合格root管理员的基本防范措施 Linux系统安全及应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS hack:针对IE6,IE7,f
- 下一篇: Android——基本组件-2