Linux审计与日志安全加固

2023-10-26

审计和日志服务配置

auditctl

审计数据配置

日志文件最大参数
在储存策略(/etc/audit/audit.conf)中配置max_log_file=<MB>
当审计日志满的时候停止系统
space_left_action=email
action_mail_acct=root
admin_space_left_action=halt
当审计日志文件达到最大时,替换日志但不删除。
max_log_file_action=keep_logs

审计行为配置

启动audit守护进程记录系统时间,查看是否有未经授权的访问信息
systemctl start/enable(开机自启) auditd
审核在auditd服务启动前启动的进程
1.编辑/etc/default/grub文件并添加audit =1变量到GRUB_ CMDLINE LINUX
参数上:
GRUB CMDLINE LINUX= “audit= 1”
2.运行以下命令更新grub2的配置:
grub2-mkconfig -0 /boot/grub2/grub.cfg
设计系统审计参数
设置系统审计使审计规则不能用auditctl修改。将“-e 2”设置为强制审计进入不可变模式。
命令:
echo >> “-e 2” /etc/audit/audit.rules
捕捉系统时间修改事件
设置以下参数用于确定adjtimex、settimeofday, stime或clock settime系统调
用是否执行,并在退出时始终将审计记录写入/var/log/audit.log文件,并使用标识符"time-change"标记这些记录。
配置:
在/etc/audit/audit.rules文件中添加以下信息:
-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change
-a always,exit -F arch=b32 -S adjtimex -S settimeofday -S stime -k time-change
-a always,exit -F arch= b64 -S clock_ settime -k time-change
-a always,exit -F arch=b32 -S clock_ settime -k time-change
-w /etc/localtime -p wa -k time-change
捕捉修改用户/用户组事件用identity标记
在"/etc/audit/audit.rules"文件中添加以下信息行:
-w /etc/group -p wa -k identity
-w /etc/passwd -p wa -k identity
-w /etc/gshadow -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/security/opasswd -p wa -k identity
记录修改网络环境或系统调用事件
用system-locale进行标记
在"/etc/audit/audit.rules"文件中添加以下信息行:
-a exit,always -F arch=b64 -S sethostname -S setdomainname -k system-locale
-a exit,always -F arch=b32 -S sethostname -S setdomainname -k system-locale
-w /etc/issue -p wa -k system-locale
-w /etc/issue.net -p wa -k system-locale
-w /etc/hosts -p wa -k system-locale
-w /etc/sysconfig/network -P wa -k system-locale
记录修改系统的强制访问控制事件
监视SELinux强制访问控制。监测对/etc/selinux目录的任何写访问(增加、删除或修改目录中的文件)或属性更改。
用MAC-policy标记
在"/etc/audit/audit.rules"文件中添加以下信息行:
-w /etc/selinux/ -p wa -k MAC-policy
-w /usr/share/selinux/ -p wa -k MAC-policy
监控登录、注销事件
/var/log/lastlog上次成功登录的记录,/var/run/failock登录失败的记录。
在"/etc/audit/audit.rules"文件中添加:
-w /var/log/lastlog -p wa -k logins
-w /var/run/faillock/ -p wa -k logins
监控发起会话事件
utmp:记录当前登录的所有用户
wtmp:记录登录、注销、关机和重启事件
btmp:记录失败的登录尝试
在"/etc/audit/audit.rules"文件中添加以下信息行:
-w /var/run/utmp -p wa -k session
-w /var/log/wtmp -p wa -k logins
-w /var/log/btmp -p wa -k logins
监控修改自由访问控制权限事件
记录非系统用户id(auid>= 1000)编写,并且忽略守护进程事件(auid=4294967295),审计记录用perm_mod进行标记。
配置:
在"/etc/audit/audit.rules"文件中添加以下信息行:
-a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -F auid> = 1000 -F auid!=4294967295 -k perm_ mod

-a always,exit -F arch=b32 -S chmod -S fchmod -S fchmodat -F auid> = 1000 -F auid!=4294967295 -k perm_ mod

