Linux服务器新手必做8步初始化配置

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无可更新包
普通用户可 sudosudo whoami输出 root
SSH 密钥登录正常新终端用新端口登录无需密码直接登录
防火墙已启用sudo ufw statusStatus: active
Fail2ban 运行中sudo systemctl status fail2banactive (running)
时间同步正常timedatectl statusSystem clock synchronized: yes
自动更新已启用systemctl status unattended-upgradesactive (running)

总结

这 8 步初始化配置覆盖了新服务器上线前最基础也最重要的安全加固操作:

  • 系统更新修复已知漏洞
  • 禁用 root 直接登录降低被攻击面
  • SSH 密钥登录替代密码登录
  • 修改默认端口减少扫描器骚扰
  • 防火墙限制非必要端口暴露
  • Fail2ban 自动封禁暴力破解 IP
  • 时区和时间同步保障系统正常运行
  • 自动安全更新降低人工疏忽风险

完成初始化后,服务器已具备基础防护能力,可以开始部署业务环境(Nginx、数据库、应用程序等)。

如果你还没有服务器,IDC.Net 香港云服务器首月 10 元起,支持 Ubuntu 22.04 LTS 系统,自助控制面板可随时重装系统,CN2 GIA 直连大陆,支持支付宝 / USDT 付款,适合新手学习和生产环境部署。

Telegram