Linux服务器新手必做8步初始化配置
为什么服务器买来第一件事不是装程序?
很多新手拿到服务器之后,第一反应是马上开始装 Nginx、MySQL、WordPress。但这样做有一个严重问题:默认配置的 Linux 服务器安全性极低,直接暴露在公网上,通常几分钟内就会被扫描器发现,开始遭受暴力破解攻击。
正确的顺序是:先做安全初始化,再部署业务。
本文以 Ubuntu 22.04 LTS 为例,列出新手必做的 8 步初始化配置,每一步都附有可直接复制执行的命令。整个流程大约需要 20–30 分钟,完成后你的服务器会具备基础的安全防护能力。
前提准备
开始之前,确认以下条件:
- 已通过 root 账户 SSH 登录到服务器
- 服务器系统为 Ubuntu 20.04 / 22.04 LTS(Debian 系同理,命令基本通用)
- 本地终端工具已就绪(Mac/Linux 用系统终端,Windows 用 PuTTY 或 Windows Terminal)
第一步:更新系统软件包
拿到新服务器后,第一步永远是更新系统,修复已知安全漏洞。
apt update && apt upgrade -y执行完成后,重启服务器使内核更新生效:
reboot重启后重新 SSH 登录,继续后续步骤。
第二步:创建普通用户,禁止直接用 root 登录
直接用 root 账户操作服务器是高风险行为。一旦被入侵,攻击者拥有最高权限,可以对系统做任何操作。正确做法是创建一个普通用户,日常操作用普通用户,需要权限时用 sudo 提权。
创建新用户(将 youruser 替换为你想要的用户名):
adduser youruser将新用户加入 sudo 组(赋予管理员权限):
usermod -aG sudo youruser切换到新用户测试是否可以正常 sudo:
su - youruser
sudo whoami输出 root 说明配置成功。
第三步:配置 SSH 密钥登录
密码登录存在被暴力破解的风险。SSH 密钥登录更安全,原理是用数学上极难破解的非对称加密替代密码验证。
在本地机器上生成密钥对(如果已有密钥可跳过):
ssh-keygen -t ed25519 -C "your_email@example.com"一路回车使用默认路径,密钥会保存在 ~/.ssh/id_ed25519(私钥)和 ~/.ssh/id_ed25519.pub(公钥)。
将公钥上传到服务器(在本地执行):
ssh-copy-id youruser@your_server_ip上传完成后,测试密钥登录是否成功:
ssh youruser@your_server_ip确认可以无密码登录后,再进行下一步禁用密码登录。
第四步:加固 SSH 配置
编辑 SSH 配置文件:
sudo nano /etc/ssh/sshd_config找到并修改以下几行(没有的话手动添加):
# 禁止 root 直接登录
PermitRootLogin no
# 禁用密码登录,只允许密钥登录
PasswordAuthentication no
# 修改默认端口(将 22 改为其他端口,如 2222)
Port 2222
# 限制登录尝试次数
MaxAuthTries 3保存文件后重启 SSH 服务:
sudo systemctl restart sshd重要提醒:修改端口后,先不要关闭当前 SSH 连接,开一个新终端用新端口测试能否正常登录,确认无误后再关闭旧连接。测试命令:
ssh -p 2222 youruser@your_server_ip第五步:配置防火墙(UFW)
UFW(Uncomplicated Firewall)是 Ubuntu 自带的防火墙工具,配置简单,适合新手使用。
安装并启用 UFW:
sudo apt install ufw -y设置默认规则(拒绝所有入站,允许所有出站):
sudo ufw default deny incoming
sudo ufw default allow outgoing放行你需要的端口(根据实际业务调整):
# 放行修改后的 SSH 端口(务必先放行,否则会被锁在外面)
sudo ufw allow 2222/tcp
# 放行 HTTP 和 HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp启用防火墙:
sudo ufw enable查看当前规则:
sudo ufw status verbose第六步:安装 Fail2ban 防暴力破解
Fail2ban 会监控服务器日志,当某个 IP 短时间内登录失败次数过多时,自动将其封禁,有效防御 SSH 暴力破解攻击。
安装 Fail2ban:
sudo apt install fail2ban -y创建本地配置文件(不要直接编辑默认配置,升级时会被覆盖):
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local找到 [sshd] 部分,调整以下参数:
[sshd]
enabled = true
port = 2222
maxretry = 5
bantime = 3600
findtime = 600参数说明:maxretry 是允许的最大失败次数,bantime 是封禁时长(秒),findtime 是统计失败次数的时间窗口(秒)。
启动并设置开机自启:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban查看封禁状态:
sudo fail2ban-client status sshd第七步:配置系统时区和时间同步
服务器时间不准会导致 SSL 证书验证失败、日志时间错乱、定时任务不准确等问题,务必确保时区和时间同步正确。
查看当前时区:
timedatectl设置时区(以上海为例):
sudo timedatectl set-timezone Asia/Shanghai安装并启用 NTP 时间同步:
sudo apt install ntp -y
sudo systemctl enable ntp
sudo systemctl start ntp验证时间同步状态:
timedatectl status看到 System clock synchronized: yes 说明时间同步正常。
第八步:开启自动安全更新
手动更新系统是很多人会忘记的事。配置自动安全更新,让系统在有安全补丁时自动安装,降低因疏忽导致的漏洞风险。
安装自动更新工具:
sudo apt install unattended-upgrades -y启用自动更新:
sudo dpkg-reconfigure --priority=low unattended-upgrades在弹出的交互界面选择 “Yes” 确认开启。
查看自动更新配置:
cat /etc/apt/apt.conf.d/20auto-upgrades确认输出包含以下内容即表示配置成功:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";初始化完成后的检查清单
完成以上 8 步后,逐项确认:
| 检查项 | 验证命令 | 预期结果 |
|---|---|---|
| 系统已更新 | apt list --upgradable | 无可更新包 |
| 普通用户可 sudo | sudo whoami | 输出 root |
| SSH 密钥登录正常 | 新终端用新端口登录 | 无需密码直接登录 |
| 防火墙已启用 | sudo ufw status | Status: active |
| Fail2ban 运行中 | sudo systemctl status fail2ban | active (running) |
| 时间同步正常 | timedatectl status | System clock synchronized: yes |
| 自动更新已启用 | systemctl status unattended-upgrades | active (running) |
总结
这 8 步初始化配置覆盖了新服务器上线前最基础也最重要的安全加固操作:
- 系统更新修复已知漏洞
- 禁用 root 直接登录降低被攻击面
- SSH 密钥登录替代密码登录
- 修改默认端口减少扫描器骚扰
- 防火墙限制非必要端口暴露
- Fail2ban 自动封禁暴力破解 IP
- 时区和时间同步保障系统正常运行
- 自动安全更新降低人工疏忽风险
完成初始化后,服务器已具备基础防护能力,可以开始部署业务环境(Nginx、数据库、应用程序等)。
如果你还没有服务器,IDC.Net 香港云服务器首月 10 元起,支持 Ubuntu 22.04 LTS 系统,自助控制面板可随时重装系统,CN2 GIA 直连大陆,支持支付宝 / USDT 付款,适合新手学习和生产环境部署。