一、方便將服務器安全狀況經過檢測腳本直接輸出txt文件,同時便於檢查出安全隱患。 二、縮短安全檢查和防禦時間,提升安全檢查和防禦效率 github地址
https://github.com/xiaoyunjie/Shell_Script.git
linux
壓縮包包含2個文件:git
CentOS_Check_Script.sh
: 腳本文件README.txt
: 說明文件Linux檢測腳本:Check_script.shgithub
執行CentOS_Check_Script.sh
腳本文件進行檢查,每次體檢生成文件都是惟一的,命令格式以下:shell
sudo sh CentOS_Check_Script.sh | tee check_`date +%Y%m%d_%H%M%S`.txt
按三級等保要求,編寫的一鍵檢查腳本,此腳本只適合linux分支中的redhat、centos
,運行腳本將結果輸出到自定義的文件中,腳本結果須要管理員人爲檢查,腳本結果中有相應提示檢測內容是否須要整改。centos
警告:本腳本只是一個檢查的操做,未對服務器作任何修改,管理員能夠根據此報告進行相應的安全整改安全
管理員須要根據檢測報告進行安全加固,須要加固的條目都會標記 [需調整]
bash
腳本撈取主機的基本信息,包含如下內容:服務器
基本信息名 | 命令 | 備註 |
---|---|---|
主機名 | ||
系統名稱 | ||
系統版本 | ||
內核版本 | ||
系統類型 | ||
本機IP地址 | ||
CPU型號 | ||
CPU核數 | ||
機器型號 | ||
系統時間 |
檢測條目 | 命令 | 備註 |
---|---|---|
總內存大小 | ||
已使用內存大小 | ||
可以使用內存大小 | ||
系統運行時間 | ||
系統負載 | ||
內存狀態 | ||
殭屍進程 | ||
耗CPU最多進程 | ||
耗內存最多進行 | ||
環境變量 | ||
路由表 | ||
監聽端口 | ||
網絡鏈接 | ||
開機啓動服務 |
檢測條目 | 命令 | 備註 |
---|---|---|
活動用戶 | ||
系統全部用戶 | ||
系統全部組 | ||
當前用戶的計劃任務 |
檢測條目 | 命令 | 備註 |
---|---|---|
密碼複雜度 | ||
可疑帳戶 | ||
密碼過時天數 | ||
登入失敗處理 |
檢測條目 | 命令 | 備註 |
---|---|---|
非系統默認用戶 | ||
系統特權用戶 | ||
系統空口令帳戶 |
檢測條目 | 命令 | 備註 |
---|---|---|
本機用戶登入歷史記錄 | ||
syslog日誌服務狀態 | ||
syslog日誌服務外發狀態 | ||
syslog審計要素和日誌 | ||
系統文件文件修改時間 | ||
重要日誌文件狀態 |
檢測條目 | 命令 | 備註 |
---|---|---|
分區狀況 | ||
可用塊設備信息 | ||
文件系統信息 |
檢測條目 | 命令 | 備註 |
---|---|---|
系統入侵行爲 | ||
用戶錯誤登入列表 | ||
ssh暴力登入信息 |
檢測條目 | 命令 | 備註 |
---|---|---|
clamav殺毒軟件狀態 |
檢測條目 | 命令 | 備註 |
---|---|---|
xinetd服務狀態 | ||
ssh服務狀態 | ||
telnet-server服務狀態 | ||
防火牆狀態 | ||
hosts.deny策略 | ||
hosts.allow | ||
登入超時限制 |
CentOS_Protective_Script.sh
: 腳本文件README.txt
: 說明文件Linux加固腳本文件:Protective_Script.sh網絡
CentOS_Protective_Script.sh
腳本文件進行加固,命令格式以下sudo sh CentOS_Protective_Script.sh
若是ostype是unknow,請不要繼續執行ssh
一鍵加固腳本爲linux系統提供基礎安全加固,包括如下幾塊內容加固:
12個字符
,包含大寫字符至少一個
,小寫字母至少一個
,數字至少一個
,特殊字符至少一個
。root
帳號,新增管理員eproot
帳號,用於命令執行,遠程登入。root
帳號遠程登入SSH
端口root
帳號鎖定5分鐘backup
目錄下,以便後續須要恢復配置時使用。再次運行腳本時,將不會再進行備份,除非原備份目錄被刪除。首次運行腳本,會檢測當前系統類型,以及備份重要系統配置文件,包括system-auth、authorized_keys、sshd、sudoers、sshd_config、profile、su
。經過選擇加固編號進行相應的內容進行加固,也能夠選擇編號1
,將全部內容都進行加固。
選擇編號
2
,腳本會自動進行密碼複雜度配置,配置內容爲:密碼修改重試3次機會,新密碼與老密碼必須有3字符不一樣,最小密碼長度12個字符
,包含大寫字符至少一個
,小寫字母至少一個
,數字至少一個
,特殊字符至少一個
。 配置成功,會提示[Password complexity set success]
,失敗會提示[Password complexity set failed]
,重複執行腳本選擇此編號,腳本每次都會配置,不會提示已配置過。
禁止使用root
登入系統,須要建立eproot
帳號,授予管理員權限,而且保證運行命令時無需輸入root密碼。
選擇編號3
,會提示是否建立eproot
帳號,確認後,請輸入密碼,回車,腳本會自行建立eproot
帳號,而且授予管理員權限。重複執行腳本,選擇編號3
,若是已經建立過eproot帳號,會列出建立的信息,並提示已建立。
選擇編號‘4’進行SSH遠程登陸相關安全配置,腳本會自動配置SSH
協議爲2,而後提示是否禁止root
帳號遠程登入,並肯定已經有其他可遠程登入的帳號。輸入y
,確認後回車關閉root
遠程登入。
重複執行腳本,選擇編號4
,會提示已經禁止root
遠程。
5
帳戶登入安全設置,輸入y
回車,設置history
命令保存行數以及打印history
命令時間。shell
環境超時時間,選擇區間爲300~600秒,若是不輸入任何值,腳本默認設置爲600秒。5
,會從新設置history
和TMOUT
6
進行SSH
服務端口配置,輸入y
,回車輸入端口號,腳本會根據用戶輸入的端口號,配置更改相應的端口1024<port<65535
6
,修改ssh
端口,沒法經過腳本改回端口22。7
,設置帳戶登入失敗處理,輸入y
確認回車,腳本會自動進行配置。root
帳號鎖定5分鐘,超過限制時間,才能夠從新登入。#使用一下命令查看指定帳戶的失敗次數 pam_tally2 --user=root Login Failures Latest failure From root 4 03/20/19 16:57:09 192.168.149.9 #如下命令能夠立馬重置帳戶的失敗次數,解除限制(前提是已經進入系統) pam_tally2 --user=root --reset
執行腳本,選擇編號8
,腳本會將保存於所在backup
目錄下的系統配置還原。
沒法還原如下配置
選擇標號1
,腳本會按[2-7]順序自動執行腳本加固,部分參數須要手動輸入。