Forwarding Zeek & Suricata to Security Onion (SO 2.4) with Filebeat
Contents
Overview
Goal
- Ship Suricata eve.json and Zeek logs from Debian → Security Onion 2.4.
- Use Filebeat → Logstash on port 5044 (Manager at 192.168.88.198).
Prereqs
- Debian 13 with Suricata & Zeek writing to default paths.
- Security Onion 2.4 (standalone or manager) accessible on your LAN.
1) Install Filebeat on Debian 13
Elastic packages aren’t in Debian 13 by default. Add Elastic’s APT repo, then install.
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" \
| sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update
sudo apt install -y filebeat
2) Configure inputs (Suricata & Zeek)
# /etc/filebeat/filebeat.yml (inputs section)
filebeat.inputs:
- type: log
paths:
- /var/log/suricata/eve.json
fields:
type: suricata
fields_under_root: true
- type: log
paths:
- /opt/zeek/logs/current/*.log
fields:
type: zeek
fields_under_root: true
3) Configure Logstash output (Security Onion)
Only one output may be active. Disable Elasticsearch output, enable Logstash:
# /etc/filebeat/filebeat.yml (output section)
# ---------------------------- Elasticsearch Output ----------------------------
#output.elasticsearch:
# hosts: ["localhost:9200"]
# ------------------------------ Logstash Output -------------------------------
output.logstash:
hosts: ["192.168.88.198:5044"]
4) Test & enable Filebeat
sudo filebeat test output
sudo systemctl enable --now filebeat
Expected: DNS resolves and TCP handshake succeeds once SO firewall allows your sender.
6) Open SO firewall hostgroup (UI)
- SOC → Administration → Configuration → Firewall.
- Open Allow Elastic Agent endpoints to send logs.
- Add your sender(s): 192.168.88.0/24 (or a single IP like 192.168.88.97).
- Save (✔). On standalone, changes apply automatically; UI may say “within ~15 minutes”.
7) Network-level validation
From the sender (Debian)
nc -vz 192.168.88.198 5044
sudo filebeat test output
sudo journalctl -u filebeat -e --no-pager
On Security Onion
sudo ss -lntp | grep 5044 # Logstash listening
sudo tcpdump -ni any port 5044
If you see SYN → SYN/ACK, the firewall path is open and Filebeat should ship events.
Done
- Debian ships Suricata & Zeek via Filebeat to SO Logstash (5044).
- Firewall allows your sender via the Elastic Agent endpoints hostgroup.
- Check dashboards in SOC/Kibana for suricata.* and zeek.* fields.
8) Add SSH logging in Zeek
-
Check current Zeek logs:
sudo ls -lh /opt/zeek/logs/current/ -
Enable SSH analyzers:
sudo nano /opt/zeek/share/zeek/site/local.zeek@load base/protocols/ssh @load policy/protocols/ssh/detect-bruteforcing -
Deploy Zeek to apply changes:
sudo /opt/zeek/bin/zeekctl deploy -
Verify the SSH service status (ensure there are no host-level errors):
sudo systemctl status ssh -
Generate SSH activity and confirm logs appear:
sudo ls -lh /opt/zeek/logs/current/