当前位置:首页>Linux>Linux 部署Zeek和基础命令

Linux 部署Zeek和基础命令

  • 2026-10-21 13:29:46
Linux 部署Zeek和基础命令

Zeek(原Bro)部署与基础命令指南

一、安装部署

1. Ubuntu/Debian 安装

# 添加Zeek仓库
echo'deb http://download.opensuse.org/repositories/security:/zeek/xUbuntu_22.04/ /' | sudotee /etc/apt/sources.list.d/security:zeek.list
curl-fsSL https://download.opensuse.org/repositories/security:zeek/xUbuntu_22.04/Release.key | gpg --dearmor | sudotee /etc/apt/trusted.gpg.d/security_zeek.gpg > /dev/null

# 安装Zeek
sudo apt update
sudo apt install zeek

2. CentOS/RHEL 安装

# 添加EPEL仓库
sudo yum install epel-release

# 添加Zeek仓库
sudocurl-o /etc/yum.repos.d/zeek.repo https://download.opensuse.org/repositories/security:/zeek/CentOS_8/security:zeek.repo

# 安装Zeek
sudo yum install zeek

3. 源码编译安装

# 安装依赖
sudo apt install cmake makegcc g++ flex bison libpcap-dev libssl-dev python3-dev swig zlib1g-dev

# 下载源码
git clone --recursive https://github.com/zeek/zeek.git
cd zeek

# 编译安装
./configure --prefix=/opt/zeek --build-type=release
make
sudomake install

# 添加环境变量
echo'export PATH=/opt/zeek/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

二、基础配置

1. 配置网络接口

# 查看网络接口
ip addr show

# 编辑Zeek配置
sudovim /opt/zeek/etc/node.cfg

[zeek]
type=standalone
host=localhost
interface=eth0  # 更改为你的监控接口

2. 配置网络范围

sudovim /opt/zeek/etc/networks.cfg

# 定义本地网络
10.0.0.0/8          Private IP space
172.16.0.0/12       Private IP space
192.168.0.0/16      Private IP space

3. 启动Zeek

# 检查配置
sudo /opt/zeek/bin/zeekctl check

# 部署配置
sudo /opt/zeek/bin/zeekctl deploy

# 启动Zeek
sudo /opt/zeek/bin/zeekctl start

# 查看状态
sudo /opt/zeek/bin/zeekctl status

# 停止Zeek
sudo /opt/zeek/bin/zeekctl stop

三、基础命令

1. Zeekctl 管理命令

# 查看所有可用命令
zeekctl help

# 安装配置
zeekctl install

# 重启Zeek
zeekctl restart

# 查看日志
zeekctl diag

# 查看进程状态
zeekctl ps

2. 直接运行Zeek

# 实时监控接口
zeek -i eth0 local

# 分析pcap文件
zeek -r capture.pcap local

# 运行特定脚本
zeek -i eth0 /opt/zeek/share/zeek/policy/frameworks/notice/notice.zeek

# 指定输出目录
zeek -i eth0 -C-w /var/log/zeek/

3. 日志管理

# 查看日志位置
ls /var/log/zeek/

# 主要日志文件:
# conn.log          - 连接日志
# http.log          - HTTP流量
# dns.log           - DNS查询
# ssl.log           - SSL/TLS连接
# notice.log        - 安全事件通知

# 使用zeek-cut查看日志
cat /var/log/zeek/conn.log | zeek-cut ts id.orig_h id.orig_p id.resp_h id.resp_p proto duration

# 实时监控日志
tail -f /var/log/zeek/conn.log

四、实用示例

1. 基本网络监控

# 创建自定义监控脚本
cat > my_monitor.zeek << 'EOF'
event zeek_init()
    {
    print "Zeek脚本启动 - 开始监控";
    }

event connection_established(c: connection)
    {
    print fmt("新连接建立: %s:%s -> %s:%s", 
              c$id$orig_h, c$id$orig_p,
              c$id$resp_h, c$id$resp_p);
    }
EOF

# 运行自定义脚本
zeek -i eth0 my_monitor.zeek

2. 检测恶意IP

# 创建恶意IP检测脚本
cat > bad_ip.zeek << 'EOF'
global bad_ips: set[addr] = {
192.168.1.100,
10.0.0.5
} &redef;

event connection_established(c: connection)
    {
if (c$id$orig_hin bad_ips || c$id$resp_hin bad_ips)
        {
        NOTICE([$note=Scan::Address_Scan,
$conn=c,
$msg=fmt("检测到与恶意IP的通信: %s", 
                        c$id$orig_hin bad_ips ? c$id$orig_h : c$id$resp_h)]);
        }
    }
EOF

五、故障排除

1. 常见问题解决

# 检查权限问题
sudo zeekctl check

# 查看错误日志
cat /var/log/zeek/stderr.log

# 测试网络接口
sudo tcpdump -i eth0 -c5

# 验证Zeek安装
zeek --version
zeek --help

2. 性能调优

# 调整工作进程数
sudovim /opt/zeek/etc/node.cfg
# 添加:lb_procs=4

# 调整日志轮转
sudovim /opt/zeek/etc/zeekctl.cfg
# 修改:LogRotationInterval = 3600

六、自动化脚本

1. 部署脚本示例

#!/bin/bash
# zeek_auto_deploy.sh

set-e

echo"正在安装依赖..."
apt update
apt install -y cmake makegcc g++ flex bison libpcap-dev libssl-dev python3-dev

echo"下载Zeek源码..."
cd /tmp
git clone --recursive https://github.com/zeek/zeek.git
cd zeek

echo"编译安装..."
./configure --prefix=/opt/zeek
make-j$(nproc)
make install

echo"配置环境变量..."
echo'export PATH=/opt/zeek/bin:$PATH' >> /etc/profile.d/zeek.sh
source /etc/profile.d/zeek.sh

echo"配置Zeek..."
cp /opt/zeek/etc/zeekctl.cfg.sample /opt/zeek/etc/zeekctl.cfg
cp /opt/zeek/etc/node.cfg.sample /opt/zeek/etc/node.cfg

# 自动检测接口
INTERFACE=$(ip route | grep default | awk '{print $5}')
sed-i"s/interface=eth0/interface=$INTERFACE/" /opt/zeek/etc/node.cfg

echo"启动Zeek..."
/opt/zeek/bin/zeekctl deploy
/opt/zeek/bin/zeekctl start

echo"部署完成!"

七、监控与维护

1. 系统服务配置

# 创建systemd服务
sudocat > /etc/systemd/system/zeek.service << 'EOF'
[Unit]
Description=Zeek Network Security Monitor
After=network.target

[Service]
Type=forking
ExecStart=/opt/zeek/bin/zeekctl start
ExecStop=/opt/zeek/bin/zeekctl stop
ExecReload=/opt/zeek/bin/zeekctl restart
User=root
Group=root

[Install]
WantedBy=multi-user.target
EOF

# 启用服务
sudo systemctl daemon-reload
sudo systemctl enable zeek
sudo systemctl start zeek

主要日志文件说明:

  • conn.log - 所有网络连接记录

  • http.log - HTTP请求和响应

  • dns.log - DNS查询和响应

  • ssl.log - SSL/TLS握手信息

  • files.log - 传输的文件信息

  • notice.log - 安全告警和通知

最新文章

随机文章