首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Zeek/Bro中设置mmdb_dir

如何在Zeek/Bro中设置mmdb_dir
EN

Stack Overflow用户
提问于 2020-04-21 16:20:23
回答 1查看 296关注 0票数 0

我尝试在Bro/Zeek中使用GeoIp功能。

来自官方的Zeek文档

如果看到类似于“未能打开GeoIP位置数据库”的错误消息,则可能需要重命名或移动GeoIP位置数据库文件。如果mmdb_dir值设置为目录路径名(默认情况下不设置),则Zeek将在该目录中查找位置数据库文件。

好的,没有设置mmdb_dir

代码语言:javascript
复制
/pcap # zeek -e "print mmdb_dir;"

/pcap # 

我从Maxmind下载了mmdb文件,并将它们复制到pcap文件夹中。我不想将它们添加到默认路径中,而是永久配置mmdb_dir。这是可能的吗?如何才能做到?

额外信息:我在以以下命令开头的docker容器中运行版本3.0.1:

代码语言:javascript
复制
# on host system
Host:~$ docker run --rm -it \
                 -v `pwd`/pcap:/pcap \
                 -v `pwd`/local.zeek:/usr/local/zeek/share/zeek/site/local.zeek \
                 --entrypoint /bin/sh \
                 blacktop/zeek

# now in docker container
/pcap # zeek --version
zeek version 3.0.1
/pcap # zeek -e "print lookup_location(8.8.8.8);"
error in <command line>, line 1: Failed to open GeoIP location database (lookup_location(8.8.8.8))
[country_code=<uninitialized>, region=<uninitialized>, city=<uninitialized>, latitude=<uninitialized>, longitude=<uninitialized>]
fatal error in <command line>, line 3: errors occurred while initializing

链接到GitHub:https://github.com/blacktop/docker-zeek上的容器描述。

当将*.mmdb文件复制/挂载到/usr/local/share/GeoIP时,它可以正常工作。

更新:我添加了redef (thx到克里斯蒂安) /usr/local/zeek/share/zeek/site/local.zeek

代码语言:javascript
复制
##! Local site policy. Customize as appropriate.
##!
##! This file will not be overwritten when upgrading or reinstalling!

# This script logs which scripts were loaded during each run.
@load misc/loaded-scripts

# Apply the default tuning scripts for common tuning settings.
@load tuning/defaults

# Estimate and log capture loss.
@load misc/capture-loss

# Enable logging of memory, packet and lag statistics.
@load misc/stats

# Load the scan detection script.  It's disabled by default because
# it often causes performance issues.
#@load misc/scan

# Detect traceroute being run on the network. This could possibly cause
# performance trouble when there are a lot of traceroutes on your network.
# Enable cautiously.
#@load misc/detect-traceroute

# Generate notices when vulnerable versions of software are discovered.
# The default is to only monitor software found in the address space defined
# as "local".  Refer to the software framework's documentation for more
# information.
@load frameworks/software/vulnerable

# Detect software changing (e.g. attacker installing hacked SSHD).
@load frameworks/software/version-changes

# This adds signatures to detect cleartext forward and reverse windows shells.
@load-sigs frameworks/signatures/detect-windows-shells

# Load all of the scripts that detect software in various protocols.
@load protocols/ftp/software
@load protocols/smtp/software
@load protocols/ssh/software
@load protocols/http/software
# The detect-webapps script could possibly cause performance trouble when
# running on live traffic.  Enable it cautiously.
#@load protocols/http/detect-webapps

# This script detects DNS results pointing toward your Site::local_nets
# where the name is not part of your local DNS zone and is being hosted
# externally.  Requires that the Site::local_zones variable is defined.
@load protocols/dns/detect-external-names

# Script to detect various activity in FTP sessions.
@load protocols/ftp/detect

# Scripts that do asset tracking.
@load protocols/conn/known-hosts
@load protocols/conn/known-services
@load protocols/ssl/known-certs

# This script enables SSL/TLS certificate validation.
@load protocols/ssl/validate-certs

# This script prevents the logging of SSL CA certificates in x509.log
@load protocols/ssl/log-hostcerts-only

# Uncomment the following line to check each SSL certificate hash against the ICSI
# certificate notary service; see http://notary.icsi.berkeley.edu .
# @load protocols/ssl/notary

# If you have GeoIP support built in, do some geographic detections and
# logging for SSH traffic.
@load protocols/ssh/geo-data
# Detect hosts doing SSH bruteforce attacks.
@load protocols/ssh/detect-bruteforcing
# Detect logins using "interesting" hostnames.
@load protocols/ssh/interesting-hostnames

# Detect SQL injection attacks.
@load protocols/http/detect-sqli

#### Network File Handling ####

# Enable MD5 and SHA1 hashing for all files.
@load frameworks/files/hash-all-files

# Detect SHA1 sums in Team Cymru's Malware Hash Registry.
@load frameworks/files/detect-MHR

# Extend email alerting to include hostnames
@load policy/frameworks/notice/extend-email/hostnames

# Uncomment the following line to enable detection of the heartbleed attack. Enabling
# this might impact performance a bit.
# @load policy/protocols/ssl/heartbleed

# Uncomment the following line to enable logging of connection VLANs. Enabling
# this adds two VLAN fields to the conn.log file.
# @load policy/protocols/conn/vlan-logging

# Uncomment the following line to enable logging of link-layer addresses. Enabling
# this adds the link-layer address for each connection endpoint to the conn.log file.
# @load policy/protocols/conn/mac-logging

# I added this line:
redef mmdb_dir = "/pcap";

但是数据库仍然没有加载,除非我告诉zeek使用local配置(RTFM)。

代码语言:javascript
复制
/pcap # zeek -e "print lookup_location(8.8.8.8);" local "Site::local_nets += { 192.168.0.0/24 }"
[country_code=US, region=<uninitialized>, city=<uninitialized>, latitude=37.751, longitude=-97.822]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-23 01:15:19

该变量被定义为发行版附带的init-bare.zeek文件中的redef‘’able常量(带有空字符串值)。所以只要说

代码语言:javascript
复制
redef mmdb_dir = "/pcap";

(或任何最终目标)在您的local.zeek文件中,您应该都设置好了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61348208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档