Linux 安全基线
1.???? 賬號管理
1.1.? 共享賬戶檢查
| 配置名稱 | 賬號分配檢查,避免共享賬號存在 |
| 配置要求 | 1、系統需按照實際用戶分配賬號; 2、避免不同用戶間共享賬號,避免用戶賬號和服務器間通信使用的賬號共享。 |
| 操作指南 | 參考配置操作:cat /etc/passwd查看當前所有用戶的情況; |
| 檢查方法 | 命令cat /etc/passwd查看當前所有用戶的信息,與管理員確認是否有共享賬號情況存在。 |
| 配置方法 | 如需建立用戶,參考如下: ????????? useradd username? #創建賬號 ????????? passwd username?? #設置密碼 |
| 適用版本 | 暫時未發現不適用版本 |
?
1.2.? 多余賬戶鎖定策略
| 配置名稱 | 多余賬戶鎖定策略 |
| 配置要求 | 應鎖定與設備運行、維護等工作無關的賬號。 |
| 操作指南 | 參考配置操作,查看鎖定用戶: ?# cat /etc/password,查看哪些賬戶的shell域中為nologin; |
| 檢查方法 | 人工檢查: cat /etc/password后查看多余賬戶的shell域為nologin為符合; BVS基線檢查: 多余賬戶處于鎖定狀態為符合。 |
| 配置方法 | 1、一般情況下,需要鎖定的用戶:lp,nuucp,hpdb,www,demon 2、針對需要鎖定的用戶:可以修改/etc/password文件,將需要鎖定的用戶的shell域設為 nologin; 或通過#passwd –l username鎖定賬戶; |
| 適用版本 | 暫時未發現不適用版本 |
1.3.? 口令復雜度策略
| 配置名稱 | 操作系統口令復雜度策略 |
| 配置要求 | 口令長度至少12位,并包括數字、小寫字母、大寫字母和特殊符號。 |
| 操作指南 | 1、參考配置操作 ?? ?cat /etc/pam.d/system-auth,找到password模塊接口的配????? 置部分,找到類似如下的配置行: ??? password requisite? /lib/security/$ISA/pam_cracklib.so minlen =6 2、補充操作說明 ??? 參數說明如下: 1、retry=N,確定用戶創建密碼時允許重試的次數; 2、minlen=N,確定密碼最小長度要求,事實上,在默認配置下,此參數代表密碼最小長度為N-1; 3、dcredit=N,當N小于0時,代表新密碼中數字字符數量不得少于(-N)個。 4、ucredit=N,當N小于0時,代表則新密碼中大寫字符數量不得少于(-N)個; 5、lcredit=N,當N小于0時,代表則新密碼中小寫字符數量不得少于(-N)個; 6、ocredit=N,當N小于0時,代表則新密碼中特殊字符數量不得少于(-N)個; |
| 檢查方法 | ?cat /etc/pam.d/system-auth,參考操作指南檢查對應參數 ???????? 口令的最小長度至少12位 ???????? 口令最少應包含的字符數量 ???????? 口令中最少應包含的字母字符數量 ???????? 口令中最少應包含的非字母數字字符數量 ???????? 通過以上4子項的輸出綜合判斷該項是否滿足。 |
| 配置方法 | ?vi /etc/pam.d/system-auth,找到password模塊接口的配置部分,按照配置要求內容修改對應屬性。 |
| 適用版本 | 暫時未發現不適用版本 |
?
1.4.? 口令最長生存期策略
| 配置名稱 | 口令最長生存期策略 |
| 配置要求 | 要求操作系統的賬戶口令的最長生存期不長于90天 |
| 操作指南 | ?cat /etc/login.defs文件中指定配置項,其中: ?PASS_MAX_DAYS配置項決定密碼最長使用期限; ?PASS_MIN_DAYS配置項決定密碼最短使用期限; ?PASS_WARN_AGE配置項決定密碼到期提醒時間。 |
| 檢查方法 | PASS_MAX_DAYS值小于等于90為符合; |
| 配置方法 | vi /etc/login.defs文件,修改PASS_MAX_DAYS值為小于等于90 |
| 適用版本 | 暫時未發現不適用版本 |
?
2.???? 訪問控制
2.1.? Root賬號遠程登錄限制
| 配置名稱 | Root賬號遠程登錄限制 |
| 配置要求 | 1、限制具備超級管理員權限的用戶遠程登錄。 2、遠程執行管理員權限操作,應先以普通權限用戶遠程登錄后,再切換到 超級管理員權限賬號后執行相應操作。 |
| 操作指南 | 使用root賬戶遠程嘗試登陸 |
| 檢查方法 | 1、root遠程登錄不成功,提示“Not on system console”; 2、普通用戶可以登錄成功,而且可以切換到root用戶; |
| 配置方法 | 修改/etc/ssh/sshd_config文件,將PermitRootLogin yes改為PermitRootLogin no,重啟sshd服務。 |
| 適用版本 | 暫時未發現不適用版本 |
?
2.2.? 關鍵目錄權限控制
| 配置名稱 | 關鍵目錄權限控制 |
| 配置要求 | 1、根據安全需要,配置某些關鍵目錄其所需的最小權限; 2、補充操作說明: 重點要求password配置文件、shadow文件、group文件權限。 當前主流版本的linux系統在默認情況下即對重要文件做了必要的權限設置,在日常管理和操作過程 中應避免修改此類文件權限,除此以外,應定期對權限進行檢查及復核,確保權限設置正確。 |
| 操作指南 | 查看關鍵目錄的用戶對應權限參考命令 ????????? ls -l /etc/passwd ????????? ls -l /etc/shadow ????????? ls -l /etc/group |
| 檢查方法 | 與管理員確認已有權限為最小權限。 |
| 配置方法 | 參考配置操作: 通過chmod命令對目錄的權限進行實際設置。 補充操作說明: ?? /etc/passwd 所有用戶都可讀,root用戶可寫 –rw-r—r— ??? 配置命令:chmod 644 /etc/passwd ?? /etc/shadow 只有root可讀 –r-------- ??? 配置命令:chmod 400 /etc/shadow; ?? /etc/group 必須所有用戶都可讀,root用戶可寫 –rw-r—r— ??? 配置命令:chmod 644 /etc/group; 如果是有寫權限,就需移去組及其它用戶對/etc的寫權限(特殊情況除外) 執行命令chmod -R go-w,o-r /etc |
| 適用版本 | 暫時未發現不適用版本 |
2.3.? 用戶缺省權限控制
| 配置名稱 | 用戶缺省權限控制 |
| 配置要求 | 控制用戶缺省訪問權限,當在創建新文件或目錄時應屏蔽掉新文件或目錄不應有的訪問允許權限, 防止同屬于該組的其它用戶及別的組的用戶修改該用戶的文件或更高限制。 |
| 操作指南 | 查看/etc/profile里全局用戶的umask值。 |
| 檢查方法 | 查看全局默認設置umask值為027或更小權限為符合(如有特許權限需求,可根據實際情況判斷); 查看具體用戶的umask,本著最小權限的原則。 |
| 配置方法 | 參考配置操作: 修改/etc/profile文件,例如要將默認umask值設置為027,那么可以在文件中增加一行“umask 027”。 |
| 適用版本 | 暫時未發現不適用版本 |
2.4.? 登錄終端的超時鎖定
| 配置名稱 | 登錄終端的超時鎖定 |
| 配置要求 | 應根據安全策略設置登錄終端的操作超時鎖定。 |
| 操作指南 | 查看具體/etc/profile里是否配置TMOUT值 |
| 檢查方法 | 查看具體/etc/profile里是否配置TMOUT值 |
| 配置方法 | 參考配置操作: 修改/etc/profile文件,可以在文件中增加一行“export TMOUT=540”(時間可選) |
| 適用版本 | 暫時未發現不適用版本 |
?
3.???? 安全審計
3.1.? 安全日志完備性要求
| 配置名稱 | 安全日志完備性要求 |
| 配置要求 | 系統應配置完備日志記錄,記錄對與系統相關的安全事件 |
| 操作指南 | 1、# cat /etc/syslog.conf查看是否有對應配置 2、# cat /var/log/secure查看是否有對應配置 |
| 檢查方法 | 1、cat /etc/syslog.conf確認是否存在相應配置; (例如:authpriv.*????????? /var/log/secure) 2、查看/var/log/secure,應記錄有需要的設備相關的安全事件。 |
| 配置方法 | 參考配置操作: 修改配置文件vi /etc/syslog.conf添加下面一行: ?authpriv.*?? ? /var/log/secure (中間的分隔符是tab) 補充操作說明: //將authpirv設備的任何級別的信息記錄到/var/log/secure文件中,這主要是一些和權限使用相關的信息。 |
| 適用版本 | 暫時未發現不適用版本 |
3.2.? 統一遠程日志服務器配置
| 配置名稱 | 安全日志完備性要求 |
| 配置要求 | 當前系統應配置遠程日志功能,將需要重點關注的日志內容傳輸到日志服務器進行備份。 |
| 操作指南 | # cat /etc/syslog.conf查看是否有對應配置 |
| 檢查方法 | 檢查是否配置遠程日志服務 |
| 配置方法 | 參考配置操作: 修改配置文件vi /etc/syslog.conf,加上這一行: ??? *.* ???@192.168.0.1(*.*和@之間為用tab分隔) 重新啟動syslog服務,執行下列命令: ?? ?services syslogd restart ? 補充操作說明: 可以將"*.*"替換為你實際需要的日志信息。比如:kern.* / mail.* 等等;可以將此處192.168.0.1替換為實際的IP或域名 |
| 適用版本 | 暫時未發現不適用版本 |
3.3.? 設置history時間戳
| 配置名稱 | 設置history時間戳 |
| 配置要求 | 設置history時間戳,方便審計 |
| 操作指南 | # cat /etc/profile查看是否有對應配置 |
| 檢查方法 | 檢查是否為日志配置時間戳 |
| 配置方法 | 參考配置操作: 修改配置文件vi /etc/profile,配置如下: HISTFILESIZE=2000????? #設置保存歷史命令的文件大小??????? HISTSIZE=2000?????????? #保存歷史命令條數??????? HISTTIMEFORMAT="%Y-%m-%d:%H-%M-%S:`whoami`:"(#記錄每條歷史命令的執行時間和執行者)????? export HISTTIMEFORMAT?? source /etc/profile執行使變更生效 ? 補充操作說明: 可以使用“echo”命令快速配置: echo 'export HISTTIMEFORMAT="%Y-%m-%d:%H-%M-%S:'whoami':? " ' >> /etc/profile && source /etc/profile |
| 適用版本 | 暫時未發現不適用版本 |
?
4.???? 入侵防范
4.1.? 關閉非必要的系統服務
| 配置名稱 | 關閉非必要的系統服務 |
| 配置要求 | 根據每臺機器的不同角色,關閉不需要的系統服務。操作指南中的服務項提供參考,根據服務器的角色和應用情況對 啟動項進行修改。如無特殊需要,應關閉Sendmail、Telnet、Bind等服務。 |
| 操作指南 | 執行命令 chkconfig –list或service -–status-all查看哪些服務開放。 |
| 檢查方法 | 與管理員確定非必要服務 |
| 配置方法 | 1、參考配置操作 ?? 使用如下方式禁用不必要的服務 ??? service <服務名> stop ??? chkconfig --level 35 off 2、參考說明 Linux/Unix系統服務中,部分服務存在較高安全風險,應當禁用,包括: “lpd”,此服務為行式打印機后臺程序,用于假脫機打印工作的UNIX后臺程序,此服務通常情況下不用,建議禁用; “telnet”,此服務采用明文傳輸數據,登陸信息容易被竊取,建議用ssh代替; “routed”,此服務為路由守候進程,使用動態RIP路由選擇協議,建議禁用; “sendmail”,此服務為郵件服務守護進程,非郵件服務器應將其關閉; “Bluetooth”,此服務為藍牙服務,如果不需要藍牙服務時應關閉; “identd”,此服務為AUTH服務,在提供用戶信息方面與finger類似,一般情況下該服務不是必須的,建議關閉; “xfs”,此服務為Linux中X Window的字體服務,關于該服務歷史上出現過信息泄露和拒絕服務等漏洞,應以減少系統風險; R服務(“rlogin”、“rwho”、“rsh”、“rexec”),R服務設計上存在嚴重的安全缺陷, 僅適用于封閉環境中信任主機之間便捷訪問,其他場合下均必須禁用; 基于inetd/xinetd的服務(daytime、chargen、echo等),此類服務建議禁用。 |
| 適用版本 | 暫時未發現不適用版本 |
4.2.? 禁止Control-Alt-Delete鍵盤關閉命令
| 配置名稱 | 禁止Control-Alt-Delete鍵盤關閉命令 |
| 配置要求 | 應禁止使用Control-Alt-Delete組合鍵重啟服務器,防止誤操作 |
| 操作指南 | 1、redhat系統使用cat /etc/inittab,查看配置 2、ubantu 系統使用 cat /etc/init/control-alt-delete.conf查看配置 |
| 檢查方法 | 查看是否有做相關配置 |
| 配置方法 | 參考配置操作 1、redhat系統在“/etc/inittab” 文件中注釋掉下面這行(使用#): ca::ctrlaltdel:/sbin/shutdown -t3 -r now? 改為: #ca::ctrlaltdel:/sbin/shutdown -t3 -r now? 為了使此改動生效,輸入下面這個命令: ?/sbin/init q或telinit q執行生效 ? 2、ubantu系統“/etc/init/control-alt-delete.conf”用#分別注釋: #start on control-alt-delete #exec shutdown -r now "Control-Alt-Delete pressed" |
| 適用版本 | 暫時未發現不適用版本 |
轉載于:https://www.cnblogs.com/ScriptKid-Lu/p/10278085.html
總結
以上是生活随笔為你收集整理的Linux 安全基线的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DHCP协议分析
- 下一篇: MySQL数据库使用(二):配置、连接远