安全运营 -- 监控linux命令history

0x00 背景

最近,有个IT的同事给我提了一个需求,说想监控/root/.ssh/ 文件夹下的文件变动,于是我灵机一动,这个需求只要对执行过的历史命令做审计就可以了。

0x01 实践

我实现这个功能使用 rsyslog 和 firewalld 两个组件。

我的设计是把命令history 转发到/usr/share/commands.log这个文件,再对这个文件监控。

export PROMPT_COMMAND='history 1 >> /usr/share/commands.log'

这个命令是临时的,只对当前会话可以记录。

如果想永久重定向,执行下面的命令

vi ~/.bashrc; export PROMPT_COMMAND='history 1 >> /usr/share/commands.log'; source ~/.bashrc

然后开始配置文件通过syslog配置轮转到 /var/log/firewalld.log,按照下面命令修改配置

vi /etc/rsyslog.d/commands.conf

Load the imfile module

module(load="imfile")

Monitor /usr/share/commands.log

input(type="imfile"

File="/usr/share/commands.log"

Tag="commands-log"

Severity="info"

Facility="local7")

Send logs to /var/log/firewalld.log

local7.* /var/log/firewalld.log

重启 syslog服务

systemctl restart rsyslog

当然,需要确保 firewall 处于开启状态

提供一份简单的检查firewall 状态代码

systemctl status firewalld

#开启firewalld Block 日志

firewall-cmd --set-log-denied=all

echo "Kern.* /var/log/firewalld.log">> /etc/rsyslog.d/firewalld.conf

sed -i '3a /var/log/firewalld.log' /etc/logrotate.d/syslog #第三行后面追加

systemctl restart rsyslog

#设定本机使用public安全区

firewall-cmd --set-default-zone=public

#设定堡垒机网段

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.xx.x.xx/26" service name="ssh" accept"

#添加/移除对外开放的端口号

firewall-cmd --permanent --add-port 443/tcp

firewall-cmd --add-port 137/udp --permanent

firewall-cmd --add-source 127.0.0.1/8 --permanent

firewall-cmd --add-source 0.0.0.0 --permanent

firewall-cmd --remove-port 22/tcp --permanent

#添加服务IP白名单

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.x.xx" accept"

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.xx.x.xx" port protocol="tcp" port="8089" accept"

#reload

firewall-cmd --reload

firewall-cmd --list-all

#开机自启动

systemctl enable firewalld

只要监控这个文件即可,不止有firewalld.log 还有command history,可以根据需求自由添加。

相关推荐
九硕智慧建筑一体化厂家27 分钟前
直流智能照明|一站式低碳照明解决方案,安全、节能、降本、全场景适配
安全
HiDev_28 分钟前
【非标自动化】2、认识元器件(确定目标)
运维·自动化
Zhang~Ling1 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind1 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的森1 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
中微极客2 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
XMAIPC_Robot2 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
AOwhisky3 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
重生的黑客3 小时前
Linux 进程优先级、切换与调度:从孤儿进程到 O(1) 调度模型
linux·运维·服务器·进程优先级·nice
Urbano3 小时前
夹克与商务单西口袋工序自动化技改研究报告
运维·自动化