在 Ubuntu Apache 环境下实施防盗攻击防护,可以从以下几个关键方向着手。每个方向都包含具体的操作步骤与配置要点,下面逐一进行详细解析。
防盗链:防止资源被第三方盗用
简而言之,防盗链的核心目标,是确保服务器上的图片、文件仅能被自己的网站调用,避免被其他站点直接引用而消耗带宽。实现方法主要有两种:
方法一:借助.htaccess文件
在网站根目录创建或编辑.htaccess文件,加入如下规则,即可限制非指定域名访问你的图片资源:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]
请务必将yourdomain.com替换为你自己的实际域名。配置完成后,其他站点引用你的图片时,会直接被拒绝访问。
方法二:通过mod_rewrite模块
如果不希望使用.htaccess(或者主机配置不支持),也可以直接在 Apache 配置文件中启用mod_rewrite模块,并在虚拟主机配置中写入类似的规则。二者本质逻辑相同,只是配置位置不同。
限制访问频率:应对DDoS与恶意刷流量
这是防攻击的核心手段之一,目的是防止单个 IP 在短时间内发出大量请求,耗尽服务器资源。最常用的方案是mod_evasive模块。
安装与启用
sudo apt install libapache2-mod-evasive
sudo a2enmod evasive
安装完成后,需要编辑 Apache 的主配置文件(例如/etc/apache2/apache2.conf),设置以下关键参数:
DOSPageCount:单个页面在短时间段内允许的最大请求次数。DOSBlockingPeriod:触发限制后 IP 被封锁的时长。
参数值可根据网站实际流量灵活调整。设置过严可能误伤正常用户,过松则难以起到保护作用,建议在测试环境中逐步调优。
Web应用防火墙:深度拦截SQL注入、XSS等攻击
针对更复杂的应用层攻击,mod_security模块是 Apache 生态中广受认可的 WAF 解决方案。它不仅能拦截已知攻击模式,还支持自定义规则与集成 OWASP 核心规则集。
安装与启用
sudo apt install libapache2-mod-security2
sudo a2enmod security2
安装后,核心配置文件位于/etc/modsecurity/modsecurity.conf。默认规则集已能覆盖大多数常见攻击。如需更精细的控制,可以导入 OWASP 核心规则集(CRS),或根据业务场景编写自定义规则。
其他基础防护措施
这些措施是搭建服务时就应该顺手做好的基本功,别等到被攻击了才临时补救。
修改默认端口
编辑/etc/apache2/ports.conf,将Listen 80改为其他非标准端口(例如 8080、8888 等)。当然,别忘了同步调整防火墙规则,否则修改无效。
禁用不必要的模块
使用a2dismod命令关闭那些用不到的模块(例如mod_php,如果你使用的是 PHP-FPM 的话)。模块数量越少,攻击面自然越小。
启用SSL/TLS
安装证书并配置/etc/apache2/sites-a vailable/ssl.conf,强制使用 HTTPS。加密传输不仅能防止窃听,也是现代网站的基本安全要求。
最后提醒
所有配置完成后,务必重启 Apache 使配置生效:
sudo systemctl restart apache2
日常运维中,养成查看日志的习惯非常重要——/var/log/apache2/ 目录下的访问日志与错误日志,能帮助你第一时间发现异常流量或攻击痕迹。
以上几种手段并不冲突,实际部署时建议组合使用,根据业务场景和流量特征调整各项参数,才能达到最佳的防护效果。
