一、系統級基礎安全強化
adm
、lp
、sync
等默認賬戶),刪除無用賬戶;設置強密碼策略(包含大小寫字母、數字、特殊字符,長度≥10位),并通過/etc/login.defs
限制密碼有效期(如最短90天)。鎖定不必要的超級用戶賬戶,避免權限濫用。setenforce 1
),并修改/etc/selinux/config
將SELINUX
設為enforcing
模式,通過強制訪問控制(MAC)限制進程權限,防止非法訪問系統資源。yum update
命令更新操作系統及所有軟件包,及時修補已知安全漏洞,降低被攻擊風險。二、網絡層防護:防火墻精細化配置
firewalld
(CentOS默認)或iptables
配置防火墻,優先選擇firewalld
的zone
機制管理規則。firewall-cmd --set-default-zone=drop
設置默認拒絕策略,僅允許明確允許的流量。rich規則
限制特定IP訪問敏感服務(如SSH),例如firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port port=22 protocol=tcp accept"
;將服務器接口綁定到public
zone,隔離內外網流量。三、Web服務器(Apache)安全配置
/etc/httpd/conf/httpd.conf
),關閉ServerTokens
(設為Prod
,隱藏服務器版本)、ServerSignature
(設為Off
,禁用錯誤頁面顯示服務器信息)、TraceEnable
(設為Off
,禁用TRACE/TRACK方法);使用專用用戶(如apache
)和用戶組運行Apache,設置DocumentRoot
目錄權限為750
(所有者可讀寫執行,組可讀執行,其他用戶無權限)。cgi
、autoindex
,通過a2dismod
或注釋httpd.conf
中的模塊行),減少攻擊面;限制客戶端連接數(MaxClients
設為服務器內存能承受的最大值,如150),防止資源耗盡攻擊。mod_security
模塊(sudo yum install mod_security
),啟用OWASP核心規則集(CRS),攔截SQL注入、跨站腳本攻擊(XSS)、文件包含等常見Web攻擊;通過SecRuleEngine On
開啟規則引擎,定期更新規則庫以應對新威脅。四、數據庫(MySQL/MariaDB)安全加固
mysql_secure_installation
腳本,移除匿名用戶、禁止遠程root登錄(UPDATE mysql.user SET Host='localhost' WHERE User='root'; FLUSH PRIVILEGES;
);創建專用數據庫用戶(如webapp
),僅授予必要權限(如SELECT
、INSERT
、UPDATE
),避免使用root賬戶連接數據庫。log_error = /var/log/mysql/error.log
,slow_query_log = 1
,long_query_time = 2
),記錄錯誤和慢查詢,便于排查異常;對敏感數據(如用戶密碼、銀行卡信息)進行加密存儲(如使用AES加密)。五、PHP安全配置優化
expose_php
(設為Off
,隱藏PHP版本信息)、display_errors
(設為Off
,避免在錯誤頁面泄露敏感信息),將錯誤日志記錄到/var/log/php_errors.log
;禁用危險函數(如exec
、system
、shell_exec
,通過disable_functions = exec,system,shell_exec
),防止命令注入;限制文件上傳大?。?code>upload_max_filesize = 2M,post_max_size = 8M
),避免大文件攻擊。php_ldap
、php_oci8
,通過yum remove php-ldap
),減少漏洞點;使用預處理語句(PDO或MySQLi)防止SQL注入,例如$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?"); $stmt->execute([$email]);
;定期更新PHP版本(如從7.4升級到8.2),修復已知安全漏洞。六、SSH與遠程訪問安全
/etc/ssh/sshd_config
,禁用root遠程登錄(PermitRootLogin no
)、更改默認端口(如Port 2222
)、啟用密鑰認證(PasswordAuthentication no
);限制登錄IP(AllowUsers user@192.168.1.100
),僅允許信任IP訪問;設置登錄失敗次數限制(MaxAuthTries 3
),防止暴力破解。ssh-keygen -t rsa -b 4096
),將公鑰(id_rsa.pub
)添加到服務器~/.ssh/authorized_keys
文件,禁用密碼認證,提升遠程訪問安全性。七、安全監控與應急響應
auditd
服務(sudo yum install auditd
,sudo systemctl enable --now auditd
),記錄系統調用、文件訪問、用戶登錄等關鍵活動;使用fail2ban
工具監控日志(如/var/log/secure
),自動封禁頻繁失敗的IP地址(如SSH登錄失敗超過3次,封禁1小時);定期檢查日志(last -i
查看登錄記錄,grep "Failed password" /var/log/secure
查看失敗登錄),及時發現異常行為。tar -czvf backup_$(date +%F).tar.gz /etc /var/www/html /var/lib/mysql
命令備份到外部存儲;制定事件響應計劃(如發現入侵后,立即隔離服務器、分析日志、恢復數據、修補漏洞),確??焖賾獙Π踩录?。