用户登录
个人主页 用户中心 我的订单 添加授权 管理授权
退出登录
用户登录 用户注册
欢迎来到 UC建站系统

网站被黑之后从备份恢复,比设置100条防护规则更管用。但90%的站连每周自动备份都没配

上个月一个做外贸独立站的客户找我,说网站首页被换成了"Hacked by xxx",WordPress后台也登不进去了。我问了他三个问题:最近一次备份是什么时候?服务器开了fail2ban没有?wp-admin目录加了IP白名单吗?三个问题的答案都是"没有"。

最后花了整整两天才把网站恢复——不是被黑得有多严重,是没有任何备份,只能从三个月前的数据库dump重新搭,丢了130多篇产品和文章数据。

网站防黑这件事,90%的站长想得太复杂了。总觉得要请安全专家、买企业级WAF、搞渗透测试。但其实被黑的大部分网站,不是因为遭遇了什么高级APT攻击,而是八个基础设置里有三四个没配。这八个设置,大部分是免费的,每个操作不超过20分钟,加起来两三个小时就能把90%的常见攻击挡在外面。

八个防黑设置一览

优先级设置项防什么耗时成本
1自动备份 + 异地存储任何攻击的兜底方案20分钟免费
2SSH密钥登录 + 改端口暴力破解、密码撞库15分钟免费
3fail2ban 自动封禁持续暴力破解、扫描探测15分钟免费
4文件权限最小化Webshell写入、源码泄露10分钟免费
5登录保护 + 双因素认证后台撞库、弱口令10分钟免费
6Cloudflare CDN + WAFDDoS、SQL注入、XSS、爬虫30分钟免费
7CMS/插件/主题 自动更新已知漏洞利用10分钟免费
8安全插件 / WAF应用层应用层漏洞、恶意扫描20分钟免费~$300/年

红=兜底,橙=服务器层,绿=应用层,蓝=可选增强

下面按优先级顺序,把每个设置怎么做、为什么这样做、配完怎么验证,逐一说清楚。

一、自动备份:所有安全措施的最后一道防线

这句话不好听,但事实就是如此:再完善的防护也可能被突破,但如果你有备份,被黑了最多损失几小时的数据;没有备份,可能损失几年的心血。

1 - 网站被黑之后从备份恢复,比设置100条防护规则更管用。但90%的站连每周自动备份都没配 - UC建站系统

备份要满足三个条件才算有效备份:

· 自动化——不能靠人记着去备份,必须设置定时任务自动执行

· 异地——备份文件不能和网站放在同一台服务器上,服务器挂了备份也没了等于白做

· 可恢复——每隔一段时间要实际演练一次恢复流程,确认备份文件是完整的、能成功恢复的

具体方案分两种情况:

WordPress / CMS 网站

UpdraftPlus(免费版就够用),设置每天自动备份数据库+文件,备份目的地选Google Drive或OneDrive(免费15GB空间,够大多数站点用)。配好之后它会自动跑,出问题了发邮件通知你。

如果预算允许,BlogVault($89/年起)支持增量备份+一键恢复+自动异地存储到AWS,比UpdraftPlus多了实时备份能力,适合电商或数据更新频繁的站。

验证方法:去备份目的地看一眼,最近一次备份文件的时间是不是今天的。再在测试环境做一次完整恢复,确认数据库和文件都回来了。

自定义开发 / 非CMS网站

数据库备份:

# crontab 每天凌晨3点备份数据库并上传到远程存储0 3 * * * mysqldump -u user -p'password' dbname | gzip > /backup/db_$(date +\%Y\%m\%d).sql.gz && rclone copy /backup/ remote:bucket-name/

文件备份:

# 每天凌晨4点打包网站文件并上传0 4 * * * tar -czf /backup/www_$(date +\%Y\%m\%d).tar.gz /var/www/html && rclone copy /backup/ remote:bucket-name/

rclone 支持传到Google Drive、OneDrive、S3、Backblaze B2等几十种存储,免费开源。Backblaze B2 10GB以内免费,超出后$0.006/GB/月,比云服务器自带的快照便宜得多。

二、SSH密钥登录 + 改默认端口

一台暴露在公网的Linux服务器,平均每天会被扫描数千次SSH 22端口。攻击者用密码字典撞,弱密码可能在几小时内就被撞开。

两件事做了,SSH暴力破解的问题基本解决:

禁用密码登录,只用密钥

# /etc/ssh/sshd_configPasswordAuthentication noPubkeyAuthentication yesPermitRootLogin prohibit-password

改完执行 systemctl restart sshd。注意:先在本地生成密钥对,把公钥放到服务器上,确认密钥能登录之后再关密码,否则你自己也进不去了。

改掉22默认端口

# /etc/ssh/sshd_configPort 22987  # 选一个1024-65535之间的

改完防火墙放行新端口、重启sshd。改了之后扫描流量直接降99%以上——因为自动化扫描只撞22端口。

验证方法:grep "Failed password" /var/log/auth.log | wc -l 看看改之前和改之后失败登录尝试的变化。改之前可能是几千条,改完端口后基本清零。

