1、方便將服務(wù)器安全情況通過檢測(cè)腳本直接輸出txt文件,同時(shí)便于檢查出安全隱患。
2娃弓、縮短安全檢查和防護(hù)時(shí)間,提高安全檢查和防護(hù)效率
github地址https://github.com/xiaoyunjie/Shell_Script.git
一岛宦、Linux檢測(cè)腳本
1.1台丛、文件
壓縮包包含2個(gè)文件:
-
CentOS_Check_Script.sh
: 腳本文件 -
README.txt
: 說明文件
Linux檢測(cè)腳本:Check_script.sh
1.2、操作說明
執(zhí)行CentOS_Check_Script.sh
腳本文件進(jìn)行檢查,每次體檢生成文件都是唯一的恋博,命令格式如下:
sudo sh CentOS_Check_Script.sh | tee check_`date +%Y%m%d_%H%M%S`.txt
1.3齐佳、腳本簡(jiǎn)介
按三級(jí)等保要求,編寫的一鍵檢查腳本债沮,此腳本只適合linux分支中的redhat炼吴、centos
,運(yùn)行腳本將結(jié)果輸出到自定義的文件中疫衩,腳本結(jié)果需要管理員人為檢查硅蹦,腳本結(jié)果中有相應(yīng)提示檢測(cè)內(nèi)容是否需要整改。
1.4闷煤、腳本檢測(cè)內(nèi)容
警告:本腳本只是一個(gè)檢查的操作,未對(duì)服務(wù)器做任何修改,管理員可以根據(jù)此報(bào)告進(jìn)行相應(yīng)的安全整改
管理員需要根據(jù)檢測(cè)報(bào)告進(jìn)行安全加固童芹,需要加固的條目都會(huì)標(biāo)記 [需調(diào)整]
1.4.1、系統(tǒng)基本信息
腳本撈取主機(jī)的基本信息鲤拿,包含以下內(nèi)容:
基本信息名 | 命令 | 備注 | |
---|---|---|---|
主機(jī)名 | |||
系統(tǒng)名稱 | |||
系統(tǒng)版本 | |||
內(nèi)核版本 | |||
系統(tǒng)類型 | |||
本機(jī)IP地址 | |||
CPU型號(hào) | |||
CPU核數(shù) | |||
機(jī)器型號(hào) | |||
系統(tǒng)時(shí)間 |
1.4.2假褪、資源使用情況
檢測(cè)條目 | 命令 | 備注 | |
---|---|---|---|
總內(nèi)存大小 | |||
已使用內(nèi)存大小 | |||
可使用內(nèi)存大小 | |||
系統(tǒng)運(yùn)行時(shí)間 | |||
系統(tǒng)負(fù)載 | |||
內(nèi)存狀態(tài) | |||
僵尸進(jìn)程 | |||
耗CPU最多進(jìn)程 | |||
耗內(nèi)存最多進(jìn)行 | |||
環(huán)境變量 | |||
路由表 | |||
監(jiān)聽端口 | |||
網(wǎng)絡(luò)連接 | |||
開機(jī)啟動(dòng)服務(wù) |
1.4.3、系統(tǒng)用戶情況
檢測(cè)條目 | 命令 | 備注 | |
---|---|---|---|
活動(dòng)用戶 | |||
系統(tǒng)所有用戶 | |||
系統(tǒng)所有組 | |||
當(dāng)前用戶的計(jì)劃任務(wù) |
1.4.4近顷、身份鑒別安全
檢測(cè)條目 | 命令 | 備注 | |
---|---|---|---|
密碼復(fù)雜度 | |||
可疑賬戶 | |||
密碼過期天數(shù) | |||
登入失敗處理 |
1.4.5生音、訪問控制安全
檢測(cè)條目 | 命令 | 備注 | |
---|---|---|---|
非系統(tǒng)默認(rèn)用戶 | |||
系統(tǒng)特權(quán)用戶 | |||
系統(tǒng)空口令賬戶 |
1.4.6宁否、安全審計(jì)
檢測(cè)條目 | 命令 | 備注 | |
---|---|---|---|
本機(jī)用戶登入歷史記錄 | |||
syslog日志服務(wù)狀態(tài) | |||
syslog日志服務(wù)外發(fā)狀態(tài) | |||
syslog審計(jì)要素和日志 | |||
系統(tǒng)文件文件修改時(shí)間 | |||
重要日志文件狀態(tài) |
1.4.7、剩余信息保護(hù)
檢測(cè)條目 | 命令 | 備注 | |
---|---|---|---|
分區(qū)情況 | |||
可用塊設(shè)備信息 | |||
文件系統(tǒng)信息 |
1.4.8缀遍、入侵防范安全
檢測(cè)條目 | 命令 | 備注 | |
---|---|---|---|
系統(tǒng)入侵行為 | |||
用戶錯(cuò)誤登入列表 | |||
ssh暴力登入信息 |
1.4.9慕匠、惡意代碼防范
檢測(cè)條目 | 命令 | 備注 |
---|---|---|
clamav殺毒軟件狀態(tài) |
1.4.10、資源控制安全
檢測(cè)條目 | 命令 | 備注 | |
---|---|---|---|
xinetd服務(wù)狀態(tài) | |||
ssh服務(wù)狀態(tài) | |||
telnet-server服務(wù)狀態(tài) | |||
防火墻狀態(tài) | |||
hosts.deny策略 | |||
hosts.allow | |||
登入超時(shí)限制 |
二域醇、Linux加固腳本
2.1台谊、腳本文件
-
CentOS_Protective_Script.sh
: 腳本文件 -
README.txt
: 說明文件
Linux加固腳本文件:Protective_Script.sh
2.2、腳本操作說明
- 執(zhí)行
CentOS_Protective_Script.sh
腳本文件進(jìn)行加固,命令格式如下
sudo sh CentOS_Protective_Script.sh
- 執(zhí)行完成后,請(qǐng)按腳本提示重啟相應(yīng)服務(wù)
如果ostype是unknow譬挚,請(qǐng)不要繼續(xù)執(zhí)行
2.3锅铅、腳本簡(jiǎn)介
一鍵加固腳本為linux系統(tǒng)提供基礎(chǔ)安全加固,包括以下幾塊內(nèi)容加固:
- 口令復(fù)雜度:密碼修改重試3次機(jī)會(huì)殴瘦,新密碼與老密碼必須有3字符不同狠角,最小密碼長度
12個(gè)字符
,包含大寫字符至少一個(gè)
蚪腋,小寫字母至少一個(gè)
,數(shù)字至少一個(gè)
姨蟋,特殊字符至少一個(gè)
屉凯。 - 新增管理員賬號(hào):不直接使用
root
賬號(hào),新增管理員eproot
賬號(hào)眼溶,用于命令執(zhí)行悠砚,遠(yuǎn)程登入。 - 遠(yuǎn)程登入賬戶設(shè)置:限制
root
賬號(hào)遠(yuǎn)程登入 - 賬號(hào)登入安全設(shè)置:配置系統(tǒng)歷史命令操作記錄和定時(shí)帳戶自動(dòng)登出時(shí)間
- 遠(yuǎn)程登入端口設(shè)置:修改默認(rèn)
SSH
端口 - 賬戶登入失敗處理:限制登入失敗三次堂飞,普通賬號(hào)鎖定5分鐘灌旧,
root
賬號(hào)鎖定5分鐘 - 系統(tǒng)配置文件備份還原:腳本在首次執(zhí)行時(shí)會(huì)將系統(tǒng)配置保存于腳本所在目錄下的
backup
目錄下,以便后續(xù)需要恢復(fù)配置時(shí)使用绰筛。再次運(yùn)行腳本時(shí)枢泰,將不會(huì)再進(jìn)行備份,除非原備份目錄被刪除铝噩。
2.3.1衡蚂、簡(jiǎn)介
首次運(yùn)行腳本,會(huì)檢測(cè)當(dāng)前系統(tǒng)類型骏庸,以及備份重要系統(tǒng)配置文件毛甲,包括system-auth、authorized_keys具被、sshd玻募、sudoers、sshd_config一姿、profile七咧、su
跃惫。通過選擇加固編號(hào)進(jìn)行相應(yīng)的內(nèi)容進(jìn)行加固,也可以選擇編號(hào)1
,將所有內(nèi)容都進(jìn)行加固坑雅。
2.3.2辈挂、密碼復(fù)雜度設(shè)置[Set Password Complexity Requirements ]
選擇編號(hào)
2
,腳本會(huì)自動(dòng)進(jìn)行密碼復(fù)雜度配置裹粤,配置內(nèi)容為:密碼修改重試3次機(jī)會(huì)终蒂,新密碼與老密碼必須有3字符不同,最小密碼長度12個(gè)字符
遥诉,包含大寫字符至少一個(gè)
拇泣,小寫字母至少一個(gè)
,數(shù)字至少一個(gè)
矮锈,特殊字符至少一個(gè)
霉翔。配置成功,會(huì)提示
[Password complexity set success]
,失敗會(huì)提示[Password complexity set failed]
苞笨,重復(fù)執(zhí)行腳本選擇此編號(hào)债朵,腳本每次都會(huì)配置,不會(huì)提示已配置過瀑凝。
2.3.3序芦、新增管理員賬號(hào)[Create eproot account]
禁止使用root
登入系統(tǒng),需要?jiǎng)?chuàng)建eproot
賬號(hào)粤咪,授予管理員權(quán)限谚中,并且保證運(yùn)行命令時(shí)無需輸入root密碼。
選擇編號(hào)3
寥枝,會(huì)提示是否創(chuàng)建eproot
賬號(hào)宪塔,確認(rèn)后,請(qǐng)輸入密碼囊拜,回車某筐,腳本會(huì)自行創(chuàng)建eproot
賬號(hào),并且授予管理員權(quán)限艾疟。重復(fù)執(zhí)行腳本来吩,選擇編號(hào)3
,如果已經(jīng)創(chuàng)建過eproot賬號(hào)蔽莱,會(huì)列出創(chuàng)建的信息弟疆,并提示已創(chuàng)建。
2.3.4盗冷、遠(yuǎn)程登入賬戶設(shè)置[Set Remote Login Configuration(SSH)]
選擇編號(hào)‘4’進(jìn)行SSH遠(yuǎn)程登錄相關(guān)安全配置怠苔,腳本會(huì)自動(dòng)配置SSH
協(xié)議為2,然后提示是否禁止root
賬號(hào)遠(yuǎn)程登入仪糖,并確定已經(jīng)有其余可遠(yuǎn)程登入的賬號(hào)柑司。輸入y
迫肖,確認(rèn)后回車關(guān)閉root
遠(yuǎn)程登入。
重復(fù)執(zhí)行腳本攒驰,選擇編號(hào)4
蟆湖,會(huì)提示已經(jīng)禁止root
遠(yuǎn)程。
2.3.5玻粪、賬戶登入安全設(shè)置[Set Shell History and TMOUT]
- 選擇編號(hào)
5
賬戶登入安全設(shè)置隅津,輸入y
回車,設(shè)置history
命令保存行數(shù)以及打印history
命令時(shí)間劲室。 - 設(shè)置
shell
環(huán)境超時(shí)時(shí)間伦仍,選擇區(qū)間為300~600秒,如果不輸入任何值很洋,腳本默認(rèn)設(shè)置為600秒充蓝。 - 重復(fù)執(zhí)行腳本,選擇編號(hào)
5
喉磁,會(huì)重新設(shè)置history
和TMOUT
2.3.6谓苟、遠(yuǎn)程登入端口設(shè)置[Set SSH Port]
- 選擇編號(hào)
6
進(jìn)行SSH
服務(wù)端口配置,輸入y
协怒,回車輸入端口號(hào)娜谊,腳本會(huì)根據(jù)用戶輸入的端口號(hào),配置更改相應(yīng)的端口 - 腳本會(huì)對(duì)輸入的端口進(jìn)行判斷是否滿足要求斤讥,如果滿足要求會(huì)進(jìn)行設(shè)置,如果不滿足要求腳本會(huì)給出提示湾趾,并要求用戶重新輸入確認(rèn)更改端口芭商,并輸入端口號(hào)。
- 端口號(hào)規(guī)則: 輸入端口號(hào)區(qū)間
1024<port<65535
- 重復(fù)執(zhí)行腳本搀缠,選擇編號(hào)
6
铛楣,修改ssh
端口,無法通過腳本改回端口22艺普。
2.3.7簸州、賬戶登入失敗處理[Set Logon failure handling]
- 執(zhí)行腳本,選擇編號(hào)
7
歧譬,設(shè)置賬戶登入失敗處理岸浑,輸入y
確認(rèn)回車,腳本會(huì)自動(dòng)進(jìn)行配置瑰步。 - 登入失敗處理內(nèi)容:登入失敗三次后賬號(hào)會(huì)被限制登入矢洲,普通賬號(hào)鎖定5分鐘,
root
賬號(hào)鎖定5分鐘缩焦,超過限制時(shí)間读虏,才可以重新登入责静。
#使用一下命令查看指定賬戶的失敗次數(shù)
pam_tally2 --user=root
Login Failures Latest failure From
root 4 03/20/19 16:57:09 192.168.149.9
#以下命令可以立馬重置賬戶的失敗次數(shù),解除限制(前提是已經(jīng)進(jìn)入系統(tǒng))
pam_tally2 --user=root --reset
2.3.8盖桥、配置備份與恢復(fù)[Recover Configuration]
執(zhí)行腳本灾螃,選擇編號(hào)8
,腳本會(huì)將保存于所在backup
目錄下的系統(tǒng)配置還原揩徊。
無法還原以下配置
- 新增的eproot賬戶不刪除腰鬼,防止誤刪。(eproot權(quán)限為修改前的狀態(tài))
2.3.9靴拱、全部加固[ALL protective]
選擇標(biāo)號(hào)1
垃喊,腳本會(huì)按[2-7]順序自動(dòng)執(zhí)行腳本加固,部分參數(shù)需要手動(dòng)輸入袜炕。