服务器新手的安全必修课:手把手修复6个常见的宝塔面板安全风险
前言
当你满怀激动地拥有了人生中第一台云服务器,安装好宝塔面板,准备大展拳脚时,点开“安全”菜单,看到那一长串红色的风险提示,你是否也曾感到一丝困惑和不安?“端口扫描”、“suid提权”、“跨站攻击”……这些名词听起来都像“武林高手”的招式,让新手望而生畏。
好消息是,这些看似复杂的风险,大部分都有清晰的修复路径。更重要的是,我们完全可以手动修复它们,而无需依赖付费的一键修复功能。本文将基于一次真实的安全加固经历,分享6个常见高、中危风险的原理和手动修复步骤,帮助你将服务器的安全性提升到一个全新的水平。
修复一:修复“无密码Sudo”,堵上最高权限的后门
- 风险名称: 检查是否允许空密码sudo提权 (
NOPASSWD) - 风险解读:
sudo是我们在Linux中执行管理员命令的“法宝”。而NOPASSWD配置意味着,任何一个能登录你服务器的普通用户,在使用sudo时都无需输入密码。如果你的网站或某个应用被攻破,攻击者获得了一个普通用户的控制权,他就可以用这个“后门”毫不费力地成为root,完全控制你的服务器。 - 修复步骤:
- 登录宝塔面板,进入【文件】管理。
- 根据宝塔的风险提示,找到那个包含
NOPASSWD配置的文件。它通常是/etc/sudoers,或者是/etc/sudoers.d/目录下的某个文件。 - 打开该文件,找到类似下面这样的一行:
some_user_name ALL=(ALL) NOPASSWD: ALL - 将这一整行用
#号注释掉,或者直接删除。然后保存文件即可。此项修复立即生效。
修复二:关闭数据库公网访问,将“金库”锁进地下室
- 风险名称: MySQL端口被任意服务器扫描
- 风险解读: 将数据库的默认端口(如3306)暴露在公网上,就像把银行金库的大门直接开在喧闹的大街上。这会引来全世界的自动化程序进行24小时不间断的密码暴力破解,风险极高。
- 修复步骤(宝塔图形化操作):
- 在宝塔面板,点击左侧菜单的【数据库】。
- 点击页面上方的【root密码】标签页。
- 在“权限”一栏,将访问权限从“所有人”修改为 “本地服务器”。
- 点击提交。这样,数据库就只接受来自服务器内部的连接请求了。
修复三:移除SUID权限,解除系统工具的“定时炸弹”
- 风险名称: 检查重要文件是否存在suid和sgid权限
- 风险解读:
suid是一种特殊的文件权限,它允许普通用户在执行某个程序时,临时获得程序所有者(通常是root)的身份。这本身是一种方便的设计,但如果那个程序本身存在漏洞,就可能被攻击者利用,瞬间“借壳上市”获得root权限。 - 修复步骤(SSH终端操作):
- 使用SSH工具登录你的服务器。
- 根据宝塔风险提示中列出的文件路径,逐个执行以下命令来移除
suid权限:Bash# 示例,请根据你的实际提示修改文件名和路径 chmod u-s /usr/bin/gpasswd chmod u-s /usr/bin/wall chmod u-s /usr/bin/chage # ...执行所有提示的文件这里的
chmod u-s命令,意思就是“从文件所有者(u)身上,移除(-)suid权限(s)”。
修复四:强制SSH使用安全协议,加密你的远程连接
- 风险名称: 未使用安全套接字层加密远程管理ssh
- 风险解读: SSH协议有两个主要版本,V1版本存在严重的设计缺陷,容易被黑客窃听和劫持。我们必须强制服务器只使用更安全的V2版本。
- 修复步骤(SSH终端操作):
- 在宝塔面板或通过SSH,编辑SSH配置文件:
/etc/ssh/sshd_config。 - 在文件任意空白处,添加一行:
Ini, TOML
Protocol 2 - 保存文件。然后通过SSH执行以下命令重启SSH服务:
Bash
systemctl restart sshd
- 在宝塔面板或通过SSH,编辑SSH配置文件:
修复五:开启防跨站攻击,给你的网站建一堵“防火墙”
- 风险名称: 网站未开启防跨站功能 (
open_basedir) - 风险解读: 如果你的服务器上运行了多个网站,一个网站的程序漏洞可能会被利用,去读取甚至篡改另一个网站的文件(比如包含数据库密码的配置文件)。
open_basedir功能就像是给每个网站的文件夹都建了一道坚固的围墙,禁止它“手伸得太长”。 - 修复步骤(宝塔图形化操作):
- 在宝塔面板,点击【网站】,找到你的网站,点击【设置】。
- 在弹窗中,选择左侧的【网站目录】。
- 勾选【防跨站攻击(open_basedir)】,然后保存即可。
修复六:关闭PHP错误提示,别给黑客“看地图”
- 风险名称: 未关闭PHP版本的错误提示信息
- 风险解读: 当网站代码出错时,向访客显示详细的技术性错误报告,可能会暴露你服务器的文件路径、数据库表结构等敏感信息,这无异于给攻击者提供了一份详细的“藏宝图”。
- 修复步骤(宝塔图形化操作):
- 在宝塔面板,点击【软件商店】,找到你网站正在使用的PHP版本,点击【设置】。
- 在弹窗中,选择【配置修改】。
- 找到
display_errors这一项,将它的值从On修改为Off。 - 保存并按提示重启PHP服务。
结语
服务器安全是一个持续的过程,而不是一蹴而就的终点。但通过完成以上这几项关键的修复,你的服务器已经构建起了一个相当不错的安全基础。希望这篇文章能帮助每一位服务器新手,从容地迈出安全运维的第一步,将自己的数字资产牢牢掌握在自己手中。
鄂公网安备42011102005804号