Linux安全审计功能

Client:

OMAudit_agent.py

#!/usr/bin/env python
#coding:utf-8
import sys
import socket
import fcntl
import struct
import logging
from config import *
import urllib,httplib
socket.setdefaulttimeout(Connect_TimeOut)
logging.basicConfig(level=logging.DEBUG,
            format=‘%(asctime)s [%(levelname)s] %(message)s‘,
            filename=sys.path[0]+‘/omsys.log‘,
            filemode=‘a‘)

if len(sys.argv)<6:
    logging.error(‘history not configured in /etc/profile!‘)
    sys.exit()

def get_local_ip(ethname):
    try:
        sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
        addr = fcntl.ioctl(sock.fileno(),0x8915,struct.pack(‘256s‘,ethname))
        return socket.inet_ntoa( addr[20:24] )
    except Exception,e:
        logging.error(‘get localhost IP address error:‘+str(e))
        return "127.0.0.1"

def pull_history(http_get_param=""):
  try:
    http_client = httplib.HTTPConnection(OMServer_address,80,timeout=Connect_TimeOut)
    http_client.request("GET",http_get_param)
    response = http_client.getresponse()

    if response.status != 200:
        logging.error(‘response http status error:‘+str(response.status))
        sys.exit()

    http_content = response.read().strip()
    if http_content != "OK":
        logging.error(‘response http content error:‘+str(http_content))
        sys.exit()

  except Exception,e:
    logging.error(‘connection django-cgi server error:‘+str(e))
    sys.exit()

  finally:
    if http_client:
        http_client.close()
    else:
        logging.error(‘connection django-cgi server unknown error.‘)
        sys.exit()

Sysip = get_local_ip(Net_driver)
SysUser = sys.argv[2]
History_Id = sys.argv[1]
History_date = sys.argv[3]
History_time = sys.argv[4]
History_command = ""
#print(Sysip)
#print(History_Id)
#print(SysUser)
#print(History_date)
#print(History_time)
#print(‘test‘+sys.argv[0])
#print(sys.argv[5])
for i in range(5,len(sys.argv)):
    History_command+=sys.argv[i]+" "

#s = "/omaudit_pull/?history_id="+History_Id+"&history_ip="+Sysip+"&history_user="+SysUser+"&history_command="+urllib.quote(History_command.strip())
s = "/omaudit_pull/?history_id="+History_Id+"&history_ip="+Sysip+"&history_user="+SysUser+ "&history_datetime="+History_date+urllib.quote(" ")+History_time+"&history_command="+urllib.quote(History_command.strip())
pull_history(s)

config.py:

# -*- coding: utf-8 -*-
#!/user/bin/env python
Net_driver = "eth0"
OMServer_address = "omaudit.quark.com"
Connect_TimeOut = 3

  

安装脚本:OMAudit_agent_install.sh

#!/bin/bash
# -*- coding: utf-8 -*-
yum -y install unzip zip
mkdir -p /opt/platform/OMAudit/
touch /opt/platform/OMAudit/omsys.log
unzip OMAudit_agent.zip -d /opt/platform/OMAudit
chmod 777 -R /opt/platform/OMAudit/

cat >> /etc/profile << eof
export HISTFILE=\$HOME/.bash_history
export HISTSIZE=1000
export HISTFILESIZE=1000
export HISTCONTROL=ignoredups
export HISTTIMEFORMAT="\`whoami\` %F %T "
export PROMPT_COMMAND="history -a; history -c; history -r;"‘/opt/platform/OMAudit/OMAudit_agent.py \$(history 1)‘
shopt -s histappend
typeset -r PROMPT_COMMAND
typeset -r HISTTIMEFORMAT
eof
sleep 3
source /etc/profile

Server:

原文地址:https://www.cnblogs.com/cjsblogs/p/8276745.html

时间: 2024-10-25 17:28:49

Linux安全审计功能的相关文章

linux小功能

