Linux 服务器安全初始化清单:拿到新机器第一件事该做什么

拿到新服务器,别急着部署

不管是新买的云服务器,还是刚装好的物理机,第一件事不应该是装软件、跑应用,而是把安全基础打牢。这一步不做,后面所有操作都是在裸奔。

本文整理了一份 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
编辑 sshd_config 加固 SSH
编辑 SSH 配置文件进行安全加固

修改以下配置:

# 修改默认端口(避免被扫描器批量扫)
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

初始化清单速查

把以上步骤压缩成一张检查表,拿到新机器照着做:

  1. 系统更新并重启
  2. 修改 root 密码
  3. 创建普通用户 + 配置 sudo
  4. 配置密钥登录
  5. 修改 SSH 端口 + 禁止 root 登录 + 禁止密码登录
  6. 配置防火墙,只开放必要端口
  7. 配置自动安全更新
  8. 禁用不必要的服务
  9. 设置时间同步
  10. 调整文件描述符限制
  11. 安装常用工具

做完这 11 步,你的服务器安全基础就算打牢了。后续再根据实际部署的服务做针对性加固。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享