本文适配 CentOS 7+/RHEL/ 阿里云 Linux、Ubuntu 20.04+ 主流 Linux 发行版,所有操作均经过生产环境验证,命令可直接复制执行,覆盖服务器初始化核心安全加固步骤,杜绝弱口令、暴力破解、未授权访问等 90% 以上的高频安全风险,篇幅精简,新手也能零门槛落地。


一、系统初始化基础配置

1. 更新系统补丁与源

修复系统已知漏洞,是安全加固的基础,直接复制对应系统命令执行:

bash

运行

# CentOS/RHEL 系统
yum update -y && yum upgrade -y

# Ubuntu/Debian 系统
apt update && apt upgrade -y

2. 禁用非必要服务

关闭不必要的系统服务,减少攻击面:

bash

运行

# 查看所有开机自启服务
systemctl list-unit-files --type=service | grep enabled

# 禁用不需要的服务(示例,根据业务需求调整)
systemctl disable --now postfix # 非必要邮件服务
systemctl disable --now rpcbind # 非必要远程调用服务

3. 时区与时间同步配置

保证日志时间准确,便于后续安全审计:

bash

运行

# 设置时区为上海
timedatectl set-timezone Asia/Shanghai

# 开启系统时间同步
timedatectl set-ntp yes

# 验证时间配置
timedatectl

二、SSH 服务核心安全加固

SSH 是黑客暴力破解的头号目标,配置修改后,先保留当前会话,新开窗口测试登录,确认正常再关闭原会话,避免锁死服务器

1. 核心配置修改

编辑 SSH 配置文件 vi /etc/ssh/sshd_config,可直接复制以下内容到文件末尾:

ini

# 1. 修改SSH默认端口(建议10000-65535之间,避免常规扫描)
Port 28922

# 2. 禁用root用户直接登录(必须先创建普通管理员用户再开启)
PermitRootLogin no

# 3. 禁用空密码登录
PermitEmptyPasswords no

# 4. 最大认证尝试次数,超过自动断开
MaxAuthTries 3

# 5. 无操作5分钟自动断开
ClientAliveInterval 300
ClientAliveCountMax 2

# 6. 禁用不安全的DNS反向解析,提升登录速度
UseDNS no

# 7. 开启密钥登录,测试正常后再禁用密码登录
PubkeyAuthentication yes
# PasswordAuthentication no 

2. 配置生效与验证

bash

运行

# 1. 验证SSH配置语法是否有误
sshd -t

# 2. 无报错后重载SSH服务
systemctl reload sshd

# 3. 新开终端测试新端口登录
ssh -p 28922 你的用户名@服务器IP

3. 密钥登录配置(推荐,彻底杜绝密码暴力破解)

bash

运行

# 本地电脑执行:生成SSH密钥对(Windows在Git Bash/PowerShell执行)
ssh-keygen -t ed25519 -C "你的服务器备注"

# 本地执行:将公钥上传到服务器
ssh-copy-id -p 28922 你的用户名@服务器IP

# 服务器验证:确认公钥已写入
cat ~/.ssh/authorized_keys

# 密钥登录测试正常后,取消sshd_config中PasswordAuthentication的注释,禁用密码登录

三、防火墙极简配置

只开放业务需要的端口,默认拒绝所有外部访问,分系统直接复制执行。

CentOS/RHEL 系统(firewalld)

bash

运行

# 1. 开启防火墙
systemctl enable --now firewalld

# 2. 放行已修改的SSH端口(必须和sshd_config端口一致)
firewall-cmd --permanent --add-port=28922/tcp

# 3. 放行业务端口(示例,按需添加)
firewall-cmd --permanent --add-port=80/tcp # HTTP
firewall-cmd --permanent --add-port=443/tcp # HTTPS

# 4. 重载配置生效
firewall-cmd --reload

# 5. 查看已放行端口
firewall-cmd --list-ports

Ubuntu/Debian 系统(ufw)

bash

运行

# 1. 安装并开启防火墙
apt install -y ufw
systemctl enable --now ufw

# 2. 放行SSH端口
ufw allow 28922/tcp

# 3. 放行业务端口
ufw allow 80/tcp
ufw allow 443/tcp

# 4. 开启默认拒绝规则,启用防火墙
ufw default deny incoming
ufw default allow outgoing
ufw enable

# 5. 查看规则列表
ufw status

四、用户权限与口令安全

1. 创建普通管理员用户

bash

运行

# 创建用户(替换username为你的用户名)
useradd username

# 设置用户密码
passwd username

# 给用户添加sudo权限(CentOS)
usermod -aG wheel username

# 给用户添加sudo权限(Ubuntu)
usermod -aG sudo username

# 测试sudo权限
su - username
sudo whoami # 输出root即为配置成功

2. 密码复杂度配置

强制设置高强度密码,杜绝弱口令:

bash

运行

# CentOS系统
vi /etc/pam.d/system-auth
# 添加以下配置:密码最短8位,必须包含大小写+数字+特殊字符
password    requisite     pam_cracklib.so retry=3 minlen=8 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

# Ubuntu系统
apt install -y libpam-cracklib
vi /etc/pam.d/common-password
# 添加同上的复杂度配置

五、防暴力破解一键配置

安装 fail2ban,自动封禁多次登录失败的 IP,彻底杜绝暴力破解:

bash

运行

# 1. 安装fail2ban
# CentOS系统
yum install -y fail2ban
# Ubuntu系统
apt install -y fail2ban

# 2. 配置SSH防护规则
vi /etc/fail2ban/jail.d/sshd.conf
# 复制以下内容:5分钟内3次登录失败,封禁IP24小时
[sshd]
enabled = true
port = 28922 # 替换为你的SSH端口
filter = sshd
logpath = /var/log/secure # Ubuntu改为/var/log/auth.log
maxretry = 3
findtime = 300
bantime = 86400
ignoreip = 127.0.0.1 # 可添加信任IP,避免自己被封禁

# 3. 启动服务并设置开机自启
systemctl enable --now fail2ban

# 4. 查看封禁状态
fail2ban-client status sshd

六、加固验证核心命令

bash

运行

# 1. 验证SSH配置是否生效
sshd -T | grep -E "Port|PermitRootLogin|PasswordAuthentication"

# 2. 验证防火墙规则
# CentOS: firewall-cmd --list-all
# Ubuntu: ufw status

# 3. 验证fail2ban运行状态
systemctl status fail2ban

# 4. 查看登录日志,排查异常
# CentOS: tail -n 50 /var/log/secure
# Ubuntu: tail -n 50 /var/log/auth.log

以上步骤完成后,即可覆盖服务器 90% 以上的常规安全风险,所有配置均为生产环境通用标准,无冗余操作,可直接落地。后续可根据业务需求,补充 WAF 防护、文件完整性校验等进阶配置。

下载文件文章显示网盘30天,自己及时保存,具体规则详见: 查看常见问题说明? 单下载文件不包含安装或技术指导,下载之前认真看完常见问题说明! 遇到网盘链接失效无法下载,联系站长处理! 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!如果无意侵犯了您的权益请与我们联系,我们将在24小时内删除!