1:第一次登录切换到root用户:su passwd 2:中文输入法安装:1/先到搜狗官网下载搜狗输入法;2/访问这个网址,配置一下:http://jingyan.baidu.com/article/4b07be3c60da3f48b380f3f0.html 3:java安装:http://www.wikihow.com/Install-Oracle-Java-JDK-on-Ubuntu-Linux linux小功能,布布扣,bubuko.com

为小linux添加功能,自动添加依赖的库到相应位置

给小linux添加功能,咱们写一个脚本吧 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 重大知识点:FILE=/etc/local/src 从左往右 echo ${FILE#/}  一个#代表将第一个/向左的内容都去掉 执行结果为etc/local/src echo ${FILE##/} 代表从左往右找,找到最后一个/ 并将向左的内容全部去掉 执行结果为/src    (用于取文件名) 从右向左 echo ${FILE%/*} 从右向左寻找/ 找到第一个 将/和向右的内容全

jprofiler+Linux+weblogic功能简介,配置及内存泄漏分析示例

jprofiler简介: jprofiler的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图.所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象. 一.主要功能简介 1.内存剖析 Memory profiler JProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图.所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象. 所有对象 显示类或在状况统计和尺码信息堆上所有对象的包.你可

Linux inotify功能及实现原理

http://www.cnblogs.com/jiejnan/archive/2012/05/18/2507476.html 简介: 当需要对 Linux?文件系统进行高效率.细粒度.异步地监控时,可以采用 inotify.可利用它对用户空间进行安全.性能.以及其他方面的监控. 至于inotify的基本介绍可以看下面链接 http://www.ibm.com/developerworks/cn/linux/l-inotify/index.html?ca=drs- 这里主要说下自己试验的总结: 何

Linux命令功能说明

线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) ls        全拼list,功能是列出目录的内容及其内容属性信息.    cd        全拼change directory,功能是从当前工作目录切换到指定的工作目录.    cp        全拼copy,其功能为复制文件或目录.    find        查找的意思,用于查找目录及目录下的文件.

Linux sgid功能

sgid 与suid不同的是,sgid即可以针对文件也可以针对目录设置!sgid是针对用户组权限修改的.也就是9位权限中间的3位. 对于文件,sgid的功能如下: 1.sgid仅对二进制命令程序有效. 2.二进制命令或程序需要有可执行权限x. 3.执行程序的任意用户可以获得该命令程序执行期间所属组的权限. 对于目录,sgid的功能如下: 1.用户在些目录下创建的文件和目录,具有和此目录相同的用户组. setgid位主要用在目录中,当为某个目录设置了setgid位以后,在该目录中新创建的文件具有该

linux 目录功能

[[email protected] /]# ls / bin  date  etc   lib   media  opt   root sbin  sys  usr boot dev   home  lib64 mnt    proc  run  srv   tmp  var linux 目录简介 / 根目录 ---/etc RHEL6中主要存放服务配置文件 ---/usr/lib/systemd/system   RHEL7服务文件中用来替代RHEL 6的/etc目录 ---/boot 存放

Linux pipe功能

1. 功能说明 pipe(管道建设): 1) 头 #include<unistd.h> 2) 定义函数: int pipe(int filedes[2]); 3) 函数说明: pipe()会建立管道.并将文件描写叙述词由參数filedes数组返回. filedes[0]为管道里的读取端 filedes[1]则为管道的写入端. 4) 返回值:  若成功则返回零,否则返回-1,错误原因存于errno中. 错误代码: EMFILE 进程已用完文件描写叙述词最大量 ENFILE 系统已无文件描写叙述词

Linux常用功能脚本

设置定时任务 crontab -e 1 0 * * * /bin/find /mnt/tomcat/logs/ -mtime +3 -type f -name "*.log" -exec /bin/rm -rf {} \; 每天凌晨一分定时清除Tomcat的日志脚本 linux下Tomcat自动备份  1.页面文件在/home/edn/tomcat6/webapps目录下,备份文件存放在/home/backup目录下. shell#vi /home/backup.sh #!/bin/s