安全运营 -- 监控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,可以根据需求自由添加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值