服务器一旦被攻破,那么一切都是徒劳的。无论你网站内容多精美,访问量多大,只要底层系统安全出了问题,攻击者就能轻而易举地控制你的服务器,甚至把你所有的成果一键“归零”。
作为非专业选手,咱们在 VPS 至少需要做到基本的安全防护。这不是要你成为黑客对抗黑客,而是尽量减少“被随便扫到就进来”的风险,把基础的门窗先关好。防火墙、SSH 登录、强密码……这些都是起码的“入门操作”。
以宝塔为例,宝塔虽然主打图形化易用,后台配置也很人性化,但也因此成为了不少脚本攻击的重点目标。如果你直接用默认配置上线网站,风险其实非常高。所以,我们需要在宝塔部署好之后,再花点时间做一些“常规加固”,这些设置不复杂,但却能极大提升整体的系统安全。
1. 系统级别的基础加固
服务器一旦被攻破,那么后续再多的优化、配置,甚至整站备份也可能功亏一篑。因此,从最底层的系统安全做起,是整个 Web 安全防护的第一步。尤其是对于使用 VPS 的非专业用户来说,更要把握住“少即是多”的原则,优先处理那些最容易被攻击者利用的入口点。这里我们总结了几项必须优先完成的系统级加固建议。
宝塔面板作为国内主流的服务器管理工具,本身集成了许多系统层面的加固功能。只要合理配置和灵活运用,其安全性完全可以覆盖大多数日常需求。
1.1 修改默认 SSH 端口
22 端口是默认的远程管理入口,几乎所有扫描器和爆破工具都会盯着它打。修改 SSH 端口可以在最前端增加一道“过滤墙”,虽然不是绝对安全,但能有效减少自动化攻击的频率。
1.2 禁止 root 用户远程登录
Root 拥有全系统权限,一旦泄露账号密码,服务器基本等于被接管。建议只允许普通用户登录,再通过 sudo
提权。这一步可以在 SSH 配置文件中完成,实属刚需。
1.3 强密码 & 密钥登录机制
比起密码,密钥认证更难被破解。你可以通过修改 SSH 配置,只允许密钥登录,彻底关闭密码验证通道。即使开放密码登录,也要设定强密码策略,至少包含大小写、符号和数字,并定期更换。
1.4 禁用不必要的用户和服务
越多冗余账户和后台服务,就意味着越多潜在攻击面。建议在系统初始化时,手动清理这些用户和服务。
类型 | 示例 | 建议操作 |
---|---|---|
系统默认用户 | games 、mail 、lp 、news 等 | 删除或锁定 |
无用服务 | FTP、SMTP、Telnet、RPC 等 | 使用 systemctl 或 chkconfig 禁用 |
1.5 设置登录失败锁定机制
针对暴力破解攻击,可通过 PAM 模块(如 pam_tally2
或 pam_faillock
)实现失败锁定机制,例如连续输错 5 次密码后自动锁定账号一段时间。这个机制可以极大拖慢攻击进程。
1.6 服务器面板本身安全
如果你使用宝塔等服务器管理面板,更应关注它本身的安全配置。例如:
- 关注“安全总览”提示:及时修复已知风险项。
- 设置安全入口:自定义登录路径,避免被随意扫描。
- 开启邮箱验证:防止非法操作。
- 使用强密码和复杂端口:不能只是默认账户密码。

2. 防火墙和端口管理
服务器的端口就像是一栋大楼的门窗,开的多了,风险自然也随之增加。因此,做好端口管控和入站流量管理,是防止恶意访问的关键一步。防火墙不仅是第一道防线,更是保障服务正常运行、避免资源被滥用的安全核心。建议在配置服务前,先制定一份清晰的开放端口清单,做到“按需放行、最小权限”。
2.1 使用防火墙配置入站规则
不论是本地的 UFW、firewalld,还是云服务商提供的防火墙,都应根据业务需求精细控制开放端口。可以使用 netstat
或 ss
命令查看当前系统哪些端口正在监听,从而判断是否存在“开放但无实际用途”的端口。

如果你用的是云服务器,建议优先在云平台上设置安全组规则,管理更加清晰,也能避免本地配置失误导致无法远程连接。如果不方便,也可以利用宝塔面板内置的防火墙功能,图形化操作非常直观。一般情况下,只需要开放 80(HTTP)、443(HTTPS)和 22(SSH,建议限 IP 登录)这几个端口,其余一律关闭。
2.2 配合 Fail2Ban 阻断恶意尝试
Fail2Ban 是一款非常实用的日志监控工具,它能自动分析登录失败、扫描等行为,并根据设定的策略临时封禁对应的 IP。部署后,可以有效应对 SSH 暴力破解、Nginx 目录扫描等常见攻击。配合邮件通知机制,管理员还能第一时间收到攻击预警,便于后续排查。
2.3 部署 WAF(Web 应用防火墙)
相比系统防火墙,WAF 更关注 Web 层的攻击防御,比如 SQL 注入、XSS 跨站、恶意爬虫、CC 攻击等。你可以选择云厂商的云 WAF(如阿里云、腾讯云),也可以直接使用宝塔防火墙插件,后者针对常见攻击场景已做了很多优化,拦截规则清晰透明,使用体验也很友好,对于中小网站而言非常实用。

宝塔 WAF 支持访问频率限制、URL 黑白名单、UA/Referer 拦截、IP 管理等,稍加配置即可建立起有效的防护体系。
2.4 第一时间安装安全更新
很多服务器漏洞都是因为系统组件或软件版本过旧未及时修补。一旦被攻击者利用,可能轻松绕过已有防护措施。建议定期检查系统更新,并开启自动安全更新功能(如 Ubuntu 的 unattended-upgrades
),确保补丁能在最短时间内生效。如果使用宝塔,进入软件商店和“运维管理”也能快速看到哪些组件存在更新提示,避免“看得见风险但没处理”的尴尬局面。
3. Web 服务配置强化(以 Nginx 为例)
Web 服务器是整个网站对外展示的核心,一旦配置不当,极容易成为攻击的突破口。尤其是像 Nginx 这类高性能但灵活度极高的服务器,安全设置往往“全靠自觉”。因此,我们需要从细节入手,逐项排查并强化配置,补齐那些“默认不安全”的薄弱环节。
3.1 关闭版本号暴露
默认情况下,Nginx 会在响应头中包含版本信息,例如 "Server: nginx/1.22.1"
。这对攻击者来说就像是“精准投弹”的目标线索,一旦对应版本存在公开漏洞,就会被自动化工具利用。因此,建议关闭 Nginx 版本号避免无谓暴露自身信息。
3.2 配置 HTTP 安全响应头
合理设置 HTTP 安全响应头能大幅提升浏览器端的防护能力,减轻常见攻击的影响。建议至少添加以下三项:
- X-Frame-Options:防止网页被嵌入 iframe 中,避免点击劫持。
- X-Content-Type-Options:禁止 MIME 类型猜测,减少 XSS 风险。
- Strict-Transport-Security (HSTS):强制使用 HTTPS,避免中间人攻击。
这几项设置可以直接写入 Nginx 的 server
块中,效果立竿见影。💡
3.3 文件权限和目录保护
不合理的目录权限设置,往往会导致信息泄露或文件被非法执行。例如:开启目录浏览功能、配置文件未被屏蔽、上传目录可执行脚本等,都是常见的隐患。下面是 WordPress 各关键目录的推荐权限设置:
目录/文件路径 | 推荐权限 | 类型说明 | 安全建议说明 |
---|---|---|---|
/ (根目录) | 755 | 网站根目录 | 只需执行权限,禁止写入,确保没有多余文件上传 |
/wp-admin/ | 755 | 后台核心目录 | 限定 IP 访问效果更好,避免暴力破解后台入口 |
/wp-includes/ | 755 | 核心函数库目录 | 不应有任何写权限,通常无需修改 |
/wp-content/ | 755 | 用户内容目录 | 可读写执行,控制内部子目录权限更重要 |
/wp-content/themes/ | 755 | 主题目录 | 需要执行 PHP,谨慎安装来源不明的主题 |
/wp-content/plugins/ | 755 | 插件目录 | 同上,保持必要权限,定期清理未启用插件 |
/wp-content/uploads/ | 755(不可执行) | 上传目录 | 应设置为禁止执行 PHP,防止木马后门上传 |
/wp-content/languages/ | 755 | 多语言支持目录 | 通常无需改动,保持读写即可 |
/wp-config.php | 400 或 440 | 核心配置文件 | 含数据库密码,强烈建议只读,避免任何写入风险 |
.htaccess (Apache) | 644 | URL 重写配置文件 | 可由程序修改,注意防止篡改 |
nginx.conf (Nginx) | 644 | Web 服务器配置 | 建议备份并开启只读防改写 |
wp-login.php | 644 | 登录入口文件 | 可配合防火墙限制访问,或改名隐藏 |
xmlrpc.php | 644 | 接口入口文件 | 若不使用远程发布/移动客户端,可禁用 |
readme.html / license.txt | 644 | 默认附加文件 | 不必要可删除,避免暴露 WordPress 版本信息 |
📌 提示:某些共享主机可能会自动赋予 777 权限来避免文件权限问题,但这极其不安全。推荐使用 755 / 644 模式组合,配合“上传目录不可执行”原则,通过服务器配置防止攻击者利用上传漏洞获取权限。
需要更高安全保障时,也可进一步限制文件所有者、分组、SELinux/AppArmor 权限,或使用网站防篡改工具加强控制。
3.4 限制请求大小、访问频率
开放式服务容易被利用进行大流量攻击或垃圾上传。为了减轻风险,建议对请求体大小和访问频率进行限制:
- 限制上传文件大小:防止大体积文件拖垮系统。
- 限制请求频率/连接数:应对 CC、慢速请求攻击等。
以宝塔为例,在 Nginx 设置中可以图形化配置“客户端最大上传限制”(client_max_body_size)、“请求频率限制模块”(limit_req)等项,既简单又实用。对于大多数站点,设置为每秒每 IP 允许 1~3 次请求已足够,大流量可适当放宽。
Web 服务器的强化配置是一个“加减法”结合的过程——减少无用信息输出,增加必要的限制条件。做好这些细节,即使攻击者找上门,也难以轻易得手。下一节我们将介绍账号权限与后台安全相关的管理策略。
4. 监控与告警设置
再强的防护,也无法做到 100% 避免入侵或故障,因此监控与告警机制的建立显得尤为关键。及时发现问题并迅速响应,往往能在事故发生初期就将影响降到最低。尤其是对于 Web 服务来说,宕机、异常请求、资源突增等问题,不仅关系到用户体验,更可能直接造成业务损失。
首先要强调的一点是:云服务平台和 CDN 提供的监控预警功能一定要开启。以阿里云、腾讯云、华为云为例,它们的监控系统不仅覆盖更底层的资源指标(如 CPU、磁盘 I/O、公网带宽),而且响应更快、更精准,还能结合费用系统,第一时间预警异常账单波动,例如被攻击导致带宽费用激增等情况。
此外,若你使用宝塔等服务器面板,也不要忽视其内置的监控系统。宝塔支持对 CPU、内存、硬盘、网络、连接数等运行指标进行实时监测,还能设定预警阈值并通过短信、邮件、微信等多种方式通知。这类监控虽然不如专业云监控全面,但胜在“本地可控、细节丰富”,对于资源有限的小站来说非常实用。
建议搭建一套多层级的监控策略:
- 云服务监控:作为第一层感知,关注资源使用、费用波动;
- 面板监控:实时掌握服务器运行状态;
- 网站级插件监控(如 WordPress 的 WP Security Audit Log):记录后台操作、插件变动、异常登录等细节。
只有建立起闭环的“发现-响应-修复”机制,Web 服务才能真正进入可控、安全的运行轨道。下一章我们将进一步探讨账号权限与后台安全管理。

