服务器拿到手,很多人第一件事是装面板、搭网站。这是一个可以理解但不太稳妥的习惯。
我第一次用云服务器的时候,也是拿到手就开始装WordPress,结果第三天被扫到22端口爆破了。密码设得太简单,被人跑了个脚本直接进了系统。还好那时候机器上没什么重要的东西,但那次之后我养成了一个习惯:跑业务之前,先把该做的安全配置全部做完。
拿到一台新机器,系统是全新的,密码是默认的,防火墙是全开的——这种状态直接跑业务,等于在漏风的房子里开空调。下面这10步,是我见过最基础的初始化流程。不复杂,每步花不了几分钟,但做和不做,后面的风险差距很大。
第1步:改密码
拿到机器后,系统默认密码是多少大家都知道。如果ssh端口是22且密码是默认的,被扫到的概率很高。有多高?我自己的测试机器开放在互联网上,不改密码的情况下,平均2-3小时就会被扫描记录到。
改密码!
建议用12位以上包含大小写和符号的组合。不要用名字、生日、123456这类。常见错误是用”888888″或者”root123″——这类密码在攻击字典里排名很靠前。
第2步:创建日常使用账号
不要一直用root操作。这一点很多人知道,但做不到。
root权限太大,一旦误操作后果严重,而且root登录的操作记录往往被日志系统特殊对待,排查问题时不方便。
创建一个普通账号,分配sudo权限,用这个账号做日常管理:
useradd -m -s /bin/bash username
usermod -aG sudo username
以后ssh优先用这个账号,root账号作为备份保留。sudo命令会在你执行高权限操作时要求二次验证,比直接root登录安全很多。
第3步:配置SSH密钥登录
密码登录容易被暴力破解,密钥登录更稳。这不是说密码不好,而是密钥登录的破解难度高几个数量级。
在本机生成密钥对(Mac/Linux直接在终端执行,Windows用Git Bash或PowerShell):
ssh-keygen -t ed25519
一路回车,默认会生成在~/.ssh/目录下。把公钥传到服务器:
ssh-copy-id username@your_server_ip
然后修改ssh配置文件禁用密码登录:
sudo nano /etc/ssh/sshd_config
找到以下两行,确保是这样配置的:
PasswordAuthentication no
PubkeyAuthentication yes
保存后重启sshd:
sudo systemctl restart sshd
这一步做完,当前会话不要关,新开一个终端窗口测试密钥登录是否正常,确认没问题后再关闭原会话。常见的失误是改完配置重启sshd之后发现密钥登录不成功,但原来的会话已经断了。所以先测试再关。
第4步:改SSH默认端口
22是最容易被扫描的端口。全球每小时有数以万计的扫描脚本在扫描22端口——这不是针对你,是所有在互联网上的服务器都会被扫。
改成一个高位端口(比如22222),能挡掉大部分扫描流量:
sudo nano /etc/ssh/sshd_config
# 找到 Port 22 改为 Port 22222
sudo systemctl restart sshd
注意:改完端口之后,防火墙要先放行新端口,否则会把自己锁在外面。具体操作是:先加规则放行22222端口,再重启sshd。这两步顺序不能反。
第5步:配置防火墙
先查看防火墙状态,大多数Ubuntu 22.04以上的系统默认装了ufw,Debian可能需要手动安装。
放行必要端口:
sudo ufw allow 22222/tcp # ssh新端口
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
只开放你需要的端口,不要图省事全开。新手常犯的错误是先把防火墙关掉调应用,调完发现忘了开防火墙,这是最危险的——服务暴露在公网上而不自知。
第6步:同步服务器时间
时间不准会导致SSL证书失效、日志混乱、cron任务乱序。这个步骤经常被忽略,但出了问题排查起来很麻烦。
sudo timedatectl set-timezone Asia/Shanghai
sudo apt update && sudo apt install chrony -y
sudo systemctl enable chrony
时区根据你的业务所在地选择。如果是面向海外用户的站点,可以用UTC时间,这样日志里的时间戳换算起来更方便。
第7步:挂载数据盘(如果有)
很多服务器系统盘和数据盘是分开的。数据盘买来是空的,需要手动挂载才能用。有的人跑了两三个月才发现数据盘根本没挂载,所有数据都写在了系统盘里——系统盘一般比较小,数据多了会爆。
lsblk # 查看硬盘分区情况,找到你的数据盘编号,比如vdb
确认是数据盘而不是系统盘之后,格式化并挂载:
sudo mkfs.ext4 /dev/vdb # 注意选对盘,系统盘千万不能格式化
sudo mkdir /data
sudo mount /dev/vdb /data
把挂载信息写入fstab,保证重启后自动挂载:
sudo nano /etc/fstab
# 添加一行:/dev/vdb /data ext4 defaults 0 2
第8步:安装基础监控
服务器在线了,不代表它在健康运行。很多人等到网站打不开了才发现机器出了故障,如果有一基础监控,能提前知道。
最轻量的方案是用crontab写一个定时检查脚本:
*/5 * * * * ping -c 1 your_domain.com > /dev/null || echo "Site down at $(date)" | mail -s "Alert" your@email.com
稍微完整一点可以用Uptime Kuma这款开源工具,自己搭一个监控面板,支持监控网站、端口、API响应码,界面友好,搭建简单。
关键监控项:CPU使用率、内存占用、磁盘空间、端口存活。告警阈值建议:CPU持续超过80%、内存超过85%、磁盘超过90%,这几个是出问题前的早期信号。
第9步:做一次快照/备份
系统初始化完成后,趁机器还是干净状态,做一次快照或完整备份。很多厂商后台支持一键快照,花1分钟,省后面很多事。
我自己的习惯是:系统装好、配置调好、跑了一次压力测试没问题之后,立刻做一次快照。这相当于给系统”存档”,之后无论是不小心改坏了配置、被攻击需要重装、还是迁移到新机器,都能恢复到正常状态。
快照的常见误区是”做了就够了,不用定期做”。实际上每次做重大配置变更前,比如换防火墙规则、改ssh配置、装新软件,都建议做一次快照。出事之后恢复快照花10分钟,但能省掉几小时甚至几天的问题排查。
第10步:更新系统软件
系统自带的软件包不一定是最新版本,存在已知的漏洞。2014年的Heartbleed漏洞、2017年的Dirty COW,这些都是Linux内核级别的漏洞,老版本系统不更新就暴露在这些风险下。
sudo apt update && sudo apt upgrade -y
更新完成后,服务器就处于一个干净、可控、安全的状态了。之后再安装Web环境、部署应用,也不用担心系统本身有漏洞。
萤光云服务器支持分钟级交付,开通后按这个清单走一遍,基本能覆盖大多数基础安全需求。需要进一步扩容或定制配置,直接在萤光云控制台操作就行。
常见疑问
Q:海外服务器需要配防火墙吗,国内不是有高墙吗?
A:需要。高墙防的是大陆访客访问不了你的站,不是防别人攻击你。服务器暴露在公网上,攻击和你是哪国的访问者无关。
Q:端口改了之后ssh连不上了怎么办?
A:用厂商控制台提供的VNC或远程连接功能登录服务器,检查防火墙规则是否放行了新端口。多数情况是防火墙规则没加对。
Q:快照和备份有什么区别?
A:快照是机器某一时刻的完整镜像,恢复快但通常不能跨厂商用。备份是数据层面的拷贝,比如数据库导出、文件压缩包。两者配合用最稳妥。
Q:所有步骤都要做吗,新手可以跳过某些吗?
A:改密码、配置密钥、改端口、配防火墙、做快照,这五步建议必做。其他可以根据实际情况增减。
全球主机测评







