温馨提示×

如何在Ubuntu上配置Apache防盗劫持

小樊
38
2025-11-11 10:50:27
栏目: 智能运维

如何在Ubuntu上配置Apache防盗链(防盗劫持核心措施)

1. 启用必要模块

防盗链依赖Apache的mod_rewrite(重写引擎)和mod_headers(头部控制)模块,需先启用:

sudo a2enmod rewrite headers
sudo systemctl restart apache2

2. 配置防盗链规则

方法一:通过.htaccess文件(推荐,灵活针对特定目录)

进入需要保护的目录(如/var/www/html/images),创建或编辑.htaccess文件:

sudo nano /var/www/html/images/.htaccess

添加以下内容(替换yourdomain.com为你的实际域名,可根据需求扩展文件类型):

RewriteEngine On
# 允许空Referer(用户直接输入URL访问)或来自自身域名的请求
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain\.com [NC]
# 可选:允许信任的第三方域名(如CDN或合作伙伴)
# RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?trusted-domain\.com [NC]
# 禁止其他来源访问图片/视频资源,返回403 Forbidden
RewriteRule \.(jpg|jpeg|png|gif|svg|mp4|avi|mov)$ - [F,L]

保存并退出。

方法二:通过Apache虚拟主机配置(全局生效,优先级更高)

编辑虚拟主机配置文件(如/etc/apache2/sites-available/your-site.conf),在<VirtualHost *:80>块内添加:

<Directory "/var/www/html/images">
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain\.com [NC]
    RewriteRule \.(jpg|jpeg|png|gif|svg|mp4|avi|mov)$ - [F,L]
</Directory>

保存后启用配置并重启Apache:

sudo a2ensite your-site.conf
sudo systemctl restart apache2

3. 测试防盗链效果

  • 合法访问:从yourdomain.com的网页中引用受保护的图片,应正常显示。
  • 非法访问:从其他域名(如hacker.com)的网页中引用同一图片,应返回403 Forbidden错误(或你配置的替代图片,若设置了重定向)。

4. 可选增强措施

  • 允许空Referer:若需允许用户直接输入URL访问资源,保留RewriteCond %{HTTP_REFERER} !^$条件(默认已包含)。
  • 扩展文件类型:在RewriteRule的文件匹配中添加需保护的格式(如mp4|avi)。
  • 替代图片:若不想返回403,可将规则改为重定向到提示图片(如RewriteRule \.(jpg|jpeg)$ http://yourdomain.com/images/nolink.png [R,L])。

注意事项

  • Referer可伪造:防盗链基于HTTP Referer字段,虽能有效阻挡大部分盗链,但无法完全杜绝恶意伪造。
  • 性能影响:启用重写引擎会增加服务器轻微负载,高流量网站需优化规则(如减少匹配范围)。
  • 结合其他安全措施:防盗链仅为资源保护的第一步,建议配合HTTPS(加密传输)、基础认证(保护敏感目录)、WAF(Web应用防火墙)等提升整体安全性。

0