CentOS上Apache2的安全设置有哪些
导读:CentOS上Apache2的安全设置 1. 系统与软件更新 定期更新CentOS系统和Apache及其依赖模块,修补已知安全漏洞,降低被攻击风险。 sudo yum update -y 2. 配置防火墙 使用firewalld限制仅开放...
CentOS上Apache2的安全设置
1. 系统与软件更新
定期更新CentOS系统和Apache及其依赖模块,修补已知安全漏洞,降低被攻击风险。
sudo yum update -y
2. 配置防火墙
使用firewalld
限制仅开放HTTP(80端口,用于HTTP流量)和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. 禁用不必要的模块与服务
通过注释或移除主配置文件(/etc/httpd/conf/httpd.conf
)中不需要的模块(如mod_cgi
、mod_status
、mod_autoindex
),减少攻击面。例如禁用mod_cgi
:
# LoadModule cgi_module modules/mod_cgi.so
4. 隐藏敏感信息
修改Apache主配置文件,隐藏服务器版本号和签名,避免向攻击者泄露系统信息:
ServerTokens Prod # 仅返回“Apache”版本
ServerSignature Off # 错误页不显示服务器版本
5. 强化访问控制
- 禁用目录列表:在网站根目录(如
/var/www/html
)配置中添加Options -Indexes
,防止敏感文件(如配置文件、备份文件)被直接列出。< Directory "/var/www/html"> Options -Indexes +FollowSymLinks AllowOverride None Require all granted < /Directory>
- 限制IP访问:通过
.htaccess
或主配置文件限制特定IP段访问敏感目录(如后台管理页面)。< Directory "/var/www/html/admin"> Order deny,allow Deny from all Allow from 192.168.1.0/24 < /Directory>
6. 启用安全模块
- mod_security:作为Web应用防火墙(WAF),拦截SQL注入、XSS等恶意请求。安装后需配置规则集(如OWASP CRS):
sudo yum install mod_security mod_security_crs -y
- mod_evasive:防御DDoS攻击和暴力破解,限制同一IP的请求频率。配置示例如下:
< IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 2 # 1秒内2次相同请求触发 DOSSiteCount 50 # 1秒内50次不同请求触发 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 # 触发后封锁10秒 < /IfModule>
7. 配置SSL/TLS加密
使用mod_ssl
模块启用HTTPS,保护数据传输安全。首先安装证书(可通过Let’s Encrypt免费获取),再配置虚拟主机:
sudo yum install mod_ssl certbot python2-certbot-apache -y
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
编辑/etc/httpd/conf.d/ssl.conf
,确保以下配置:
<
VirtualHost *:443>
ServerName yourdomain.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 # 禁用旧协议
SSLCipherSuite HIGH:!aNULL:!MD5 # 使用强加密套件
<
/VirtualHost>
强制HTTP跳转HTTPS(在/etc/httpd/conf/httpd.conf
中添加):
<
VirtualHost *:80>
ServerName yourdomain.com
Redirect permanent / https://yourdomain.com/
<
/VirtualHost>
8. 权限与资源控制
- 文件权限:以专用用户(如
apache
)运行Apache,限制网站目录权限(避免使用root
)。sudo chown -R apache:apache /var/www/html sudo chmod -R 755 /var/www/html
- 上传文件限制:在虚拟主机配置中限制上传文件大小(如50MB),防止资源耗尽攻击:
LimitRequestBody 52428800 # 50MB
9. 日志与监控
启用详细日志记录,定期分析异常行为(如大量404错误、暴力破解尝试):
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
使用工具(如fail2ban
)监控日志,自动封禁恶意IP(如频繁访问/wp-login.php
的IP)。
10. SELinux配置
若启用SELinux,需配置正确策略以允许Apache访问必要资源(如网站目录、日志文件):
sudo setenforce 1 # 启用SELinux
sudo setsebool -P httpd_can_network_connect 1 # 允许Apache连接网络(如数据库)
sudo chcon -Rt httpd_sys_content_t /var/www/html # 设置网站目录安全上下文
11. 其他高级防护
- HTTP安全头:通过
mod_headers
模块添加安全头,增强浏览器端防护:LoadModule headers_module modules/mod_headers.so Header set X-XSS-Protection "1; mode=block" # 防XSS Header set Content-Security-Policy "script-src 'self'" # 限制脚本源 Header set X-Frame-Options "DENY" # 防点击劫持 Header set X-Content-Type-Options "nosniff" # 防MIME嗅探
- 定期审计:定期检查Apache配置文件(如
httpd.conf
、虚拟主机配置)和系统日志,及时修复漏洞。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS上Apache2的安全设置有哪些
本文地址: https://pptw.com/jishu/724461.html