去年帮朋友处理过一次网站被挂马。一个WordPress站被植入了加密挖矿脚本,服务器CPU连续七天跑满,云服务商发了三次警告。查日志发现黑客是从一个废弃插件的漏洞进来的——那个插件两年没更新了。
处理完那次之后,我给自己维护的所有站点都上了安全加固。这篇文章就是当时整理的清单,不用花钱买付费防火墙,全是免费方案。
1. 关掉不用的东西
第一条也是最重要的一条。去看看你的服务器:
- 有没有没用的插件/主题?删掉,别留着。两个理由:一是漏洞,二是黑客扫描到已知漏洞插件会重点攻击
- SSH是不是用的22端口?改成四位数的随机端口,能挡掉99%的扫描脚本
- FTP开着吗?关掉,用SFTP替代。FTP密码是明文传输的
- phpMyAdmin是不是挂在 /phpmyadmin 下面?要么删掉,要么加IP白名单
我们当时清理完那台服务器,发现装了37个插件,实际在用的只有9个。另外28个里有3个带着已知CVE漏洞。
2. 上Web应用防火墙(WAF)
免费的有两个选择:Cloudflare(CDN自带WAF)和宝塔面板自带的Nginx防火墙。Cloudflare免费版已经包含OWASP Top 10的防护规则,SQL注入、XSS、文件包含都拦得住。配置就三步:域名DNS改到Cloudflare → 开启代理 → 安全级别调成Medium。
宝塔面板的Nginx免费防火墙也不差,特色是有POST过滤和防CC攻击。实测能挡住简单的SQL注入和目录遍历。缺点是规则更新没Cloudflare快。
3. 文件权限和目录加固
这个太基础以至于很多人忽略。WordPress目录权限:
- 所有文件644(所有者可写,其他人只读)
- 所有目录755
- wp-config.php设成600——这里面有数据库密码
- uploads目录775,其他目录不需要写权限就别给
一行命令批量修复:find /www/wwwroot/yoursite -type f -exec chmod 644 {} ;
再一行:find /www/wwwroot/yoursite -type d -exec chmod 755 {} ;
4. 登录保护
WordPress后台/wp-admin是最常见的攻击入口。三件事:
- 改掉默认用户名admin
- 限制登录尝试次数(插件Limit Login Attempts Reloaded,免费),3次失败锁15分钟
- 加双因素认证(插件Two Factor,WordPress官方维护,免费),用Google Authenticator扫码绑定
我们服务器日志显示,上了登录限制后,暴力破解尝试从每天300+次降到了0——因为脚本被锁两次就放弃换目标了。
5. 备份策略
安全加固不是万能的,零日漏洞谁都可能碰上。最后一道防线是备份。我们的策略:数据库每天凌晨3点自动备份到阿里云OSS(异地),文件每周日全量备份一次。保留最近7天的数据库备份和最近4周的文件备份。恢复一次完整站点大概15分钟。
插件UpdraftPlus免费版够用,付费版多了增量备份和多存储目标支持。我之前用过备份到服务器本地——然后被删库的时候备份也一起没了。血的教训:备份必须异地。
还木有评论哦,快来抢沙发吧~