centos apache2安全防护措施
导读:1. 更新系统与Apache软件包 定期更新CentOS系统和Apache相关软件包,修复已知安全漏洞。执行命令:sudo yum update -y。 2. 配置防火墙限制访问 使用firewalld仅允许HTTP(80端口)和HTTPS...
1. 更新系统与Apache软件包
定期更新CentOS系统和Apache相关软件包,修复已知安全漏洞。执行命令:sudo yum update -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. 安装并配置安全模块**
- **mod_security**:启用Web应用防火墙(WAF),防御SQL注入、XSS等常见攻击。安装后编辑`/etc/httpd/conf.d/security2.conf`,开启规则引擎:
```apache
SecRuleEngine On
SecAuditLog /var/log/httpd/security_audit.log
- mod_evasive:防范DoS/DDoS攻击,限制同一IP的请求频率。编辑
/etc/httpd/conf.d/evasive.conf
,设置阈值:DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSBlockingPeriod 10 ```。
4. 隐藏敏感信息
修改Apache配置文件(/etc/httpd/conf/httpd.conf
),关闭版本号显示和服务器签名,防止攻击者利用信息针对性攻击:
ServerTokens Prod
ServerSignature Off
```。
**5. 禁用不必要模块**
通过注释或删除`/etc/httpd/conf/httpd.conf`中不需要的模块(如`mod_cgi`、`mod_autoindex`),减少攻击面。例如禁用`mod_autoindex`(防止目录列表):
```apache
# LoadModule autoindex_module modules/mod_autoindex.so
```。
**6. 强化访问控制**
- **限制目录访问**:在配置文件中设置`Options -Indexes`(禁用目录列表),并通过`Require`指令限制IP访问。例如:
```apache
<
Directory /var/www/html>
Options -Indexes
Require ip 192.168.1.0/24
<
/Directory>
- 使用.htaccess:若需更细粒度控制(如密码认证),启用
AllowOverride All
并创建.htaccess
文件。
7. 配置SSL/TLS加密
使用mod_ssl
模块启用HTTPS,加密数据传输。步骤:
- 安装模块:
sudo yum install mod_ssl -y
- 生成自签名证书(或使用Let’s Encrypt获取免费证书):
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/apache-selfsigned.key -out /etc/pki/tls/certs/apache-selfsigned.crt
- 编辑
/etc/httpd/conf.d/ssl.conf
,配置虚拟主机:< VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/apache-selfsigned.crt SSLCertificateKeyFile /etc/pki/tls/private/apache-selfsigned.key DocumentRoot /var/www/html < /VirtualHost>
- 重启Apache:
sudo systemctl restart httpd
。
8. 配置SELinux策略
若SELinux处于Enforcing
模式,调整策略允许Apache访问必要资源:
- 允许Apache连接网络(如数据库):
sudo setsebool -P httpd_can_network_connect 1
- 允许Apache发送邮件:
sudo setsebool -P httpd_can_sendmail 1
- 验证状态:
getenforce
(应为Enforcing
)。
9. 监控与日志记录
- 启用详细日志:在
/etc/httpd/conf/httpd.conf
中配置ErrorLog
和CustomLog
,记录错误和访问信息:ErrorLog ${ APACHE_LOG_DIR} /error.log CustomLog ${ APACHE_LOG_DIR} /access.log combined
- 定期检查日志,使用工具(如
fail2ban
)识别并阻断恶意IP。
10. 限制资源使用
通过LimitRequestBody
指令限制上传文件大小(如50MB),防止资源耗尽攻击:
<
Directory /var/www/html>
LimitRequestBody 52428800
<
/Directory>
```。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos apache2安全防护措施
本文地址: https://pptw.com/jishu/718724.html