1. 最小权限运行Apache进程
以专用低权限用户(如apache或www-data)运行Apache,避免使用root账户。具体操作:创建用户组(groupadd apache)、用户(useradd -g apache apache),并在/etc/apache2/envvars(Debian系)或httpd.conf(CentOS系)中设置APACHE_RUN_USER和APACHE_RUN_GROUP为该用户;同时确保Apache目录(如/var/www/html)权限为755,上传目录禁止执行权限(chmod 755 /var/www/uploads)。
2. 隐藏服务器敏感信息
通过配置隐藏Apache版本、操作系统及模块信息,减少攻击者针对性探测。在配置文件中设置:ServerTokens Prod(仅显示“Apache”)、ServerSignature Off(关闭页脚签名);禁用目录浏览(Options -Indexes),防止暴露网站文件结构。
3. 禁用不必要模块与功能
关闭未使用的Apache模块(如autoindex、cgi、userdir),减少攻击面。使用a2dismod命令(Debian系)或注释httpd.conf中的LoadModule行(CentOS系)禁用模块;限制.htaccess文件权限(AllowOverride None),避免用户通过.htaccess覆盖全局安全配置。
4. 强化访问控制与认证
通过防火墙(如UFW、firewalld)仅开放HTTP(80)和HTTPS(443)端口;使用Require指令限制IP访问(如Require ip 192.168.1.0/24),保护后台或敏感目录;配置基础认证(.htpasswd),对重要区域(如管理后台)增加访问门槛。
5. 配置SSL/TLS加密通信
启用HTTPS加密数据传输,防止中间人攻击。安装OpenSSL,生成自签名证书(或购买CA证书),编辑配置文件(如default-ssl.conf)开启SSL模块:SSLEngine on、SSLCertificateFile(证书路径)、SSLCertificateKeyFile(私钥路径);禁用弱协议(SSLProtocol all -SSLv2 -SSLv3)和弱加密套件(SSLCipherSuite HIGH:!aNULL:!MD5)。
6. 防御常见Web攻击
Header set X-XSS-Protection "1; mode=block"、Header set X-Content-Type-Options "nosniff",阻止恶意脚本执行。mod_security模块(开源WAF),通过规则集拦截SQL注入请求。DirectoryMatch指令禁止访问系统目录(如/etc),配置Require all denied;升级Apache至最新版本(如2.4.51+),修复已知解析漏洞(如CVE-2021-41773)。7. 日志监控与审计
启用详细日志记录(访问日志CustomLog、错误日志ErrorLog),按日期分割日志(如rotatelogs),便于后续分析;使用工具(如Fail2Ban)自动封禁频繁发起恶意请求的IP地址,及时发现异常行为。
8. 定期更新与补丁管理
定期更新Apache至最新稳定版本,安装系统安全补丁(sudo yum update或sudo apt update && sudo apt upgrade);启用自动安全更新(如unattended-upgrades),确保及时修复已知漏洞。