为什么Ubuntu服务器初始化配置至关重要
拿到一台全新的Ubuntu服务器,第一件事不是急着部署应用,而是把基础环境配置好。初始化配置做得是否规范,直接决定了后续服务器的安全性、稳定性和可维护性。
很多运维事故的根源,都是初始配置潦草了事——用root直接操作、不配置防火墙、不更新系统补丁、SSH用密码登录。这些"省事"的操作,往往会在几个月后变成安全事故。
本文以Ubuntu 20.04/22.04 LTS为例,梳理一套经过生产环境验证的初始化配置流程,涵盖账号安全、SSH加固、防火墙、时区同步、SWAP配置、内核参数优化等关键环节。
准备工作:系统安装后的第一步
服务器系统安装完成、能正常SSH登录后,先不要急着装软件。花10分钟按下面步骤把基线打牢,后面能省大量排障时间。
更新系统软件包到最新版本
第一步永远是更新系统。新装好的Ubuntu镜像里的软件包往往不是最新版本,存在已知漏洞。
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
执行完后建议重启一次,让内核更新生效:
sudo reboot
创建非root用户并配置sudo权限
直接用root操作是服务器管理的坏习惯。正确做法是创建一个普通用户,通过sudo临时获取管理员权限。
sudo adduser deploy
sudo usermod -aG sudo deploy
注销root,用新用户重新登录测试sudo是否生效:
ssh deploy@your_server_ip
sudo whoami
配置SSH密钥登录增强安全性
密码登录存在被暴力破解的风险,密钥登录是目前业界标准做法。关于SSH密钥的详细配置方法,可以参考站内相关教程。
在本地电脑生成密钥对:
ssh-keygen -t ed25519 -C "deploy@server"
将公钥上传到服务器:
ssh-copy-id deploy@your_server_ip
然后在服务器上禁用密码登录,编辑/etc/ssh/sshd_config:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
重启SSH服务使配置生效:
sudo systemctl restart ssh
配置防火墙UFW保护服务器
Ubuntu自带UFW,初始化时必须配置防火墙,原则是"默认拒绝,按需放行"。
sudo ufw allow OpenSSH
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
查看状态确认规则生效:
sudo ufw status verbose
配置时区和NTP时间同步
服务器时间不准确会导致日志时间错乱、SSL证书验证失败、定时任务执行异常。
sudo timedatectl set-timezone Asia/Shanghai
sudo apt install chrony -y
sudo systemctl enable chronyd
sudo systemctl start chronyd
验证时间同步状态:
timedatectl status
chronyc sources
配置SWAP交换空间
当服务器物理内存耗尽时,系统会触发OOM Killer强制杀掉进程。配置SWAP可以在内存不足时提供缓冲。
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
优化SWAP使用策略,减少频繁换页影响性能:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
安装常用基础工具
新系统默认自带工具很少,安装一些常用工具能大幅提升后续运维效率:
sudo apt install -y curl wget git vim htop net-tools dnsutils telnet tree unzip zip
- curl/wget:下载文件、调用API
- vim:编辑配置文件
- htop:实时查看系统资源占用
- net-tools:提供ifconfig、netstat等网络工具
- dnsutils:提供dig、nslookup等DNS诊断工具
配置自动安全更新
配置自动安全更新能让服务器自动安装重要安全补丁。
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
内核参数优化(sysctl)
对于面向公网的服务器,建议对内核网络参数做基础优化。
# 防止SYN Flood攻击
net.ipv4.tcp_syncookies = 1
# 增加系统最大文件描述符数量
fs.file-max = 655360
# 增加TCP连接队列长度
net.core.somaxconn = 4096
将上述内容追加到/etc/sysctl.conf后执行:
sudo sysctl -p
初始化完成后的检查清单
| 检查项 | 命令 | 期望结果 |
|---|---|---|
| 系统版本 | lsb_release -a | Ubuntu 20.04/22.04 LTS |
| 系统更新状态 | apt list --upgradable | 无待更新包 |
| 非root用户 | id deploy | 存在且在sudo组 |
| SSH密钥登录 | ssh deploy@ip | 无需密码登录成功 |
| 防火墙状态 | sudo ufw status | active,22端口放行 |
| 时区 | timedatectl | Asia/Shanghai |
| SWAP | swapon --show | 显示swapfile信息 |
总结
Ubuntu服务器的初始化配置不是可有可无的"额外工作",而是生产环境稳定性的基石。本文介绍的流程涵盖了账号安全、SSH加固、防火墙、时区同步、SWAP、自动更新和内核优化等核心环节,按照这个基线配置出来的服务器,能满足绝大多数生产场景的安全要求。
初始化完成后,再开始部署应用服务,后续运维会轻松很多。每台新服务器上线前,建议都把本文作为初始化检查清单,逐项确认后再投入使用。
版权声明
本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论