当前位置: 首页 > news >正文

系统安全及应用深度笔记

系统安全及应用深度笔记

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

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

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 实现弱口令与端口暴露的实时监控
  • 事后响应:结合审计日志和应急流程快速处置安全事件

相关文章:

  • Android13 以太网(YT8531)
  • MetaERP:开启企业数字化管理新时代
  • 2025年渗透测试面试题总结-各厂商二面试题01(题目+回答)
  • 智能呼叫中心系统的功能
  • 设计模式-面试题
  • 用Caffeine和自定义注解+AOP优雅实现本地防抖接口限流
  • 基于RT-Thread的STM32F4开发第五讲——软件模拟I2C
  • spring boot 注解 @bean
  • 解决 uv run 时 ModuleNotFoundError: No module named ‘anthropic‘ 的完整指南
  • HTTPS、SSL证书是啥?网站“安全小锁”的入门科普
  • megatron——EP并行
  • 【idea 报错:java: 非法字符: ‘\ufeff‘】
  • Node.js 实战八:服务部署方案对比与实践
  • [IMX] 05.串口 - UART
  • 数据可视化热图工具:Python实现CSV/XLS导入与EXE打包
  • Python在自动驾驶数据清洗中的应用
  • 路由器实战操作
  • Vue百日学习计划Day36-42天详细计划-Gemini版
  • mysql的安装方式
  • Lambda大数据架构
  • 韦尔股份拟更名豪威集团:更全面体现公司产业布局,准确反映未来战略发展方向
  • 夜读丨为萤火虫哭泣的夜晚
  • 深一度|上座率连创纪录撬动文旅,中超可否复制大连模式
  • 菲律宾中期选举结果揭晓,马科斯与杜特尔特家族重回“权力的游戏”
  • 《日出》华丽的悲凉,何赛飞和赵文瑄演绎出来了
  • 向猫学习禅修之后,你会发现将生活降格为劳作是多么愚蠢