OSSIM项目研究记录(十五)

2021SC@SDUSC

os-sim/www源码分析之scripts/connect_ossim_db.sh


一、什么是.sh文件

.sh文件中一般都是脚本文件,指Bash。

  • 程序以语句#!/bin/sh开始,且独占一行
    符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
    当编写脚本完成时,如果要执行该脚本,还必须使其可执行。
    要使编写脚本可执行:
    编译 chmod +x filename 这样才能用./filename 来运行

  • 所有的变量都由字符串组成,不需要对变量进行声明。要赋值给一个变量,您可以这样写:w=”hahahaha”

  • 以#开头的句子表示注释,直到这一行的结束 。

  • .sh文件可以用pycharm运行,在windows和linux都可以运行。
    它有一些基本的命令,类似liunx中的命令:

  • 常用命令语法及功能

  • echo “some text”: 将文字内容打印在屏幕上

  • ls: 文件列表

  • wc –l file , wc -w file , wc -c file: 计算文件行数、计算文件中的单词数、计算文件中的字符数

  • cp sourcefile destfile: 文件拷贝

  • mv oldname newname : 重命名文件或移动文件

  • rm file: 删除文件

  • cat file.txt: 输出文件内容到标准输出设备(屏幕)上

  • file somefile: 得到文件类型

  • read var: 提示用户输入,并将输入赋值给变量

  • sort file.txt: 对file.txt文件中的行进行排序

  • uniq: 删除文本文件中出现的行列比如: sort file.txt | uniq

  • find: 搜索文件比如:根据文件名搜索find . -name filename -print

  • tee: 将数据输出到标准输出设备(屏幕) 和文件比如:somecommand | tee outfile

  • basename file: 返回不包含路径的文件名比如: basename /bin/tux将返回 tux

  • dirname file: 返回文件所在路径比如:dirname /bin/tux将返回 /bin

  • head file: 打印文本文件开头几行

  • tail file : 打印文本文件末尾几行

  • sed: Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。

  • grep ‘pattern’ file: 在文件内搜索字符串所在的行,比如:grep ’searchstring’ file.txt

二、源码分析


if test -z "$1"; then
#	DB="ossim"
	DB="alienvault"
else
	DB="$1"
fi

if [ ! -f "/etc/ossim/ossim_setup.conf" ];then
        >&2 echo "ossim_setup.conf not found"
        exit 0
fi

HOST=`grep ^db_ip= /etc/ossim/ossim_setup.conf | cut -f 2 -d "=" | sed '/^$/d'`
USER=`grep ^user= /etc/ossim/ossim_setup.conf | cut -f 2 -d "=" | sed '/^$/d'`
PASS=`grep ^pass= /etc/ossim/ossim_setup.conf | cut -f 2 -d "=" | sed '/^$/d'`

if test -z "$HOST"; then
	HOST=localhost
fi

sshpass -p $PASS mysql --default-character-set=utf8 -A -u $USER -h $HOST $DB -p -e "exit" &>/dev/null

if [ $? -ne 0  ]; then
	>&2 echo "Access denied. Trying old settings..."

	if [ ! -f /etc/ossim/ossim_setup.conf_last ]; then
        	>&2 echo "ossim_setup.conf_last not found"
        	exit 0
	fi

	HOST=`grep ^db_ip= /etc/ossim/ossim_setup.conf_last | cut -f 2 -d "=" | sed '/^$/d'`
	USER=`grep ^user= /etc/ossim/ossim_setup.conf_last | cut -f 2 -d "=" | sed '/^$/d'`
	PASS=`grep ^pass= /etc/ossim/ossim_setup.conf_last | cut -f 2 -d "=" | sed '/^$/d'`
fi

sshpass -p $PASS mysql --default-character-set=utf8 -A -u $USER -h $HOST $DB -p

对DataBase建立连接,用指令去查主机、用户、密码,然后进行对比。
访问失败则显示访问被拒绝,然后去找上一次的成功设置。

三、文件作用

在script部分,OSSIM需要进行与各事件与警报交互,这个文件用于建立ossim_db(数据库)的连接。OSSIM关联引擎(简称OSSIM Server)将事件关联结果写入数据库。系统用户可通过Framework(Web前端控制台)对Database进行访问。数据库中alienvault.event表是整个系统事件分析和策略调整的信息源。OSSIM从总体上将其划分为事件数据库(EDB)、知识数据库(KDB)、用户数据库(UDB)。OSSIM数据库用来记录与安全事件关联及配置等相关的信息,对应于设计阶段的KDB和EDB的关联事件部分。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值