新服务器初始化清单:拿到机器后先做这10步

服务器拿到手,很多人第一件事是装面板、搭网站。这是一个可以理解但不太稳妥的习惯。

我第一次用云服务器的时候,也是拿到手就开始装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:改密码、配置密钥、改端口、配防火墙、做快照,这五步建议必做。其他可以根据实际情况增减。

Rate this post
赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《新服务器初始化清单:拿到机器后先做这10步》
文章链接:https://www.fuwu7.com/jiaocheng/8002.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到