Linux 服務器安全加固(等保 2.0 標准)
身份鑒別
配置賬戶密碼策略
參考配置操作:
1、
1 |
# vim /etc/login.defs |
2、
1 |
# vim /etc/pam.d/system-auth |
參數 | 說明 |
---|---|
retry | 嘗試次數 |
difok | 最少不同字符 |
minlen | 最小密碼長度 |
ucredit | 最少大寫字母 |
lcredit | 最少小寫字母 |
dcredit | 最少數字 |
ocredit | 最少特殊符號 |
3、口令至少5次內不能重復
1 |
# vim /etc/pam.d/system-auth |
配置登錄失敗處理策略
參考配置操作:
1、限制本地登錄次數
1 |
# vim /etc/pam.d/login |
2、限制ssh本地登錄次數
1 |
# vim /etc/pam.d/sshd |
3、查看用戶登錄失敗的次數(以root為例)
1 |
# pam_tally2 --user root |
4、解鎖指定用戶(以root為例)
1 |
# pam_tally2 -r -u root |
5、上述參數解釋
參數 | 說明 |
---|---|
even_deny_root | 也限制root用戶 |
deny | 設置普通用戶和root用戶連續錯誤登陸的最大次數,超過最大次數,則鎖定該用戶 |
unlock_time | 設定普通用戶鎖定后,多少時間后解鎖,單位是秒 |
root_unlock_time | 設定root用戶鎖定后,多少時間后解鎖,單位是秒 |
注1:必須在
#%PAM-1.0
的下面,即第二行,添加內容,一定要寫在前面。如果寫在后面,雖然用戶被鎖定,但是只要用戶輸入正確的密碼,還是可以登錄的。
注2:此處使用的是 pam_tally2 模塊,如果不支持 pam_tally2 可以使用 pam_tally 模塊。另外,不同的pam版本,設置可能有所不同,具體使用方法,可以參照相關模塊的使用規則。
雙因子身份認證
未整改狀態:
當前管理員僅使用用戶名+密碼方式對服務器進行管理,未使用兩種及兩種以上組合鑒別方式對管理員身份進行鑒別。
參考配置操作:
建議在系統中配置堡壘機、USB Key、動態口令等,使用兩種鑒別技術對系統管理員進行身份鑒別。
訪問控制
修改UMASK值
參考配置操作:
1、編輯/etc/profile文件,設置umask值:
1 |
# vim /etc/profile |
2、補充操作說明
如果用戶需要使用一個不同於默認全局系統設置的 umask,可以在需要的時候通過命令行設置,或者在用戶的 shell 啟動文件中配置。
3、補充說明
umask 的默認設置一般為 022,這給新創建的文件默認權限755( 777-022=755),這會給文件所有者讀、寫權限,但只給組成員和其他用戶讀權限。
umask 的計算:
umask 是使用八進制數據代碼設置的,對於目錄,該值等於八進制數據代碼 777 減去需要的默認權限對應的八進制數據代碼值;對於文件,該值等於八進制數據代碼 666 減去需要的默認權限對應的八進制數據代碼值。
設置關鍵目錄的權限
參考配置操作:
1、對系統中重要文件配置權限:
1 |
# chmod 600 /etc/security |
為不同的管理員分配不同的賬號
參考配置操作:
為用戶創建賬號:
1 |
# useradd username #創建賬號 |
修改文件權限:
1 |
# chmod 755 directory |
更改文件或目錄的所有者和組群所有者:
1 |
# chown [選項] [用戶:組群] [文件|目錄] |
鎖定系統無用賬戶
參考配置操作:
通過cat /etc/shadow
查看當前帳戶列表,以下用戶lp|sync|halt|news|uucp|operator|games|gopher|smmsp|nfsnobody|nobody
密碼字段列不是以*
或者!!
開頭的,需要禁用或刪除
命令:passwd -l username
注解:禁用無關帳戶
開啟 SELinux
參考配置操作:
1、開啟配置文件
1 |
#vi etc/selinux/config |
2、重啟操作系統,或使用命令 setenforce 1
在不重啟的情況下臨時開啟。
3、執行命令 /usr/sbin/sestatus -v
或 getenforce
查看 selinux 運行狀態。
注:配置后可能導致系統異常,建議在測試環境中進行驗證后再對生產環境進行加固,並在加固前進行完善的系統備份工作。
安全審計
配置日志審計功能
未整改狀態:
系統未配置audit功能,沒有使用aureport生成審計報告可以生成分析報表。
參考配置操作:
1、安裝audit軟件包
1 |
yum install audit |
2、開始audit 服務
1 |
service auditd start |
3、根據實際情況,在 /etc/audit/auditd.conf
文件中配置對audit審計工具進行配置。
4、根據實際情況,在 /etc/audit/audit.rules
文件中配置審核規則。
記錄設備相關安全事件
參考配置操作
1、修改配置文件
1 |
# vim /etc/syslog.conf, |
2、更改日所有志文件屬性,使文件只可追加不可修改:
1 |
# chattr +a /var/log/messages #如果不存在則忽略 |
3、參數含義:
參數 | 說明 |
---|---|
kern | 由kernel產生的信息; |
user | 由用戶進程產生的信息。對那些由程序或不在此列出的工具產生的信息,其缺省類型都是“user”; |
郵件系統產生的信息; | |
daemon | 系統守護進程的信息,如in.ftpd、telnetd; |
auth | 由login, su, getty等進行身份認證時產生的信息; |
syslog | 由syslogd自己內部產生的信息; |
lpr | 行打印spooling系統的信息; |
news | USENET 網絡新聞系統的信息; |
uucp | UUCP系統信息; |
cron | cron和at工具信息; |
local0-7 | 保留為local使用; |
mark | syslogd內部產生的時間戳信息; |
* | 除mark之外的所有其它類型(此符號不可用以代表所有級別)。 |
保留字段中的“級別”代表信息的重要性,可以是:
參數 | 說明 |
---|---|
emerg | 緊急,處於Panic狀態。通常應廣播到所有用戶; |
alert | 告警,當前狀態必須立即進行糾正。例如,系統數據庫崩潰; |
crit | 關鍵狀態的警告。例如,硬件故障; |
err | 其它錯誤; |
warning | 警告; |
notice | 注意;非錯誤狀態的報告,但應特別處理; |
info | 通報信息; |
debug | 調試程序時的信息; |
none | 通常調試程序時用,指示帶有none級別的類型產生的信息無需送出。如*.debug;mail.none表示調試時除郵件信息外其它信息都送出。 |
配置日志審計系統
建議在網絡上部署日志審計系統,采集用戶網絡中各種不同廠商的安全設備、網絡設備、主機、操作系統、以及各種應用系統產生的海量日志信息,並將這些信息匯集到審計中心,進行集中化存儲、備份、查詢、審計、告警、響應,並出具豐富的審計報表。
1、
1 |
# vim /etc/rsyslog.conf |
2、重新讀取配置文件:service rsyslog reload
部署網絡/數據庫安全審計系統
在網絡中部署網絡/數據庫安全審計系統,通過對人員訪問系統的行為進行解析、分析、記錄、匯報,以幫助用戶事前規划預防、事中實時監視、違規行為響應、事后合規報告、事故追蹤溯源,加強內外部網絡行為監管、促進核心資產(數據庫、服務器、網絡設備等)的正常運營。
入侵防范
配置防火牆
參考配置操作:
1、啟動 iptables:
1 |
# service iptables start |
2、開放端口(根據實際業務需求進行配置):
1 |
# vim /etc/sysconfig/iptables |
3、重啟防火牆:
1 |
# service iptables restart |
4、檢查防火牆策略:
1 |
#iptables -nvL |
部署入侵檢測系統(IDS)
准確分析、報告網絡中正在發生的各種異常事件和攻擊行為,實現對網絡的“全面檢測”,並通過實時的報警信息和多種格式報表,為用戶提供翔實、可操作的安全建議,幫助用戶完善安全保障措施。
部署漏洞掃描系統
實現對網絡設備、操作系統、應用系統進行全面安全漏洞檢測,清晰定性安全風險,給出修復建議和預防措施,及時的發現和修補漏洞隱患。
關閉無用服務
未整改狀態:
系統中服務開啟均為系統安裝時默認狀態。
參考配置操作:
取消所有不需要的服務,編輯 /etc/inetd.conf
文件,通過注釋取消所有你不需要的服務。
1、更改 /etc/inetd.conf
權限為 600,只允許 root 來讀寫該文件。
1 |
# chmod 600 /etc/inetd.conf |
2、確定 /etc/inetd.conf
文件所有者為 root。
1 |
# chown root /etc/inetd.conf |
3、編輯 /etc/inetd.conf
文件,取消不需要的服務,如:ftp, telnet, shell, login, exec, talk, ntalk,imap, pop-2, pop-3, finger, auth 等等。把不需要的服務關閉可以使系統的危險性降低很多。
4、給 inetd 進程發送一個 HUP 信號:
1 |
# killall -HUP inetd |
5、把 /etc/inetd.conf
文件設為不可修改。
1 |
# chattr +i /etc/inetd.conf |
注:
/etc/inetd.conf 文件中只開放需要的服務。
對於啟用的網絡服務,使用 TCP Wrapper 增強訪問控制和日志審計功能。
建議使用 xinetd 代替 inetd,前者在訪問控制和日志審計方面有較大的增強。這樣可以防止對inetd.conf的任何修改(以外或其他原因)。唯一可以取消這個屬性的只有root。
如果要修改inetd.conf文件,首先要取消不可修改屬性:# chattr -i /etc/inetd.conf
portmap(如果啟動使用 nfs 等需要 rpc 的服務,建議關閉portmap 服務)
cups 服務( Common Unix Printing Service,用於打印,建議關閉)
named 服務(除非主機是 dns 服務器,否則關閉 named 服務)
apache( http)服務
xfs( X Font Service)服務
vsftpd
lpd
linuxconf
identd
smb
系統補丁更新
建議定期對系統進行補丁更新,建立內網補丁服務器或由管理員手工將補丁安裝到操作系統中。
注:補丁安裝應當先在測試機上完成。補丁安裝可能導致系統或某些服務無法工作正常。在下載補丁包時,一定要對簽名進行核實,防止系統感染病毒。
惡意代碼防范
安裝殺毒軟件
未整改狀態:
當前系統未安裝殺毒軟件,無法防止病毒對內部網絡進行感染。
參考配置操作:
在服務器和終端設備上安裝網絡版殺毒軟件,配置防病毒服務器,實現下發病毒掃描策略、更新病毒庫、統計報警信息等,便於管理人員對整個網絡中的病毒防護狀況進行管理。
資源控制
設置訪問控制列表
未整改狀態:
系統未設置訪問控制列表。
參考配置操作:
1、編輯 hosts.deny
文件,加入 (ALL:ALL)
:
1 |
#vi /etc/hosts.deny |
2、編輯 hosts.allow
文件,加入允許訪問的主機列表,比如:
1 |
#vi /etc/hosts.allow |
設置登錄超時時間
未整改狀態:
系統未設置超時時間。系統中 root 賬戶是具有最高特權的,如果系統管理員在離開系統之前忘記注銷 root 賬戶,那將會帶來很大的安全隱患,應該讓系統自動注銷。
參考配置操作:
通過修改賬戶中 TMOUT
參數,可以實現此功能。編輯 /etc/profile
文件,在 HISTFILESIZE=
后面加入TMOUT值:
1 |
# vim /etc/profile |
這樣,如果系統中登錄的用戶在 3 分鍾內都沒有動作,那么系統會自動注銷這個賬戶。
限制用戶對資源的訪問
參考配置操作:
1、編輯 /etc/security/limits.conf
文件,根據實際使用情況配置參數,限制用戶對系統資源的使用限度。
參數 | 說明 |
---|---|
core | 限制內核文件的大小 |
date | 最大數據大小 |
fsize | 最大文件大小 |
memlock | 最大鎖定內存地址空間 |
nofile | 打開文件的最大數目 |
rss | 最大持久設置大小 |
stack | 最大棧大小 |
cpu | 以分鍾為單位的最多 CPU 時間 |
noproc | 進程的最大數目 |
as | 地址空間限制 |
maxlogins | 此用戶允許登錄的最大數目 |
2、編輯 /etc/pam.d/login
文件,在其末端添加如下語句
1 |
session required /lib/security/pam_limits.so |
3、編輯 /etc/security/limits.conf
文件,在其中添加如下語句
1 |
* hard rss sizeofmem |
4、重啟服務
1 |
/etc/init.d/sshd restart |
監控服務器資源狀態
配置資源監控系統,對服務器的 cpu、內存等資源進行實時監控,且應具有報警功能。管理員可以及時了解網絡上各種設備的運行狀況,可以及時發現並處理設備資源使用率過高、服務器宕機等異常狀況。
博文最后更新時間: 2020年11月11日下午2點50分