Linux 服務器安全加固(等保 2.0 標准)


Linux 服務器安全加固(等保 2.0 標准)

Linux 服務器安全加固(等保 2.0 標准)


 

身份鑒別

配置賬戶密碼策略

參考配置操作:

1、

1
2
3
4
5
6
7
# vim /etc/login.defs

修改下列參數為建議值
PASS_MAX_DAYS 30 #密碼有效期為30天
PASS_MIN_DAYS 1 #密碼最短修改時間為1天
PASS_MIN_LEN 8 #密碼最小長度為8位
PASS_WARN_AGE 7 #密碼過期提前7天提示修改

2、

1
2
3
4
# vim /etc/pam.d/system-auth

password requisite pam_cracklib.so行替換成如下:
password requisite pam_cracklib.so retry=6 difok=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
參數 說明
retry 嘗試次數
difok 最少不同字符
minlen 最小密碼長度
ucredit 最少大寫字母
lcredit 最少小寫字母
dcredit 最少數字
ocredit 最少特殊符號

3、口令至少5次內不能重復

1
2
3
# vim /etc/pam.d/system-auth

password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5

配置登錄失敗處理策略

參考配置操作:

1、限制本地登錄次數

1
2
3
4
# vim /etc/pam.d/login

在第二行增加如下內容:
auth required pam_tally2.so deny=3 unlock_time=1800 even_deny_root root_unlock_time=1800

2、限制ssh本地登錄次數

1
2
3
4
# vim /etc/pam.d/sshd

在第二行增加如下內容:
auth required pam_tally2.so deny=3 unlock_time=1800 even_deny_root root_unlock_time=1800

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
2
3
# vim /etc/profile

在末尾增加 umask 027。

2、補充操作說明

如果用戶需要使用一個不同於默認全局系統設置的 umask,可以在需要的時候通過命令行設置,或者在用戶的 shell 啟動文件中配置。

3、補充說明

umask 的默認設置一般為 022,這給新創建的文件默認權限755( 777-022=755),這會給文件所有者讀、寫權限,但只給組成員和其他用戶讀權限。

umask 的計算:
umask 是使用八進制數據代碼設置的,對於目錄,該值等於八進制數據代碼 777 減去需要的默認權限對應的八進制數據代碼值;對於文件,該值等於八進制數據代碼 666 減去需要的默認權限對應的八進制數據代碼值。

設置關鍵目錄的權限

參考配置操作:

1、對系統中重要文件配置權限:

1
# chmod 600 /etc/security

為不同的管理員分配不同的賬號

參考配置操作:

為用戶創建賬號:

1
2
# useradd username #創建賬號
# passwd username #設置密碼

修改文件權限:

1
2
# chmod 755 directory
//其中 755 為設置的權限,可根據實際情況設置相應的權限, directory 是要更改權限的目錄)使用該命令為不同的用戶分配不同的賬號,設置不同的口令及權限信息等。

更改文件或目錄的所有者和組群所有者:

1
2
# chown [選項] [用戶:組群] [文件|目錄] 
//例如,#chown username:groupname directory,其中username為文件所有者,groupname為組群所有者,directory為文件或目錄。

鎖定系統無用賬戶

參考配置操作:

通過cat /etc/shadow查看當前帳戶列表,以下用戶lp|sync|halt|news|uucp|operator|games|gopher|smmsp|nfsnobody|nobody密碼字段列不是以*或者!!開頭的,需要禁用或刪除

命令:passwd -l username

注解:禁用無關帳戶

開啟 SELinux

參考配置操作:

1、開啟配置文件

1
2
3
4
#vi etc/selinux/config

修改下列參數為建議值:
SELINUX=enforcing

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
2
3
4
5
# vim /etc/syslog.conf,

配置如下類似語句:
*.err;kern.debug;daemon.notice; /var/adm/messages
定義為需要保存的設備相關安全事件。

2、更改日所有志文件屬性,使文件只可追加不可修改:

1
2
3
4
# chattr +a /var/log/messages       #如果不存在則忽略
# chattr +a /var/log/secure
# chattr +a -/var/log/maillog
# chattr +a /var/log/cron

3、參數含義:

參數 說明
kern 由kernel產生的信息;
user 由用戶進程產生的信息。對那些由程序或不在此列出的工具產生的信息,其缺省類型都是“user”;
mail 郵件系統產生的信息;
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
2
3
4
# vim /etc/rsyslog.conf

*.info;mail.none;authpriv.none;cron.none /var/log/messages
將上一行中的/var/log/messages修改為: @<日志服務器IP>

2、重新讀取配置文件:service rsyslog reload

部署網絡/數據庫安全審計系統

在網絡中部署網絡/數據庫安全審計系統,通過對人員訪問系統的行為進行解析、分析、記錄、匯報,以幫助用戶事前規划預防、事中實時監視、違規行為響應、事后合規報告、事故追蹤溯源,加強內外部網絡行為監管、促進核心資產(數據庫、服務器、網絡設備等)的正常運營。

入侵防范

配置防火牆

參考配置操作:

1、啟動 iptables:

1
# service iptables start

2、開放端口(根據實際業務需求進行配置):

1
2
3
4
# vim /etc/sysconfig/iptables 

在其中寫入配置,例如增加如下一行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

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
2
3
#vi /etc/hosts.deny

sshd: ALL #拒絕一切SSH遠程訪問,配合文件hosts.allow使用

2、編輯 hosts.allow 文件,加入允許訪問的主機列表,比如:

1
2
3
#vi /etc/hosts.allow

sshd:192.168.59.1:allow #允許192.168.59.1訪問SSH服務進程

設置登錄超時時間

未整改狀態:

系統未設置超時時間。系統中 root 賬戶是具有最高特權的,如果系統管理員在離開系統之前忘記注銷 root 賬戶,那將會帶來很大的安全隱患,應該讓系統自動注銷。

參考配置操作:

通過修改賬戶中 TMOUT 參數,可以實現此功能。編輯 /etc/profile 文件,在 HISTFILESIZE= 后面加入TMOUT值:

1
2
3
4
5
6
# vim /etc/profile

TMOUT=180 #表示 180 秒
export TMOUT #設置為全局變量

# source /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
2
3
4
5
* hard rss sizeofmem
* hard nproc maxNumberOfProcesses
* hard as sizeofvirtualmem

#其中sizeofmem和sizeofvirtualmem為數值,其單位為KB;maxNumberOfProcesses也為數值,其單位為個

4、重啟服務

1
/etc/init.d/sshd restart

監控服務器資源狀態

配置資源監控系統,對服務器的 cpu、內存等資源進行實時監控,且應具有報警功能。管理員可以及時了解網絡上各種設備的運行狀況,可以及時發現並處理設備資源使用率過高、服務器宕機等異常狀況。

 

 博文最后更新時間: 2020年11月11日下午2點50分


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM