Web 服务器安全怎么做?基础设置必须先搞定

Web 服务器安全怎么做?基础设置必须先搞定

文章目录
文章目录
  1. 1. 系统级别的基础加固
  2. 2. 防火墙和端口管理
  3. 3. Web 服务配置强化(以 Nginx 为例)
  4. 4. 监控与告警设置
  5. 5. 云服务层面安全(以阿里云、腾讯云为例)

服务器一旦被攻破,那么一切都是徒劳的。无论你网站内容多精美,访问量多大,只要底层系统安全出了问题,攻击者就能轻而易举地控制你的服务器,甚至把你所有的成果一键“归零”。

作为非专业选手,咱们在 VPS 至少需要做到基本的安全防护。这不是要你成为黑客对抗黑客,而是尽量减少“被随便扫到就进来”的风险,把基础的门窗先关好。防火墙、SSH 登录、强密码……这些都是起码的“入门操作”。

以宝塔为例,宝塔虽然主打图形化易用,后台配置也很人性化,但也因此成为了不少脚本攻击的重点目标。如果你直接用默认配置上线网站,风险其实非常高。所以,我们需要在宝塔部署好之后,再花点时间做一些“常规加固”,这些设置不复杂,但却能极大提升整体的系统安全。

1. 系统级别的基础加固

服务器一旦被攻破,那么后续再多的优化、配置,甚至整站备份也可能功亏一篑。因此,从最底层的系统安全做起,是整个 Web 安全防护的第一步。尤其是对于使用 VPS 的非专业用户来说,更要把握住“少即是多”的原则,优先处理那些最容易被攻击者利用的入口点。这里我们总结了几项必须优先完成的系统级加固建议。

宝塔面板作为国内主流的服务器管理工具,本身集成了许多系统层面的加固功能。只要合理配置和灵活运用,其安全性完全可以覆盖大多数日常需求。

1.1 修改默认 SSH 端口

22 端口是默认的远程管理入口,几乎所有扫描器和爆破工具都会盯着它打。修改 SSH 端口可以在最前端增加一道“过滤墙”,虽然不是绝对安全,但能有效减少自动化攻击的频率。

1.2 禁止 root 用户远程登录

Root 拥有全系统权限,一旦泄露账号密码,服务器基本等于被接管。建议只允许普通用户登录,再通过 sudo 提权。这一步可以在 SSH 配置文件中完成,实属刚需。

1.3 强密码 & 密钥登录机制

比起密码,密钥认证更难被破解。你可以通过修改 SSH 配置,只允许密钥登录,彻底关闭密码验证通道。即使开放密码登录,也要设定强密码策略,至少包含大小写、符号和数字,并定期更换。

1.4 禁用不必要的用户和服务

越多冗余账户和后台服务,就意味着越多潜在攻击面。建议在系统初始化时,手动清理这些用户和服务。

类型示例建议操作
系统默认用户gamesmaillpnews删除或锁定
无用服务FTP、SMTP、Telnet、RPC 等使用 systemctlchkconfig 禁用

1.5 设置登录失败锁定机制

针对暴力破解攻击,可通过 PAM 模块(如 pam_tally2pam_faillock)实现失败锁定机制,例如连续输错 5 次密码后自动锁定账号一段时间。这个机制可以极大拖慢攻击进程。

1.6 服务器面板本身安全

如果你使用宝塔等服务器管理面板,更应关注它本身的安全配置。例如:

  • 关注“安全总览”提示:及时修复已知风险项。
  • 设置安全入口:自定义登录路径,避免被随意扫描。
  • 开启邮箱验证:防止非法操作。
  • 使用强密码和复杂端口:不能只是默认账户密码。

2. 防火墙和端口管理

服务器的端口就像是一栋大楼的门窗,开的多了,风险自然也随之增加。因此,做好端口管控和入站流量管理,是防止恶意访问的关键一步。防火墙不仅是第一道防线,更是保障服务正常运行、避免资源被滥用的安全核心。建议在配置服务前,先制定一份清晰的开放端口清单,做到“按需放行、最小权限”。

2.1 使用防火墙配置入站规则

不论是本地的 UFW、firewalld,还是云服务商提供的防火墙,都应根据业务需求精细控制开放端口。可以使用 netstatss 命令查看当前系统哪些端口正在监听,从而判断是否存在“开放但无实际用途”的端口。

阿里云ECS服务器端口防护
阿里云 ECS 服务器端口防护

如果你用的是云服务器,建议优先在云平台上设置安全组规则,管理更加清晰,也能避免本地配置失误导致无法远程连接。如果不方便,也可以利用宝塔面板内置的防火墙功能,图形化操作非常直观。一般情况下,只需要开放 80(HTTP)、443(HTTPS)和 22(SSH,建议限 IP 登录)这几个端口,其余一律关闭。

2.2 配合 Fail2Ban 阻断恶意尝试

Fail2Ban 是一款非常实用的日志监控工具,它能自动分析登录失败、扫描等行为,并根据设定的策略临时封禁对应的 IP。部署后,可以有效应对 SSH 暴力破解、Nginx 目录扫描等常见攻击。配合邮件通知机制,管理员还能第一时间收到攻击预警,便于后续排查。

2.3 部署 WAF(Web 应用防火墙)

相比系统防火墙,WAF 更关注 Web 层的攻击防御,比如 SQL 注入、XSS 跨站、恶意爬虫、CC 攻击等。你可以选择云厂商的云 WAF(如阿里云、腾讯云),也可以直接使用宝塔防火墙插件,后者针对常见攻击场景已做了很多优化,拦截规则清晰透明,使用体验也很友好,对于中小网站而言非常实用。

宝塔 Web 应用防火墙实时攻击大数据屏幕
宝塔 Web 应用防火墙实时攻击大数据屏幕

宝塔 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.php400 或 440核心配置文件含数据库密码,强烈建议只读,避免任何写入风险
.htaccess(Apache)644URL 重写配置文件可由程序修改,注意防止篡改
nginx.conf(Nginx)644Web 服务器配置建议备份并开启只读防改写
wp-login.php644登录入口文件可配合防火墙限制访问,或改名隐藏
xmlrpc.php644接口入口文件若不使用远程发布/移动客户端,可禁用
readme.html / license.txt644默认附加文件不必要可删除,避免暴露 WordPress 版本信息
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 服务器安全怎么做?基础设置必须先搞定」有 一条评论

发表评论

请输入关键词…