【AWSL】之Linux系统安全及应用(su、PAM、sudo、GRUB、JR、NMAP)
序言
這里我主要介紹Linux系統安全與應用
系統安全與應用
- 序言
- 一 .賬號安全控制
- 1.賬號安全基本措施
- ①系統賬號清理
- ②密碼安全控制
- ③命令歷史限制
- ④終端自動注銷
- 二 .系統引導和登錄控制
- 1.使用su命令切換用戶
- ①限制使用su命令的用戶
- ②查看su操作記錄
- 2.Linux中的PAM認證
- 3.PAM安全認證流程
- ①通過PAM防止暴力破解ssh
- 4.使用sudo機制提升權限
- 5.開關機安全機制
- 6.終端登錄安全控制
- 三.弱口令檢查
- 四.端口掃描
- 總結
一 .賬號安全控制
1.賬號安全基本措施
①系統賬號清理
將非登錄用戶的Shell設為/bin/nologin
鎖定長期不使用的賬號
刪除無用的賬號
鎖定賬號文件passwd、shadow
賬號相關
注:chattr +i /etc/passwd /etc/shadow #鎖定文件并查看狀態
chattr -i /etc/passwd /etc/shadow #解鎖文件并查看狀態
lsattr /etc/passwd /etc/shadow #查看狀態
②密碼安全控制
設置密碼有效期
要求用戶下次登錄時修改密碼
密碼相關
注:vim /etc/login.defs #適用于新建用戶,改密碼有效期
chage -M 30 lisi #適用于已有用戶
chage -d 0 zhangsan #強制在下次登錄時更改密碼
③命令歷史限制
減少記錄的命令條數
注銷時自動清空命令歷史
①[~]vim /etc/profile #在history前改10再加export,執行減少記錄命令條數,按q退出
source /etc/profile #刷新配置
②[~]vim .bash_history #按q退出
echo ‘’ > ~/.bash_history
③[~]vim .bashrc #按q退出
echo ‘’ > ~/.bashrc #自動清空記錄
注:history -c #清除歷史記錄(臨時清除,重啟后還有)
④終端自動注銷
閑置600秒后自動注銷
①[~]vim /etc/profile
export TIMEOUT=600 #按q退出
source /etc/profile #刷新配置
二 .系統引導和登錄控制
1.使用su命令切換用戶
■用途及用法
用途:切換用戶
格式:su - 目標用戶 #帶‘-’選項表示將使用目標用戶的登錄Shell環境
■密碼驗證
root ? 任意用戶,不驗證密碼
普通用戶 ? 其他用戶,驗證目標用戶密碼
①限制使用su命令的用戶
將允許使用su命令的用戶加入wheel組
啟用pam_wheel認證模塊
[zhangsan]gpasswd -a zhangsan wheel #將zhangsan加入到wheel組中
grep wheel /etc/passwd #查看zhangsan是否添加到wheel組中
vim /etc/pam.d/su #將里面的auth wheel注釋去掉
②查看su操作記錄
安全日志文件:/var/log/secure
2.Linux中的PAM認證
■su命令的安全隱患
默認情況下,任何用戶都允許使用su命令,有機會反復嘗試其他用戶(如root)的登錄密碼,帶來安全風險
為了加強su命令的使用控制,可借助PAM認證模塊,只允許極個別用戶使用su命令進行切換
■PAM可插拔式認證模塊
是一種高效且靈活便利的用戶級別的認證方式
也是當前Linux服務器普遍使用的認證方式
PAM認證原理:
1.PAM認證一般遵循的順序: Service (服務) --> PAM (配置文件) --> pam_ *.so;
2. PAM認證首先要確定哪一項應用 服務,然后加載相應的PAM的配置文件(位于/etc/pam.d下),最后調用認證模塊(位于/lib64/security/下)進行安全認證。
3.用戶訪問服務器的時候,服務器的某一個服務程序把用戶的請求發送到PAM模塊進行認證。不同的應用程序所對應的PAM模塊也是不同的。
如果想查看某個程序是否支持PAM 認證,可以用ls命令進行查看/etc/pam.d/
3.PAM安全認證流程
■控制類型也稱作Control Flags,用于PAM驗證類型的返回結果
1.required驗證失敗時仍然繼續,但返回Fail
2.requisite驗證失敗則立即結束整個驗證過程,返回Fail
3.sufficient驗證成功則立即返回,不再繼續,否則忽略結果并繼續
4.optional不在驗證,只顯示信息(通常用于session類型)
第一列代表PAM認證模塊類型
auth: 對用戶身份進行識別,如提示輸入密碼,判斷是否為root。
account: 對賬號各項屬性進行檢查,如是否允許登錄系統,帳號是否已經過期,是否達到最大用戶數等。
password: 使用用戶信息來更新數據,如修改用戶密碼。
session:定義登錄前以及退出后所要進行的會話操作管理,如登錄連接信息,用戶數據的打開和關閉,掛載文件系統。
第二列代表PAM控制標記
required:表示需要返回一個成功值,如果返回失敗,不會立刻將失敗結果返回,而是繼續進行同類型的下一驗證,所有此類型的模塊都執行完成后,再返回失敗。
requisite:與required類似,但如果此模塊返回失敗,則立刻返回失敗并表示此類型失敗。
sufficient:如果此模塊返回成功,則直接向程序返回成功,表示此類成功,如果失敗,也不影響這類型的返回值。
optional: 不進行成功與否的返回,一般不用于驗證,只是顯示信息(通常用于session類型),
include:表示在驗證過程中調用其他的PAM配置文件。比如很多應用通過完整調用/etc/pam.d/system-auth(主要負責用戶登錄系統的認證工作)來實現認證而不需要重新逐一去寫配置項。
第三列代表PAM模塊,默認是在/lib64/security/目錄下,如果不在此默認路徑下,要填寫絕對路徑。
同一個模塊,可以出現在不同的模塊類型中,它在不同的類型中所執行的操作都不相同,這是由于每個模塊針對不同的模塊類型編制了不同的執行函數。
第四列代表PAM模塊的參數,這個需要根據所使用的模塊來添加。
傳遞給模塊的參數。參數可以有多個,之間用空格分隔開
控制標記的補充說明:
required:表示該行以及所涉及模塊的成功是用戶通過鑒別的[必要條件]。換句話說,只有當對應于應用程序的所有帶requi red標記的模塊全部成功后,該程序才能通過鑒別。同時,如果任何帶requi red標記的模塊出現了錯誤,PAM并不立刻將錯誤消息返回給應用程序,而是在所有此類型模塊都調用完畢后才將錯誤消息返回調用他的程序。
反正說白了,就是必須將所有的此類型模塊都執行一次,其中任何一個模塊驗證出錯,驗證都會繼續進行,并在執行完成之后才返回錯誤信息。這樣做的目的就是不讓用戶知道自己被哪個模塊拒絕,通過一種隱蔽的方式來保護系統服務。就像設置防火墻規則的時候將拒絕類的規則都設置為drop-樣,以致于用戶在訪問網絡不成功的時候無法準確判斷到底是被拒絕還是目標網絡不可達。
requisite:與 required相仿,只有帶此標記的模塊返回成功后,用戶才能通過鑒別。不同之處在于其一旦失敗 就不再執
行堆中后面的其他模塊,并且鑒別過程到此結束,同時也會立即返回錯誤信息。與上面的required相比,似乎要顯得更光
明正大一些。
sufficient:表示該行以及所涉及模塊驗證成功是用戶通過鑒別的[充分條件]。也就是說只要標記為sufficient的模塊
一旦驗證成功,那么PAM便立即向應用程序返回成功結果而不必嘗試任何其他模塊。即便后面的層疊模塊使用了requisite或者required控制標志也是一 樣。當標記為sufficient的模塊失敗時,sufficient模塊會當做optional對待。因此擁有sufficient標志位的配置項在執行驗證出錯的時候并不會導致整個驗證失敗,但執行驗證成功之時則大門敞開。所以該控制
位的使用務必慎重。
optional:他表示即便該行所涉及的模塊驗證失敗用戶仍能通過認證。在PAM體系中,帶有該標記的模塊失敗后將繼續處理下一模塊。也就是說即使本行指定的模塊驗證失敗,也允許用戶享受應用程序提供的服務。使用該標志,PAM框架會忽略這個模塊產生的驗證錯誤,繼續順序執行下一個層疊模塊。
①通過PAM防止暴力破解ssh
[root@zzc ~]#vim /etc/pam.d sshd 在第一行下面添加一行: auth required pam_tally.so deny=3 unlock_time=600 even_deny_root root_unlock_time=1200 說明:嘗試登錄失敗超過三次,普通用戶600秒解鎖,root用戶1200秒解鎖 手動解除鎖定: 查看某一用戶錯誤登錄次數: pam tally --user work 清空某一用戶錯誤登錄次數: pam_tally --user --reset 例如:清空work用戶的錯誤登錄次數: pam_tally --user work --reset4.使用sudo機制提升權限
■su命令的缺點
■sudo命令的用途及用法
用途:以其他用戶身份(如root)執行的命令
用法:sudo 授權命令
■配置sudo授權
visudo或者vi /etc/sudoers
記錄格式:用戶 主機名列表=命令程序列表
■查看sudo操作記錄
需啟用Defaults logfile 配置
默認日志文件:/var/log/sudo
■查看授權的sudo操作
sudo -l
5.開關機安全機制
■調整BIOS引導設置
將第一引導設備設為當前系統所在硬盤
禁止從其他設備(光盤、U盤、網絡)引導系統
將安全級別設為setuo,并設置管理員密碼
■GRUB限制
使用grub2-mkpasswd-pbkdf2生成密鑰
修改/etc/grub,d/00_header文件中,添加密碼記錄
生成新的grub.cfg配置文件
6.終端登錄安全控制
■限制root只在安全終端登錄
安全終端配置:/etc/securetty
注:pts是遠程登錄終端ctrl+ALT F1-F6 tty1圖形界面 2和6字符界面
■禁止普通用戶登錄
建立/etc/nologin文件
刪除nologin文件或重啟后即恢復正常
三.弱口令檢查
JR
一款密碼分析工具,支持字典式的暴力破解
通過對shadow文件的口令分析,可以檢測密碼強度
四.端口掃描
NMAP
一款強大的網絡掃描、安全檢測工具
官方網站:http://nmap。org/
CentOS 7.7光盤中安裝包nmap–el7.x86_64.rpm
■NMAP的掃描
nmap [掃描類型] [選項] <掃描目標>
■常用的掃描類型
-sS、-sT、-sF、-sU、-sP、-P0
■例:分別查看本機開放的TCP端口、UDP端口
■例:檢測192.168.4.0/24網段有哪些主機提供FTP服務
■例:檢測192.168.4.0/24網段有哪些存活主機
總結
總結
以上是生活随笔為你收集整理的【AWSL】之Linux系统安全及应用(su、PAM、sudo、GRUB、JR、NMAP)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【AWSL】之Linux文件系统与日志分
- 下一篇: 【AWSL】之Linux进程和计划任务管