三、fail2ban:自动封禁恶意IP

改了SSH端口还不够,攻击者如果扫到了你的新端口还是会继续撞。fail2ban的作用是:同一个IP在短时间内多次登录失败,自动把它加入防火墙黑名单,封禁一段时间

安装配置很简单:

# Ubuntu/Debianapt install fail2ban -y# 创建本地配置覆盖默认值cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

关键配置项(在jail.local里改):

参数建议值含义
bantime3600(1小时)封禁时长,生产环境设24小时也行
findtime600(10分钟)在这个时间窗口内累计失败次数
maxretry3失败3次就封

fail2ban不止保护SSH,还能保护Nginx、Apache、WordPress登录页:

# jail.local 增加 WordPress 登录保护[wordpress]enabled  = truefilter   = wordpresslogpath  = /var/log/nginx/access.logmaxretry = 5bantime  = 3600

验证方法:fail2ban-client status sshd 查看当前封禁了多少IP。一个新上线的服务器,24小时内封禁几十个IP很正常。

四、文件权限最小化

这是最容易被忽略的一条。很多网站被黑后,攻击者之所以能写入Webshell文件,根本原因是网站目录的权限太松了——PHP进程可以随便在任意目录创建文件。

核心原则就一条:只有需要写入的目录才给写权限,其他目录全部只读。

2 - 网站被黑之后从备份恢复,比设置100条防护规则更管用。但90%的站连每周自动备份都没配 - UC建站系统

WordPress / PHP网站标准权限设置

目录/文件权限所有者原因
所有.php文件644root:www-dataPHP文件只需可读
所有目录755root:www-data目录需可执行才能进入
wp-content/uploads/755www-data唯一需要PHP进程写入的目录
wp-config.php400root:root数据库密码文件,最严格的只读

一键设置脚本:

# 所有文件设为644,目录设为755find /var/www/html -type f -exec chmod 644 {} \;find /var/www/html -type d -exec chmod 755 {} \;# wp-config.php 收紧到400chmod 400 /var/www/html/wp-config.php# uploads 目录给 www-data 写权限chown -R www-data:www-data /var/www/html/wp-content/uploads# 禁止uploads目录执行PHP(防Webshell)# 在Nginx配置中加:location ~* /wp-content/uploads/.*\.php$ {deny all;}

验证方法:find /var/www/html -type f -perm /o+w | head 检查有没有其他用户可写的文件。输出为空说明没问题。

五、登录保护:后台是攻击者的第一目标

不管你是WordPress、自定义后台还是其他CMS,登录入口是攻击者花最多精力撞的地方。Sucuri的报告显示,暴力破解登录占了WordPress被黑案例的16%以上。

WordPress 登录保护四件套

  • 改默认登录URL:把 /wp-admin 和 /wp-login.php 改成只有你知道的路径。用 WPS Hide Login 插件或 Cloudflare Zero Trust。
  • 限制登录尝试次数:Wordfence 或 Limit Login Attempts Reloaded 插件,同一IP 5次失败后锁定30分钟。
  • 开启双因素认证(2FA):Wordfence免费版自带,或装 Google Authenticator 插件。这是防止密码泄露后账号被接管的最有效手段。
  • 删掉admin账号:如果默认管理员用户名是 admin 或 administrator,新建一个复杂用户名,把旧的删掉或降权。

自定义后台登录保护

  • IP白名单:如果只有固定IP或固定地区的人需要登录后台,用Nginx或Cloudflare直接限制。
  • HTTP Basic Auth 加一层:在Nginx里对后台路径加一层 .htpasswd 认证,攻击者连登录页面都看不到。
  • 强密码策略:最少12位,包含大小写字母+数字+特殊字符。别用同一个密码在多个平台。

验证方法:用隐身窗口访问你的登录页,确认改了URL后默认路径返回404。再故意输错5次密码,确认被锁定了。

六、Cloudflare:零成本的网络层防护

如果你的网站还没套Cloudflare,这是今天就能做、做完立刻生效的防护升级。免费版已经包含了DDoS防护、SSL、基础WAF规则、Bot管理和IP封禁。

接入步骤:

  1. 注册Cloudflare → 添加站点 → 把域名的NS记录改成Cloudflare提供的两个地址
  2. SSL/TLS 设置选 "Full (strict)"——这确保Cloudflare到你服务器之间的流量也是加密的
  3. 在 Security → WAF 里开启以下免费规则:
    • Cloudflare Managed Ruleset——拦截SQL注入、XSS、文件包含等OWASP Top 10攻击
    • Bot Fight Mode——自动拦截已知恶意爬虫
  4. 在 Security → Settings 里设置:
    • Security Level:Medium——对可疑访问显示JS验证页面
    • Challenge Passage:30 minutes——验证通过后30分钟内不用重新验证
  5. 在 Rules 里创建自定义规则:
    • 对 /wp-admin 路径:设置 Managed Challenge(对国内访客友好)或 Block(限制非你所在国家/地区的IP访问)
    • 对 /xmlrpc.php:直接 Block(WordPress的XML-RPC是暴力破解重灾区,99%的站用不上)

