腾讯云轻量服务器安全加固指南:从SSH密钥到防火墙配置

📅 2026/8/16 4:45:39
腾讯云轻量服务器安全加固指南:从SSH密钥到防火墙配置
1. 项目缘起为什么轻量应用服务器需要“二次加固”最近在帮几个初创团队做上云迁移和运维托管发现一个挺普遍的现象很多朋友在腾讯云上购买了轻量应用服务器Lighthouse后尤其是通过代理商渠道拿到的机器就直接开始部署应用了。他们普遍认为既然是从腾讯云官方或正规代理商那里买的系统镜像应该是“开箱即用”且安全的。这个想法其实存在一个不小的误区。轻量应用服务器提供的系统镜像无论是 CentOS、Ubuntu 还是 OpenCloud OS确实是一个干净、标准的操作系统。但“干净”不等于“安全”更不等于“配置优化”。它就像一套精装修的毛坯房水电通了墙面刷白了但你要住得舒服、安全还得自己装防盗门、调整灯光布局、检查水管接口。同样服务器拿到手默认的 SSH 端口、弱密码策略如果使用密码登录、未配置的防火墙、不必要的服务进程都是潜在的风险点。尤其是通过代理商购买的服务器有时会预装一些“方便管理”但来源不明的脚本或监控工具这些反而可能引入新的安全漏洞。因此无论你是个人开发者、小团队运维还是企业IT在服务器初始化后进行一轮系统性的基础配置与安全加固是必不可少的上云“第一课”。这不仅能堵上最明显的安全漏洞更能为后续应用的稳定运行打下坚实基础。今天我就结合最近处理的一台预装了“OpenClaw”管理面板部分代理商喜欢预装的腾讯云轻量服务器来详细拆解从拿到IP地址到完成基础加固的全过程。你会发现很多操作并不复杂但每一步都至关重要。2. 登录前准备理清入口与认证方式在开始任何操作之前我们必须先明确如何登录服务器。腾讯云轻量服务器主要提供两种登录方式SSH密钥对和密码。我强烈建议并且本文将基于SSH密钥对的方式进行这是安全性的基石。2.1 密钥对与密码的抉择为什么首选密钥对原因很简单它比密码安全几个数量级。密码可能被暴力破解、被键盘记录器窃取、或因复杂度不够而被猜出。而SSH密钥对采用非对称加密私钥存放在你的本地电脑从不通过网络传输公钥放在服务器上。登录时服务器用公钥挑战你的本地私钥验证通过即可登录。只要你的私钥文件不泄露服务器几乎不可能被非法登录。很多通过代理商购买的服务器对方可能会直接给你一个随机生成的密码。我的建议是立即禁用密码登录并改用密钥对。这是加固的第一步也是最重要的一步。2.2 本地环境与工具准备你需要在本地准备好两样东西一个SSH客户端如果你是 macOS 或 Linux 用户系统终端自带ssh命令。Windows 用户我推荐使用PowerShellWin10及以上自带或安装Git Bash它们都包含了完整的 SSH 工具链。图形化工具如PuTTY、Xshell也可用但本文以命令行操作为主因为更通用、可脚本化。你的SSH私钥文件如果你还没有密钥对可以通过以下命令生成在本地终端执行ssh-keygen -t rsa -b 4096 -C “your_emailexample.com” -f ~/.ssh/tencent_lighthouse_key-t rsa: 指定密钥类型为 RSA。-b 4096: 指定密钥长度为 4096 位安全性更高。-C: 添加一个注释通常用你的邮箱方便标识。-f: 指定生成私钥文件的路径和名称。这里示例为在用户目录下的.ssh文件夹中生成名为tencent_lighthouse_key的私钥对应的公钥文件为tencent_lighthouse_key.pub。生成过程中会提示你输入一个“通行短语”passphrase这是一个额外的保护层即使私钥文件被盗没有通行短语也无法使用。建议设置一个强密码并牢记。生成后你会得到两个文件tencent_lighthouse_key私钥必须严格保密和tencent_lighthouse_key.pub公钥需要上传到服务器。2.3 获取服务器连接信息从腾讯云控制台或代理商那里你会获得以下关键信息服务器公网IP地址例如123.123.123.123。默认用户名通常是rootLinux系统或ubuntuUbuntu系统镜像。初始密码或密钥对如果是密码记下来用于第一次登录如果代理商已为你绑定了密钥对你需要获取对应的私钥文件。假设我们拿到的是一台IP为123.123.123.123用户名为root并已有一个初始密码的服务器。我们的第一个任务就是用这个密码登录然后上传我们的公钥并禁用密码登录。3. 首次登录与“OpenClaw”探秘使用初始密码进行第一次登录ssh root123.123.123.123系统会提示你输入密码输入代理商提供的密码即可登录。登录成功后我建议先做两件快速检查第一检查系统基础信息cat /etc/os-release # 查看操作系统版本 free -h # 查看内存使用情况 df -h # 查看磁盘使用情况 top # 查看实时进程按q退出第二检查是否有预装软件特别是“OpenClaw”ps aux | grep -i claw # 查看是否有名为claw的进程 systemctl list-unit-files | grep -i claw # 查看是否有相关服务 find / -name “*claw*” 2/dev/null | head -20 # 查找相关文件“OpenClaw”并非腾讯云官方组件而是一些代理商为了方便用户进行可视化运维如一键安装LNMP、网站备份、安全扫描等而预装的三方管理面板。它的存在本身不是问题但你需要知道它是什么、是否在运行、以及它是否打开了额外的端口如8080、8888等管理后台端口。如果发现它在运行你需要决定是否保留它。对于追求极致控制和安全的用户我建议卸载这些非必需的三方面板因为你无法完全审计其代码和安全状况。使用命令行或自己编写脚本管理是更专业和安全的方式。如果决定卸载请根据其提供的官方文档或安装脚本中的卸载指令进行操作通常可以在其安装目录找到uninstall.sh之类的脚本。注意在卸载任何预装软件前最好先通过代理商了解其具体功能避免误删团队其他成员依赖的工具。4. 安全加固核心四步曲确认环境后我们开始进行核心的安全加固操作。请按顺序执行。4.1 第一步更新系统与关键软件一个过时的系统是漏洞的温床。第一步永远是更新。# 对于 Ubuntu/Debian 系统 apt update apt upgrade -y # 对于 CentOS/Rocky Linux/AlmaLinux 系统 yum update -y # 对于 OpenCloud OS腾讯云定制 yum makecache yum update -y更新完成后建议重启服务器以使内核更新生效reboot等待1-2分钟后再重新登录。4.2 第二步配置SSH密钥登录并禁用密码这是本次加固的重中之重。上传公钥到服务器 在本地电脑上将之前生成的公钥内容上传到服务器的authorized_keys文件中。# 在本地终端执行不要登录到服务器 ssh-copy-id -i ~/.ssh/tencent_lighthouse_key.pub root123.123.123.123这个命令会自动将你的公钥追加到服务器~/.ssh/authorized_keys文件末尾。如果ssh-copy-id不可用也可以手动操作先在本地查看公钥内容cat ~/.ssh/tencent_lighthouse_key.pub复制输出的一长串内容。登录服务器执行mkdir -p ~/.ssh echo “你复制的公钥内容” ~/.ssh/authorized_keys设置正确的权限chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys测试密钥登录 新开一个本地终端窗口尝试用私钥登录ssh -i ~/.ssh/tencent_lighthouse_key root123.123.123.123如果首次使用设置了通行短语此时会提示输入。登录成功说明密钥配置正确。禁用SSH密码登录 密钥登录测试成功后我们开始修改SSH服务端配置彻底关闭密码登录。vim /etc/ssh/sshd_config找到并修改以下几项关键配置Port 22 # 可以考虑改为一个非标准端口如 2222能减少大量自动化扫描修改后需在防火墙放行 PermitRootLogin yes # 是否允许root登录。建议改为 prohibit-password 或 no然后通过普通用户sudo提权。 PubkeyAuthentication yes # 启用公钥认证确保是yes PasswordAuthentication no # 将此项改为 no禁用密码认证 ChallengeResponseAuthentication no # 禁用挑战应答认证修改完成后保存退出在vim中按Esc输入:wq回车。重启SSH服务并验证systemctl restart sshd # Ubuntu/Debian # 或 systemctl restart sshd.service # CentOS/Rocky重要在重启sshd服务后不要关闭当前的登录会话新开一个终端窗口再次尝试用密钥登录确认无误。然后再尝试用密码登录ssh root123.123.123.123此时应该被拒绝。验证无误后你的服务器就拥有了第一道坚固的防线。4.3 第三步配置防火墙Firewalld/UFW/Iptables腾讯云轻量服务器在控制台有“防火墙”功能但那是在云平台层面的安全组作用于服务器外部网络入口。我们还需要在操作系统内部配置主机防火墙形成纵深防御。CentOS/Rocky/OpenCloud OS 推荐使用 firewalldsystemctl start firewalld systemctl enable firewalld firewall-cmd --permanent --add-servicessh # 放行SSH如果你改了SSH端口要用 --add-port2222/tcp firewall-cmd --permanent --add-servicehttp # 放行HTTP (80端口) firewall-cmd --permanent --add-servicehttps # 放行HTTPS (443端口) # 如果你运行了其他服务如MySQL(3306)也需要相应放行 # firewall-cmd --permanent --add-port3306/tcp firewall-cmd --reload # 重载配置 firewall-cmd --list-all # 查看所有规则Ubuntu/Debian 推荐使用 ufwufw allow OpenSSH # 放行SSH如果改了端口 ufw allow 2222/tcp ufw allow 80/tcp ufw allow 443/tcp ufw --force enable # 启用UFW ufw status verbose # 查看状态配置防火墙后所有未明确允许的入站连接都会被拒绝。请务必在启用前放行SSH端口否则你会把自己关在门外。4.4 第四步创建普通用户并禁用Root直接登录可选但推荐长期使用root用户操作是危险的一次误操作就可能毁掉整个系统。最佳实践是创建一个拥有sudo权限的普通用户然后禁止root用户通过SSH直接登录。创建新用户adduser your_username # 按照提示设置密码等信息 usermod -aG sudo your_username # 将用户加入sudo组Ubuntu # 对于CentOS通常是 wheel 组 usermod -aG wheel your_username将SSH公钥复制到新用户家目录mkdir -p /home/your_username/.ssh cp ~/.ssh/authorized_keys /home/your_username/.ssh/ chown -R your_username:your_username /home/your_username/.ssh chmod 700 /home/your_username/.ssh chmod 600 /home/your_username/.ssh/authorized_keys测试新用户登录 在本地用新用户的私钥可以和root用同一个登录测试ssh -i ~/.ssh/tencent_lighthouse_key your_username123.123.123.123登录后测试sudo权限sudo whoami应该返回root。禁用Root SSH登录 确认新用户可以正常sudo后再次编辑/etc/ssh/sshd_config将PermitRootLogin改为no。PermitRootLogin no重启SSH服务systemctl restart sshd。此后只能先用普通用户登录再用sudo -i或sudo su切换为root权限。5. 系统优化与监控基线配置安全加固后我们可以进行一些性能优化和监控配置让服务器运行得更顺畅、更透明。5.1 配置Swap交换分区如果内存较小轻量服务器入门配置可能只有1G或2G内存在内存耗尽时容易触发OOMOut-Of-Memory导致进程被杀死。添加Swap分区可以提供一个缓冲。# 检查当前Swap情况 free -h swapon --show # 如果没有任何Swap可以创建一个例如2GB fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile # 使其永久生效 echo ‘/swapfile none swap sw 0 0’ /etc/fstab # 调整Swappiness参数值越低越倾向使用物理内存 echo ‘vm.swappiness10’ /etc/sysctl.conf sysctl -p注意Swap使用磁盘空间频繁读写可能影响性能但对于小内存服务器防止崩溃来说是必要的牺牲。5.2 配置日志轮转与时间同步日志管理确保日志不会无限增长占满磁盘。Linux 默认通过logrotate管理通常无需额外配置但可以检查关键日志如 Nginx/Apache 的配置。时间同步服务器时间不准会导致日志时间错乱、证书验证失败等问题。使用chronyd或ntpd同步。# CentOS/Rocky systemctl start chronyd systemctl enable chronyd chronyc sources -v # Ubuntu systemctl start systemd-timesyncd systemctl enable systemd-timesyncd timedatectl status5.3 安装基础监控工具至少安装一个简单的系统监控工具以便快速查看状态。htop: 一个增强版的top界面更友好。# Ubuntu/Debian apt install htop -y # CentOS/Rocky yum install epel-release -y yum install htop -yncdu: 用于分析磁盘空间占用。# Ubuntu/Debian apt install ncdu -y # CentOS/Rocky yum install ncdu -y使用ncdu /可以快速扫描根目录找出占用空间最大的文件夹。6. 应用层安全与后续维护建议完成系统层加固后你的服务器已经比90%的默认安装要安全了。但安全是一个持续的过程特别是当你开始部署应用时。6.1 部署应用时的安全原则最小权限原则运行应用如Web服务器、数据库时尽量使用专用、非root用户。例如为Nginx创建www-data或nginx用户。及时更新不仅更新系统更要更新你安装的每一个应用软件如Nginx, MySQL, Redis, PHP等。订阅其安全公告。限制网络暴露数据库如MySQL、Redis默认只监听本地回环地址127.0.0.1不要轻易绑定到0.0.0.0。如果必须远程访问则必须设置强密码并通过防火墙严格限制来源IP。使用HTTPS对外提供Web服务务必使用SSL/TLS证书Let‘s Encrypt提供免费证书强制HTTP跳转到HTTPS。6.2 建立简单的入侵检测与备份习惯文件完整性检查定期检查关键系统文件如/etc/passwd,/etc/shadow,/bin/ls等的哈希值或修改时间可以使用aide或tripwire等工具但对于轻量服务器一个简单的定时脚本对比ls -la输出也可能发现异常。登录审计经常查看/var/log/auth.logUbuntu或/var/log/secureCentOS关注失败的登录尝试。grep “Failed password” /var/log/auth.log | tail -20定期备份腾讯云控制台提供轻量服务器的快照功能这是最简单有效的系统级备份。建议在重大变更前手动创建快照并设置定期自动快照策略会产生费用。应用数据如网站文件、数据库应另外进行异地备份。6.3 针对“OpenClaw”等预装面板的特别处理如果你决定保留类似OpenClaw的面板请务必做到以下几点修改默认访问端口和路径如果面板有管理后台绝不要使用默认的8080、8888等端口和/admin这类路径。设置强密码和二次验证为面板管理员账户设置独一无二的强密码并启用任何可用的二次验证2FA功能。限制访问来源在面板自身的防火墙设置或服务器防火墙firewalld/ufw中将管理后台的访问权限限制为你自己的公网IP地址。保持面板更新关注面板官方的更新通知及时修补安全漏洞。经过以上从系统登录到应用部署的全流程加固你的腾讯云轻量应用服务器已经从一个“裸奔”的状态变成了一个具备基本防御能力的堡垒。这套流程看似步骤不少但大部分是一次性配置完成后能极大降低被自动化脚本攻击和入侵的风险。记住服务器安全没有一劳永逸保持更新的习惯和警惕的心态才是最好的防护。