-a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S Ichown -F auid> =1000 -F auid!=4294967295 -k perm_mod

-a always,exit -F arch=b32 -S chown -S fchown -S fchownat -S Ichown -F auid> =1000 -F auid!=4294967295 -k perm_ mod

-a always,exit -F arch= b64 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>= 1000 -F auid!=4294967295 -k perm_ mod

-a always,exit -F arch= b32 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>= 1000 -F auid!= 4294967295 -k perm_mod
监控访问文件失败的事件
尝试、创建、截断文件失败表明可能有人试图对系统进行未经授权的访问。
配置
在"/etc/audit/audit.rules"文件中添加以下信息行:
-a always,exit -F arch= b64 -S creat -S open -S openat -S truncate -S ftruncate
-F exit=-EACCES -F auid> =500 -F auid!=4294967295 -k access

-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S
ftruncate-F exit=-EACCES -F auid>= 500 -F auid!=4294967295 -k access

-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate
-F exit=-EPERM -F auid> =500 -F auid!=4294967295 -k access

-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate
-F exit= -EPERM -F auid>= 500 -F auid!= 4294967295 -k access
监控对mount命令的调用
非特权用户将文件系统挂载到系统是非常不寻常的。跟踪挂载命令为系统管理员提供了外部媒体可能已挂载的证据(基于对挂载源的检查并确认它是外部媒体类型),但它并不能最终表明数据已导出到媒体。为确定数据是否导出,系统管理员还必须跟踪open、creat和truncate系统调用,这些调用对外部媒体文件系统挂载点下的文件进行写访问,就可以很好地说明发生了写操作。用mount标记。
配置:
-a always,exit -F arch= b64 -S mount -F auid>= 1000 -F auid!= 4294967295 -k mounts
-a always,exit -F arch=b32 -S mount -F auid>= 1000 -F auid!=4294967295 -k mounts
监控文件和文件属性的调用
监视来自非特权用户的与文件和文件属性的删除或重命名相关系统调用可以向系统
管理员表明正在发生与受保护文件相关的文件和文件属性的不适当删除。虽然这个审计
选项将查看所有事件,但是系统管理员希望查找正在删除或更改的特定特权文件。
描述:
监视unlink(删除文件)、unlinka(删除文件属性)、rename(重命名文件)和renameat(重命名文件属性)系统调用,并用标识符"delete"标记它们。
配置:
-a always,exit -F arch= b64 -S unlink -S unlinkat -S rename -S renameat -F auid>= 500 -F auid!=4294967295 -k delete
-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat -F auid> =500 -F auid!=4294967295 -k delete
监控系统管理员的权限范围修改
标识符:scope
在"/etc/audit/audit.rules"文件中添加以下信息行:
-w /etc/sudoers -p wa -k scope
-w /etc/sudoers.d/ -p wa -k scope
监控系统管理员操作行为
如果系统已配置为禁用su命令,并强制所有管理员必须先登录,然后使用sudo执行特权命令,那么所有管理员命令都将被记录到/var/log/sudo.log中。每当执行命令时,审计事件将被触发,因为/var/log/sudo.log文件将被打开进行写操作,并且执行的管理命令将被写入日志。
配置方法:
在"/etc/audit/audit.rules"文件中添加以下信息行
-w /var/log/sudo.log -p wa -k actions
监控内核模块的安装与卸载
配置方法:
在"/etc/audit/audit.rules"文件中添加以下信息行:
-w /sbin/insmod -p x -k modules
-w /sbin/rmmod -p x -k modules
-w /sbin/modprobe -p x -k modules
-a always,exit -F arch=b64 -S init_ module -S delete_ module -k modules

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux审计与日志安全加固 的相关文章

  • 如何将 grep 的输出通过管道传输到 cp?

    我有一个工作grep选择满足特定条件的文件的命令 我怎样才能从grep命令并将其通过管道传输到cp命令 以下尝试都失败了cp end grep r TWL exclude csv cp data lidar tmp ajp2 cp 之后缺少
  • 使用 AMD FX 4100 四核获取 Linux ubuntu 12.10 上的 CPU 温度

    有很多类似的问题 但我还没有找到解决方案 如何在 Linux Ubuntu 12 10 上使用 C 或 C 获取 CPU 温度无需致电 sensors 我当然可以从文件中读取它 但是我找不到它在 12 10 中的存储位置 简单地读取文本文件
  • .JSchException:数据包损坏

    我在 RHEl 6 上使用 Jsch 0 1 51 和 Jdk 1 7 51 在与远程计算机进行会话时 我收到以下异常 com jcraft jsch JSchException Packet corrupt at com jcraft j
  • 创建一个基本的 .bashrc 文件 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我没有 bashrc文件 我想创建一个 但是如何创建 基本的是什么 bashrc文件包含 我在Linux 薄荷 12 我想要一个 bashrc文件 因
  • 使用 vala 将 uris 插入 Gtk.Clipboard

    我目前正在尝试为我的应用程序实现复制和粘贴 问题是我只能根据文档将纯文本或图像复制到剪贴板Gtk Clipboard https valadoc org gtk 3 0 Gtk Clipboard html https valadoc or
  • 使用 Android NDK r10 编译 FFmpeg 2.3

    我想按照本教程使用 Android NDK r10 编译 FFMpeg 2 3 http www roman10 net how to build ffmpeg for android http www roman10 net how to
  • 如何在 Linux 中打开程序的多个实例

    例如 要打开多个实例gedit编辑器我写了一个像这样的shell脚本 gedit gedit gedit gedit 但是在我运行我的 shell 脚本之后 example sh 我只能找到一个 gedit 实例 我什至用过 运算符 以便
  • Eclipse makefile 构建速度很慢...是什么原因?

    我们是 Eclipse 的狂热粉丝 这太棒了 但我们有大约 40 个 C 项目 并且还在不断增长 当所有项目都是最新的时 构建所有这些项目大约需要半分钟 总共 如果我只是创建一个对所有 40 个项目执行 make all 的 bash 脚本
  • linux cron 作业是否应该用“&”指定以指示在后台运行? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 在 crontab 文件中 是否应该使用尾随 来指定命令 还是命令会在后台运行 I have 20 home me monitor check sh
  • ELF的基址

    我正在尝试查找 ELF 文件的基地址 我知道您可以使用 readelf 来查找程序入口点和不同部分的详细信息 基址 大小 标志等 例如 x86 架构的程序通过链接器基于 0x8048000 使用 readelf 我可以看到程序入口点 但输出
  • Bash:循环直到命令退出状态等于 0

    我在本地计算机上安装了 netcat 并在端口 25565 上运行了一个服务 使用以下命令 nc 127 0 0 1 25565 lt dev null echo Netcat 检查端口是否打开 如果打开则返回 0 如果关闭则返回 1 我正
  • 哪里可以找到系统调用源代码?

    在 Linux 中 如果我有源代码树 在哪里可以找到所有系统调用的源代码 另外 如果我想查找特定系统调用的源代码和程序集 我可以在终端中输入类似的内容my system call 您需要 Linux 内核源代码才能查看系统调用的实际源代码
  • Chrome 无法播放 MP4

    我每天都会从我的安全摄像头系统中收到几封发送到我的 Gmail 帐户的电子邮件 此类邮件包含来自摄像机的 MP4 格式的视频剪辑 每个大约 20 秒 的链接 奇怪的是 在基于 Mageia 的 PC 上单击此类链接后 剪辑将打开并在新的单独
  • 使用 tar.gz 下载在 Ubuntu 13.10 上安装 nltk 3.0

    我想在 Ubuntu 13 10 上安装 nltk 3 0 我已经运行 Ubuntu 几个星期了 我第一次使用 Linux 我刚刚下载了 python 3 4 0 3 3 也在 Ubuntu 上 因为它是随操作系统一起安装的 Python
  • 仅显示 tcsh 或 bash 中符号链接的文件和文件夹

    基本上我想做以下事情 ls l someflags 或通过其他方式 只会显示符号链接的文件 所以输出看起来像 rw r r 1 username grp size date time filename gt somedir rw r r 1
  • GNU 日期和自定义格式

    我有一些特定日期格式的字符串 我想使用 GNU date 命令 coreutils 8 20 来处理它们 我可以使用 FORMAT 字符串获取要输出的日期 但不能理解使用相同字符串输入的字符串 我很确定我错过了一些明显的东西 是什么赋予了
  • Java内存不足错误(本机内存),达到进程大小限制(32位linux)

    我正在测试 Web 应用程序的性能 并收到 内存不足错误 本机内存 我测试了好几次 每次都是 无法为 Chunk new 分配 83886088 字节 并死掉 我每分钟打印一次内存大小 发现进程死亡前VmSize为2924700 kB 我认
  • 模式切换是否发生从用户线程切换到内核线程?

    我对用户 内核线程和模式 上下文切换感到困惑 平台 Linux 我有两个相关的问题 1 下列句子正确的是 如果我进行系统调用 则会发生模式切换 用户模式到内核模式 并最终从用户线程切换到内核线程 由于系统调用只能在内核线程中执行 因此我认为
  • “yes”这个程序有什么重要用途吗?

    当我第一次遇到yes nix 中的程序我想不出它有什么重要用途 这个程序是如何使用的 yes旨在自动化需要在采取行动之前确认的交互式程序 yes rm ri foo 大致相当于 rm rf foo 不同之处在于 f失败时也会继续
  • 如何在没有竞争条件的情况下重命名()?

    如果我想重命名A to B 但前提是B不存在 天真的事情会检查是否B存在 与access B F OK 或类似的东西 如果不继续rename 不幸的是 这会打开一个窗口 在此期间其他进程可能会决定创建B 然后它被覆盖 更糟糕的是没有迹象表明

