系统安全及应用深度笔记

系统安全及应用深度笔记

一、账号安全控制体系构建

(一)账户全生命周期管理

1. 冗余账户精细化治理
  • 非登录账户基线核查
    Linux 系统默认创建的非登录账户(如bindaemonmail)承担系统服务支撑功能,其登录 Shell 必须强制设置为/sbin/nologin。通过以下命令批量核查:

    grep "/sbin/nologin" /etc/passwd | awk -F: '{print $1}'
    

    若发现异常账户(如 Shell 被修改为/bin/bash),需立即排查是否存在非法篡改。

  • 动态账户清理策略

    • 临时账户处理

      :对于安装程序生成的临时账户(如

      games
      
      lp
      

      ),若确认无用可直接删除:

      userdel -r games  # -r选项递归删除宿主目录
      
    • 僵尸账户锁定

      :对不确定是否需保留的账户,采用

      usermod -L
      

      双向锁定(同时锁定密码和账户状态):

      usermod -L -e "01/01/2020" zhangsan  # 设置过期时间并锁定
      

      解锁时需同时清除过期时间:

      usermod -U -e "" zhangsan
      
  • 账户配置文件免疫机制
    使用chattr命令为账户核心文件添加不可变属性(+i),形成写保护:

    chattr +i /etc/passwd /etc/shadow /etc/group
    

    此时任何账户操作(包括useraddpasswd)都会报错,解锁需管理员手动执行:

    chattr -i /etc/passwd /etc/shadow /etc/group
    
2. 密码策略三维度强化
  • 时间维度:有效期梯度控制

    • 全局策略

      :在

      /etc/login.defs
      

      中配置默认密码策略,例如:

      bas

      PASS_MAX_DAYS 90    # 最大有效期90天
      PASS_MIN_DAYS 7     # 最小修改间隔7天
      PASS_WARN_AGE 14    # 过期前14天警告
      
    • 个体策略

      :针对特权账户(如

      root
      

      )设置更严格的有效期:

      chage -M 30 -W 7 root  # 30天强制修改,提前7天警告
      
  • 强度维度:复杂度校验
    结合 PAM 模块实现密码复杂度检查,在/etc/pam.d/system-auth中添加:

    password requisite pam_cracklib.so retry=3 minlen=12 lcredit=-1 ucredit=-1 dcredit=-1  # 要求至少12位,包含大小写、数字
    

    违反策略时用户将收到明确提示:密码必须包含至少1个大写字母、1个小写字母和1个数字

  • 行为维度:强制密码重置

    • 首次登录重置

      :新建用户时强制下次登录修改密码:

      useradd -m jerry && chage -d 0 jerry
      
    • 批量重置

      :系统升级后要求所有用户重新设置密码:

      awk -F: '$3>=1000' /etc/passwd | cut -d: -f1 | xargs -I {} chage -d 0 {}
      
3. 会话安全深度加固
  • 历史命令防泄露

    • 记录量限制

      :全局限制所有用户历史命令记录为 500 条(默认 1000 条):

      echo "HISTSIZE=500" >> /etc/profile && source /etc/profile
      
    • 敏感操作净化

      :在用户

      .bashrc
      

      中添加过滤规则,自动清除包含密码的命令:

      export HISTIGNORE='*password*:*passwd*'
      
  • 智能超时机制

    • 动态超时

      :根据会话活跃度自动调整超时时间(需结合脚本实现),基础配置为:

      echo "export TMOUT=300" >> /etc/profile  # 5分钟无操作自动注销
      
    • 例外场景

      :在执行长时间任务(如编译代码)时,临时禁用超时:

      trap '' SIGALRM  # 忽略超时信号
      

(二)权限管理矩阵模型

1. su 命令的最小权限控制
  • wheel 组特权隔离

    • 用户加入

      :将授权用户添加到

      wheel
      

      组(GID=10):

      gpasswd -a tsengyia wheel
      
    • 配置激活

      :编辑

      /etc/pam.d/su
      

      ,取消注释以下行以启用 wheel 组验证:

      auth required pam_wheel.so use_uid  # 仅wheel组成员可使用su
      
    • 审计追踪

      :su 操作记录存储在

      /var/log/secure
      

      ,可通过以下命令过滤:

      grep "su:" /var/log/secure | grep "session opened"
      
