阅读量:3
1. 更新系统与安装Apache
首先,确保CentOS系统和所有软件包为最新版本,修复已知漏洞:
sudo yum update -y
安装Apache2(CentOS中默认包名为httpd)及基础安全模块:
sudo yum install httpd mod_security mod_evasive -y
2. 配置防火墙限制访问
使用firewalld仅开放HTTP(80端口)和HTTPS(443端口),阻断非法流量:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
3. 调整SELinux策略
若SELinux处于Enforcing模式(默认),需配置其允许Apache访问必要资源:
- 临时设置为
Permissive模式测试(不推荐生产环境长期使用):sudo setenforce 0 - 永久允许Apache网络连接(如数据库访问)和发送邮件:
sudo setsebool -P httpd_can_network_connect 1 sudo setsebool -P httpd_can_sendmail 1 - 设置Web目录的SELinux上下文(确保Apache可读取):
sudo chcon -Rt httpd_sys_content_t /var/www/html
4. 优化Apache基础配置
编辑主配置文件/etc/httpd/conf/httpd.conf,实施以下关键设置:
- 隐藏版本信息:避免攻击者利用已知版本漏洞,添加:
ServerTokens Prod ServerSignature Off - 禁用目录列表:防止未配置索引文件时暴露目录结构,在
段中添加:Options -Indexes - 限制资源使用:通过
LimitRequestFieldSize和LimitRequestBody限制请求头和 body 大小,防止DoS攻击(示例值需根据实际调整):LimitRequestFieldSize 8190 LimitRequestBody 1048576 # 1MB
5. 启用安全模块强化防护
- mod_security:Web应用防火墙(WAF),拦截SQL注入、XSS等攻击。编辑
/etc/httpd/conf.d/security2.conf,开启引擎并指定日志路径:SecRuleEngine On SecRequestBodyAccess On SecResponseBodyAccess On SecAuditLog /var/log/httpd/modsec_audit.log - mod_evasive:防御暴力破解和DDoS攻击。编辑
/etc/httpd/conf.d/evasive.conf,设置阈值:DOSHashTableSize 3097 DOSPageCount 2 # 1秒内同一IP访问同一页面超过2次触发 DOSSiteCount 50 # 1秒内同一IP访问整个站点超过50次触发 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 # 触发后封锁10秒
6. 配置SSL/TLS加密通信
- 安装SSL模块:
sudo yum install mod_ssl -y - 使用Let’s Encrypt获取免费证书(替换
yourdomain.com为实际域名):sudo yum install certbot python2-certbot-apache -y sudo certbot --apache -d yourdomain.com -d www.yourdomain.com - 强制HTTPS重定向(可选):在虚拟主机配置或
.htaccess中添加:RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
7. 管理文件与目录权限
- 将Web目录所有者设为
apache用户(默认),并设置合理权限:sudo chown -R apache:apache /var/www/html sudo chmod -R 755 /var/www/html - 敏感文件(如配置文件、数据库凭证)需进一步限制权限:
sudo chmod 600 /etc/httpd/conf.d/secret.conf
8. 定期维护与监控
- 重启Apache应用配置:
sudo systemctl restart httpd - 定期更新系统和Apache:
sudo yum update httpd mod_security mod_evasive -y - 监控日志文件(
/var/log/httpd/access_log和/var/log/httpd/error_log),使用工具(如fail2ban)自动封禁恶意IP。 - 备份配置文件:
sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak sudo cp -r /etc/httpd/conf.d /etc/httpd/conf.d.bak
以上就是关于“Apache2在CentOS上如何进行安全配置”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm