首页主机资讯CentOS上Apache2的安全设置有哪些

CentOS上Apache2的安全设置有哪些

时间2025-10-13 10:08:03发布访客分类主机资讯浏览1101
导读: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_cgimod_statusmod_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
CentOS中Apache2的虚拟主机怎么配置 Apache2在CentOS中如何实现负载均衡

游客 回复需填写必要信息