2. sudo 的 RBAC 模型实践
  • 细粒度授权示例

    • 单命令授权

      :允许用户

      jerry
      

      在本地执行

      ifconfig
      

      (需输入自身密码):

      visudo -c <<EOF
      jerry localhost=/sbin/ifconfig
      EOF
      
    • 无密码授权

      :允许

      admin
      

      组用户无密码执行

      systemctl
      
      %admin ALL=NOPASSWD: /usr/bin/systemctl
      
  • 复杂场景配置

    • 目录级授权

      :允许用户

      ops
      

      执行

      /usr/local/bin/
      

      下的所有命令:

      ops ALL=/usr/local/bin/*
      
    • 排除特定命令

      :禁止

      dbadmin
      

      组执行

      rm
      

      mv
      
      %dbadmin ALL=!/bin/rm, !/bin/mv
      
  • 审计与回溯
    启用 sudo 日志记录至独立文件:

    echo "Defaults logfile=/var/log/sudo.log" >> /etc/sudoers
    

    日志包含用户、终端、执行命令等信息,可通过grep "COMMAND=" /var/log/sudo.log分析。

二、系统引导与登录防护体系

(一)物理层与引导层安全

1. BIOS 安全基线配置
  • 引导策略锁定

    • 启动顺序:设置为硬盘 > 光驱 > 网络 > U盘(不同品牌 BIOS 路径不同,通常在Boot菜单)。

    • 安全选项

      • Security Boot:启用防止未签名系统启动
      • Set Supervisor Password:设置管理员密码(复杂度要求:8 位以上,含字母 + 数字)
      • USB Legacy Support:禁用(防止 USB 设备启动)
2. GRUB2 安全加固
  • 加密密码生成
    使用 PBKDF2 算法生成强密码(避免明文):

    grub2-mkpasswd-pbkdf2
    输入密码: ******
    重新输入口令: ******
    # 记录生成的哈希值
    
  • 配置文件修改
    /etc/grub.d/01_users中添加认证配置:

    cat << EOF
    set superusers="admin"
    export superusers
    password pbkdf2 admin <生成的哈希值>
    EOF
    

    重新生成 GRUB 配置:

    grub2-mkconfig -o /boot/grub2/grub.cfg
    

    启动时按E键编辑需输入密码,有效防止未授权内核参数修改(如单用户模式绕过认证)。

(二)终端登录安全策略

1. root 账户登录限制
  • 安全终端定义

    etc/securetty
    

    文件列出允许 root 登录的终端,默认包含

    tty1-tty6
    

    。禁止远程登录时,需注释所有行:

    # 原始内容
    tty1
    tty2
    # 修改后(禁止所有本地终端登录)
    #tty1
    #tty2
    

    此时 root 只能通过 SSH(需配合

    PermitRootLogin no
    

    )或控制台带外管理登录。

2. 维护模式临时封锁
  • 紧急状态启用

    创建

    /etc/nologin
    

    文件后,普通用户登录时会看到:

    The system is undergoing maintenance. Please try later.
    
    touch /etc/nologin  # 立即生效
    
    • 例外处理:root 用户仍可登录,用于紧急维护

    • 自动清理

      :可结合

      systemd
      

      定时器,在维护窗口结束后自动删除文件:

      cat /etc/systemd/system/nologin-cleanup.timer
      [Unit]
      Description=Cleanup nologin file[Timer]
      OnCalendar=2025-05-19 23:00:00
      Persistent=true[Install]
      WantedBy=timers.target
      

三、安全检测与监控技术

(一)弱口令深度检测(John the Ripper)

1. 分布式破解架构
  • 环境准备

    • 文件提取

      :从目标服务器复制

      /etc/shadow
      

      (需 root 权限)

      scp root@target:/etc/shadow ./shadow.txt
      
    • 权限处理:确保当前用户可读取该文件(需设置chmod 600 shadow.txt

2. 进阶破解技巧
  • 混合攻击模式
    使用规则文件(run/password.lst)结合用户名字典生成变体密码:

    ./john --rules --wordlist=usernames.txt shadow.txt
    

    例如:用户名jerry可能生成jerry123Jerry!等变体。

  • 差异化字典策略

    • 行业字典:针对金融行业使用包含banktrade的专业字典

    • 自定义字典生成

      :利用

      crunch
      

      工具生成指定规则字典(如 8 位数字 + 字母):

      crunch 8 8 -t @@@###%% -o custom.dict  # 格式:3字母+3数字+2符号
      
3. 结果分析与响应
  • 风险分级

    • 高风险:纯数字 / 简单字符串(如123456admin
    • 中风险:姓名拼音 + 数字(如zhangsan2023
    • 低风险:符合复杂度要求但被破解(需检查字典是否包含内部信息)
  • 自动化响应脚本
    破解完成后自动生成整改报告并通知管理员:

    ./john --show shadow.txt | awk '{print "用户:"$2,"密码:"$1}' > weak_password_report.txt
    mail -s "弱口令检测报告" admin@example.com < weak_password_report.txt
    

(二)网络服务安全扫描(NMAP)

1. 分层扫描策略
  • 第一层:存活主机发现
    使用 ICMP 和 SYN 包混合探测,避免单一协议被防火墙过滤:

    nmap -sP -PE -PS21,80,443 192.168.1.0/24
    
    • -PE:ICMP Echo 请求
    • -PS:TCP SYN 包到指定端口
  • 第二层:端口服务枚举
    对存活主机进行全端口扫描(1-65535)并识别服务版本:

    nmap -p- -sV -O --script=vulners 192.168.1.100
    
    • -sV:获取服务版本信息
    • -O:操作系统指纹识别
    • --script=vulners:同步检测已知漏洞
  • 第三层:深度漏洞验证
    针对高危端口(如 445、3389)执行脚本化攻击检测:

    nmap --script=smb-vuln-ms17-010,nmap-vulners 192.168.1.110
    
2. 典型攻击场景模拟
  • 隐蔽扫描(绕过防火墙)
    使用 FIN 扫描(-sF)和 Xmas 扫描(-sX)检测状态过滤型防火墙:

    nmap -sF -p 80,443 192.168.1.50
    nmap -sX -p 1-1000 192.168.1.50
    
    • 开放端口对 FIN/Xmas 包无响应,关闭端口返回 RST 包
  • UDP 服务发现
    扫描 DNS(53)、SNMP(161)等 UDP 服务,使用 - sU 选项并增加超时(-T4)

    nmap -sU -p 53,161 -T4 192.168.1.20
    
3. 扫描结果处置流程
  1. 高危端口(如 22、3306)开放在外网:立即配置防火墙限制源 IP
  2. 未授权服务(如 RPC 111、NetBIOS 139):关闭对应服务或迁移至内网
  3. 过时软件版本:触发补丁升级流程(如yum update httpd
  4. 可疑端口(如非标准端口运行自定义服务):启动入侵检测(如tcpdump抓包分析)

四、安全运营体系构建

(一)定期审计清单

检查项频率工具 / 命令合规标准
非登录账户 Shell 检查每周grep nologin /etc/passwd全部为/sbin/nologin
弱口令检测每月John the Ripper无复杂度不足密码
开放端口核查每季度nmap -p- localhost仅开放必要端口(如 22、80、443)
GRUB 密码有效性验证半年重启测试 GRUB 密码输入必须输入正确密码才能修改引导参数

(二)应急响应预案要点

  1. 账户异常:发现未知账户立即锁定(usermod -L)并检查/etc/passwd修改记录
  2. 密码泄露:强制所有用户修改密码,审计 sudo 日志排查权限滥用
  3. 端口异常:使用lsof -i :端口号定位进程,结合chkconfig关闭自启动服务
  4. 引导篡改:从应急启动盘(如 Ubuntu Live CD)恢复 GRUB 配置,重新生成grub.cfg

(三)安全意识培养

  • 用户教育:定期培训密码安全(如 “8 字符以上 + 三要素组合”)、禁止共享账户
  • 管理员认证:要求掌握chattrpamgrub2等核心安全工具的高级用法
  • 威胁情报:订阅 CVE 漏洞周报,建立nmap脚本库实时更新检测规则

五、总结:构建主动防御体系

系统安全是动态防御过程,需实现:

  • 事前预防:通过账户清理、密码策略、引导保护构建准入防线
  • 事中检测:利用 John 和 NMAP 实现弱口令与端口暴露的实时监控
  • 事后响应:结合审计日志和应急流程快速处置安全事件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/81627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

02-前端Web开发(JS+Vue+Ajax)

介绍 在前面的课程中&#xff0c;我们已经学习了HTML、CSS的基础内容&#xff0c;我们知道HTML负责网页的结构&#xff0c;而CSS负责的是网页的表现。 而要想让网页具备一定的交互效果&#xff0c;具有一定的动作行为&#xff0c;还得通过JavaScript来实现。那今天,我们就来讲…

AXXI4总线协议 ------ AXI_FULL协议

https://download.csdn.net/download/mvpkuku/90855619 一、AXI_FULL协议的前提知识 1. 各端口的功能 2. 4K边界问题 3. outstanding 4.时序仿真体验 可通过VIVADO自带ADMA工程观察仿真波形图 二、FPGA实现 &#xff08;主要用于读写DDR&#xff09; 1.功能模块及框架 将…

React系列——nvm、node、npm、yarn(MAC)

nvm&#xff0c;node&#xff0c;npm之间的区别 1、nvm&#xff1a;nodejs版本管理工具。nvm 可以管理很多 node 版本和 npm 版本。 2、nodejs&#xff1a;在项目开发时的所需要的代码库 3、npm&#xff1a;nodejs包管理工具。nvm、nodejs、npm的关系 nvm 管理 nodejs 和 npm…

2025年AI与网络安全的终极博弈:冲击、重构与生存法则

引言 2025年&#xff0c;生成式AI的推理速度突破每秒千万次&#xff0c;网络安全行业正经历前所未有的范式革命。攻击者用AI批量生成恶意代码&#xff0c;防御者用AI构建智能护盾&#xff0c;这场技术军备竞赛正重塑行业规则——60%的传统安全岗位面临转型&#xff0c;70%的防…

【Android】Android 实现一个依赖注入的注解

Android 实现一个依赖注入的注解 &#x1f3af; 目标功能 自定义注解 Inject创建一个 Injector 类&#xff0c;用来扫描并注入对象支持 Activity 或其他类中的字段注入 &#x1f9e9; 步骤一&#xff1a;定义注解 import java.lang.annotation.ElementType; import java.lan…

Spring Boot与Kafka集成实践:从入门到实战

Spring Boot与Kafka集成实践 引言 在现代分布式系统中&#xff0c;消息队列是不可或缺的组件之一。Apache Kafka作为一种高吞吐量的分布式消息系统&#xff0c;广泛应用于日志收集、流处理、事件驱动架构等场景。Spring Boot作为Java生态中最流行的微服务框架&#xff0c;提供…

ubuntu的虚拟机上的网络图标没有了

非正常的关机导致虚拟机连接xshell连接不上&#xff0c;ping也ping不通。网络的图标也没有了。 记录一下解决步骤 1、重启服务 sudo systemctl restart NetworkManager 2、图标显示 sudo nmcli network off sudo nmcli network on 3、sudo dhclient ens33 //(网卡) …

生产者 - 消费者模式实现方法整理

一、Channels &#xff08;一&#xff09;使用场景 适用于高并发、大数据量传输&#xff0c;且需要异步操作的场景&#xff0c;如实时数据处理系统。 &#xff08;二&#xff09;使用方法 创建 Channel<T>&#xff08;无界&#xff09;或 BoundedChannel<T>&…

OpenCV光流估计:原理、实现与应用

一、什么是光流&#xff1f; 光流(Optical Flow)是计算机视觉中描述图像序列中像素运动模式的重要概念。它表示图像中物体在连续帧之间的表观运动&#xff0c;是由物体或相机的运动引起的。 光流的基本假设 亮度恒常性&#xff1a;同一物体点在连续帧中的亮度保持不变时间持…

Java实现MinIO上传PDF文件并配置浏览器在线打开及vue2上传页面

win下载启动minio结合vue2实现文件上传浏览 一.下载启动minio 1. 下载minio 2.在D盘创建文件夹 1.首先创建minio文件夹再minio中依次创建bin/data/logs,如下图 2.把下载的minio.exe放到minio->bin文件中 3.在bin文件夹中输入cmd打开命令框输入命令minio.exe server D:…

VR 互动实训与展示,借科技开启沉浸式体验新篇​

对于企业而言&#xff0c;产品设计与展示是极为关键的环节&#xff0c;这直接关系到能否成功吸引客户&#xff0c;以及精准获取市场反馈。在当下科技飞速发展的时代&#xff0c;VR 互动实训为这一至关重要的环节注入了全新活力&#xff0c;带来了前所未有的体验。以某智能家居企…

进阶-数据结构部分:1、数据结构入门

飞书文档https://x509p6c8to.feishu.cn/wiki/HRLkwznHiiOgZqkqhLrcZNqVnLd 一、存储结构 顺序存储 链式存储 二、常用数据结构 2.1、栈 先进后出 场景&#xff1a; 后退/前进功能&#xff1a;网页浏览器中的后退和前进按钮可以使用栈来实现。在浏览网页时&#xff0c;每次…

HarmonyOS Navigation组件深度解析与应用实践

HarmonyOS Navigation组件深度解析与应用实践 一、组件架构与核心能力 HarmonyOS Navigation组件作为路由导航的根视图容器&#xff0c;采用三层架构设计&#xff1a; 标题层&#xff1a;支持主副标题配置&#xff0c;提供Mini/Free/Full三种显示模式内容层&#xff1a;默认…

基于AI的Web数据管道,使用n8n、Scrapeless和Claude

引言 在当今数据驱动的环境中&#xff0c;组织需要高效的方法来提取、处理和分析网络内容。传统的网络抓取面临着诸多挑战&#xff1a;反机器人保护、复杂的JavaScript渲染以及持续的维护需求。此外&#xff0c;理解非结构化的网络数据则需要复杂的处理能力。 本指南演示了如…

Cadence学习笔记之---PCB器件放置与布局

目录 01 | 引 言 02 | 环境描述 03 | 元件放置 04 | 布局相关操作 06 | 总 结 01 | 引 言 在上一篇文章中&#xff0c;介绍了如何设置PCB的电气规则约束&#xff0c;以及如何设置层叠&#xff0c;到此我们已经完成了使用Cadence设计PCB的前期准备工作&#xff1b; 在本篇…

力扣HOT100之二叉树:199. 二叉树的右视图

这道题没啥好说的&#xff0c;首先定义一个向量来保存每一层的最后一个元素&#xff0c;直接用层序遍历&#xff08;广度优先搜索&#xff09;遍历二叉树&#xff0c;然后将每一层的最后一个元素加入到这个向量中即可。属于是二叉树层序遍历的模板题。 /*** Definition for a …

CSS:三大特性

文章目录 一、层叠性二、继承性三、优先级 一、层叠性 二、继承性 可以在MDN网站上查看属性是否可以被继承 例如color 三、优先级

C++经典库介绍

在 C 开发的漫长历程中&#xff0c;涌现出了许多经典的库&#xff0c;它们在不同的领域发挥着重要作用&#xff0c;极大地提升了 C 开发的效率和质量。下面为你介绍一些 C 开发中的经典库。 标准模板库&#xff08;STL&#xff09; STL 堪称 C 编程领域的基石&#xff0c;是每…

Git本地使用小Tips

要将本地仓库 d:\test 的更新推送到另一个本地仓库 e:\test&#xff0c;可以使用 Git 的远程仓库功能。以下是具体步骤&#xff1a; ​​在 e:\test 中添加 d:\test 作为远程仓库​​ 在 e:\test 目录中打开 Git Bash 或命令行&#xff0c;执行以下命令&#xff1a; git remo…

AWS SageMaker vs Bedrock:该选哪个?

随着生成式 AI 的快速崛起&#xff0c;越来越多企业希望借助云上工具&#xff0c;加速 AI 应用的构建与落地。AWS 作为领先的云服务提供商&#xff0c;提供了两款核心 AI 服务&#xff1a;Amazon SageMaker 和 Amazon Bedrock。它们虽然同属 AWS AI 生态系统&#xff0c;但定位…