linux

Linux Apache2安全设置有哪些

小樊
58
2025-09-19 09:24:13
栏目: 智能运维

1. 定期更新系统与Apache2软件包
保持系统和Apache2及其依赖库的最新状态,及时修补已知安全漏洞。对于Ubuntu/Debian系统,使用sudo apt update && sudo apt upgrade;对于CentOS/RHEL系统,使用sudo yum update。还可安装unattended-upgrades包自动安装安全更新。

2. 配置防火墙限制访问
使用UFW(Ubuntu)或firewalld(CentOS)限制对Apache服务的访问,仅允许必要的端口(HTTP 80、HTTPS 443)。例如,Ubuntu下启用UFW并允许Apache:sudo ufw allow 'Apache Full' && sudo ufw enable;CentOS下使用firewalld:sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --permanent --add-service=https && sudo firewall-cmd --reload

3. 禁用不必要的Apache模块
禁用不使用的模块以减少攻击面,如autoindex(目录列表)、mod_php(若使用PHP-FPM替代)、mod_rewrite(若无需URL重写)。使用命令sudo a2dismod 模块名(如sudo a2dismod autoindex),然后重启Apache:sudo systemctl restart apache2

4. 隐藏Apache版本信息与敏感细节
修改Apache配置文件(如/etc/apache2/apache2.conf/etc/httpd/conf/httpd.conf),设置ServerTokens Prod(仅显示“Apache”而非版本号)和ServerSignature Off(禁用错误页面中的服务器版本信息),防止攻击者利用版本信息针对性攻击。

5. 配置SSL/TLS加密传输
启用HTTPS加密数据传输,避免明文泄露。安装mod_ssl模块:sudo a2enmod ssl(Ubuntu)或sudo yum install mod_ssl(CentOS);生成自签名证书(或购买CA证书),编辑虚拟主机配置(如/etc/apache2/sites-available/default-ssl.conf),添加:

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>

重启Apache生效:sudo systemctl restart apache2

6. 强化目录与文件权限
限制网站目录的访问权限,避免未授权访问。设置目录权限为755(所有者可读/写/执行,其他用户仅可读/执行),文件权限为644(所有者可读/写,其他用户仅可读)。例如:

sudo chown -R www-data:www-data /var/www/html  # 假设Apache用户为www-data
sudo chmod -R 755 /var/www/html

同时在配置文件中禁用目录列表(Options -Indexes)。

7. 启用安全模块增强防护

8. 限制访问来源与认证

9. 防止常见Web攻击

10. 日志监控与审计
启用并定期检查Apache的访问日志(/var/log/apache2/access.log)和错误日志(/var/log/apache2/error.log),使用工具(如fail2ban)自动封禁频繁失败的IP地址。安装fail2ban:sudo apt install fail2ban,配置/etc/fail2ban/jail.local针对Apache的access.log设置过滤规则。

0
看了该问题的人还看了