Cloudflare免费版WAF每月有10000次免费规则请求,对中小网站完全够用。

验证方法:在Cloudflare的Security → Events里查看最近24小时拦截了哪些请求。如果WAF已经在干活了,会看到 blocked 事件。

七、CMS和插件自动更新

根据Wordfence的年度报告,被黑的WordPress网站中,超过55%是因为插件存在已知漏洞但没更新。WordPress核心、插件、主题的开发者在发现漏洞后会发布补丁,但如果你不更新,等于把门开着告诉全世界"来黑我"。

自动更新设置(WordPress为例):

# wp-config.php 里开启自动更新define('WP_AUTO_UPDATE_CORE', true);  # 核心自动更新# 在 functions.php 或使用插件开启插件/主题自动更新add_filter('auto_update_plugin', '__return_true');add_filter('auto_update_theme', '__return_true');

但自动更新也有风险:极少数情况下更新会导致兼容性问题。折中方案是:核心和主题开自动更新,插件手动更新但每周检查一次。Wordfence免费版会邮件通知你有插件需要更新。

删掉不用的插件和主题。每多一个不用的插件,就多一个潜在的攻击面。很多被黑的站,漏洞来源是一个装了三年没用过的"联系表单"插件。

八、安全插件 / 应用层WAF

前七项设置做完,大部分常见攻击已经挡住了。如果预算和精力允许,再加一层应用层WAF或安全插件,做深度防护。

WordPress安全插件三选一

插件免费版核心功能付费版起价适合谁
WordfenceWAF + 恶意软件扫描 + 登录保护 + 2FA + 实时威胁情报(延迟30天)$119/年绝大多数WordPress站,免费版功能最全
Solid Security(原iThemes)文件权限检查 + 暴力破解防护 + 安全加固向导 + 文件变更监控$99/年不想研究复杂配置,喜欢"一键加固"的新手
Sucuri Security安全审计 + 文件完整性监控 + 黑名单检测 + 安全加固提示$199/年需要专业安全团队支持+被黑后清理服务的站

注意:不要同时装多个安全插件。它们会互相冲突——WAF规则重叠导致网站变慢或误拦截,恶意软件扫描互相触发告警。选一个就够了。

非WordPress网站的应用层WAF,推荐两个方向:

开源自建:ModSecurity + OWASP Core Rule Set

免费,规则覆盖全面,但需要一定的Nginx/Apache配置能力。规则集持续更新,能拦截90%以上的已知Web攻击模式。缺点是会有误报,需要花时间调优。

云WAF:阿里云/腾讯云/华为云WAF

按月付费,基础版约¥500-1500/月。优势是开箱即用、自动更新规则、有专业团队维护、支持等保合规。适合企业站和对可用性要求高的业务。

怎么确认这些设置都生效了

配完不等于安全了。至少要过这三关确认:

检查方法工具查什么
SSL/TLS配置评分SSL Labs (ssllabs.com/ssltest)证书链、协议版本、加密套件,目标A+
HTTP安全头SecurityHeaders.comCSP、HSTS、X-Frame-Options等是否配置
漏洞扫描Mozilla Observatory综合安全评分,含CSP/CORS/Referrer等
恶意软件/黑名单Sucuri SiteCheck(免费)是否被列入黑名单、是否有已知恶意软件
备份恢复演练手动操作备份文件是否完整可用

这些检查全部免费,跑一遍不超过30分钟。至少每个月跑一次。

不同预算的防黑设置组合

预算方案能防住什么
¥0/月备份(UpdraftPlus/rclone) + SSH密钥+fail2ban + 文件权限 + 2FA + Cloudflare免费版 + 自动更新暴力破解、常见Web攻击、DDoS、数据丢失
¥50-200/月以上 + Wordfence Premium(实时威胁情报) + BlogVault增量备份零日漏洞实时防护、更精细的WAF规则、即时恢复
¥500-2000/月以上 + 云WAF(阿里云/腾讯云) + Sucuri企业清理服务 + 专业安全审计企业级防护、等保合规、专业应急响应

对绝大多数个人站长和中小企业的网站来说,零成本的方案已经能防住95%以上的常见攻击。付费方案的价值在于:把防不住的那5%也尽量补上,以及出事后有人能帮你处理。

最后说句不好听的:被黑这件事,大概率不是"会不会",而是"什么时候"。关键是你有没有备份能恢复,有没有监控能第一时间发现。一个每月花0元但每天自动备份的网站,比一个花了两千块买WAF但从不备份的网站,实际安全得多。


安全设置做完之后,建议每三个月跑一遍上面的检查清单。服务器在变、CMS在更新、新的漏洞在出现——安全不是一次性配置,是持续的习惯。

相关推荐
在线客服
👇找客服拿折扣
QQ咨询&售后
在线时间
11:00 ~ 5:30
QQ:3155555535
👇联系QQ
👇联系WX
首页 程序 帮助 登录