mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2025-12-07 01:32:47 +01:00
Merge pull request #896 from Security-Onion-Solutions/feature/suripillar
Feature/suripillar
This commit is contained in:
14
salt/suricata/afpacket.map.jinja
Normal file
14
salt/suricata/afpacket.map.jinja
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{% load_yaml as afpacket %}
|
||||||
|
af-packet:
|
||||||
|
- interface: {{ salt['pillar.get']('sensor:interface', 'bond0') }}
|
||||||
|
cluster-id: 59
|
||||||
|
cluster-type: cluster_flow
|
||||||
|
defrag: yes
|
||||||
|
use-mmap: yes
|
||||||
|
tpacket-v3: yes
|
||||||
|
ring-size: {{ salt['pillar.get']('sensor:suriringsize', '2048') }}
|
||||||
|
- interface: default
|
||||||
|
#threads: auto
|
||||||
|
#use-mmap: no
|
||||||
|
#tpacket-v3: yes
|
||||||
|
{% endload %}
|
||||||
594
salt/suricata/defaults.yaml
Normal file
594
salt/suricata/defaults.yaml
Normal file
@@ -0,0 +1,594 @@
|
|||||||
|
suricata:
|
||||||
|
config:
|
||||||
|
vars:
|
||||||
|
address-groups:
|
||||||
|
HOME_NET: "[192.168.0.0/16]"
|
||||||
|
EXTERNAL_NET: "!$HOME_NET"
|
||||||
|
HTTP_SERVERS: "$HOME_NET"
|
||||||
|
SMTP_SERVERS: "$HOME_NET"
|
||||||
|
SQL_SERVERS: "$HOME_NET"
|
||||||
|
DNS_SERVERS: "$HOME_NET"
|
||||||
|
TELNET_SERVERS: "$HOME_NET"
|
||||||
|
AIM_SERVERS: "$EXTERNAL_NET"
|
||||||
|
DC_SERVERS: "$HOME_NET"
|
||||||
|
DNP3_SERVER: "$HOME_NET"
|
||||||
|
DNP3_CLIENT: "$HOME_NET"
|
||||||
|
MODBUS_CLIENT: "$HOME_NET"
|
||||||
|
MODBUS_SERVER: "$HOME_NET"
|
||||||
|
ENIP_CLIENT: "$HOME_NET"
|
||||||
|
ENIP_SERVER: "$HOME_NET"
|
||||||
|
port-groups:
|
||||||
|
HTTP_PORTS: "80"
|
||||||
|
SHELLCODE_PORTS: "!80"
|
||||||
|
ORACLE_PORTS: 1521
|
||||||
|
SSH_PORTS: 22
|
||||||
|
DNP3_PORTS: 20000
|
||||||
|
MODBUS_PORTS: 502
|
||||||
|
FILE_DATA_PORTS: "[$HTTP_PORTS,110,143]"
|
||||||
|
FTP_PORTS: 21
|
||||||
|
VXLAN_PORTS: 4789
|
||||||
|
TEREDO_PORTS: 3544
|
||||||
|
default-log-dir: /var/log/suricata/
|
||||||
|
stats:
|
||||||
|
enabled: "yes"
|
||||||
|
interval: 30
|
||||||
|
#decoder-events: true
|
||||||
|
#decoder-events-prefix: "decoder.event"
|
||||||
|
#stream-events: false
|
||||||
|
outputs:
|
||||||
|
- fast:
|
||||||
|
enabled: "no"
|
||||||
|
filename: fast.log
|
||||||
|
append: "yes"
|
||||||
|
- eve-log:
|
||||||
|
enabled: "yes"
|
||||||
|
filetype: regular
|
||||||
|
filename: /nsm/eve-%Y-%m-%d-%H:%M.json
|
||||||
|
rotate-interval: hour
|
||||||
|
#prefix: "@cee: "
|
||||||
|
#identity: "suricata"
|
||||||
|
#facility: local5
|
||||||
|
#level: Info
|
||||||
|
#redis:
|
||||||
|
# server: 127.0.0.1
|
||||||
|
# port: 6379
|
||||||
|
# async: true
|
||||||
|
# mode: list
|
||||||
|
# key: suricata
|
||||||
|
# pipelining:
|
||||||
|
# enabled: "yes"
|
||||||
|
# batch-size: 10
|
||||||
|
#metadata: "no"
|
||||||
|
pcap-file: false
|
||||||
|
community-id: true
|
||||||
|
community-id-seed: 0
|
||||||
|
xff:
|
||||||
|
enabled: "no"
|
||||||
|
mode: extra-data
|
||||||
|
deployment: reverse
|
||||||
|
header: X-Forwarded-For
|
||||||
|
types:
|
||||||
|
- alert:
|
||||||
|
payload: "no"
|
||||||
|
payload-buffer-size: 4kb
|
||||||
|
payload-printable: "yes"
|
||||||
|
packet: "yes"
|
||||||
|
metadata:
|
||||||
|
app-layer: false
|
||||||
|
flow: false
|
||||||
|
rule:
|
||||||
|
metadata: true
|
||||||
|
raw: true
|
||||||
|
# http-body: "yes"
|
||||||
|
# http-body-printable: "yes"
|
||||||
|
tagged-packets: "no"
|
||||||
|
- unified2-alert:
|
||||||
|
enabled: "no"
|
||||||
|
- http-log:
|
||||||
|
enabled: "no"
|
||||||
|
filename: http.log
|
||||||
|
append: "yes"
|
||||||
|
#extended: "yes"
|
||||||
|
#custom: "yes"
|
||||||
|
#customformat: ""
|
||||||
|
#filetype: regular
|
||||||
|
- tls-log:
|
||||||
|
enabled: "no"
|
||||||
|
filename: tls.log
|
||||||
|
append: "yes"
|
||||||
|
#extended: "yes"
|
||||||
|
#custom: "yes"
|
||||||
|
#customformat: ""
|
||||||
|
#filetype: regular
|
||||||
|
#session-resumption: "no"
|
||||||
|
- tls-store:
|
||||||
|
enabled: "no"
|
||||||
|
#certs-log-dir: certs
|
||||||
|
- pcap-log:
|
||||||
|
enabled: "no"
|
||||||
|
filename: log.pcap
|
||||||
|
limit: 1000mb
|
||||||
|
max-files: 2000
|
||||||
|
compression: none
|
||||||
|
#lz4-checksum: "no"
|
||||||
|
#lz4-level: 0
|
||||||
|
|
||||||
|
mode: normal
|
||||||
|
#dir: /nsm_data/
|
||||||
|
#ts-format: usec
|
||||||
|
use-stream-depth: "no"
|
||||||
|
honor-pass-rules: "no"
|
||||||
|
- alert-debug:
|
||||||
|
enabled: "no"
|
||||||
|
filename: alert-debug.log
|
||||||
|
append: "yes"
|
||||||
|
#filetype: regular
|
||||||
|
- alert-prelude:
|
||||||
|
enabled: "no"
|
||||||
|
profile: suricata
|
||||||
|
log-packet-content: "no"
|
||||||
|
log-packet-header: "yes"
|
||||||
|
- stats:
|
||||||
|
enabled: "yes"
|
||||||
|
filename: stats.log
|
||||||
|
append: "yes"
|
||||||
|
totals: "yes"
|
||||||
|
threads: "no"
|
||||||
|
null-values: "yes"
|
||||||
|
- syslog:
|
||||||
|
enabled: "no"
|
||||||
|
#identity: "suricata"
|
||||||
|
facility: local5
|
||||||
|
#level: Info
|
||||||
|
- drop:
|
||||||
|
enabled: "no"
|
||||||
|
- file-store:
|
||||||
|
version: 2
|
||||||
|
enabled: "no"
|
||||||
|
#dir: filestore
|
||||||
|
#write-fileinfo: "yes"
|
||||||
|
#force-filestore: "yes"
|
||||||
|
#stream-depth: 0
|
||||||
|
#max-open-files: 1000
|
||||||
|
#force-hash: [sha1, md5]
|
||||||
|
xff:
|
||||||
|
enabled: "no"
|
||||||
|
mode: extra-data
|
||||||
|
deployment: reverse
|
||||||
|
header: X-Forwarded-For
|
||||||
|
- file-store:
|
||||||
|
enabled: "no"
|
||||||
|
- tcp-data:
|
||||||
|
enabled: "no"
|
||||||
|
type: file
|
||||||
|
filename: tcp-data.log
|
||||||
|
- http-body-data:
|
||||||
|
enabled: "no"
|
||||||
|
type: file
|
||||||
|
filename: http-data.log
|
||||||
|
- lua:
|
||||||
|
enabled: "no"
|
||||||
|
#scripts-dir: /etc/suricata/lua-output/
|
||||||
|
scripts:
|
||||||
|
# - script1.lua
|
||||||
|
logging:
|
||||||
|
default-log-level: notice
|
||||||
|
#default-log-format: "[%i] %t - (%f:%l) <%d> (%n) -- "
|
||||||
|
default-output-filter:
|
||||||
|
outputs:
|
||||||
|
- console:
|
||||||
|
enabled: "yes"
|
||||||
|
# type: json
|
||||||
|
- file:
|
||||||
|
enabled: "yes"
|
||||||
|
level: info
|
||||||
|
filename: suricata.log
|
||||||
|
# type: json
|
||||||
|
- syslog:
|
||||||
|
enabled: "no"
|
||||||
|
facility: local5
|
||||||
|
format: "[%i] <%d> -- "
|
||||||
|
# type: json
|
||||||
|
pcap:
|
||||||
|
- interface: eth0
|
||||||
|
#buffer-size: 16777216
|
||||||
|
#bpf-filter: "tcp and port 25"
|
||||||
|
#checksum-checks: auto
|
||||||
|
#threads: 16
|
||||||
|
#promisc: "no"
|
||||||
|
#snaplen: 1518
|
||||||
|
- interface: default
|
||||||
|
#checksum-checks: auto
|
||||||
|
pcap-file:
|
||||||
|
checksum-checks: auto
|
||||||
|
app-layer:
|
||||||
|
protocols:
|
||||||
|
krb5:
|
||||||
|
enabled: "yes"
|
||||||
|
snmp:
|
||||||
|
enabled: "yes"
|
||||||
|
ikev2:
|
||||||
|
enabled: "yes"
|
||||||
|
tls:
|
||||||
|
enabled: "yes"
|
||||||
|
detection-ports:
|
||||||
|
dp: 443
|
||||||
|
#ja3-fingerprints: auto
|
||||||
|
#encryption-handling: default
|
||||||
|
dcerpc:
|
||||||
|
enabled: "yes"
|
||||||
|
ftp:
|
||||||
|
enabled: "yes"
|
||||||
|
# memcap: 64mb
|
||||||
|
rdp:
|
||||||
|
#enabled: "no"
|
||||||
|
ssh:
|
||||||
|
enabled: "yes"
|
||||||
|
smtp:
|
||||||
|
enabled: "yes"
|
||||||
|
raw-extraction: "no"
|
||||||
|
mime:
|
||||||
|
decode-mime: "yes"
|
||||||
|
decode-base64: "yes"
|
||||||
|
decode-quoted-printable: "yes"
|
||||||
|
header-value-depth: 2000
|
||||||
|
extract-urls: "yes"
|
||||||
|
body-md5: "no"
|
||||||
|
inspected-tracker:
|
||||||
|
content-limit: 100000
|
||||||
|
content-inspect-min-size: 32768
|
||||||
|
content-inspect-window: 4096
|
||||||
|
imap:
|
||||||
|
enabled: detection-only
|
||||||
|
smb:
|
||||||
|
enabled: "yes"
|
||||||
|
detection-ports:
|
||||||
|
dp: 139, 445
|
||||||
|
#stream-depth: 0
|
||||||
|
|
||||||
|
nfs:
|
||||||
|
enabled: "yes"
|
||||||
|
tftp:
|
||||||
|
enabled: "yes"
|
||||||
|
dns:
|
||||||
|
#global-memcap: 16mb
|
||||||
|
#state-memcap: 512kb
|
||||||
|
#request-flood: 500
|
||||||
|
tcp:
|
||||||
|
enabled: "yes"
|
||||||
|
detection-ports:
|
||||||
|
dp: 53
|
||||||
|
udp:
|
||||||
|
enabled: "yes"
|
||||||
|
detection-ports:
|
||||||
|
dp: 53
|
||||||
|
http:
|
||||||
|
enabled: "yes"
|
||||||
|
# memcap:
|
||||||
|
# default-config:
|
||||||
|
# personality:
|
||||||
|
# request-body-limit:
|
||||||
|
# response-body-limit:
|
||||||
|
# server-config:
|
||||||
|
# address:
|
||||||
|
# personalitiy:
|
||||||
|
libhtp:
|
||||||
|
default-config:
|
||||||
|
personality: IDS
|
||||||
|
request-body-limit: 100kb
|
||||||
|
response-body-limit: 100kb
|
||||||
|
request-body-minimal-inspect-size: 32kb
|
||||||
|
request-body-inspect-window: 4kb
|
||||||
|
response-body-minimal-inspect-size: 40kb
|
||||||
|
response-body-inspect-window: 16kb
|
||||||
|
response-body-decompress-layer-limit: 2
|
||||||
|
http-body-inline: auto
|
||||||
|
# compress-depth:
|
||||||
|
# decompress-depth:
|
||||||
|
swf-decompression:
|
||||||
|
enabled: "yes"
|
||||||
|
type: both
|
||||||
|
compress-depth: 0
|
||||||
|
decompress-depth: 0
|
||||||
|
#randomize-inspection-sizes: "yes"
|
||||||
|
#randomize-inspection-range: 10
|
||||||
|
double-decode-path: "no"
|
||||||
|
double-decode-query: "no"
|
||||||
|
#lzma-enabled: "yes"
|
||||||
|
#lzma-memlimit: 1mb
|
||||||
|
#compression-bomb-limit: 1mb
|
||||||
|
server-config:
|
||||||
|
#- apache:
|
||||||
|
# address: [192.168.1.0/24, 127.0.0.0/8, "::1"]
|
||||||
|
# personality: Apache_2
|
||||||
|
# request-body-limit: 4096
|
||||||
|
# response-body-limit: 4096
|
||||||
|
# double-decode-path: "no"
|
||||||
|
# double-decode-query: "no"
|
||||||
|
#- iis7:
|
||||||
|
# address:
|
||||||
|
# - 192.168.0.0/24
|
||||||
|
# - 192.168.10.0/24
|
||||||
|
# personality: IIS_7_0
|
||||||
|
# request-body-limit: 4096
|
||||||
|
# response-body-limit: 4096
|
||||||
|
# double-decode-path: "no"
|
||||||
|
# double-decode-query: "no"
|
||||||
|
modbus:
|
||||||
|
#request-flood: 500
|
||||||
|
enabled: "no"
|
||||||
|
detection-ports:
|
||||||
|
dp: 502
|
||||||
|
stream-depth: 0
|
||||||
|
dnp3:
|
||||||
|
enabled: "no"
|
||||||
|
detection-ports:
|
||||||
|
dp: 20000
|
||||||
|
enip:
|
||||||
|
enabled: "no"
|
||||||
|
detection-ports:
|
||||||
|
dp: 44818
|
||||||
|
sp: 44818
|
||||||
|
ntp:
|
||||||
|
enabled: "yes"
|
||||||
|
dhcp:
|
||||||
|
enabled: "yes"
|
||||||
|
sip:
|
||||||
|
#enabled: "no"
|
||||||
|
asn1-max-frames: 256
|
||||||
|
run-as:
|
||||||
|
user: suricata
|
||||||
|
group: suricata
|
||||||
|
#sensor-name: suricata
|
||||||
|
#pid-file: /var/run/suricata.pid
|
||||||
|
#daemon-directory: "/"
|
||||||
|
#umask: 022
|
||||||
|
coredump:
|
||||||
|
max-dump: unlimited
|
||||||
|
host-mode: auto
|
||||||
|
max-pending-packets: 1024
|
||||||
|
runmode: workers
|
||||||
|
#autofp-scheduler: hash
|
||||||
|
default-packet-size: 1500
|
||||||
|
unix-command:
|
||||||
|
enabled: auto
|
||||||
|
#filename: custom.socket
|
||||||
|
#magic-file: /usr/share/file/magic
|
||||||
|
#magic-file:
|
||||||
|
#geoip-database: /usr/local/share/GeoLite2/GeoLite2-Country.mmdb
|
||||||
|
legacy:
|
||||||
|
uricontent: enabled
|
||||||
|
#reputation-categories-file: /etc/suricata/iprep/categories.txt
|
||||||
|
#default-reputation-path: /etc/suricata/iprep
|
||||||
|
#reputation-files:
|
||||||
|
# - reputation.list
|
||||||
|
engine-analysis:
|
||||||
|
rules-fast-pattern: "yes"
|
||||||
|
rules: "yes"
|
||||||
|
pcre:
|
||||||
|
match-limit: 3500
|
||||||
|
match-limit-recursion: 1500
|
||||||
|
host-os-policy:
|
||||||
|
windows: [0.0.0.0/0]
|
||||||
|
bsd: []
|
||||||
|
bsd-right: []
|
||||||
|
old-linux: []
|
||||||
|
linux: []
|
||||||
|
old-solaris: []
|
||||||
|
solaris: []
|
||||||
|
hpux10: []
|
||||||
|
hpux11: []
|
||||||
|
irix: []
|
||||||
|
macos: []
|
||||||
|
vista: []
|
||||||
|
windows2k3: []
|
||||||
|
defrag:
|
||||||
|
memcap: 32mb
|
||||||
|
hash-size: 65536
|
||||||
|
trackers: 65535
|
||||||
|
max-frags: 65535
|
||||||
|
prealloc: "yes"
|
||||||
|
timeout: 60
|
||||||
|
flow:
|
||||||
|
memcap: 128mb
|
||||||
|
hash-size: 65536
|
||||||
|
prealloc: 10000
|
||||||
|
emergency-recovery: 30
|
||||||
|
#managers: 1
|
||||||
|
#recyclers: 1
|
||||||
|
vlan:
|
||||||
|
use-for-tracking: true
|
||||||
|
flow-timeouts:
|
||||||
|
default:
|
||||||
|
new: 30
|
||||||
|
established: 300
|
||||||
|
closed: 0
|
||||||
|
bypassed: 100
|
||||||
|
emergency-new: 10
|
||||||
|
emergency-established: 100
|
||||||
|
emergency-closed: 0
|
||||||
|
emergency-bypassed: 50
|
||||||
|
tcp:
|
||||||
|
new: 60
|
||||||
|
established: 600
|
||||||
|
closed: 60
|
||||||
|
bypassed: 100
|
||||||
|
emergency-new: 5
|
||||||
|
emergency-established: 100
|
||||||
|
emergency-closed: 10
|
||||||
|
emergency-bypassed: 50
|
||||||
|
udp:
|
||||||
|
new: 30
|
||||||
|
established: 300
|
||||||
|
bypassed: 100
|
||||||
|
emergency-new: 10
|
||||||
|
emergency-established: 100
|
||||||
|
emergency-bypassed: 50
|
||||||
|
icmp:
|
||||||
|
new: 30
|
||||||
|
established: 300
|
||||||
|
bypassed: 100
|
||||||
|
emergency-new: 10
|
||||||
|
emergency-established: 100
|
||||||
|
emergency-bypassed: 50
|
||||||
|
stream:
|
||||||
|
memcap: 64mb
|
||||||
|
checksum-validation: "yes"
|
||||||
|
inline: auto
|
||||||
|
reassembly:
|
||||||
|
memcap: 256mb
|
||||||
|
depth: 1mb
|
||||||
|
toserver-chunk-size: 2560
|
||||||
|
toclient-chunk-size: 2560
|
||||||
|
randomize-chunk-size: "yes"
|
||||||
|
#randomize-chunk-range: 10
|
||||||
|
#raw: "yes"
|
||||||
|
#segment-prealloc: 2048
|
||||||
|
#check-overlap-different-data: true
|
||||||
|
host:
|
||||||
|
hash-size: 4096
|
||||||
|
prealloc: 1000
|
||||||
|
memcap: 32mb
|
||||||
|
#ippair:
|
||||||
|
# hash-size: 4096
|
||||||
|
# prealloc: 1000
|
||||||
|
# memcap: 32mb
|
||||||
|
decoder:
|
||||||
|
teredo:
|
||||||
|
enabled: true
|
||||||
|
ports: $TEREDO_PORTS
|
||||||
|
vxlan:
|
||||||
|
enabled: true
|
||||||
|
ports: $VXLAN_PORTS
|
||||||
|
erspan:
|
||||||
|
typeI:
|
||||||
|
enabled: false
|
||||||
|
detect:
|
||||||
|
profile: medium
|
||||||
|
custom-values:
|
||||||
|
toclient-groups: 3
|
||||||
|
toserver-groups: 25
|
||||||
|
sgh-mpm-context: auto
|
||||||
|
inspection-recursion-limit: 3000
|
||||||
|
#delayed-detect: "yes"
|
||||||
|
prefilter:
|
||||||
|
default: mpm
|
||||||
|
grouping:
|
||||||
|
#tcp-whitelist: 53, 80, 139, 443, 445, 1433, 3306, 3389, 6666, 6667, 8080
|
||||||
|
#udp-whitelist: 53, 135, 5060
|
||||||
|
|
||||||
|
profiling:
|
||||||
|
#inspect-logging-threshold: 200
|
||||||
|
grouping:
|
||||||
|
dump-to-disk: false
|
||||||
|
include-rules: false
|
||||||
|
include-mpm-stats: false
|
||||||
|
mpm-algo: auto
|
||||||
|
spm-algo: auto
|
||||||
|
threading:
|
||||||
|
set-cpu-affinity: "yes"
|
||||||
|
detect-thread-ratio: 1.0
|
||||||
|
luajit:
|
||||||
|
states: 128
|
||||||
|
|
||||||
|
profiling:
|
||||||
|
#sample-rate: 1000
|
||||||
|
rules:
|
||||||
|
enabled: "yes"
|
||||||
|
filename: rule_perf.log
|
||||||
|
append: "yes"
|
||||||
|
#sort: avgticks
|
||||||
|
limit: 10
|
||||||
|
json: "yes"
|
||||||
|
keywords:
|
||||||
|
enabled: "yes"
|
||||||
|
filename: keyword_perf.log
|
||||||
|
append: "yes"
|
||||||
|
|
||||||
|
prefilter:
|
||||||
|
enabled: "yes"
|
||||||
|
filename: prefilter_perf.log
|
||||||
|
append: "yes"
|
||||||
|
rulegroups:
|
||||||
|
enabled: "yes"
|
||||||
|
filename: rule_group_perf.log
|
||||||
|
append: "yes"
|
||||||
|
packets:
|
||||||
|
enabled: "yes"
|
||||||
|
filename: packet_stats.log
|
||||||
|
append: "yes"
|
||||||
|
csv:
|
||||||
|
enabled: "no"
|
||||||
|
filename: packet_stats.csv
|
||||||
|
locks:
|
||||||
|
enabled: "no"
|
||||||
|
filename: lock_stats.log
|
||||||
|
append: "yes"
|
||||||
|
|
||||||
|
pcap-log:
|
||||||
|
enabled: "no"
|
||||||
|
filename: pcaplog_stats.log
|
||||||
|
append: "yes"
|
||||||
|
nfq:
|
||||||
|
# mode: accept
|
||||||
|
# repeat-mark: 1
|
||||||
|
# repeat-mask: 1
|
||||||
|
# bypass-mark: 1
|
||||||
|
# bypass-mask: 1
|
||||||
|
# route-queue: 2
|
||||||
|
# batchcount: 20
|
||||||
|
# fail-open: "yes"
|
||||||
|
nflog:
|
||||||
|
- group: 2
|
||||||
|
buffer-size: 18432
|
||||||
|
- group: default
|
||||||
|
qthreshold: 1
|
||||||
|
qtimeout: 100
|
||||||
|
max-size: 20000
|
||||||
|
capture:
|
||||||
|
#checksum-validation: none
|
||||||
|
netmap:
|
||||||
|
- interface: eth2
|
||||||
|
#threads: auto
|
||||||
|
#copy-mode: tap
|
||||||
|
#copy-iface: eth3
|
||||||
|
# disable-promisc: "no"
|
||||||
|
#checksum-checks: auto
|
||||||
|
#bpf-filter: port 80 or udp
|
||||||
|
#- interface: eth3
|
||||||
|
#threads: auto
|
||||||
|
#copy-mode: tap
|
||||||
|
#copy-iface: eth2
|
||||||
|
- interface: default
|
||||||
|
pfring:
|
||||||
|
- interface: eth0
|
||||||
|
threads: auto
|
||||||
|
cluster-id: 99
|
||||||
|
cluster-type: cluster_flow
|
||||||
|
#bpf-filter: tcp
|
||||||
|
#bypass: "yes"
|
||||||
|
#checksum-checks: auto
|
||||||
|
#- interface: eth1
|
||||||
|
# threads: 3
|
||||||
|
# cluster-id: 93
|
||||||
|
# cluster-type: cluster_flow
|
||||||
|
- interface: default
|
||||||
|
#threads: 2
|
||||||
|
ipfw:
|
||||||
|
# ipfw-reinjection-rule-number: 5500
|
||||||
|
napatech:
|
||||||
|
#hba: -1
|
||||||
|
#use-all-streams: "no"
|
||||||
|
streams: ["0-3"]
|
||||||
|
auto-config: "yes"
|
||||||
|
ports: [all]
|
||||||
|
hashmode: hash5tuplesorted
|
||||||
|
default-rule-path: /etc/suricata/rules
|
||||||
|
rule-files:
|
||||||
|
- all.rules
|
||||||
|
classification-file: /etc/suricata/classification.config
|
||||||
|
reference-config-file: /etc/suricata/reference.config
|
||||||
|
# threshold-file: /etc/suricata/threshold.config
|
||||||
|
#include: include1.yaml
|
||||||
|
#include: include2.yaml
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
3
salt/suricata/files/suricata.yaml.jinja
Normal file
3
salt/suricata/files/suricata.yaml.jinja
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
---
|
||||||
|
{{ suricata_config | yaml(False) }}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -20,6 +20,9 @@
|
|||||||
{% set BPF_NIDS = salt['pillar.get']('nids:bpf') %}
|
{% set BPF_NIDS = salt['pillar.get']('nids:bpf') %}
|
||||||
{% set BPF_STATUS = 0 %}
|
{% set BPF_STATUS = 0 %}
|
||||||
|
|
||||||
|
{# import_yaml 'suricata/files/defaults2.yaml' as suricata #}
|
||||||
|
{% from 'suricata/suricata_config.map.jinja' import suricata_defaults as suricata_config with context %}
|
||||||
|
|
||||||
# Suricata
|
# Suricata
|
||||||
|
|
||||||
# Add Suricata Group
|
# Add Suricata Group
|
||||||
@@ -86,11 +89,9 @@ surilogscript:
|
|||||||
suriconfigsync:
|
suriconfigsync:
|
||||||
file.managed:
|
file.managed:
|
||||||
- name: /opt/so/conf/suricata/suricata.yaml
|
- name: /opt/so/conf/suricata/suricata.yaml
|
||||||
{%- if BROVER != 'SURICATA' %}
|
- source: salt://suricata/files/suricata.yaml.jinja
|
||||||
- source: salt://suricata/files/suricata.yaml
|
- context:
|
||||||
{%- else %}
|
suricata_config: {{ suricata_config.suricata.config }}
|
||||||
- source: salt://suricata/files/suricataMETA.yaml
|
|
||||||
{%- endif %}
|
|
||||||
- user: 940
|
- user: 940
|
||||||
- group: 940
|
- group: 940
|
||||||
- template: jinja
|
- template: jinja
|
||||||
|
|||||||
57
salt/suricata/suricata_config.map.jinja
Normal file
57
salt/suricata/suricata_config.map.jinja
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
{% import_yaml 'suricata/defaults.yaml' as suricata_defaults with context %}
|
||||||
|
{% import_yaml 'suricata/suricata_meta.yaml' as suricata_meta with context %}
|
||||||
|
{% from 'suricata/threading.map.jinja' import cpu_affinity with context %}
|
||||||
|
{% from 'suricata/afpacket.map.jinja' import afpacket %}
|
||||||
|
{% set suricata_pillar = salt['pillar.get']('suricata:config', {}) %}
|
||||||
|
{% set default_evelog_index = [] %}
|
||||||
|
{% set surimeta_evelog_index = [] %}
|
||||||
|
|
||||||
|
{% if salt['pillar.get']('sensor:hnsensor') %}
|
||||||
|
{% load_yaml as homenet %}
|
||||||
|
HOME_NET: "[{{salt['pillar.get']('sensor:hnsensor')}}]"
|
||||||
|
{% endload %}
|
||||||
|
{% else %}
|
||||||
|
{% load_yaml as homenet %}
|
||||||
|
HOME_NET: "[{{salt['pillar.get']('static:hnmaster', '')}}]"
|
||||||
|
{% endload %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% set hardware_header = 15 %}
|
||||||
|
{% set default_packet_size = salt['grains.filter_by']({
|
||||||
|
'*_eval': {
|
||||||
|
'default-packet-size': salt['pillar.get']('sensor:mtu', 1500) + hardware_header,
|
||||||
|
},
|
||||||
|
'*_helix': {
|
||||||
|
'default-packet-size': salt['pillar.get']('sensor:mtu', 9000) + hardware_header,
|
||||||
|
},
|
||||||
|
'*': {
|
||||||
|
'default-packet-size': salt['pillar.get']('sensor:mtu', 1500) + hardware_header,
|
||||||
|
},
|
||||||
|
},grain='id') %}
|
||||||
|
|
||||||
|
{# Find the index of eve-log so it can be updated later #}
|
||||||
|
{% for li in suricata_defaults.suricata.config.outputs %}
|
||||||
|
{% if 'eve-log' in li.keys() %}
|
||||||
|
{% do default_evelog_index.append(loop.index0) %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% set default_evelog_index = default_evelog_index[0] %}
|
||||||
|
|
||||||
|
{# Find the index of eve-log so it can be grabbed later #}
|
||||||
|
{% for li in suricata_meta.suricata.config.outputs %}
|
||||||
|
{% if 'eve-log' in li.keys() %}
|
||||||
|
{% do surimeta_evelog_index.append(loop.index0) %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% set surimeta_evelog_index = surimeta_evelog_index[0] %}
|
||||||
|
|
||||||
|
{% if salt['pillar.get']('static:broversion', 'ZEEK') == 'SURICATA' %}
|
||||||
|
{% do suricata_defaults.suricata.config.outputs[default_evelog_index]['eve-log'].types.extend(suricata_meta.suricata.config.outputs[surimeta_evelog_index]['eve-log'].types) %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% do suricata_defaults.suricata.config.update(default_packet_size) %}
|
||||||
|
{% do suricata_defaults.suricata.config.threading.update(cpu_affinity) %}
|
||||||
|
{% do suricata_defaults.suricata.config.update(afpacket) %}
|
||||||
|
{% do suricata_defaults.suricata.config.vars['address-groups'].update(homenet) %}
|
||||||
|
|
||||||
|
{% do salt['defaults.merge'](suricata_defaults.suricata.config, suricata_pillar, in_place=True) %}
|
||||||
58
salt/suricata/suricata_meta.yaml
Normal file
58
salt/suricata/suricata_meta.yaml
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
suricata:
|
||||||
|
config:
|
||||||
|
outputs:
|
||||||
|
- eve-log:
|
||||||
|
types:
|
||||||
|
- anomaly:
|
||||||
|
enabled: "no"
|
||||||
|
types:
|
||||||
|
decode: "no"
|
||||||
|
stream: "no"
|
||||||
|
applayer: "yes"
|
||||||
|
packethdr: "no"
|
||||||
|
- http:
|
||||||
|
extended: "yes"
|
||||||
|
#custom: [Accept-Encoding, Accept-Language, Authorization]
|
||||||
|
# dump-all-headers: none
|
||||||
|
- dns:
|
||||||
|
version: 2
|
||||||
|
enabled: "yes"
|
||||||
|
#requests: "no"
|
||||||
|
#responses: "no"
|
||||||
|
#formats: [detailed, grouped]
|
||||||
|
#types: [a, aaaa, cname, mx, ns, ptr, txt]
|
||||||
|
- tls:
|
||||||
|
extended: "yes"
|
||||||
|
#session-resumption: "no"
|
||||||
|
#custom: [subject, issuer, session_resumed, serial, fingerprint, sni, version, not_before, not_after, certificate, chain, ja3, ja3s]
|
||||||
|
- files:
|
||||||
|
force-magic: "no"
|
||||||
|
#force-hash: [md5]
|
||||||
|
#- drop:
|
||||||
|
# alerts: "yes"
|
||||||
|
# flows: all
|
||||||
|
- smtp:
|
||||||
|
extended: "yes"
|
||||||
|
#custom: [received, x-mailer, x-originating-ip, relays, reply-to, bcc]
|
||||||
|
#md5: [body, subject]
|
||||||
|
- dnp3
|
||||||
|
- ftp
|
||||||
|
- rdp
|
||||||
|
- nfs
|
||||||
|
- smb
|
||||||
|
- tftp
|
||||||
|
- ikev2
|
||||||
|
- krb5
|
||||||
|
- snmp
|
||||||
|
- sip
|
||||||
|
- dhcp:
|
||||||
|
enabled: "yes"
|
||||||
|
# extended: "no"
|
||||||
|
- ssh
|
||||||
|
#- stats:
|
||||||
|
# totals: "yes"
|
||||||
|
# threads: "no"
|
||||||
|
# deltas: "no"
|
||||||
|
- flow
|
||||||
|
#- netflow
|
||||||
|
#- metadata
|
||||||
32
salt/suricata/threading.map.jinja
Normal file
32
salt/suricata/threading.map.jinja
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{% if salt['pillar.get']('sensor:suriprocs') %}
|
||||||
|
{% load_yaml as cpu_affinity%}
|
||||||
|
cpu-affinity:
|
||||||
|
- management-cpu-set:
|
||||||
|
cpu: [ all ] # include only these CPUs in affinity settings
|
||||||
|
- receive-cpu-set:
|
||||||
|
cpu: [ all ] # include only these CPUs in affinity settings
|
||||||
|
- worker-cpu-set:
|
||||||
|
cpu: [ "all" ]
|
||||||
|
mode: "exclusive"
|
||||||
|
threads: {{ salt['pillar.get']('sensor:suriprocs') }}
|
||||||
|
prio:
|
||||||
|
low: [ 0 ]
|
||||||
|
medium: [ "1-2" ]
|
||||||
|
high: [ 3 ]
|
||||||
|
default: "high"
|
||||||
|
{% endload %}
|
||||||
|
{% elif salt['pillar.get']('sensor:suripins') %}
|
||||||
|
{% load_yaml as cpu_affinity%}
|
||||||
|
cpu-affinity:
|
||||||
|
- management-cpu-set:
|
||||||
|
cpu: [ {{ salt['pillar.get']('sensor:suripins')|join(",") }} ] # include only these cpus in affinity settings
|
||||||
|
- receive-cpu-set:
|
||||||
|
cpu: [ {{ salt['pillar.get']('sensor:suripins')|join(",") }} ] # include only these cpus in affinity settings
|
||||||
|
- worker-cpu-set:
|
||||||
|
cpu: [ {{ salt['pillar.get']('sensor:suripins')|join(",") }} ]
|
||||||
|
mode: "exclusive"
|
||||||
|
threads: {{ salt['pillar.get']('sensor:suripins')|length }}
|
||||||
|
prio:
|
||||||
|
default: "high"
|
||||||
|
{% endload %}
|
||||||
|
{% endif %}
|
||||||
Reference in New Issue
Block a user