一、系统级基础安全强化
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),防止命令注入;限制文件上传大小(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命令备份到外部存储;制定事件响应计划(如发现入侵后,立即隔离服务器、分析日志、恢复数据、修补漏洞),确保快速应对安全事件。