linux系统安全及应用_扫描版

在信息化时代,服务器系统作为数据存储和业务运行的核心,其安全稳定性直接关系到业务连续性和数据完整性。随着网络攻击手段的多样化,弱口令破解、端口扫描、未授权登录等安全威胁频发,做好系统安全防护成为运维工作的核心环节。

本章节围绕 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. 密码安全强化管控

简单密码和长期未更换的密码是弱口令破解的主要目标,需从密码有效期、密码复杂度、强制改密三个维度做好管控,同时补充系统级密码复杂度配置。

  1. 限制密码有效期:新建用户修改/etc/login.defs,已有用户使用chage命令,建议有效期设置为 30-90 天。

    配置新建用户密码有效期30天

    vi /etc/login.defs
    PASS_MAX_DAYS 30

    配置已有用户lisi密码有效期30天

    chage -M 30 lisi

  2. 强制初次登录改密:批量创建用户后,可强制用户首次登录时自设密码,避免初始统一密码泄露。

    chage -d 0 账号名

  3. 补充知识点 :配置密码复杂度,修改/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 终端的命令历史会记录用户操作,若包含明文密码等敏感信息,会造成安全泄露;同时,管理员离开时未关闭终端,易被他人误操作,需做好两项配置:

  1. 限制命令历史记录条数:修改/etc/profile影响所有用户,默认 1000 条,建议改为 200 条以内,同时退出终端时自动清空历史。

    配置历史记录条数

    vi /etc/profile
    HISTSIZE=200
    export HISTSIZE=200

    退出终端清空历史,修改~/.bash_logout

    vi ~/.bash_logout
    history -c # 清空历史命令
    clear # 清屏

  2. 设置终端闲置自动注销:通过TMOUT变量设置超时时间(单位:秒),建议设置 600 秒(10 分钟),耗时操作时可临时取消。

    配置全局自动注销

    vi /etc/profile
    export TMOUT=600

    临时取消自动注销

    unset TMOUT

4. 权限控制:su 与 sudo 的安全使用

Linux 不建议直接使用 root 登录,普通用户需通过susudo提升权限,两者核心区别:su是切换用户,需知道目标密码;sudo是提升执行权限,仅需验证自身密码,且可精细化授权。

  1. 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 # 取消该行注释

  2. 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 盘、光盘等外部设备引导系统,核心操作:

  1. 将第一引导设备设为系统所在硬盘,禁用 U 盘、光盘、网络引导;
  2. 设置 BIOS 管理员密码,将安全级别设为setup,防止未授权修改 BIOS 配置;
  3. 开启 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 是开源的密码破解工具,支持多种加密算法,可快速检测系统账号的密码强度,找出弱口令账号,核心操作步骤:

  1. 安装编译:下载源码包后编译,无需复杂安装,编译后即可使用。

    解压源码包

    tar zxf john-1.8.0.tar.gz
    cd john-1.8.0/src

    安装编译依赖,编译程序

    dnf -y install gcc
    make clean linux-x86-64

  2. 检测弱口令:复制/etc/shadow文件(密码密文存储文件),执行 john 程序进行破解。

    cp /etc/shadow /root/shadow.txt
    cd ../run
    ./john /root/shadow.txt

    查看已破解的弱口令账号

    ./john --show /root/shadow.txt

  3. 使用字典破解:John the Ripper 默认字典password.lst包含 3000 + 常见弱口令,可自定义字典(添加更多复杂密码组合)提升检测效果。

    指定字典文件进行破解

    ./john --wordlist=自定义字典路径 /root/shadow.txt

2. 密码加固核心措施

检测出弱口令后,需立即通知用户修改密码,同时从系统规则、用户习惯两个层面做好长期密码加固:

  1. 系统层面:开启密码复杂度配置(见本章一、2)、限制密码有效期、禁止密码重复使用(修改/etc/login.defsPASS_MIN_DAYSpam_unix.soremember参数);

  2. 用户层面:引导用户设置 "数字 + 大写字母 + 小写字母 + 特殊符号" 的组合密码,避免使用生日、手机号、账号名等易被猜测的字符,定期手动更换密码。补充知识点 :可使用pwmake工具生成随机强密码,为批量创建用户或管理员重置密码提供参考。

    生成12位随机强密码

    pwmake 12

四、端口扫描与网络服务安全

端口是系统与外部网络通信的入口,开放的不必要端口会成为攻击者的扫描目标,进而利用端口对应的服务漏洞入侵,需通过端口扫描工具找出开放端口,关闭无用服务,加固有用服务。

1. 端口扫描工具:NMAP

NMAP 是强大的开源端口扫描工具,支持多种扫描方式,可快速检测主机开放端口、服务版本、存活状态等,是网络安全扫描的必备工具,基础操作如下:

  1. 安装 NMAP:通过 YUM 快速安装,简单便捷。

    yum install -y nmap

  2. 常用扫描命令: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

  3. 扫描结果解读:扫描结果中STATE列代表端口状态,open为开放、closed为关闭、filtered为被防火墙过滤。

2. 网络服务安全加固

通过 NMAP 扫描出开放端口后,需对应梳理端口关联的服务,做好 "关闭无用服务、加固有用服务" 的操作,核心措施:

  1. 关闭无用服务:通过systemctl stop 服务名systemctl disable 服务名停止并禁用无用服务,如未使用的 FTP、Telnet、RPC 等服务;

  2. 加固有用服务:对于必须开放的服务(如 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

  3. 开启防火墙:使用firewalldiptables开启防火墙,仅放行必要的端口和 IP,拒绝所有非授权访问,形成网络访问屏障。补充知识点 :可使用netstat -tulnp快速查看系统当前监听的端口和关联服务,与 NMAP 扫描结果相互验证,避免遗漏。

五、系统日志监控与安全审计

补充核心知识点:系统日志是安全审计的重要依据,可记录用户登录、操作、服务运行等所有行为,通过监控日志,能及时发现异常登录、恶意操作等安全行为,做到 "早发现、早处理"。

1. Linux 核心日志文件

Linux 系统日志主要存储在/var/log/目录下,核心日志文件包括:

  1. /var/log/secure:安全日志,记录用户登录、su/sudo 操作、密码验证等安全相关行为,是账号安全审计的核心;
  2. /var/log/messages:系统通用日志,记录服务启动 / 停止、系统报错、内核信息等;
  3. /var/log/btmp:失败登录日志,记录所有登录失败的行为(如密码错误、未授权用户登录),需用lastb命令查看;
  4. /var/log/wtmp:成功登录日志,记录所有登录成功的用户信息、登录时间、终端等,需用last命令查看。

2. 日志简易监控方法

  1. 实时查看日志:使用tail -f命令实时监控核心日志,及时发现异常行为。

    实时监控安全日志

    tail -f /var/log/secure

    查看失败登录记录

    lastb

    查看成功登录记录

    last

  2. 日志关键信息筛选:使用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 + 防火墙)、做好日志审计(实时监控 + 异常排查)。

在实际运维中,需定期执行弱口令检测、端口扫描、日志审计,及时发现并修复安全漏洞,同时结合业务需求,精细化配置权限和网络访问规则,才能构建起可靠的系统安全防护体系,有效抵御常见的网络攻击和安全威胁。

相关推荐
艾文-你好2 小时前
深信服SSL aTrust设备密码重置及管理密码重置
linux·服务器·ssl
WHD3062 小时前
苏州华为/联想/浪潮 国产服务器 硬件维修
运维·服务器·git
百结2142 小时前
Linux系统安全
linux·运维·服务器
网硕互联的小客服2 小时前
网站出现Deprecated: Function的解决方法?
运维·服务器·网络·安全·ssh
不懒不懒2 小时前
【苏宁易购商品评价文本分析实战:从自动化爬取到分词清洗全流程】
运维·数据库·自动化
济6172 小时前
ARM Linux 驱动开发篇--- Linux 按键输入实验--- Ubuntu20.04互斥体实验
linux·嵌入式·嵌入式linux驱动开发
亦复何言??2 小时前
Ubuntu内核更新导致显卡驱动掉线 (nvidia-smi报错) 的“最小化改动”修复方案
linux·运维·ubuntu
xianzi20202 小时前
Windows超级管理器:专业级系统安全保障平台
系统安全·隐私保护·网络工具·文件销毁·专业维护
_OP_CHEN2 小时前
【MySQL数据库基础】(三)MySQL 库的核心操作全解析:创建、修改、备份一条龙搞定
linux·数据库·sql·mysql·c/c++·mysql操作·企业级组件