賬戶與權限管理
/etc/passwd
文件檢測并鎖定不必要的超級賬戶(如未使用的管理員賬戶);刪除adm
、lp
、sync
等默認賬戶,減少系統受攻擊的風險。/etc/login.defs
文件強制執行口令復雜度要求,啟用口令有效期(如每90天更換一次)。root
用戶登錄;通過visudo
編輯/etc/sudoers
文件,設置sudo超時(如15分鐘),限制sudo權限的使用范圍。系統與軟件更新
sudo yum update -y
命令定期更新操作系統內核、Apache、MySQL、PHP等軟件包,修復已知安全漏洞(如Apache的HTTP請求走私漏洞、MySQL的SQL注入漏洞)。yum-cron
工具配置自動下載并安裝安全更新,確保系統及時修補高危漏洞(如CentOS官方發布的安全公告)。防火墻與端口管理
firewalld
(推薦)或iptables
限制對服務器的訪問,僅開放必要端口(如HTTP 80、HTTPS 443、SSH 22);通過firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="攻擊IP" drop'
命令屏蔽惡意IP地址。systemctl disable
命令停止未使用的服務(如FTP、Telnet、Samba),減少攻擊面(如Telnet的明文傳輸漏洞)。SSH安全加固
/etc/ssh/sshd_config
文件,將PermitRootLogin
設置為no
,禁止root用戶通過SSH直接登錄,降低暴力破解風險。ssh-keygen -t rsa -b 4096
),將公鑰復制到服務器(ssh-copy-id username@server_ip
),禁用密碼登錄(PasswordAuthentication no
),防止密碼泄露導致的賬戶淪陷。/etc/ssh/sshd_config
文件設置MaxAuthTries 3
(最多嘗試3次)和LoginGraceTime 2m
(登錄時間為2分鐘),防止暴力破解。Apache Web服務器安全配置
/etc/httpd/conf/httpd.conf
文件,注釋掉不需要的模塊(如mod_imap
、mod_ldap
),減少潛在的安全風險(如模塊漏洞導致的遠程代碼執行)。/var/www/html
)的所有者設為普通用戶(如apache:apache
),權限設為750
(所有者可讀寫執行,組用戶可讀執行,其他用戶無權限),防止未授權訪問。MaxClients
參數限制并發連接數(如150),通過MaxRequestsPerChild
參數限制每個子進程處理的請求數(如1000),防止資源耗盡攻擊(如DDoS)。Options -Indexes
,禁止目錄自動列出,避免敏感文件(如配置文件、備份文件)被直接查看。MySQL/MariaDB數據庫安全配置
mysql_secure_installation
腳本,為root用戶設置強密碼(包含大小寫字母、數字和特殊字符);定期更換密碼(如每3個月一次)。mysql_secure_installation
腳本刪除匿名用戶(DELETE FROM mysql.user WHERE User='';
),禁止root用戶從遠程主機登錄(REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%';
),僅允許本地登錄(GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
)。mysqldump
命令定期備份數據庫(如mysqldump -u root -p dbname > dbname_backup.sql
),并將備份文件存儲在安全位置(如異地服務器、云存儲),防止數據丟失或被篡改。PHP配置安全
yum remove
命令移除不需要的PHP模塊(如php-xmlrpc
、php-gmp
),減少攻擊面(如XML-RPC漏洞導致的遠程代碼執行)。php.ini
文件,禁用eval()
、exec()
、system()
等危險函數(disable_functions = eval,exec,system,passthru,shell_exec
),防止惡意代碼執行。display_errors
設置為Off
(display_errors = Off
),避免在錯誤頁面泄露敏感信息(如數據庫用戶名、密碼、路徑);將錯誤日志記錄到指定文件(error_log = /var/log/php_errors.log
),便于后續審計。upload_max_filesize
(如2M)和post_max_size
(如8M)參數限制上傳文件的大小,防止上傳惡意腳本(如PHP木馬)。SELinux與文件系統安全
/etc/selinux/config
文件,將SELINUX
設置為enforcing
(SELINUX=enforcing
),啟用強制訪問控制(MAC),限制進程的權限(如Apache只能訪問/var/www/html
目錄)。semanage
命令調整SELinux策略(如允許Apache訪問自定義目錄:semanage fcontext -a -t httpd_sys_content_t "/data/web(/.*)?"
;重新標記文件:restorecon -Rv /data/web
)。yum groupinstall "Minimal Install"
),避免安裝不必要的組件(如圖形界面、游戲),減少系統暴露的漏洞。日志監控與應急響應
rsyslog
或systemd-journald
收集系統日志(/var/log/messages
)、Apache訪問日志(/var/log/httpd/access_log
)、錯誤日志(/var/log/httpd/error_log
)、MySQL日志(/var/log/mariadb/mariadb.log
),定期檢查日志中的異?;顒樱ㄈ绱罅?04錯誤、暴力破解嘗試)。last
命令查看系統登錄日志(last -f /var/log/wtmp
),使用lastb
命令查看失敗登錄日志(lastb -f /var/log/btmp
),識別可疑IP地址(如短時間內多次登錄失敗的IP)并及時封禁。ps aux
查看異常進程、find / -mtime -1
查找最近修改的文件),修復漏洞(如更新軟件包、修改密碼),恢復系統運行(如重啟服務、恢復備份)。