Linux SSH安全加固

为什么要做 Linux 安全加固

Linux 系统安装后的默认配置优先兼顾易用性,安全策略普遍偏宽松。服务器一旦接入公网,会持续面临全网自动化扫描、暴力破解、漏洞探测等攻击。开展安全加固,核心目的是抬高攻击门槛、降低入侵风险。

加固的价值

  1. 缩小攻击面

    关闭无用端口、停用不必要服务,减少黑客可利用的入口。

  2. 抵御常见攻击

    防范 SSH 暴力破解、SYN 洪水、IP 欺骗等基础网络攻击,避免服务器被植入挖矿木马、沦为攻击肉鸡。

  3. 限制权限风险

    遵循最小权限原则,即便普通账号被窃取,也难以获取 root 最高权限,缩小损失范围。

  4. 及时修复安全漏洞

    持续更新系统软件包,修补内核、应用已知安全漏洞。

  5. 留存审计依据

    完善日志策略,发生异常后能够追溯入侵行为、定位攻击来源。

  6. 满足合规要求

    企业业务服务器需符合等保等规范,安全加固是基础测评项。

简单总结

加固不是百分百杜绝入侵,而是通过系统化配置堵住系统默认安全缺陷;避免服务器 “裸奔”,让攻击成本大幅提升。

第一步:系统更新 基础环境优化

1.定期升级系统所有依赖

sudo apt update          #刷新软件源索引清单
sudo apt upgrade -y      #升级本机已经安装的所有软件到最新可用版本
sudo apt autoremove -y   #自动删除不再被任何软件依赖的冗余依赖包

2.关闭无用自启服务

查看开机自启服务

# 查看开机自启服务

systemctl list-unit-files --type=service --state=enabled

# 关闭无用服务(按需执行)

systemctl disable --服务名1

systemctl disable --服务名2

第二步:核心加固--SSH 远程登录安全

90% 的服务器入侵都是SSH暴力破解,这一步是加固核心中的核心。

创建普通运维账号,禁止ROOT直接登录,生产环境绝对禁止ROOT远程SSH登录

# 创建普通用户(自定义用户名,推荐admin)
useradd admin

# 设置高强度密码
passwd admin

# 赋予sudo权限
usermod -aG sudo admin

修改SSH配置文件加固

vim /etc/ssh/sshd_config

修改/新增以下配置文件

Port 6969                         # 修改默认端口,减轻盲扫
PermitRootLogin no                # 禁止root远程登录 --> 最常用配置
AllowUsers admin                  # 登录用户白名单
PasswordAuthentication no         # 关闭密码登录,强制密钥  --> 需上传好密钥,不然容易把自己也关外面
ChallengeResponseAuthentication no
PermitEmptyPasswords no           # 禁止空密码账号登录
MaxAuthTries 4                    # 最大密码尝试次数
MaxSessions 5                     # 单个IP最大会话数
ClientAliveInterval 300
ClientAliveCountMax 2             # 空闲5分钟自动断开
Protocol 2                        # 仅使用SSH2,废弃SSH1
X11Forwarding no                  # 关闭X11转发
AllowTcpForwarding no             # 关闭端口转发(不需要跳板则启用)
PermitAgentForwarding no
PermitTunnel no                   # 禁止VPN隧道
Banner /etc/ssh/banner.txt        # 登录警告横幅(合规要求)

配置完成需重启SSH服务生效:

# Ubuntu/Debian
systemctl restart ssh

# CentOS
systemctl restart sshd

评论