Linux系統檢測和防禦腳本

一、方便將服務器安全狀況經過檢測腳本直接輸出txt文件,同時便於檢查出安全隱患。 二、縮短安全檢查和防禦時間,提升安全檢查和防禦效率 github地址 https://github.com/xiaoyunjie/Shell_Script.gitlinux


1、Linux檢測腳本


1.一、文件

壓縮包包含2個文件:git

  • CentOS_Check_Script.sh : 腳本文件
  • README.txt : 說明文件

Linux檢測腳本:Check_script.shgithub


1.二、操做說明

執行CentOS_Check_Script.sh腳本文件進行檢查,每次體檢生成文件都是惟一的,命令格式以下:shell

sudo sh CentOS_Check_Script.sh | tee check_`date +%Y%m%d_%H%M%S`.txt

1.三、腳本簡介

按三級等保要求,編寫的一鍵檢查腳本,此腳本只適合linux分支中的redhat、centos,運行腳本將結果輸出到自定義的文件中,腳本結果須要管理員人爲檢查,腳本結果中有相應提示檢測內容是否須要整改。centos


1.四、腳本檢測內容

警告:本腳本只是一個檢查的操做,未對服務器作任何修改,管理員能夠根據此報告進行相應的安全整改安全

管理員須要根據檢測報告進行安全加固,須要加固的條目都會標記 [需調整]bash

1.4.一、系統基本信息

腳本撈取主機的基本信息,包含如下內容:服務器

基本信息名 命令 備註
主機名
系統名稱
系統版本
內核版本
系統類型
本機IP地址
CPU型號
CPU核數
機器型號
系統時間
1.4.二、資源使用狀況
檢測條目 命令 備註
總內存大小
已使用內存大小
可以使用內存大小
系統運行時間
系統負載
內存狀態
殭屍進程
耗CPU最多進程
耗內存最多進行
環境變量
路由表
監聽端口
網絡鏈接
開機啓動服務
1.4.三、系統用戶狀況
檢測條目 命令 備註
活動用戶
系統全部用戶
系統全部組
當前用戶的計劃任務
1.4.四、身份鑑別安全
檢測條目 命令 備註
密碼複雜度
可疑帳戶
密碼過時天數
登入失敗處理
1.4.五、訪問控制安全
檢測條目 命令 備註
非系統默認用戶
系統特權用戶
系統空口令帳戶
1.4.六、安全審計
檢測條目 命令 備註
本機用戶登入歷史記錄
syslog日誌服務狀態
syslog日誌服務外發狀態
syslog審計要素和日誌
系統文件文件修改時間
重要日誌文件狀態
1.4.七、剩餘信息保護
檢測條目 命令 備註
分區狀況
可用塊設備信息
文件系統信息
1.4.八、入侵防範安全
檢測條目 命令 備註
系統入侵行爲
用戶錯誤登入列表
ssh暴力登入信息
1.4.九、惡意代碼防範
檢測條目 命令 備註
clamav殺毒軟件狀態
1.4.十、資源控制安全
檢測條目 命令 備註
xinetd服務狀態
ssh服務狀態
telnet-server服務狀態
防火牆狀態
hosts.deny策略
hosts.allow
登入超時限制

2、Linux加固腳本


2.一、腳本文件

  • CentOS_Protective_Script.sh : 腳本文件
  • README.txt : 說明文件

Linux加固腳本文件:Protective_Script.sh網絡


2.二、腳本操做說明

  • 執行CentOS_Protective_Script.sh腳本文件進行加固,命令格式以下
sudo sh CentOS_Protective_Script.sh
  • 執行完成後,請按腳本提示重啓相應服務

若是ostype是unknow,請不要繼續執行ssh


2.三、腳本簡介

