Linux系统安全加固五大关键策略

本章要点

  • 掌握用户账号安全管理与加固策略
  • 学会系统引导与登录安全控制方法
  • 能够使用工具进行弱口令风险检测
  • 熟练使用端口扫描工具识别系统开放服务

前言

在服务器运维工作中,系统安全是保障业务稳定运行的第一道防线。随着网络攻击手段日益复杂,仅仅依靠防火墙远远不够,还必须从账号权限、系统启动、登录控制、密码强度、开放端口等多个层面进行全面加固。

本章将围绕 Linux 系统安全展开,重点讲解如何规范管理用户账号、加强系统引导与终端登录安全、使用专业工具检测弱口令隐患,以及扫描服务器端口以发现风险服务。通过一系列安全措施,能够显著提升系统抗攻击能力,减少未授权访问、暴力破解、越权操作等安全威胁。


一、用户账号安全管控

用户账号是系统安全的第一道关口,不合理的账号配置极易成为攻击突破口。因此,必须对系统内的账号进行严格规范、清理与加固。

1. 系统账号优化与清理

Linux 系统中包含大量预装的系统账号,多数用于服务运行,禁止登录终端。

(1)锁定非登录账号

确保系统账号的 Shell 为 /sbin/nologin,禁止登录:

bash

运行

复制代码
grep "/sbin/nologin$" /etc/passwd

(2)锁定长期不使用的账号

暂时锁定无用账号,避免被暴力破解:

bash

运行

复制代码
usermod -L username  # 锁定账号
passwd -S username   # 查看状态
usermod -U username  # 解锁账号

(3)锁定账号配置文件

使用 chattr 防止关键文件被篡改:

bash

运行

复制代码
chattr +i /etc/passwd /etc/shadow  # 锁定
lsattr /etc/passwd /etc/shadow     # 查看状态
chattr -i /etc/passwd /etc/shadow  # 解锁

锁定后无法新增、删除用户或修改密码。

2. 密码安全策略加固

弱口令是系统最常见的风险,必须通过策略强制提升密码强度。

(1)设置密码有效期

编辑登录配置文件,控制新用户密码最长使用天数:

bash

运行

复制代码
vim /etc/login.defs
PASS_MAX_DAYS 30

对已有用户单独设置:

bash

运行

复制代码
chage -M 30 username

(2)强制用户下次登录修改密码

bash

运行

复制代码
chage -d 0 username

用户登录后会被强制重设密码。

3. 命令历史与超时自动注销

减少操作泄露与未退出终端带来的风险。

(1)缩减历史命令条数

bash

运行

复制代码
vim /etc/profile
HISTSIZE=200
export HISTSIZE=200

(2)设置登录闲置自动注销

bash

运行

复制代码
vim /etc/profile
export TMOUT=600  # 600秒无操作自动断开

执行 unset TMOUT 可临时取消。


二、用户身份切换与权限控制

为避免直接使用 root 登录带来的高风险,Linux 提供了用户切换与权限提升机制。

1. su 用户切换命令

su 用于快速切换用户身份,但默认安全性较低。

加固 su 命令

通过 pam_wheel 模块限制仅允许指定组使用 su:

bash

运行

复制代码
gpasswd -a username wheel
vim /etc/pam.d/su
auth required pam_wheel.so use_uid

未加入 wheel 组的用户无法使用 su。

2. sudo 权限提升

sudo 可以给普通用户分配部分管理员权限,无需共享 root 密码。

(1)编辑 sudo 授权文件

bash

运行

复制代码
visudo

(2)授权格式

plaintext

复制代码
用户  主机=(角色)  命令

示例:

bash

运行

复制代码
jerry  localhost=/sbin/ifconfig
%wheel  ALL=(ALL) NOPASSWD: ALL

(3)批量授权(别名)

bash

运行

复制代码
User_Alias  ADMINS = tom, jerry
Cmnd_Alias  CMDS = /usr/bin/yum, /bin/systemctl
ADMINS  ALL=CMDS

(4)查看与使用 sudo

bash

运行

复制代码
sudo -l                 # 查看自己的授权
sudo ifconfig ens33:0  # 执行特权命令

三、系统引导与登录安全

加强开机引导与终端登录控制,可以防止物理接触带来的安全风险。

1. BIOS 与开机安全

  • 设置开机密码,禁止 U 盘 / 光盘引导
  • 调整启动顺序为硬盘优先
  • 防止未授权进入单用户模式

2. GRUB 引导菜单加密

防止他人通过修改 GRUB 进入系统或重置密码。

bash

运行

复制代码
grub2-mkpasswd-pbkdf2

生成加密密码串,写入 GRUB 配置并生成新配置:

bash

运行

复制代码
grub2-mkconfig -o /boot/grub2/grub.cfg

设置后,修改引导参数必须输入密码。

3. 终端登录控制

禁止普通用户登录

维护时可临时禁止普通用户登录:

bash

运行

复制代码
touch /etc/nologin

删除文件即可恢复。


四、弱口令检测工具

弱口令是暴力破解的主要目标,必须定期扫描。

John the Ripper 密码破解工具

用于检测 Linux 账号密码强度,发现弱口令。

1. 安装步骤

bash

运行

复制代码
tar zxf john-1.8.0.tar.gz
cd john-1.8.0/src
make clean linux-x86-64

2. 开始检测弱口令

bash

运行

复制代码
cp /etc/shadow /root/shadow.txt
cd ../run
./john /root/shadow.txt

3. 查看已破解账号

bash

运行

复制代码
./john --show /root/shadow.txt

4. 使用字典破解

bash

运行

复制代码
./john --wordlist=password.lst /root/shadow.txt

五、端口扫描与风险识别

NMAP 是最流行的端口扫描工具,用于发现主机开放端口与风险服务。

1. 安装 NMAP

bash

运行

复制代码
yum install -y nmap

2. 常用扫描命令

扫描本机开放端口

bash

运行

复制代码
nmap 127.0.0.1

扫描指定端口

bash

运行

复制代码
nmap -p 21,22,80 192.168.1.10

扫描网段内存活主机

bash

运行

复制代码
nmap -n -sP 192.168.1.0/24

UDP 端口扫描

bash

运行

复制代码
nmap -sU 127.0.0.1

3. 典型扫描场景

  • 检查服务器是否开放不必要端口
  • 确认防火墙规则是否生效
  • 发现内网中非法运行的服务
  • 定位对外暴露的风险端口

本章总结

本章系统介绍了 Linux 服务器安全加固的核心内容,从账号、登录、引导、密码、端口五个维度构建安全体系:

  1. 账号安全清理无用账号、锁定关键文件、设置密码有效期、限制历史命令与超时注销,从根源降低账号泄露风险。

  2. 权限控制 使用 susudo 实现最小权限原则,避免滥用 root 权限,提升系统操作安全性。

  3. 引导与登录安全通过 BIOS 密码、GRUB 加密、终端登录限制,防止物理接触与未授权启动。

  4. 弱口令检测使用 John the Ripper 工具定期扫描系统弱口令,及时提醒用户升级密码强度。

  5. 端口扫描利用 NMAP 识别系统开放端口与服务,关闭无用端口,减少攻击面。

通过本章学习,你能够完成一套完整的 Linux 系统安全加固方案,有效防范暴力破解、越权访问、信息泄露等常见威胁,为服务器稳定运行提供坚实保障