linux系統(tǒng)由于其出色的性能和穩(wěn)定性、開放源代碼的靈活性和可擴(kuò)展性,以及較低廉的成本,而受到計(jì)算機(jī)工業(yè)界的廣泛關(guān)注和應(yīng)用。其系統(tǒng)的安全性就必須要加強(qiáng)
最近備戰(zhàn)國網(wǎng)信通調(diào)考信息安全專業(yè),參考系統(tǒng)安全加固手冊,練習(xí)加固命令。
操作系統(tǒng)選用CentOS 7,考慮到可以隨時(shí)進(jìn)行“破壞性試驗(yàn)”,所以選擇安裝在VM虛擬機(jī)中,可以使用快照隨時(shí)回退錯(cuò)誤操作。?
首先,為了熟悉使用CLI,設(shè)置開機(jī)不進(jìn)入圖形界面。之前版本是修改 /etc/inittab 文件,到CentOS 7改為如下命令:
systemctl set-default multi-user.target //設(shè)置成命令模式 systemctl set-default graphical.target //設(shè)置成圖形模式
事實(shí)上,系統(tǒng)進(jìn)行了如下操作:
好!進(jìn)入系統(tǒng),不要忘了首先做好初始快照哦。
一、賬號管理、認(rèn)證授權(quán)
第一部分主要是對用戶賬號和權(quán)限進(jìn)行加固,主要用到的命令主要是一些文件查看與編輯類的命令。
1、與賬號、用戶組、密碼等有關(guān)的文件
這些文件包括:
/etc/passwd ?
/etc/shadow
/etc/group
簡單說明一下:
/etc/passwd??記錄了系統(tǒng)中各用戶的一些基本屬性,root可寫,所有用戶可讀,查看可見如下信息:
用“:”隔開的各部分含義為:
用戶名:口令:用戶標(biāo)識號:組標(biāo)識號:注釋性描述:主目錄:登錄Shell
其中口令由于安全考慮,被記錄在了?/etc/shadow 文件中,所以這里統(tǒng)一顯示為x。
/etc/shadow?負(fù)責(zé)所有用戶的密碼:
與passwd文件相似,各字段也被“:”隔開,其含義為:
登錄名:加密口令:最后一次修改時(shí)間:最小時(shí)間間隔:最大時(shí)間間隔:警告時(shí)間:不活動時(shí)間:失效時(shí)間:標(biāo)志(系統(tǒng)保留)
這里有幾點(diǎn)需要說明: (1)“口令”字段存放的是加密后的用戶口令字,如果為空,則對應(yīng)用戶沒有口令,登錄時(shí)不需要口令; 星號代表帳號被鎖定,有些系統(tǒng)為NP; 雙嘆號表示這個(gè)密碼已經(jīng)過期了。 $6$開頭的,表明是用SHA-512加密的 $1$ 表明是用MD5加密的 $2$ 是用Blowfish加密的 $5$ 是用SHA-256加密的。 (2)“最后一次修改時(shí)間”表示的是從某個(gè)時(shí)刻起,到用戶最后一次修改口令時(shí)的天數(shù)。時(shí)間起點(diǎn)對不同的系統(tǒng)可能不一樣。例如1970年1月1日。(后面所有時(shí)間均以此時(shí)間為起點(diǎn)) (4)“最小時(shí)間間隔”指的是兩次修改口令之間所需的最小天數(shù)。 (5)“最大時(shí)間間隔”指的是口令保持有效的最大天數(shù)。 (6)“警告時(shí)間”字段表示的是從系統(tǒng)開始警告用戶到用戶密碼正式失效之間的天數(shù)。 (7)“不活動時(shí)間”表示的是用戶沒有登錄活動但賬號仍能保持有效的最大天數(shù)。 (8)“失效時(shí)間”字段給出的是一個(gè)絕對的天數(shù),如果使用了這個(gè)字段,那么就給出相應(yīng)賬號的生存期。
/etc/group?負(fù)責(zé)用戶組屬性:
這個(gè)文件比較簡單: 組名:口令:組標(biāo)識號:組內(nèi)用戶列表
其中,組內(nèi)用戶列表中,用戶間用“,”隔開。
如果想要查看一個(gè)用戶的用戶組信息,可以使用
id [user]
來查看:
OK,文件說明到此結(jié)束,讓我們來干些實(shí)際的吧~
2、鎖定無關(guān)賬戶
在確認(rèn)某些賬戶可以鎖定的情況下,可以使用
passwd -l [user]
其原理是在/etc/shadow中用戶的密碼字段前加入“!!”(因系統(tǒng)而異,有些系統(tǒng)是加入“*LK*”),使得用戶密碼改變,無法登陸
這還真是簡單粗暴,不過這也意味著,只要隨意修改shadow文件密碼字段,即可實(shí)現(xiàn)賬號鎖定。
對應(yīng)的解鎖命令為
passwd -u [user]
3、禁止超級管理員賬戶遠(yuǎn)程登錄
在進(jìn)行這方面工作之前,首先要知道一個(gè)重要內(nèi)容 Linux-PAM(Linux可插拔認(rèn)證模塊)。
用戶可以通過修改配置文件/etc/pam.conf(RedHat等系統(tǒng)還支持另外一種配置方式,即通過配置目錄/etc/pam.d/)對認(rèn)證機(jī)制進(jìn)行修改,而個(gè)模塊的具體配置在/etc/security下。
具體相關(guān)知識由于篇幅,可以自行百度,(推薦一篇博客,很實(shí)用)這里只對本小節(jié)內(nèi)容進(jìn)行說明。
1 PAM工作機(jī)制 /lib/security 目錄下的每一個(gè)認(rèn)證模塊都會返回pass或者fail結(jié)果,部分程序使用/etc/security目錄下的設(shè)置文件決定認(rèn)證方式。 應(yīng)用程序調(diào)用PAM模塊認(rèn)證的配置,存放于/etc/pam.d,文件名與應(yīng)用程序名對應(yīng),文件中的每一行都會返回一個(gè)成驗(yàn)證功還是失敗的控制標(biāo)志,以決定用戶是否擁有訪問權(quán)限。 2 PAM驗(yàn)證類型 * auth 驗(yàn)證使用者身份,提示輸入賬號和密碼 * account 基于用戶表、時(shí)間或者密碼有效期來決定是否允許訪問 * password 禁止用戶反復(fù)嘗試登錄,在變更密碼時(shí)進(jìn)行密碼復(fù)雜性控制 * session 進(jìn)行日志記錄,或者限制用戶登錄的次數(shù) libpam函數(shù)庫會可以調(diào)用以上一種服務(wù)或者全部。 3 PAM驗(yàn)證控制類型(Control Values) 驗(yàn)證控制類型也可以稱做Control Flags,用于PAM驗(yàn)證類型的返回結(jié)果。 * required 驗(yàn)證失敗時(shí)仍然繼續(xù),但返回Fail(用戶不會知道哪里失敗) * requisite 驗(yàn)證失敗則立即結(jié)束整個(gè)驗(yàn)證過程,返回Fail * sufficient 驗(yàn)證成功則立即返回,不再繼續(xù),否則忽略結(jié)果并繼續(xù) * optional 無論驗(yàn)證結(jié)果如何,均不會影響(通常用于session類型
?
打開/etc/pam.d/login文件,可以看到如下內(nèi)容:
其中
auth?[user_unknown=ignore?success=ok?ignore=ignore?default=bad]?pam_securetty.so
或
auth required pam_securetty.so
處于未注釋狀態(tài),再查看/etc/securetty中沒有pts/x(x為一個(gè)十進(jìn)制整數(shù))或已被注釋掉
確保root不能通過telnet連接主機(jī)。
再檢查SSH:
?/etc/ssh/sshd_config
檢查下列行設(shè)置是否為no并且該行未被注釋:PermitRootLogin
然后重新啟動ssh服務(wù):
service sshd stop service sshd start
4、修改用戶組
使用usermod -g [group/GID] [username] 修改用戶組。沒什么好說的,上圖:
5、口令策略
(1)口令復(fù)雜度及時(shí)效
?修改?/etc/login.defs,文件注釋很清楚,可以自己修改:
(2)設(shè)定密碼歷史,不能重復(fù)使用近N次內(nèi)已使用的口令(方法來自網(wǎng)絡(luò))
對于Redhat系列的Linux,查看/etc/pam.d/system-auth
對于Debian系列的Linux,查看/etc/pam.d/common-password
在如圖所示的行后,加入remember=N
但我目前有一個(gè)疑問,remember=N這個(gè)語句的PAM驗(yàn)證控制類型是否應(yīng)該是sufficient而不是其他類型。但求大神指導(dǎo)!
(3)設(shè)定連續(xù)認(rèn)證失敗次數(shù)超過N次鎖定該賬號
依然是修改/etc/pam.d/login文件的第二行,加入如下命令
auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10
6、設(shè)定文件目錄權(quán)限
在用戶登錄中,passwd、shadow、group文件非常重要,需要嚴(yán)格管理文件權(quán)限
/etc/passwd 必須所有用戶都可讀,root用戶可寫 –rw-r—r—?權(quán)限值為644
/etc/shadow 只有root可讀 –r——–??權(quán)限值為400
/etc/group 必須所有用戶都可讀,root用戶可寫 –rw-r—r— 權(quán)限值為644
使用如下命令修改權(quán)限:
chmod 644 /etc/passwdchmod 400 /etc/shadowchmod 644 /etc/group
此外還有一個(gè)重要的參數(shù) umask ,其值確定了新建目錄文件的默認(rèn)權(quán)限,這里先給出我們推薦的值 027
在權(quán)限設(shè)定中 r=4;w=2;x=1?但對于umask來說,umask=777(666)-權(quán)限值,即權(quán)限值=777(666)-umask。例如,umask=002,所對應(yīng)的文件和目錄創(chuàng)建缺省權(quán)限分別為6 6 4(666-2)和7 7 5(777-2)。
為什么是這樣的呢?對于文件來說,這一數(shù)字的最大值分別是6。系統(tǒng)不允許你在創(chuàng)建一個(gè)文本文件時(shí)就賦予它執(zhí)行權(quán)限,必須在創(chuàng)建后用chmod命令增加這一權(quán)限。目錄則允許設(shè)置執(zhí)行權(quán)限,這樣針對目錄來說,umask中各個(gè)數(shù)字最大可以到7。
如果使用推薦值umask=027,則對于文件來說,其權(quán)限為640,即-rw-r—– ,對目錄來說,其權(quán)限為750,即-rwxr-x—
7、檢查是否存在除root之外UID為0的用戶
使用如下代碼,對passwd文件進(jìn)行檢索:
awk -F ':' '($3==0){print $1)' /etc/passwd
將檢索出來的不是root的用戶使用userdel命令全部刪除。
?
?
?

每個(gè)人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進(jìn)程會占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 windows 保持平穩(wěn)運(yùn)行。

-
1970-01-01 08:00:00
-
1970-01-01 08:00:00
-
2023-03-14 13:58:01
-
1970-01-01 08:00:00
-
1970-01-01 08:00:00
-
1970-01-01 08:00:00
-
1970-01-01 08:00:00
-
1970-01-01 08:00:00
-
1970-01-01 08:00:00
-
1970-01-01 08:00:00