centos

CentOS上Apache2的安全设置有哪些

小樊
44
2025-10-13 04:45:05
栏目: 智能运维

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. 强化访问控制

6. 启用安全模块

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. 权限与资源控制

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. 其他高级防护

0
看了该问题的人还看了