Graylog与SIEM
Graylog与SIEM
Graylog是一个开源的SIEM系统,在国外有一定的群众基础, 国内也有很多人用。但是关于Graylog的中文资料一直很少,搜索引擎的找出来的结果,要么是过时的,要么涉及的知识应用点不是太深入,所以想在小专栏开一个帖子专门写这个。
和以前一样,这个文章就是在线编辑,写那是那,尽量和网上的文章有差异化, 太多重复的东西,就是一笔代过,官方网有的也一笔代过。
Graylog对Input的操作,是整个Graylog使用过程中,最常的一种操作,所以,以下的技能十分有必要掌握:
1.使用NC向 Input端口发送UDP包数据。
echo -n '{ "version": "1.1", "host": "example.org", "short_message": "A short message", "level": 5, "_some_info": "foo" }' | nc -w1 -u 0.0.0.0 10000
2.使用NC向 Input端口发送TCP包数据。
echo -n -e '{ "version": "1.1", "host": "example.org", "short_message": "A short message", "level": 5, "_some_info": "foo" }'"\0" | nc -w0 0.0.0.0 10000
3.使用CURL向 Input端口发送HTTP请求。
curl -X POST -H 'Content-Type: application/json' -d '{ "version": "1.1", "host": "example.org", "short_message": "A short message", "level": 5, "_some_info": "foo" }' 'http://0.0.0.0:10000/gelf'
这种基于HTTP的GELF格式的Input创建方式,对于快速创建HTTP REST接口,接受数据就非常的方便了。
这个curl中的json数据是标注json,但要保证服务器收到数据,有一个字段是不能没有的, 如果没有,数据不会被Graylog接收,就是message这个字段, 如果你传的时候传的是short_mesage,其实graylog也会把名字转成message这个名,然后再存。
curl -XPOST 0.0.0.0:10001/gelf -p0 -d '{"short_message":"Hello there", "host":"example.org", "facility":"test", "_foo":"bar"}'
发送数以外,我们还要判断数据日志,是否被正常的接受,需要监听对应的端口。
sudo tcpdump -i eth0 dst port 510 -l -s 0 -w - | strings
在Graylog里账号密码不是明语言的,需要加密转换, 用下面的命令就可以完成。
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
这样把加密会的密码添加到server.conf里对应密码的位置就可以。
sudo tcpdump -i enp2s0f1 dst port 16017 -l -s 0 -w - | strings
用户账号密码管理
pwgen -N 1 -s 96
echo -n 123456 | sha256sum
mongoDB数据备份
一个MongoDB集群需要三个结点,要对单点数据进行备份:
mongodump --db databasename --out file directory
mongorestore -u superuser -p 123456 --port 27017 --authenticationDatabase databasename -d databasename /backup/mongodb/
创建mongoDB数据库用户
-
use tdp
-
db
-
db.tdp.insert({“key”:“value”})
-
db.createUser({
-
user:‘username’,
-
pwd:‘userpasswd’,
-
roles:[
-
{role:‘readWrite’,db:‘admin’}
-
]
-
})