随机推荐

  • vb wor转存html,利用VB操作WORD的基本方法

    利用VB操作WORD的基本方法 通过查阅资料 自我实践 经实验通过 先引用word Application Dim MyWord As Word Application Dim MyWordBook As Word Document Set
  • Numpy:基础数据结构

    1 数组的基本属性 import numpy as np ar np array 1 2 3 4 5 6 7 print ar 输出数组 注意数组的格式 中括号 元素之间没有逗号 和列表区分 print ar ndim 输出数组维度的个数
  • Python @函数装饰器及用法(超级详细)转

    Python 内置的 3 种函数装饰器 分别是 staticmethod classmethod 和 property 其中 staticmethod classmethod 和 property 都是 Python 的内置函数 那么 我们
  • layui子弹框调用父弹框方法

    var thisFrame parent window document getElementById LAY layuiStampDuty1 getElementsByTagName iframe 0 id 获取父级弹框id值 var d
  • 【20220412】文献翻译4:交互中的手势和语言概述

    Gesture and speech in interaction An overview 1 简介 2 什么是共同语言 同声传译 手势 2 1 用手比划 2 2 用头做动作 3 语音和手势是交互的 3 1 交际环境中的手势 3 2 传递意
  • 双向链表

    双向就意味着对于每一个元素 都有两个方向的指向 因此从以下几个方面阐述双向链表 重要方法分析 全部代码 一 重要方法分析 这里的链表实现了我博客中的接口 ILinkedList 与结点 LinkedNode 具体的博客地址 http blo
  • 【Linux】VIM使用

    第一节 Vim常用操作 Vim没有菜单 只有命令 Vim的工作模式有三种 第一种 命令模式 vi vim 文件名 进入命令模式 不可以输入文字 只能识别命令 插入命令 a 在光标所在字符后插入 i 在光标所在字符前插入 o 在光标下插入新行
  • Vue基础精讲 —— Vue的组件之组件的定义、继承、自定义双向绑定、高级属性

    Vue组件基础定义 import Vue from vue const compoent props active type Boolean required true validator value return typeof value
  • UE4-蓝图基础:TimeLine

    一 概念 1 TimeLine 在一定时间内不断执行的一个蓝图节点 2 添加一个空白节点 函数讲解 Play 事件驱动 执行此事件时调用 Play from Start 从头开始执行事件 lt 事件在执行过程中未执行完毕 某一条件改变 事件
  • 回路电感详细介绍(环路电感)

    相比于硬件工程师 PCB工程师对环路电感更敏感 因为环路电感和走线强相关 不管是信号完整性还是电源完整性都涉及到这个概念 一旦电路结构确定 环路电感也随之确定 如果环路电感初期评估失误将会给后期改版带来巨大风险 更多资料请关注公众号 工程师
  • 操作系统 java模拟主存储器空间的分配和回收

    文章目录 实验原理 算法流程图 代码 结果 实验原理 模拟在可变分区管理方式下采用最先适应算法实现主存分配和回收 1 可变分区方式是按作业需要的主存空间大小来分割分区的 当要装入一个作业时 根据作业需要的主存量查看是否有足够的空闲空间 若有
  • 创建第一个Qt Widget项目

    创建第一个Qt Widget项目步骤 1 选择文件 Ctrl n 2 新建文件或项目 3 Qt Widget Application 4 输入项目名称FirstApplication 选择存储的位置 5 选择构建套件Desktop Qt Q
  • numpy一维数组永远为列向量

    import numpy as np a np array 1 3 4 5 print a shape a np transpose a print a shape print a a np ravel a print a shape pr
  • 静态分析简介

    一 程序静态分析简介 Program Static Analysis 程序静态分析简介 Program Static Analysis 是指在不运行代码的方式下 通过词法分析 语法分析 控制流 数据流分析等技术对程序代码进行扫描 验证代码是
  • 【mysql安装报错(已解决)】ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

    1 说在开头 我的 mysql 版本是 8 0 27 的 安装的时候 感觉每一步都没有错 但是就是不行 到连接本地数据库时 发现一直连不上 搞了好久 一直报下面的错 ERROR 1045 28000 Access denied for us
  • 一文带你聊聊MYSQL的锁和MVCC

    如果你觉得内容对你有帮助的话 不如给个赞 鼓励一下更新 本文内容总结自极客时间 MySQL实战45讲 专栏 LBCC 单版本控制 锁 基于锁的并发控制 这种方案比较简单粗暴 就是一个事务去读取一条数据的时候 就上锁 不允许其他事务来操作 当
  • 【Python自动化】生成带装饰图形的渐变背景文字封面

    Python自动化专栏 利用文字生成固定比例且带有装饰图形的封面 文章目录 一 背景介绍 二 功能介绍 效果预览 功能清单 三 过程拆解 1 渐变背景层 2 装饰图形层 3 半透明遮罩层 4 文字层 四 完整代码 参考文档 一 背景介绍 在
  • echarts地图map下钻到镇街、KMZ文件转GeoJson、合成自定义区域

    echarts 地图map下钻到镇街 KMZ文件转GeoJson 合成自定义区域 我们可以通过 http datav aliyun com tools atlas 阿里旗下的高德地图提供的api 可以获取到中国各个省份 区级 县级的json
  • NAT技术的主要实现方式及其对网络应用程序的使用影响

    网络地址转换 NAT 是接入广域网 WLAN 的一种技术 能够将私有 保留 地址转化为合法的IP地址 它被广泛应用于各种类型Internet接入方式和各种类型的网络中 NAT的实现方式有三种 静态转换 动态转换和端口多路复用 静态转换设置起
  • Linux审计与日志安全加固

    审计和日志服务配置 auditctl 审计数据配置 日志文件最大参数 在储存策略 etc audit audit conf 中配置max log file