mirror of
https://github.com/Lanakod-Networks/suricata-grafana-docker.git
synced 2025-07-04 13:26:38 +03:00
first commit
This commit is contained in:
commit
eb27dcece2
66
docker-compose.yml
Normal file
66
docker-compose.yml
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
name: ids
|
||||||
|
volumes:
|
||||||
|
logs: {}
|
||||||
|
grafana-storage: {}
|
||||||
|
services:
|
||||||
|
suricata:
|
||||||
|
stdin_open: true
|
||||||
|
tty: true
|
||||||
|
network_mode: host
|
||||||
|
volumes:
|
||||||
|
- ./eve.json:/var/log/suricata/eve.json:rw
|
||||||
|
- ./suricata:/etc/suricata
|
||||||
|
- ./suricata-rules:/var/lib/suricata/rules
|
||||||
|
cap_add:
|
||||||
|
- net_admin
|
||||||
|
- net_raw
|
||||||
|
- sys_nice
|
||||||
|
image: jasonish/suricata:latest
|
||||||
|
command: -i eth0
|
||||||
|
|
||||||
|
loki:
|
||||||
|
image: grafana/loki:2.9.2
|
||||||
|
ports:
|
||||||
|
- "3100:3100"
|
||||||
|
volumes:
|
||||||
|
- ./loki-local-config.yaml:/etc/loki/local-config.yaml
|
||||||
|
command: -config.file=/etc/loki/local-config.yaml
|
||||||
|
|
||||||
|
promtail:
|
||||||
|
image: grafana/promtail:2.9.2
|
||||||
|
stdin_open: true
|
||||||
|
tty: true
|
||||||
|
volumes:
|
||||||
|
- ./eve.json:/var/log/eve.json:ro
|
||||||
|
- ./promtail-config.yml:/etc/promtail/config.yml
|
||||||
|
command: -config.file=/etc/promtail/config.yml
|
||||||
|
|
||||||
|
grafana:
|
||||||
|
volumes:
|
||||||
|
- grafana-storage:/var/lib/grafana
|
||||||
|
environment:
|
||||||
|
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
|
||||||
|
- GF_AUTH_ANONYMOUS_ENABLED=true
|
||||||
|
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
|
||||||
|
entrypoint:
|
||||||
|
- sh
|
||||||
|
- -euc
|
||||||
|
- |
|
||||||
|
mkdir -p /etc/grafana/provisioning/datasources
|
||||||
|
cat <<EOF > /etc/grafana/provisioning/datasources/ds.yaml
|
||||||
|
apiVersion: 1
|
||||||
|
datasources:
|
||||||
|
- name: Loki
|
||||||
|
type: loki
|
||||||
|
access: proxy
|
||||||
|
orgId: 1
|
||||||
|
url: http://loki:3100
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: true
|
||||||
|
version: 1
|
||||||
|
editable: false
|
||||||
|
EOF
|
||||||
|
/run.sh
|
||||||
|
image: grafana/grafana:latest
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
50
loki-local-config.yaml
Normal file
50
loki-local-config.yaml
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
auth_enabled: false
|
||||||
|
|
||||||
|
server:
|
||||||
|
http_listen_port: 3100
|
||||||
|
grpc_listen_port: 9096
|
||||||
|
|
||||||
|
common:
|
||||||
|
instance_addr: 127.0.0.1
|
||||||
|
path_prefix: /tmp/loki
|
||||||
|
storage:
|
||||||
|
filesystem:
|
||||||
|
chunks_directory: /tmp/loki/chunks
|
||||||
|
rules_directory: /tmp/loki/rules
|
||||||
|
replication_factor: 1
|
||||||
|
ring:
|
||||||
|
kvstore:
|
||||||
|
store: inmemory
|
||||||
|
|
||||||
|
query_range:
|
||||||
|
results_cache:
|
||||||
|
cache:
|
||||||
|
embedded_cache:
|
||||||
|
enabled: true
|
||||||
|
max_size_mb: 100
|
||||||
|
|
||||||
|
schema_config:
|
||||||
|
configs:
|
||||||
|
- from: 2020-10-24
|
||||||
|
store: tsdb
|
||||||
|
object_store: filesystem
|
||||||
|
schema: v13
|
||||||
|
index:
|
||||||
|
prefix: index_
|
||||||
|
period: 24h
|
||||||
|
|
||||||
|
ruler:
|
||||||
|
alertmanager_url: http://localhost:9093
|
||||||
|
|
||||||
|
# By default, Loki will send anonymous, but uniquely-identifiable usage and configuration
|
||||||
|
# analytics to Grafana Labs. These statistics are sent to https://stats.grafana.org/
|
||||||
|
#
|
||||||
|
# Statistics help us better understand how Loki is used, and they show us performance
|
||||||
|
# levels for most users. This helps us prioritize features and documentation.
|
||||||
|
# For more information on what's sent, look at
|
||||||
|
# https://github.com/grafana/loki/blob/main/pkg/analytics/stats.go
|
||||||
|
# Refer to the buildReport method to see what goes into a report.
|
||||||
|
#
|
||||||
|
# If you would like to disable reporting, uncomment the following lines:
|
||||||
|
#analytics:
|
||||||
|
# reporting_enabled: false
|
44
promtail-config.yml
Normal file
44
promtail-config.yml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
server:
|
||||||
|
http_listen_port: 9080
|
||||||
|
grpc_listen_port: 0
|
||||||
|
# Log only messages with the given severity or above. Supported values [debug,
|
||||||
|
# info, warn, error]
|
||||||
|
# log_level: debug
|
||||||
|
positions:
|
||||||
|
filename: /tmp/positions.yaml
|
||||||
|
clients:
|
||||||
|
- url: http://loki:3100/loki/api/v1/push
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: suricata
|
||||||
|
# json on eve.json
|
||||||
|
pipeline_stages:
|
||||||
|
- json:
|
||||||
|
expressions:
|
||||||
|
event_type: event_type
|
||||||
|
src_ip: src_ip
|
||||||
|
proto: proto
|
||||||
|
dest_port: dest_port
|
||||||
|
alert:
|
||||||
|
- json:
|
||||||
|
expressions:
|
||||||
|
action: action
|
||||||
|
signature_id: signature_id
|
||||||
|
signature: signature
|
||||||
|
category: category
|
||||||
|
severity: severity
|
||||||
|
source: alert
|
||||||
|
- labels:
|
||||||
|
event_type:
|
||||||
|
src_ip:
|
||||||
|
proto:
|
||||||
|
dest_port:
|
||||||
|
signature_id:
|
||||||
|
signature:
|
||||||
|
category:
|
||||||
|
severity:
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
- localhost
|
||||||
|
labels:
|
||||||
|
job: suricata_logs
|
||||||
|
__path__: /var/log/eve.json
|
0
suricata-rules/.gitkeep
Normal file
0
suricata-rules/.gitkeep
Normal file
51
suricata/classification.config
Normal file
51
suricata/classification.config
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#
|
||||||
|
# config classification:shortname,short description,priority
|
||||||
|
#
|
||||||
|
|
||||||
|
config classification: not-suspicious,Not Suspicious Traffic,3
|
||||||
|
config classification: unknown,Unknown Traffic,3
|
||||||
|
config classification: bad-unknown,Potentially Bad Traffic, 2
|
||||||
|
config classification: attempted-recon,Attempted Information Leak,2
|
||||||
|
config classification: successful-recon-limited,Information Leak,2
|
||||||
|
config classification: successful-recon-largescale,Large Scale Information Leak,2
|
||||||
|
config classification: attempted-dos,Attempted Denial of Service,2
|
||||||
|
config classification: successful-dos,Denial of Service,2
|
||||||
|
config classification: attempted-user,Attempted User Privilege Gain,1
|
||||||
|
config classification: unsuccessful-user,Unsuccessful User Privilege Gain,1
|
||||||
|
config classification: successful-user,Successful User Privilege Gain,1
|
||||||
|
config classification: attempted-admin,Attempted Administrator Privilege Gain,1
|
||||||
|
config classification: successful-admin,Successful Administrator Privilege Gain,1
|
||||||
|
|
||||||
|
# NEW CLASSIFICATIONS
|
||||||
|
config classification: rpc-portmap-decode,Decode of an RPC Query,2
|
||||||
|
config classification: shellcode-detect,Executable code was detected,1
|
||||||
|
config classification: string-detect,A suspicious string was detected,3
|
||||||
|
config classification: suspicious-filename-detect,A suspicious filename was detected,2
|
||||||
|
config classification: suspicious-login,An attempted login using a suspicious username was detected,2
|
||||||
|
config classification: system-call-detect,A system call was detected,2
|
||||||
|
config classification: tcp-connection,A TCP connection was detected,4
|
||||||
|
config classification: trojan-activity,A Network Trojan was detected, 1
|
||||||
|
config classification: unusual-client-port-connection,A client was using an unusual port,2
|
||||||
|
config classification: network-scan,Detection of a Network Scan,3
|
||||||
|
config classification: denial-of-service,Detection of a Denial of Service Attack,2
|
||||||
|
config classification: non-standard-protocol,Detection of a non-standard protocol or event,2
|
||||||
|
config classification: protocol-command-decode,Generic Protocol Command Decode,3
|
||||||
|
config classification: web-application-activity,access to a potentially vulnerable web application,2
|
||||||
|
config classification: web-application-attack,Web Application Attack,1
|
||||||
|
config classification: misc-activity,Misc activity,3
|
||||||
|
config classification: misc-attack,Misc Attack,2
|
||||||
|
config classification: icmp-event,Generic ICMP event,3
|
||||||
|
config classification: inappropriate-content,Inappropriate Content was Detected,1
|
||||||
|
config classification: policy-violation,Potential Corporate Privacy Violation,1
|
||||||
|
config classification: default-login-attempt,Attempt to login by a default username and password,2
|
||||||
|
|
||||||
|
# Update
|
||||||
|
config classification: targeted-activity,Targeted Malicious Activity was Detected,1
|
||||||
|
config classification: exploit-kit,Exploit Kit Activity Detected,1
|
||||||
|
config classification: external-ip-check,Device Retrieving External IP Address Detected,2
|
||||||
|
config classification: domain-c2,Domain Observed Used for C2 Detected,1
|
||||||
|
config classification: pup-activity,Possibly Unwanted Program Detected,2
|
||||||
|
config classification: credential-theft,Successful Credential Theft Detected,1
|
||||||
|
config classification: social-engineering,Possible Social Engineering Attempted,2
|
||||||
|
config classification: coin-mining,Crypto Currency Mining Activity Detected,2
|
||||||
|
config classification: command-and-control,Malware Command and Control Activity Detected,1
|
26
suricata/reference.config
Normal file
26
suricata/reference.config
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# config reference: system URL
|
||||||
|
|
||||||
|
config reference: bugtraq http://www.securityfocus.com/bid/
|
||||||
|
config reference: bid http://www.securityfocus.com/bid/
|
||||||
|
config reference: cve http://cve.mitre.org/cgi-bin/cvename.cgi?name=
|
||||||
|
#config reference: cve http://cvedetails.com/cve/
|
||||||
|
config reference: secunia http://www.secunia.com/advisories/
|
||||||
|
|
||||||
|
#whitehats is unfortunately gone
|
||||||
|
config reference: arachNIDS http://www.whitehats.com/info/IDS
|
||||||
|
|
||||||
|
config reference: McAfee http://vil.nai.com/vil/content/v_
|
||||||
|
config reference: nessus http://cgi.nessus.org/plugins/dump.php3?id=
|
||||||
|
config reference: url http://
|
||||||
|
config reference: et http://doc.emergingthreats.net/
|
||||||
|
config reference: etpro http://doc.emergingthreatspro.com/
|
||||||
|
config reference: telus http://
|
||||||
|
config reference: osvdb http://osvdb.org/show/osvdb/
|
||||||
|
config reference: threatexpert http://www.threatexpert.com/report.aspx?md5=
|
||||||
|
config reference: md5 http://www.threatexpert.com/report.aspx?md5=
|
||||||
|
config reference: exploitdb http://www.exploit-db.com/exploits/
|
||||||
|
config reference: openpacket https://www.openpacket.org/capture/grab/
|
||||||
|
config reference: securitytracker http://securitytracker.com/id?
|
||||||
|
config reference: secunia http://secunia.com/advisories/
|
||||||
|
config reference: xforce http://xforce.iss.net/xforce/xfdb/
|
||||||
|
config reference: msft http://technet.microsoft.com/security/bulletin/
|
2188
suricata/suricata.yaml
Normal file
2188
suricata/suricata.yaml
Normal file
File diff suppressed because it is too large
Load Diff
32
suricata/threshold.config
Normal file
32
suricata/threshold.config
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# Thresholding:
|
||||||
|
#
|
||||||
|
# This feature is used to reduce the number of logged alerts for noisy rules.
|
||||||
|
# Thresholding commands limit the number of times a particular event is logged
|
||||||
|
# during a specified time interval.
|
||||||
|
#
|
||||||
|
# The syntax is the following:
|
||||||
|
#
|
||||||
|
# threshold gen_id <gen_id>, sig_id <sig_id>, type <limit|threshold|both>, track <by_src|by_dst>, count <n>, seconds <t>
|
||||||
|
#
|
||||||
|
# event_filter gen_id <gen_id>, sig_id <sig_id>, type <limit|threshold|both>, track <by_src|by_dst>, count <n>, seconds <t>
|
||||||
|
#
|
||||||
|
# suppress gen_id <gid>, sig_id <sid>
|
||||||
|
# suppress gen_id <gid>, sig_id <sid>, track <by_src|by_dst>, ip <ip|subnet>
|
||||||
|
#
|
||||||
|
# The options are documented at https://docs.suricata.io/en/latest/configuration/global-thresholds.html
|
||||||
|
#
|
||||||
|
# Please note that thresholding can also be set inside a signature. The interaction between rule based thresholds
|
||||||
|
# and global thresholds is documented here:
|
||||||
|
# https://docs.suricata.io/en/latest/configuration/global-thresholds.html#global-thresholds-vs-rule-thresholds
|
||||||
|
|
||||||
|
# Limit to 10 alerts every 10 seconds for each source host
|
||||||
|
#threshold gen_id 0, sig_id 0, type limit, track by_src, count 10, seconds 10
|
||||||
|
|
||||||
|
# Limit to 1 alert every 10 seconds for signature with sid 2404000 per destination host
|
||||||
|
#threshold gen_id 1, sig_id 2404000, type limit, track by_dst, count 1, seconds 10
|
||||||
|
|
||||||
|
# Avoid to alert on f-secure update
|
||||||
|
# Example taken from https://blog.inliniac.net/2012/03/07/f-secure-av-updates-and-suricata-ips/
|
||||||
|
#suppress gen_id 1, sig_id 2009557, track by_src, ip 217.110.97.128/25
|
||||||
|
#suppress gen_id 1, sig_id 2012086, track by_src, ip 217.110.97.128/25
|
||||||
|
#suppress gen_id 1, sig_id 2003614, track by_src, ip 217.110.97.128/25
|
1
suricata/update.yaml
Normal file
1
suricata/update.yaml
Normal file
@ -0,0 +1 @@
|
|||||||
|
reload-command: suricatasc -c reload-rules
|
Loading…
Reference in New Issue
Block a user