5. 云服务层面安全(以阿里云、腾讯云为例)
使用云服务器,不代表你就自动获得了安全保障。事实上,云服务商只负责“基础设施”的安全,而操作系统、运行环境、服务配置等部分,仍由用户自行负责。因此,善用云服务商提供的安全能力,是构建完整防护体系的重要一环。
首先,一定要关注云服务平台的安全通知和公告。阿里云、腾讯云等平台会定期发布系统漏洞、安全补丁及紧急风险提示。许多严重漏洞(如 Log4j)都曾在第一时间通过云平台通报,一旦错过,就可能被动暴露在风险中。
其次是安全组规则的合理配置,它等价于一层“云级防火墙”。默认情况下很多云主机是开放 0.0.0.0/0(即所有 IP)访问的,这非常危险。应按照“最小权限原则”,仅开放业务必需端口(如 80、443、22),并限制来源 IP,尤其是 SSH 登录必须绑定 IP 或仅开放管理网段。
第三,启用云盾类防护服务。目前主流云平台基本都提供内置的防御服务,例如阿里云的“云盾”、腾讯云的“安全运营中心”。常见功能包括:
- DDoS 自动清洗与弹性防护
- 入侵检测、木马扫描
- 异常登录分析、暴力破解告警
- Web 漏洞扫描、API 风险识别
这些服务往往带有免费额度,建议根据自身业务体量选择性启用。即使付费,也远比遭攻击后再处理划算得多。
最后是快照备份与跨区域容灾。建议定期创建云盘快照,并将关键数据同步至异地(例如对象存储 OSS + 备份桶)。一旦主机遭到攻击、崩溃或误操作,可以快速回滚至正常状态,并保障核心数据不丢失。
[…] Web 服务器安全怎么做?基础设置必须先搞定 […]