在信息化时代,服务器系统作为数据存储和业务运行的核心,其安全稳定性直接关系到业务连续性和数据完整性。随着网络攻击手段的多样化,弱口令破解、端口扫描、未授权登录等安全威胁频发,做好系统安全防护成为运维工作的核心环节。
本章节围绕 Linux 系统安全展开,在基础安全配置的基础上,补充实用的安全防护技巧和工具用法,从账号、引导、口令、端口、日志五个维度讲解系统安全的核心措施,同时兼顾操作的简易性和实用性,帮助快速搭建系统基础安全防护体系,有效降低常见安全风险。
一、账号安全管理与权限控制
用户账号是系统访问的第一道屏障,做好账号的全生命周期管理,能从源头减少非授权访问风险,核心包括账号清理、密码管控、权限限制三个方面。
1. 系统账号精细化清理
Linux 系统中存在大量用于运行服务的非登录账号 (如 bin、daemon、adm),其默认登录 Shell 为/sbin/nologin,需严格保证该配置不被篡改,防止攻击者利用此类账号登录系统。
# 查看系统中非登录账号配置
grep "/sbin/nologin" /etc/passwd
对于冗余账号(如未使用的 games 账号)、应用卸载后残留的账号,直接执行userdel 账号名删除;对于长期不用但暂无法删除的账号,执行锁定操作,避免被冒用。
usermod -L 账号名 # 锁定账号
passwd -S 账号名 # 查看账号锁定状态
usermod -U 账号名 # 解锁账号
若服务器账号数量固定,可锁定账号配置文件,防止恶意添加 / 修改账号。
chattr +i /etc/passwd /etc/shadow # 锁定文件
lsattr /etc/passwd /etc/shadow # 查看锁定状态
chattr -i /etc/passwd /etc/shadow # 解锁文件
补充知识点 :锁定账号后(锁的是密码,修改密码之后改账号就可以继续登录了),可通过/etc/shadow文件查看账号状态,锁定的账号密码字段前会出现!标记,解锁后该标记消失。
2. 密码安全强化管控
简单密码和长期未更换的密码是弱口令破解的主要目标,需从密码有效期、密码复杂度、强制改密三个维度做好管控,同时补充系统级密码复杂度配置。
-
限制密码有效期:新建用户修改
/etc/login.defs,已有用户使用chage命令,建议有效期设置为 30-90 天。配置新建用户密码有效期30天
vi /etc/login.defs
PASS_MAX_DAYS 30配置已有用户lisi密码有效期30天
chage -M 30 lisi
-
强制初次登录改密:批量创建用户后,可强制用户首次登录时自设密码,避免初始统一密码泄露。
chage -d 0 账号名
-
补充知识点 :配置密码复杂度,修改
/etc/security/pwquality.conf,限制密码长度、字符类型(数字 / 字母 / 特殊符号)、避免连续字符等,从规则上杜绝简单密码。vi /etc/security/pwquality.conf
minlen = 8 # 密码最小长度8位
dcredit = -1 # 至少1位数字
ucredit = -1 # 至少1位大写字母
lcredit = -1 # 至少1位小写字母
ocredit = -1 # 至少1位特殊符号
3. 命令历史与自动注销防护
Bash 终端的命令历史会记录用户操作,若包含明文密码等敏感信息,会造成安全泄露;同时,管理员离开时未关闭终端,易被他人误操作,需做好两项配置:
-
限制命令历史记录条数:修改
/etc/profile影响所有用户,默认 1000 条,建议改为 200 条以内,同时退出终端时自动清空历史。配置历史记录条数
vi /etc/profile
HISTSIZE=200
export HISTSIZE=200退出终端清空历史,修改~/.bash_logout
vi ~/.bash_logout
history -c # 清空历史命令
clear # 清屏 -
设置终端闲置自动注销:通过
TMOUT变量设置超时时间(单位:秒),建议设置 600 秒(10 分钟),耗时操作时可临时取消。配置全局自动注销
vi /etc/profile
export TMOUT=600临时取消自动注销
unset TMOUT
4. 权限控制:su 与 sudo 的安全使用
Linux 不建议直接使用 root 登录,普通用户需通过su或sudo提升权限,两者核心区别:su是切换用户,需知道目标密码;sudo是提升执行权限,仅需验证自身密码,且可精细化授权。
-
su命令安全控制:默认情况下,普通用户可随意使用su尝试破解 root 密码,需通过pam_wheel模块限制,仅允许 wheel 组用户使用su。将用户加入wheel组
gpasswd -a 用户名 wheel
启用pam_wheel认证,修改/etc/pam.d/su
vi /etc/pam.d/su
auth required pam_wheel.so use_uid # 取消该行注释 -
sudo命令精细化授权:通过visudo编辑/etc/sudoers,避免直接用 vi 编辑(无语法检查),可授权用户仅执行指定命令,降低权限泄露风险。基础授权格式:用户 主机=可执行命令(绝对路径)
visudo
jerry localhost=/sbin/ifconfig # 授权jerry执行ifconfig
%wheel ALL=NOPASSWD:ALL # 授权wheel组免密执行所有命令
补充知识点 :sudo可开启日志记录,记录所有 sudo 操作,方便安全审计,在/etc/sudoers中添加配置即可。
visudo
Defaults logfile = "/var/log/sudo"
# 查看sudo操作日志
tail -f /var/log/sudo
二、系统引导与本地登录安全防护
服务器本地物理访问和引导过程的安全易被忽视,若攻击者接触到服务器,可通过修改引导参数、本地登录等方式入侵,需从BIOS、GRUB、本地终端三个层面做好防护。
1. BIOS 引导安全设置
BIOS 是系统引导的第一道环节,做好 BIOS 防护可防止攻击者从 U 盘、光盘等外部设备引导系统,核心操作:
- 将第一引导设备设为系统所在硬盘,禁用 U 盘、光盘、网络引导;
- 设置 BIOS 管理员密码,将安全级别设为
setup,防止未授权修改 BIOS 配置; - 开启 BIOS 的开机密码,进一步限制本地物理访问。
2. GRUB 引导参数保护
GRUB 是 Linux 系统的引导加载器,若未做保护,攻击者可通过修改 GRUB 参数进入单用户模式,直接获取 root 权限,需为 GRUB 设置密码,禁止随意修改引导参数。
# 生成PBKDF2加密的GRUB密码
grub2-mkpasswd-pbkdf2
# 备份配置文件,添加密码配置
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
vi /etc/grub.d/01_users
#!/bin/sh -e
cat << EOF
set superusers="root"
export superusers
password_pbkdf2 root 上述生成的加密密码
EOF
# 重新生成GRUB配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
补充知识点 :设置 GRUB 密码后,开机进入 GRUB 菜单按e编辑参数时,需输入用户名和密码,单用户模式也会受此限制,彻底杜绝通过 GRUB 提权的风险。
3. 本地终端登录临时控制
服务器维护(如备份、调试)时,可临时禁止普通用户本地登录,仅允许 root 登录,避免维护过程中被干扰,核心通过创建/etc/nologin文件实现。
# 禁止普通用户本地登录
touch /etc/nologin
# 恢复普通用户登录
rm -f /etc/nologin
注意 :该方法仅对本地终端和远程登录的普通用户生效,root 用户不受限制,且为临时措施,服务器重启后/etc/nologin文件会自动失效。
三、弱口令检测与密码加固
弱口令是系统最常见的安全漏洞,攻击者可通过暴力破解工具快速获取弱口令账号,进而入侵系统,需通过工具检测弱口令,并做好密码加固。
1. 弱口令检测工具:John the Ripper
John the Ripper 是开源的密码破解工具,支持多种加密算法,可快速检测系统账号的密码强度,找出弱口令账号,核心操作步骤:
-
安装编译:下载源码包后编译,无需复杂安装,编译后即可使用。
解压源码包
tar zxf john-1.8.0.tar.gz
cd john-1.8.0/src安装编译依赖,编译程序
dnf -y install gcc
make clean linux-x86-64 -
检测弱口令:复制
/etc/shadow文件(密码密文存储文件),执行 john 程序进行破解。cp /etc/shadow /root/shadow.txt
cd ../run
./john /root/shadow.txt查看已破解的弱口令账号
./john --show /root/shadow.txt
-
使用字典破解:John the Ripper 默认字典
password.lst包含 3000 + 常见弱口令,可自定义字典(添加更多复杂密码组合)提升检测效果。指定字典文件进行破解
./john --wordlist=自定义字典路径 /root/shadow.txt
2. 密码加固核心措施
检测出弱口令后,需立即通知用户修改密码,同时从系统规则、用户习惯两个层面做好长期密码加固:
-
系统层面:开启密码复杂度配置(见本章一、2)、限制密码有效期、禁止密码重复使用(修改
/etc/login.defs中PASS_MIN_DAYS和pam_unix.so的remember参数); -
用户层面:引导用户设置 "数字 + 大写字母 + 小写字母 + 特殊符号" 的组合密码,避免使用生日、手机号、账号名等易被猜测的字符,定期手动更换密码。补充知识点 :可使用
pwmake工具生成随机强密码,为批量创建用户或管理员重置密码提供参考。生成12位随机强密码
pwmake 12
四、端口扫描与网络服务安全
端口是系统与外部网络通信的入口,开放的不必要端口会成为攻击者的扫描目标,进而利用端口对应的服务漏洞入侵,需通过端口扫描工具找出开放端口,关闭无用服务,加固有用服务。
1. 端口扫描工具:NMAP
NMAP 是强大的开源端口扫描工具,支持多种扫描方式,可快速检测主机开放端口、服务版本、存活状态等,是网络安全扫描的必备工具,基础操作如下:
-
安装 NMAP:通过 YUM 快速安装,简单便捷。
yum install -y nmap
-
常用扫描命令:NMAP 扫描类型多样,核心掌握TCP 端口扫描、UDP 端口扫描、网段存活检测、指定端口扫描四种。
扫描本机所有常用TCP端口
nmap 127.0.0.1
扫描本机所有常用UDP端口
nmap -SU 127.0.0.1
检测192.168.4.0/24网段存活主机(快速ping检测)
nmap -n -sP 192.168.4.0/24
扫描192.168.4.0/24网段的FTP端口(21端口)
nmap -p 21 192.168.4.0/24
-
扫描结果解读:扫描结果中
STATE列代表端口状态,open为开放、closed为关闭、filtered为被防火墙过滤。
2. 网络服务安全加固
通过 NMAP 扫描出开放端口后,需对应梳理端口关联的服务,做好 "关闭无用服务、加固有用服务" 的操作,核心措施:
-
关闭无用服务:通过
systemctl stop 服务名和systemctl disable 服务名停止并禁用无用服务,如未使用的 FTP、Telnet、RPC 等服务; -
加固有用服务:对于必须开放的服务(如 SSH、Nginx),修改默认端口、禁止 root 直接登录、限制访问 IP(如 SSH 修改
/etc/ssh/sshd_config);编辑SSH配置文件,加固安全
vi /etc/ssh/sshd_config
Port 2222 # 修改默认22端口为2222
PermitRootLogin no # 禁止root直接登录
AllowUsers 用户名 # 仅允许指定用户登录重启SSH服务生效
systemctl restart sshd
-
开启防火墙:使用
firewalld或iptables开启防火墙,仅放行必要的端口和 IP,拒绝所有非授权访问,形成网络访问屏障。补充知识点 :可使用netstat -tulnp快速查看系统当前监听的端口和关联服务,与 NMAP 扫描结果相互验证,避免遗漏。
五、系统日志监控与安全审计
补充核心知识点:系统日志是安全审计的重要依据,可记录用户登录、操作、服务运行等所有行为,通过监控日志,能及时发现异常登录、恶意操作等安全行为,做到 "早发现、早处理"。
1. Linux 核心日志文件
Linux 系统日志主要存储在/var/log/目录下,核心日志文件包括:
/var/log/secure:安全日志,记录用户登录、su/sudo 操作、密码验证等安全相关行为,是账号安全审计的核心;/var/log/messages:系统通用日志,记录服务启动 / 停止、系统报错、内核信息等;/var/log/btmp:失败登录日志,记录所有登录失败的行为(如密码错误、未授权用户登录),需用lastb命令查看;/var/log/wtmp:成功登录日志,记录所有登录成功的用户信息、登录时间、终端等,需用last命令查看。
2. 日志简易监控方法
-
实时查看日志:使用
tail -f命令实时监控核心日志,及时发现异常行为。实时监控安全日志
tail -f /var/log/secure
查看失败登录记录
lastb
查看成功登录记录
last
-
日志关键信息筛选:使用
grep筛选日志中的关键关键词,如Failed(登录失败)、Accepted(登录成功)、sudo(sudo 操作)等。筛选近1小时的SSH登录失败记录
grep "Failed password" /var/log/secure | grep "$(date +%H -d '-1 hour')"
本章总结
系统安全防护是一个持续的过程,而非一次性的配置,本章从账号、引导、口令、端口、日志五个核心维度,讲解了 Linux 系统基础安全的实用措施,同时补充了密码复杂度、sudo 日志、GRUB 单用户限制、系统日志监控等实用知识点,所有操作均兼顾简易性和实用性,可快速落地实施。
核心安全思路:从源头管控 (账号、密码)、封堵物理 / 引导漏洞 (BIOS、GRUB)、检测并修复弱口令 (John the Ripper)、关闭网络多余入口 (NMAP + 防火墙)、做好日志审计(实时监控 + 异常排查)。
在实际运维中,需定期执行弱口令检测、端口扫描、日志审计,及时发现并修复安全漏洞,同时结合业务需求,精细化配置权限和网络访问规则,才能构建起可靠的系统安全防护体系,有效抵御常见的网络攻击和安全威胁。