拿到新服务器,别急着部署
不管是新买的云服务器,还是刚装好的物理机,第一件事不应该是装软件、跑应用,而是把安全基础打牢。这一步不做,后面所有操作都是在裸奔。
本文整理了一份 Linux 服务器安全初始化清单,涵盖系统更新、账户安全、SSH 加固、防火墙配置等核心项目。按顺序做一遍,你的服务器安全等级就能超过大多数人的水平。
1. 系统更新
第一步永远是更新系统,修补已知漏洞:
# CentOS
yum update -y
# Ubuntu
apt update && apt upgrade -y
更新完后建议重启一次:reboot。
2. 修改 root 密码
默认密码或弱密码是最大的安全隐患。改一个强密码:
passwd root
密码要求:至少 12 位,包含大小写字母、数字和特殊字符。如果你记不住,用密码管理器生成。
3. 创建普通用户,禁止 root 直接登录
root 账号权限太大,一旦被暴力破解后果不堪设想。
# 创建新用户
useradd -m -s /bin/bash deploy
passwd deploy
# 赋予 sudo 权限
# CentOS
usermod -aG wheel deploy
# Ubuntu
usermod -aG sudo deploy
然后用新用户登录测试,确认 sudo 能正常使用。
禁用 root 远程登录(修改 SSH 配置后生效,见第 4 步)。
4. 加固 SSH 配置
SSH 是服务器最主要的入口,也是最容易被攻击的地方。
vi /etc/ssh/sshd_config

修改以下配置:
# 修改默认端口(避免被扫描器批量扫)
Port 2222
# 禁止 root 远程登录
PermitRootLogin no
# 禁止密码登录(仅允许密钥登录,更安全)
PasswordAuthentication no
PubkeyAuthentication yes
# 禁止空密码登录
PermitEmptyPasswords no
# 限制最大认证尝试次数
MaxAuthTries 3
# 限制登录超时时间(秒)
LoginGraceTime 30
注意:修改 SSH 配置前,先确保你已经配置好了密钥登录!否则改完密码登录被禁后会连不上。
配置密钥登录的方法:
# 在本地机器生成密钥
ssh-keygen -t ed25519
# 上传公钥到服务器
ssh-copy-id -p 22 deploy@你的服务器IP
# 测试密钥登录
ssh -p 22 deploy@你的服务器IP
确认密钥登录没问题后,再修改 SSH 配置并重启:
systemctl restart sshd
5. 配置防火墙
只开放必要的端口,其他全部拒绝。
# CentOS (Firewalld)
systemctl start firewalld
systemctl enable firewalld
# 只放行需要的端口
firewall-cmd --permanent --add-port=2222/tcp # SSH
firewall-cmd --permanent --add-port=80/tcp # HTTP
firewall-cmd --permanent --add-port=443/tcp # HTTPS
firewall-cmd --permanent --add-service=ssh # 或者用服务名
firewall-cmd --reload
# Ubuntu (UFW)
ufw enable
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw status
6. 配置自动安全更新
手动更新容易忘记,配置自动更新可以确保安全补丁及时安装:
# CentOS
yum install -y yum-cron
systemctl enable --now yum-cron
# Ubuntu
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
自动更新默认只更新安全补丁,不会升级大版本,比较安全。
7. 禁用不必要的服务
每多开一个服务就多一个攻击面。查看当前运行的服务:
systemctl list-units --type=service --state=running
禁用不需要的服务:
systemctl disable --now avahi-daemon # mDNS 服务
systemctl disable --now cups # 打印服务
systemctl disable --now bluetooth # 蓝牙
根据你的实际需求决定哪些服务需要保留,不确定的就先不动。
8. 设置时间同步
日志分析、证书验证、定时任务都依赖准确的时间。
# 安装并启用 chrony(推荐)
yum install -y chrony # CentOS
apt install -y chrony # Ubuntu
systemctl enable --now chronyd
# 确认时间同步状态
timedatectl status
9. 修改文件描述符限制
默认的文件描述符限制(ulimit)可能不够用,特别是跑 Web 服务或数据库时:
vi /etc/security/limits.conf
添加:
* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535
10. 安装常用工具
一些排查问题必备的工具,提前装好免得到时候手忙脚乱:
# CentOS
yum install -y vim wget curl net-tools htop iotop tree
# Ubuntu
apt install -y vim wget curl net-tools htop iotop tree
初始化清单速查
把以上步骤压缩成一张检查表,拿到新机器照着做:
- 系统更新并重启
- 修改 root 密码
- 创建普通用户 + 配置 sudo
- 配置密钥登录
- 修改 SSH 端口 + 禁止 root 登录 + 禁止密码登录
- 配置防火墙,只开放必要端口
- 配置自动安全更新
- 禁用不必要的服务
- 设置时间同步
- 调整文件描述符限制
- 安装常用工具
做完这 11 步,你的服务器安全基础就算打牢了。后续再根据实际部署的服务做针对性加固。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END