一鍵加固腳本爲linux系統提供基礎安全加固,包括如下幾塊內容加固:

  • 口令複雜度:密碼修改重試3次機會,新密碼與老密碼必須有3字符不一樣,最小密碼長度12個字符,包含大寫字符至少一個小寫字母至少一個數字至少一個特殊字符至少一個
  • 新增管理員帳號:不直接使用root帳號,新增管理員eproot帳號,用於命令執行,遠程登入。
  • 遠程登入帳戶設置:限制root帳號遠程登入
  • 帳號登入安全設置:配置系統歷史命令操做記錄和定時賬戶自動登出時間
  • 遠程登入端口設置:修改默認SSH端口
  • 帳戶登入失敗處理:限制登入失敗三次,普通帳號鎖定5分鐘,root帳號鎖定5分鐘
  • 系統配置文件備份還原:腳本在首次執行時會將系統配置保存於腳本所在目錄下的backup目錄下,以便後續須要恢復配置時使用。再次運行腳本時,將不會再進行備份,除非原備份目錄被刪除。
2.3.一、簡介

image.png

首次運行腳本,會檢測當前系統類型,以及備份重要系統配置文件,包括system-auth、authorized_keys、sshd、sudoers、sshd_config、profile、su。經過選擇加固編號進行相應的內容進行加固,也能夠選擇編號1,將全部內容都進行加固。

2.3.二、密碼複雜度設置[Set Password Complexity Requirements ]

image.png 選擇編號2,腳本會自動進行密碼複雜度配置,配置內容爲:密碼修改重試3次機會,新密碼與老密碼必須有3字符不一樣,最小密碼長度12個字符,包含大寫字符至少一個小寫字母至少一個數字至少一個特殊字符至少一個。 配置成功,會提示[Password complexity set success],失敗會提示[Password complexity set failed],重複執行腳本選擇此編號,腳本每次都會配置,不會提示已配置過。

2.3.三、新增管理員帳號[Create eproot account]

禁止使用root登入系統,須要建立eproot帳號,授予管理員權限,而且保證運行命令時無需輸入root密碼。 image.png

選擇編號3,會提示是否建立eproot帳號,確認後,請輸入密碼,回車,腳本會自行建立eproot帳號,而且授予管理員權限。重複執行腳本,選擇編號3,若是已經建立過eproot帳號,會列出建立的信息,並提示已建立。 image.png

2.3.四、遠程登入帳戶設置[Set Remote Login Configuration(SSH)]

image.png

選擇編號‘4’進行SSH遠程登陸相關安全配置,腳本會自動配置SSH協議爲2,而後提示是否禁止root帳號遠程登入,並肯定已經有其他可遠程登入的帳號。輸入y,確認後回車關閉root遠程登入。 image.png

重複執行腳本,選擇編號4,會提示已經禁止root遠程。

2.3.五、帳戶登入安全設置[Set Shell History and TMOUT]

image.png

  • 選擇編號5帳戶登入安全設置,輸入y回車,設置history命令保存行數以及打印history命令時間。
  • 設置shell環境超時時間,選擇區間爲300~600秒,若是不輸入任何值,腳本默認設置爲600秒。
  • 重複執行腳本,選擇編號5,會從新設置historyTMOUT
2.3.六、遠程登入端口設置[Set SSH Port]

image.png

  • 選擇編號6進行SSH服務端口配置,輸入y,回車輸入端口號,腳本會根據用戶輸入的端口號,配置更改相應的端口
  • 腳本會對輸入的端口進行判斷是否知足要求,若是知足要求會進行設置,若是不知足要求腳本會給出提示,並要求用戶從新輸入確認更改端口,並輸入端口號。
  • 端口號規則: 輸入端口號區間 1024<port<65535
  • 重複執行腳本,選擇編號6,修改ssh端口,沒法經過腳本改回端口22。
2.3.七、帳戶登入失敗處理[Set Logon failure handling]

image.png

  • 執行腳本,選擇編號7,設置帳戶登入失敗處理,輸入y確認回車,腳本會自動進行配置。
  • 登入失敗處理內容:登入失敗三次後帳號會被限制登入,普通帳號鎖定5分鐘,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
2.3.八、配置備份與恢復[Recover Configuration]

image.png

執行腳本,選擇編號8,腳本會將保存於所在backup目錄下的系統配置還原。

沒法還原如下配置

  • 新增的eproot帳戶不刪除,防止誤刪。(eproot權限爲修改前的狀態)
2.3.九、所有加固[ALL protective]

選擇標號1,腳本會按[2-7]順序自動執行腳本加固,部分參數須要手動輸入。

相關文章
相關標籤/搜索