Compare commits

...

491 Commits

Author SHA1 Message Date
Mike Reeves
bc6eb74af2 Merge pull request #1230 from Security-Onion-Solutions/dev
2.1.0
2020-08-24 10:25:28 -04:00
Doug Burks
b627f565c9 Update VERIFY_ISO.md 2020-08-24 10:03:28 -04:00
Doug Burks
a0281830f8 Update VERIFY_ISO.md 2020-08-24 06:09:30 -04:00
Mike Reeves
aa3e3c3cec Update Sig 2020-08-23 20:25:06 -04:00
Mike Reeves
e8568dbeb0 Update VERIFY_ISO.md 2020-08-23 20:23:49 -04:00
Mike Reeves
a97ca94354 Rotate suri stats log hourly 2020-08-23 16:08:17 -04:00
Mike Reeves
ebd8105cb5 Rotate suri stats log hourly 2020-08-23 16:03:37 -04:00
Doug Burks
daaa2d3579 Update README.md 2020-08-21 16:24:09 -04:00
Mike Reeves
3ea5bd0c53 Update MD5 and gpg info for new iso 2020-08-21 14:44:12 -04:00
Mike Reeves
64d34e46bf Update ISO signature 2020-08-21 14:31:04 -04:00
Jason Ertel
9c6cc81f70 Remove improper suricata logging filter - this re-enables logging output for the suricata process itself 2020-08-21 12:44:28 -04:00
Mike Reeves
bdb8f616e4 Update VERIFY_ISO.md 2020-08-21 09:08:44 -04:00
Mike Reeves
60fbe357c5 Merge branch 'master' into dev 2020-08-20 21:10:59 -04:00
Mike Reeves
d0eae47047 Update ISO download details and signature 2020-08-20 21:08:17 -04:00
Mike Reeves
05d727e599 Final changes.json update 2020-08-20 19:18:39 -04:00
Mike Reeves
2b88f22eb2 Make HUP for rotate more reliable 2020-08-20 17:57:36 -04:00
Mike Reeves
69b3de43b9 Merge pull request #1229 from Security-Onion-Solutions/fix/statslog
add logrotate
2020-08-20 16:53:23 -04:00
Mike Reeves
b7da768dc7 add logrotate 2020-08-20 16:46:32 -04:00
Josh Patterson
44093e7484 Merge pull request #1228 from Security-Onion-Solutions/quickfix/importnode
remove bonding for import node
2020-08-20 14:23:21 -04:00
m0duspwnens
a7a0520cfe remove bonding for import node 2020-08-20 14:20:09 -04:00
Jason Ertel
d1e5649a68 Corrected JSON typo and improved formatting 2020-08-20 13:46:20 -04:00
Mike Reeves
b7d1fd54c7 Merge branch 'dev' of https://github.com/Security-Onion-Solutions/securityonion into dev 2020-08-20 13:26:22 -04:00
Mike Reeves
3eea2c6b10 2.1.0 Release notes in changes.json 2020-08-20 13:26:14 -04:00
Jason Ertel
377c841c31 Switch back to direct command for removing setup from bash_profile due to how sed is interpreting the quoted expression 2020-08-20 13:11:57 -04:00
Mike Reeves
073a175939 Merge pull request #1224 from Security-Onion-Solutions/fix/mkrssl
Point logstash to use intca.crt
2020-08-20 10:52:28 -04:00
Mike Reeves
df95baa835 Point logstash to use intca.crt 2020-08-20 10:45:48 -04:00
weslambert
12a9d26231 Merge pull request #1223 from Security-Onion-Solutions/fix/aws_fwd_defaults
Add defaults file for fwdnode
2020-08-20 10:17:21 -04:00
Wes Lambert
3f04e566f2 Add defaults file for fwdnode 2020-08-20 14:16:05 +00:00
Jason Ertel
896bf6b78c Update doc links to 2.1 2020-08-20 10:08:10 -04:00
Jason Ertel
22c9180386 Improve redirection of setup command output to log file, including stderr 2020-08-20 10:04:01 -04:00
Josh Patterson
014a0054c2 Merge pull request #1221 from Security-Onion-Solutions/quickfix/managersearch
remove monint from managersearch since they dont have a monint
2020-08-20 09:06:30 -04:00
m0duspwnens
43f4ebbcf1 remove monint from managersearch since they dont have a monint 2020-08-20 09:05:38 -04:00
Mike Reeves
2fce138d95 Change it to grains.host instead of grains.id 2020-08-19 21:26:27 -04:00
Mike Reeves
ccc2ed4478 don't create symlinks if a heavy node 2020-08-19 21:18:57 -04:00
Mike Reeves
f9e5ea8ba7 Fix SSL for filebeat 2020-08-19 21:12:41 -04:00
Mike Reeves
f7d3dca322 Fix duplicate state 2020-08-19 21:00:28 -04:00
Mike Reeves
d969b1e1b7 Update init.sls 2020-08-19 20:56:08 -04:00
Mike Reeves
507a3e852c Update init.sls 2020-08-19 20:02:38 -04:00
Mike Reeves
5f41d9fc25 fix filebeat certs 2020-08-19 19:51:57 -04:00
Mike Reeves
8312221c82 Update soup 2020-08-19 18:51:32 -04:00
Mike Reeves
0439cf3205 Update soup 2020-08-19 18:47:36 -04:00
Jason Ertel
2325940789 Ensure strelka manager connects to local redis on heavy nodes 2020-08-19 16:24:28 -04:00
Josh Patterson
9fce1fc47d Merge pull request #1220 from Security-Onion-Solutions/issue/1188
Issue/1188
2020-08-19 16:15:43 -04:00
Jason Ertel
5ff0058a65 Ensure strelka backend, frontend, and filestream are connecting to redis locally, on heavy node instances 2020-08-19 16:13:18 -04:00
m0duspwnens
961cc67e3f add nginx state to heavynode 2020-08-19 16:05:40 -04:00
Mike Reeves
51a52228ac Update init.sls 2020-08-19 16:01:58 -04:00
Mike Reeves
4527758e87 Update init.sls 2020-08-19 16:00:04 -04:00
m0duspwnens
826254bc3d give redis key to heavy node too 2020-08-19 15:59:48 -04:00
Mike Reeves
ac2cf8c6d8 Merge pull request #1219 from Security-Onion-Solutions/feature/mkrsoup
Feature/mkrsoup
2020-08-19 15:47:53 -04:00
Mike Reeves
db2cc5f7a7 Update init.sls 2020-08-19 15:43:51 -04:00
weslambert
d80156505c Merge pull request #1217 from Security-Onion-Solutions/fix/aws_automation
Add defaults file for search node
2020-08-19 15:09:00 -04:00
Wes Lambert
ed1e346789 Add defaults file for search node 2020-08-19 19:07:24 +00:00
Mike Reeves
4c246dc30d remove airgap install option until rc3 2020-08-19 14:40:31 -04:00
weslambert
d25afe4aa5 Merge pull request #1216 from Security-Onion-Solutions/fix/logstash_hosts
Add manager IP to container hosts file
2020-08-19 14:39:04 -04:00
weslambert
b5dd868d1b Add manager IP to container hosts file 2020-08-19 14:34:28 -04:00
Mike Reeves
6edf1c14f8 Fix filebeat certs 2020-08-19 13:35:58 -04:00
Mike Reeves
bf84822d36 fix if logic 2020-08-19 13:04:10 -04:00
Mike Reeves
3d48c1f99b Add playbook updates 2020-08-19 12:14:11 -04:00
Mike Reeves
9280dbb9d9 Update soup 2020-08-19 12:00:25 -04:00
m0duspwnens
2f0ffffca4 lock and unlock master during soup 2020-08-19 11:46:29 -04:00
Mike Reeves
f57e0fbc56 Salt ACL 2020-08-19 10:33:26 -04:00
Mike Reeves
95f006db7d Salt ACL 2020-08-19 10:08:11 -04:00
Mike Reeves
968e481ebe Add cross cluster for SSL 2020-08-18 17:45:14 -04:00
Mike Reeves
348e802fb7 Add cross cluster for SSL 2020-08-18 17:38:35 -04:00
Mike Reeves
afa87374ad Merge branch 'dev' of https://github.com/Security-Onion-Solutions/securityonion into feature/mkrsoup 2020-08-18 17:33:25 -04:00
Mike Reeves
294a197cbf Add cross cluster for SSL 2020-08-18 16:57:38 -04:00
Josh Brower
ad0f54fc40 Merge pull request #1209 from Security-Onion-Solutions/bugfix/osquery-parsing
Osquery Parsing fix
2020-08-18 15:54:47 -04:00
Josh Brower
d4f7a07f85 Osquery Parsing fix 2020-08-18 15:54:11 -04:00
weslambert
ca84ae43ef Merge pull request #1208 from Security-Onion-Solutions/fix/remove_pillar_from_setup
Don't echo pillar to setup log
2020-08-18 15:44:20 -04:00
weslambert
a4e986ea37 Don't echo pillar to setup log 2020-08-18 15:43:43 -04:00
Josh Patterson
be8483c580 Merge pull request #1207 from Security-Onion-Solutions/issue/1188
remove monint from nodestab grafana dashboard since search nodes dont…
2020-08-18 15:37:56 -04:00
m0duspwnens
65d9afd8d5 remove monint from nodestab grafana dashboard since search nodes dont have monint 2020-08-18 15:37:17 -04:00
Mike Reeves
59aa55f9bc Add playsecrets 2020-08-18 15:29:41 -04:00
Jason Ertel
47ad3f65ef Only fail setup when the root mailbox is not empty for ISO installations, since network installations can't be sure if the error came from setup or something unrelated 2020-08-18 15:26:30 -04:00
Josh Patterson
1bf4b86d07 Merge pull request #1206 from Security-Onion-Solutions/issue/1188
remove monint from manager since it doesnt have a monint
2020-08-18 15:10:40 -04:00
m0duspwnens
5a3d95d9a1 remove monint from manager since it doesnt have a monint 2020-08-18 15:09:21 -04:00
Mike Reeves
44fcd999fd Address #1205 2020-08-18 15:08:24 -04:00
weslambert
82bfa567d0 Merge pull request #1204 from Security-Onion-Solutions/fix/enable_strelka_default
Enable YARA rules by default
2020-08-18 14:54:46 -04:00
weslambert
eaad0487b5 Enable YARA rules by default 2020-08-18 14:54:11 -04:00
Josh Patterson
54c43634a3 Merge pull request #1203 from Security-Onion-Solutions/issue/1188
add strelka to heavynode if strelka is enabled
2020-08-18 14:29:07 -04:00
m0duspwnens
c8dfc2495c add strelka to heavynode if strelka is enabled - https://github.com/Security-Onion-Solutions/securityonion/issues/1188 2020-08-18 14:21:23 -04:00
Jason Ertel
45d957566d Only show 'Waiting for TheHive to start up' status if setup is actually installing thehive 2020-08-18 11:36:29 -04:00
Josh Patterson
b214b20e58 Merge pull request #1201 from Security-Onion-Solutions/issue/1063
fix monint for several node types for grafana
2020-08-18 10:53:30 -04:00
m0duspwnens
9f8f59f4df fix monint for several node types for grafana 2020-08-18 10:48:52 -04:00
Mike Reeves
ba192d6c32 Update addtotab.sh 2020-08-17 17:23:25 -04:00
Josh Brower
9c1c4b1a98 Merge pull request #1198 from Security-Onion-Solutions/feature/playbook-tweaks
Playbook schema update - RC2
2020-08-17 14:10:26 -04:00
Josh Brower
a8aa97edd2 Playbook schema update - RC2 2020-08-17 14:09:17 -04:00
Josh Patterson
1d02fbdd0b Merge pull request #1197 from Security-Onion-Solutions/feature/soup
add sls extension
2020-08-17 12:27:34 -04:00
m0duspwnens
eb1272c127 add sls extension 2020-08-17 12:26:44 -04:00
Josh Patterson
5581cf6721 Merge pull request #1196 from Security-Onion-Solutions/feature/soup
Feature/soup
2020-08-17 10:57:32 -04:00
m0duspwnens
a82c4c24fb move url_base from manager to global in when running soup 2020-08-17 10:55:07 -04:00
Mike Reeves
dcb110b31f Add rc1 conditional logic 2020-08-17 09:57:00 -04:00
Jason Ertel
d8833abf73 Use load instead of import on the registry image itself 2020-08-15 09:42:56 -04:00
Josh Patterson
2c9c328a40 Merge pull request #1193 from Security-Onion-Solutions/issue/1039
Issue/1039
2020-08-14 18:45:12 -04:00
m0duspwnens
e6da423dc3 change reference from manager:url_base to global:url_base - https://github.com/Security-Onion-Solutions/securityonion/issues/1039 2020-08-14 17:55:30 -04:00
m0duspwnens
4946bb54d8 Merge remote-tracking branch 'remotes/origin/dev' into issue/1039 2020-08-14 17:25:13 -04:00
Josh Patterson
5663edfaee Merge pull request #1192 from Security-Onion-Solutions/quickfix/importnoderonicheckin
set checking interval for sensoroni on import node
2020-08-14 17:11:35 -04:00
m0duspwnens
387c26f052 set checking interval for sensoroni on import node 2020-08-14 17:10:36 -04:00
Josh Patterson
e4b80ff183 Merge pull request #1190 from Security-Onion-Solutions/quickfix/setuplogging
send service status to /dev/null to prevent FP on install failure
2020-08-14 16:47:55 -04:00
m0duspwnens
43f6f5c27a send service status to /dev/null to prevent FP on install failure 2020-08-14 16:45:28 -04:00
Josh Patterson
51cbccad09 Merge pull request #1189 from Security-Onion-Solutions/quickfix/modulerun
use new module.run style
2020-08-14 16:39:17 -04:00
m0duspwnens
5220b5ae0c use new module.run style 2020-08-14 16:37:45 -04:00
Josh Patterson
6b6f39edde Merge pull request #1187 from Security-Onion-Solutions/quickfix/heavyfw
heavynode firewall rules
2020-08-14 16:01:56 -04:00
m0duspwnens
47faee48a6 heavynode firewall rules 2020-08-14 15:58:59 -04:00
Mike Reeves
eb6b2f6ca0 Merge pull request #1186 from Security-Onion-Solutions/feature/airgap
Airgap round 1
2020-08-14 15:41:36 -04:00
Mike Reeves
bac58abf3e Airgap round 1 2020-08-14 15:32:33 -04:00
m0duspwnens
d963222f31 provide proper url for so-import-pcap based on redirect strategy chosen during setup - https://github.com/Security-Onion-Solutions/securityonion/issues/1039 2020-08-14 15:28:47 -04:00
Jason Ertel
11ebc6b8b2 Do not cancel setup if user choose not to run so-allow during setup 2020-08-14 15:28:42 -04:00
Josh Patterson
0ba0c16c38 Merge pull request #1185 from Security-Onion-Solutions/issue/1049
Issue/1049
2020-08-14 14:55:14 -04:00
m0duspwnens
35027e32b3 dont constantly run steno or suricata containers for import node 2020-08-14 14:43:37 -04:00
weslambert
945bc5c6de Merge pull request #1184 from Security-Onion-Solutions/fix/automate_ssh
Don't copy SSH key if automated install
2020-08-14 14:42:44 -04:00
weslambert
c9d6293f8f Don't copy SSH key if automated install 2020-08-14 14:41:35 -04:00
Jason Ertel
7fa5e17935 Correct if logic for determining when to show web interface URL 2020-08-14 14:40:12 -04:00
m0duspwnens
f9a6b8d231 remove zeek and suricata from so-status for import node 2020-08-14 14:39:02 -04:00
m0duspwnens
3836f00309 allow sensori port for import node 2020-08-14 14:32:34 -04:00
Jason Ertel
04340728ff Improve title spacing among standard log lines 2020-08-14 14:28:52 -04:00
m0duspwnens
ff84640aad add pcap to import node, test not starting zeek docker by default 2020-08-14 13:59:23 -04:00
Josh Patterson
fbbec71165 Merge pull request #1183 from Security-Onion-Solutions/issue/1170
Issue/1170
2020-08-14 12:56:57 -04:00
m0duspwnens
b7bfa6f9a9 move functions up 2020-08-14 12:55:54 -04:00
m0duspwnens
6602ad3286 sleep for 5 seconds 2020-08-14 12:53:24 -04:00
m0duspwnens
4bb23a089e add some parens 2020-08-14 12:48:52 -04:00
m0duspwnens
4b21c1b492 logic change 2020-08-14 12:45:50 -04:00
Mike Reeves
2a8e4e4eb2 Merge pull request #1182 from Security-Onion-Solutions/feature/airgap
Feature/airgap
2020-08-14 12:32:26 -04:00
m0duspwnens
9d59fc23dd logic changes 2020-08-14 12:24:15 -04:00
Mike Reeves
c64faacdbc Install registry if the image is local 2020-08-14 12:15:56 -04:00
Mike Reeves
18f37e3ef8 Install registry if the image is local 2020-08-14 11:49:18 -04:00
m0duspwnens
e229cb49bc logic changes 2020-08-14 11:40:21 -04:00
Wes Lambert
7686a05f42 Set Strelka rules enabled by default for Eval Mode 2020-08-14 15:33:38 +00:00
m0duspwnens
69fd803759 change while 2020-08-14 11:30:10 -04:00
m0duspwnens
683e8a2a39 remove quotes 2020-08-14 11:24:46 -04:00
weslambert
b662f9354f Merge pull request #1180 from Security-Onion-Solutions/fix/thehive_global
Only copy TheHive details to global pillar if enabled
2020-08-14 11:23:16 -04:00
Wes Lambert
ab4285aaaf Only copy TheHive details to global pillar if enabled 2020-08-14 15:21:56 +00:00
m0duspwnens
aa2b0699d5 move parens 2020-08-14 11:20:18 -04:00
m0duspwnens
876c6c7cb0 logic changes 2020-08-14 11:16:56 -04:00
m0duspwnens
ea5116700d stop both service then start both 2020-08-14 11:01:26 -04:00
m0duspwnens
cd1169b68d logging changes 2020-08-14 10:53:42 -04:00
m0duspwnens
e2fbe59b7c additional logging 2020-08-14 10:30:01 -04:00
m0duspwnens
0eb0551b68 add check if salt minion is returning jobs 2020-08-14 10:15:54 -04:00
Mike Reeves
283f91459a Fix rule update cron 2020-08-14 10:05:56 -04:00
Mike Reeves
7309767829 Merge pull request #1178 from Security-Onion-Solutions/fix/elasticwatch
Add watch statements
2020-08-14 09:58:40 -04:00
Mike Reeves
a3d8b7d0d3 Add watch statements 2020-08-14 09:40:38 -04:00
Jason Ertel
78bceeb9e5 Only show the web interface link when the redirect URL is available, such as on manager nodes 2020-08-14 09:17:25 -04:00
Jason Ertel
ee62faae72 Only show the web interface link when the redirect URL is available, such as on manager nodes 2020-08-14 09:10:28 -04:00
Jason Ertel
e6830e9cba Avoid reusing header function from so-common 2020-08-14 01:09:47 -04:00
m0duspwnens
42c1e817fe more logging and debugging 2020-08-13 18:09:57 -04:00
m0duspwnens
f9f2744d3f logic changes 2020-08-13 17:49:05 -04:00
Jason Ertel
3c113a7a89 Add system information at beginning of installation; provide logging functions to be used instead of echo commands 2020-08-13 17:29:50 -04:00
Josh Brower
34d8261669 Merge pull request #1176 from Security-Onion-Solutions/feature/playbook
Elastalert/Playbook Stability updates
2020-08-13 17:19:01 -04:00
Josh Brower
7400bbd6c1 Elastalert Stability Fixes 2020-08-13 17:14:53 -04:00
m0duspwnens
829490da19 fix errors 2020-08-13 17:05:50 -04:00
m0duspwnens
6cf623e133 some logic changes 2020-08-13 16:52:39 -04:00
Doug Burks
ed4bee0d0b so-allow has no usage function #1133 2020-08-13 16:42:50 -04:00
m0duspwnens
3d20cc0341 some debugging 2020-08-13 16:34:18 -04:00
m0duspwnens
1b4029f74b fix syntax errors 2020-08-13 16:18:02 -04:00
m0duspwnens
07ef464375 https://github.com/Security-Onion-Solutions/securityonion/issues/1170 2020-08-13 16:01:53 -04:00
Jason Ertel
40b5b96e17 Respond with 403 status code to unauthorized sensor requests 2020-08-13 15:00:49 -04:00
Josh Patterson
078f87d6c7 Merge pull request #1169 from Security-Onion-Solutions/issue/1049
remove so-registry from docker see for import node as it doesnt even …
2020-08-13 10:49:14 -04:00
m0duspwnens
8ab1cd32f0 remove so-registry from docker see for import node as it doesnt even exist 2020-08-13 10:47:57 -04:00
Josh Patterson
ae66ec5f43 Merge pull request #1168 from Security-Onion-Solutions/issue/1049
Issue/1049
2020-08-13 10:12:47 -04:00
m0duspwnens
9fafd5f721 update trusted containers for soup to minimize downloaded containers 2020-08-13 08:32:51 -04:00
m0duspwnens
3387114389 Merge remote-tracking branch 'remotes/origin/dev' into issue/1049 2020-08-13 08:21:43 -04:00
Mike Reeves
5a53194313 Update sotls.yml 2020-08-12 21:12:48 -04:00
Mike Reeves
59ddac57bf Rename sotls.yaml to sotls.yml 2020-08-12 17:48:37 -04:00
m0duspwnens
a746d597bb rename to .yml 2020-08-12 17:42:45 -04:00
m0duspwnens
dbe14fcbdb Merge remote-tracking branch 'remotes/origin/dev' into issue/1049 2020-08-12 16:46:03 -04:00
Doug Burks
5640faef13 Kernel consoleblank is causing whiptail progress screen to appear to hang #1084 2020-08-12 16:34:59 -04:00
m0duspwnens
f59b8683ae allow soup to run on import node 2020-08-12 15:48:34 -04:00
m0duspwnens
5d5fcecdca set the cluster for import node 2020-08-12 15:46:34 -04:00
Mike Reeves
0129519d0c Merge pull request #1165 from Security-Onion-Solutions/feature/esssl
TLS Transport Encryption
2020-08-12 15:39:17 -04:00
Mike Reeves
9980d02844 Elastic Transport TLSgit add . 2020-08-12 15:38:19 -04:00
Mike Reeves
7e3e4d0f54 Convert ES cert to p12 2020-08-12 15:16:12 -04:00
Mike Reeves
82821fbb25 Convert ES cert to p12 2020-08-12 15:09:52 -04:00
Mike Reeves
daaffd5185 Convert ES cert to p12 2020-08-12 15:05:33 -04:00
Mike Reeves
683799d077 Convert ES cert to p12 2020-08-12 15:02:54 -04:00
m0duspwnens
ddf3e6f943 remove logstash from docker registry seed 2020-08-12 14:05:28 -04:00
Mike Reeves
c02a363e92 Merge pull request #1163 from Security-Onion-Solutions/feature/esssl
Feature/esssl
2020-08-12 14:02:27 -04:00
Mike Reeves
69e7285e30 Fix a bug where minio passwrods cause issues 2020-08-12 12:44:55 -04:00
m0duspwnens
68f5c1c3c5 create web user during setup for import node 2020-08-12 12:01:25 -04:00
m0duspwnens
dcd5e95b38 add so-pcaptools to registry for import node 2020-08-12 11:57:13 -04:00
m0duspwnens
c166bc84f3 add zeek to import node top 2020-08-12 11:48:22 -04:00
m0duspwnens
41afe0ab2e remove tab 2020-08-12 11:33:10 -04:00
m0duspwnens
b5c9d44d91 nginx config for import node 2020-08-12 11:15:14 -04:00
Mike Reeves
32083132e5 Back out some ES settings 2020-08-12 11:10:36 -04:00
m0duspwnens
dfd3a1de6a set monitor interface to bond0 for import node 2020-08-12 10:42:07 -04:00
m0duspwnens
0f53b4d703 set esheapsize and filebeat config for import node 2020-08-12 10:39:31 -04:00
m0duspwnens
5a0df27193 rename importpcap node to import 2020-08-12 10:27:15 -04:00
m0duspwnens
6260a0aeaa add idstools to docker registry for importpcap node 2020-08-11 16:29:35 -04:00
m0duspwnens
53b4a73bb9 add idstools to importpcap node 2020-08-11 15:59:08 -04:00
m0duspwnens
de05403237 ensure nids rules dir exists 2020-08-11 15:52:15 -04:00
Mike Reeves
0f7074a499 SSL intraca 2020-08-11 15:49:04 -04:00
Mike Reeves
65d535d893 SSL intraca 2020-08-11 15:45:17 -04:00
Mike Reeves
f862133323 SSL intraca 2020-08-11 15:37:55 -04:00
Mike Reeves
5a0aae5fe7 SSL intraca 2020-08-11 15:34:07 -04:00
Mike Reeves
a817465318 SSL intraca 2020-08-11 15:25:09 -04:00
Mike Reeves
e8b61a3828 SSL intraca 2020-08-11 15:14:29 -04:00
Mike Reeves
5f30c947c9 SSL intraca 2020-08-11 15:12:23 -04:00
Josh Brower
b724d40376 Playbook Stability Fixes 2020-08-11 15:07:16 -04:00
m0duspwnens
a81d14463c add logstash to registry for importpcap, change PATCHSCHEDULENAME=auto 2020-08-11 15:01:20 -04:00
Mike Reeves
42c9653669 anon user hack 2020-08-11 14:45:55 -04:00
Mike Reeves
f553a8e27a anon user hack 2020-08-11 14:40:34 -04:00
Mike Reeves
8daf11f085 Fix logstash outputs 2020-08-11 13:58:28 -04:00
m0duspwnens
40006752a1 Merge remote-tracking branch 'remotes/origin/dev' into issue/1049 2020-08-11 13:30:48 -04:00
m0duspwnens
ee91450424 fix patch schedule name for importpcap node 2020-08-11 13:30:41 -04:00
weslambert
796551d71b Merge pull request #1161 from Security-Onion-Solutions/fix/redisconf
Update Redis maxmemory settings
2020-08-11 13:27:28 -04:00
Mike Reeves
362749ca85 Make hostnames default in cross cluster 2020-08-11 13:00:42 -04:00
weslambert
b95f8a9314 Update Redis maxmemory settings 2020-08-11 12:57:57 -04:00
m0duspwnens
ec62668eb7 firewall rules for importpcap node 2020-08-11 12:31:37 -04:00
m0duspwnens
f6a85ac852 top and seed registry for importpcap node 2020-08-11 12:27:21 -04:00
Mike Reeves
94bb9e0d6c Merge branch 'dev' of https://github.com/Security-Onion-Solutions/securityonion into feature/esssl 2020-08-11 12:20:00 -04:00
Mike Reeves
95367f8d23 Fix cross cluster 2020-08-11 12:00:58 -04:00
Mike Reeves
348f7f39cc strip node suffix 2020-08-11 11:37:53 -04:00
Mike Reeves
05a05b5e9b use hostname for cross cluster 2020-08-11 11:15:57 -04:00
Mike Reeves
cbba473c2d fix ssl certs for SN 2020-08-11 11:10:27 -04:00
Mike Reeves
32c407231f fix ssl certs for SN 2020-08-11 11:08:49 -04:00
Mike Reeves
a5131da5c9 fix ssl certs for SN 2020-08-11 11:07:34 -04:00
Mike Reeves
7e0249c377 ES cleanup 2020-08-11 10:28:21 -04:00
Mike Reeves
b84d7d818f Fix for loop 2020-08-11 10:20:02 -04:00
Mike Reeves
d941209479 Walk nodes tab 2020-08-11 10:17:28 -04:00
Mike Reeves
32f8ea3158 Removes https from rest port 2020-08-11 10:02:00 -04:00
Jason Ertel
854cc487f7 Always disable screen blanking, to simplify logic 2020-08-11 09:21:06 -04:00
Mike Reeves
59292425c0 Add transport hostname 2020-08-10 23:03:54 -04:00
Mike Reeves
ac3f490299 Add transport hostname 2020-08-10 23:02:03 -04:00
Mike Reeves
730e389aae Add transport hostname 2020-08-10 22:57:49 -04:00
Mike Reeves
52cc56bebb Add transport hostname 2020-08-10 22:56:15 -04:00
Mike Reeves
c3d8c599cc Turn off user auth 2020-08-10 22:13:17 -04:00
Mike Reeves
6007a6c4d8 Things like this are why I hate Java 2020-08-10 22:10:03 -04:00
Mike Reeves
d00231af06 Things like this are why I hate Java 2020-08-10 22:05:46 -04:00
Mike Reeves
31ab1e8ed8 Things like this are why I hate Java 2020-08-10 22:03:24 -04:00
Mike Reeves
6d2be9af7e Things like this are why I hate Java 2020-08-10 21:58:44 -04:00
Mike Reeves
cdda46ce58 ca typeo 2020-08-10 21:54:36 -04:00
Mike Reeves
811da5732a Elastic logic fix 2020-08-10 21:51:29 -04:00
Mike Reeves
08d544e527 Fix SSL perms 2020-08-10 21:44:45 -04:00
Mike Reeves
cf5c29d01c Change certs path on elstic 2020-08-10 21:30:53 -04:00
Mike Reeves
e28619604c Change certs path on elstic 2020-08-10 21:26:00 -04:00
Mike Reeves
e7cd527d49 Enable SSL in elastic 2020-08-10 21:18:03 -04:00
Mike Reeves
92cc176b6d Fix features logic in all states that use it 2020-08-10 20:59:41 -04:00
Mike Reeves
28806513d9 Logstash logic fix 2020-08-10 20:53:56 -04:00
m0duspwnens
11433b87e6 Merge remote-tracking branch 'remotes/origin/dev' into issue/1049 2020-08-10 16:36:49 -04:00
Mike Reeves
788864310c Fix ssl state 2020-08-10 14:52:20 -04:00
Mike Reeves
523e42bec8 Fix ssl state 2020-08-10 14:40:11 -04:00
Mike Reeves
9d2d8d372f Merge branch 'dev' of https://github.com/Security-Onion-Solutions/securityonion into feature/esssl 2020-08-10 14:27:08 -04:00
Mike Reeves
e659af3466 ES basic SSL 2020-08-10 14:26:56 -04:00
Josh Patterson
6bb84f8513 Merge pull request #1160 from Security-Onion-Solutions/quickfix/saltinstall
add replace: False to get rid of warning, eventhough it doesntt. bug …
2020-08-10 13:06:15 -04:00
m0duspwnens
1f3ceb50da add replace: False to get rid of warning, eventhough it doesntt. bug report submitted on saltstack gh. 2020-08-10 13:04:19 -04:00
Josh Patterson
b0aa40737b Merge pull request #1159 from Security-Onion-Solutions/quickfix/saltinstall
fix --exclude, add salt-minion-3001.1 where missed
2020-08-10 12:23:48 -04:00
m0duspwnens
8146930b80 fix --exclude, add salt-minion-3001.1 where missed 2020-08-10 12:22:42 -04:00
Josh Patterson
b6740ef360 Merge pull request #1158 from Security-Onion-Solutions/quickfix/saltinstall
upgrading to salt 3001.1
2020-08-10 10:21:55 -04:00
m0duspwnens
ab7014d70a upgrading to salt 3001.1 2020-08-10 10:19:25 -04:00
Mike Reeves
29aaa84a6f Merge pull request #1157 from Security-Onion-Solutions/feature/esssl
Feature/esssl
2020-08-08 22:20:55 -04:00
Mike Reeves
32fe3ed961 fix ports 2020-08-08 20:59:13 -04:00
Mike Reeves
63031a965a fix ports 2020-08-08 20:48:46 -04:00
Mike Reeves
bc09a89a01 output plugin to normal port 2020-08-08 20:36:28 -04:00
Mike Reeves
9248896a20 fix redis ports 2020-08-08 20:24:30 -04:00
Mike Reeves
112dba4549 Upodate SSL 2020-08-08 20:12:17 -04:00
Mike Reeves
f154d2fa78 Upodate SSL 2020-08-08 20:04:19 -04:00
Mike Reeves
9708b02387 update pipeline 2020-08-08 18:32:36 -04:00
Mike Reeves
86fd38a347 Merge branch 'dev' of https://github.com/Security-Onion-Solutions/securityonion into feature/esssl 2020-08-08 17:32:29 -04:00
Mike Reeves
f840c85a46 make script run 2020-08-08 17:31:59 -04:00
Mike Reeves
26a095a89c redis binds 2020-08-08 00:20:46 -04:00
Mike Reeves
8a50768e16 redis binds 2020-08-08 00:19:55 -04:00
Mike Reeves
dc12cacee0 generate redis key 2020-08-08 00:16:38 -04:00
Mike Reeves
d1c4e3d021 generate redis key 2020-08-08 00:15:36 -04:00
Mike Reeves
20dba6eaac jruby ssl fun 2020-08-07 23:56:09 -04:00
Mike Reeves
ec1065462c jruby ssl fun 2020-08-07 23:50:26 -04:00
Jason Ertel
5e3d21c43c Wrap minio keys with quotes to ensure YAML parsing 2020-08-07 23:50:18 -04:00
Mike Reeves
d171adb9c9 jruby ssl fun 2020-08-07 23:39:13 -04:00
Mike Reeves
64af6f99e9 jruby ssl fun 2020-08-07 23:34:55 -04:00
Mike Reeves
2705cbbf45 jruby ssl fun 2020-08-07 23:33:02 -04:00
Mike Reeves
5525e235d1 jruby ssl fun 2020-08-07 23:28:58 -04:00
Mike Reeves
62a6f29c96 bucket stuff 2020-08-07 22:51:52 -04:00
Mike Reeves
321122cc87 update logstash 2020-08-07 22:43:34 -04:00
Mike Reeves
0d66e32305 sync cacerts 2020-08-07 22:39:29 -04:00
Mike Reeves
952234446f fix logic 2020-08-07 22:18:58 -04:00
Mike Reeves
cca0dd9344 enable jinja 2020-08-07 22:14:33 -04:00
Mike Reeves
1b0f90b7e4 sync script 2020-08-07 22:12:47 -04:00
Mike Reeves
d15d53bcdc Add script to extract cacerts 2020-08-07 22:04:30 -04:00
Josh Brower
4b99f55e0a Merge pull request #1155 from Security-Onion-Solutions/feature/playbook-fixes2
Playbook/Nav Fixes - Issue #1064
2020-08-07 17:03:32 -04:00
Josh Brower
928e5ed832 Playbook/Nav Fixes - Issue #1064 2020-08-07 17:02:48 -04:00
m0duspwnens
30e0abf326 Merge remote-tracking branch 'remotes/origin/dev' into issue/1049 2020-08-07 16:43:02 -04:00
m0duspwnens
0c2ea53f25 revert back to local_salt_dir 2020-08-07 16:42:46 -04:00
m0duspwnens
b02332d84a fix global pillar location for setup 2020-08-07 16:18:11 -04:00
m0duspwnens
7933bafd55 more fixes for importpcap node 2020-08-07 15:46:45 -04:00
m0duspwnens
d7b55c1109 add so-status map for importpcap 2020-08-07 15:21:07 -04:00
m0duspwnens
86b118ba1a add importpcap to local assigned hostgroups yaml 2020-08-07 15:00:32 -04:00
m0duspwnens
9649994f73 add importpcap to pillar/top 2020-08-07 14:40:02 -04:00
m0duspwnens
a8147d7d3b add importpcap to salt_checkin for setup ssl/ca 2020-08-07 14:19:58 -04:00
Jason Ertel
847939e9b2 Fixed extra space that causes global.sls file to be empty 2020-08-07 14:11:28 -04:00
m0duspwnens
fadd81c9f3 so-importpcap to ssl state 2020-08-07 13:58:29 -04:00
m0duspwnens
7c3070655b copy_minion_tmp_files for IMPORTPCAP too 2020-08-07 13:39:17 -04:00
Josh Brower
ff209cfd65 Merge pull request #1149 from Security-Onion-Solutions/feature/wlb-parsing
Ingest Parsing Update for Sysmon/WEL
2020-08-07 13:37:22 -04:00
Josh Brower
3ec1b1db71 Merge pull request #1154 from Security-Onion-Solutions/feature/playbook-fixes
More Playbook Fixes - Issue #1064
2020-08-07 13:36:38 -04:00
Josh Brower
a8b980b6a7 More Playbook Fixes - Issue #1064 2020-08-07 13:35:43 -04:00
m0duspwnens
2d7aefed0d add IMPORTPCAP node to set_hostname 2020-08-07 11:42:48 -04:00
m0duspwnens
7d11fc345f dont ask for patch schedule for importpcap node 2020-08-07 11:19:31 -04:00
m0duspwnens
24b77fa855 enlarge whiptail for install type selection 2020-08-07 11:16:52 -04:00
m0duspwnens
2c6a20fee9 enlarge whiptail for install type selection 2020-08-07 11:11:21 -04:00
m0duspwnens
d668b85033 copy_ssh_key for is_importpcap also 2020-08-07 11:09:12 -04:00
m0duspwnens
fce22c1cc4 Merge remote-tracking branch 'remotes/origin/dev' into issue/1049 2020-08-07 10:27:11 -04:00
Mike Reeves
b534d2b975 Update so-functions 2020-08-07 10:05:47 -04:00
Mike Reeves
d3e6657b45 Fix Spacing 2020-08-07 10:01:40 -04:00
Mike Reeves
80550b0d76 Merge pull request #1151 from Security-Onion-Solutions/feature/minio
Feature/minio
2020-08-06 15:45:27 -04:00
Josh Brower
c3da302353 Merge pull request #1150 from Security-Onion-Solutions/feature/playbook-fixes
Simplify elastalert rules
2020-08-06 15:45:06 -04:00
Josh Brower
ddd099233a Playbook Fixes - Issue #1064 2020-08-06 15:43:45 -04:00
Mike Reeves
bbdaee28ed Add upload queue thread 2020-08-06 15:41:10 -04:00
Mike Reeves
16d0c02113 Fix cert dev null 2020-08-06 15:39:02 -04:00
Mike Reeves
63e31bd6b9 Add upload queue thread 2020-08-06 15:33:48 -04:00
Jason Ertel
31fd0b6407 Update the Hunt event fields lookups to reflect the latest ingest configs 2020-08-06 14:59:39 -04:00
Josh Brower
4f9ef89098 Simplify elastalert rules 2020-08-06 14:30:44 -04:00
Josh Brower
15efe77e06 Ingest Parsing Update for Sysmon/WEL 2020-08-06 13:11:47 -04:00
Mike Reeves
4936da9b5d Merge pull request #1146 from Security-Onion-Solutions/feature/minio
Feature/minio
2020-08-05 23:01:58 -04:00
Mike Reeves
e7225349a6 Ability to toggle between redis and minio 2020-08-05 22:56:41 -04:00
Mike Reeves
4e40615e51 Add tuneable to the global pillar 2020-08-05 22:47:12 -04:00
Mike Reeves
d9b1127308 Switch to gzip encoding 2020-08-05 22:36:23 -04:00
m0duspwnens
d7801acea5 add mode 1 2020-08-05 17:09:41 -04:00
Mike Reeves
633c100ace final logstash tweaks 2020-08-05 16:40:21 -04:00
Jason Ertel
30ff6d2b93 Update event fields to reflect new ECS terms - WIP 2020-08-05 16:28:36 -04:00
William Wernert
64c366971f [fix] Redirect ca state apply in setup to /dev/null
Redirect ca state apply line in accept_salt_key_remote to /dev/null to avoid generating error in setup log
2020-08-05 16:13:25 -04:00
m0duspwnens
8079dc54fc add stuff for /etc/salt/minion to get populated for importpcap node 2020-08-05 15:42:22 -04:00
m0duspwnens
83dc35c720 add importpcap mode to whiptail 2020-08-05 15:24:11 -04:00
m0duspwnens
66ca7b266c first commit of importpcap node mode code, kek 2020-08-05 14:44:23 -04:00
Mike Reeves
cd766753eb Merge branch 'dev' of https://github.com/Security-Onion-Solutions/securityonion into feature/minio 2020-08-05 14:34:22 -04:00
Mike Reeves
95cae2f17a SSL path for logstash 2020-08-05 14:14:35 -04:00
Mike Reeves
e30746c5ca Final minio fix 2020-08-05 14:12:06 -04:00
Mike Reeves
734f2979d2 add ca.crt to lgostash docker bind 2020-08-04 23:20:51 -04:00
Mike Reeves
1855eeaa13 fix cert name 2020-08-04 23:09:08 -04:00
Mike Reeves
970ee195a1 use hostname so TLS will work 2020-08-04 23:08:33 -04:00
Mike Reeves
58872c9b48 enable ssl logstash 2020-08-04 22:40:59 -04:00
Mike Reeves
a765790d6c fix minio container name 2020-08-04 22:37:04 -04:00
Mike Reeves
a733dceb18 enable ssl minio 2020-08-04 22:33:40 -04:00
Mike Reeves
5d4a0c53b5 add ssl cert for minio 2020-08-04 21:29:07 -04:00
Mike Reeves
61ff944087 add tmp to survive restarts 2020-08-04 18:18:06 -04:00
Mike Reeves
a2e5dca065 Fix output pillar for minio 2020-08-04 18:02:54 -04:00
Mike Reeves
38d0f519ce Fix output pillar for minio 2020-08-04 18:00:05 -04:00
Mike Reeves
9c5a969c2e Fix minio init 2020-08-04 17:18:09 -04:00
Mike Reeves
fd039b3008 Fix top file for minio 2020-08-04 17:11:20 -04:00
Mike Reeves
c56ead08e9 add so minio docker 2020-08-04 16:28:50 -04:00
Mike Reeves
407160b729 Update changes.json 2020-08-04 16:23:03 -04:00
Mike Reeves
24ed92c9dc minio and change to global 2020-08-04 15:54:03 -04:00
Mike Reeves
549bf7ba19 Activate minio 2020-08-04 10:17:43 -04:00
weslambert
e9af032c28 Merge pull request #1143 from Security-Onion-Solutions/feature/aws_mgr_defaults
Add AWS defaults file for manager
2020-08-04 10:13:07 -04:00
Wes Lambert
46f70c254c Add AWS defaults file for manager 2020-08-04 14:11:50 +00:00
weslambert
f7425b14e3 Merge pull request #1142 from Security-Onion-Solutions/feature/aws_eval_defaults
AWS defaults modifications
2020-08-03 23:51:32 -04:00
Wes Lambert
2290c28a07 AWS defaults modifications 2020-08-04 03:49:59 +00:00
Mike Reeves
7c1120e47d Fix grafana monitor interface. 2020-08-03 18:48:01 -04:00
Jason Ertel
d1641aa0d8 chown /var/ossec dir to match the needful user/group ownership for ossec-agentd 2020-08-03 15:49:21 -04:00
Josh Patterson
51934d6e5f Merge pull request #1137 from Security-Onion-Solutions/issue/1091
iunstall saltstack 3001 during setup
2020-08-03 11:39:44 -04:00
m0duspwnens
fb887f7d9e iunstall saltstack 3001 during setup 2020-08-03 10:47:24 -04:00
weslambert
12f53ce9d9 Merge pull request #1134 from Security-Onion-Solutions/fix/aws_auto_reboot
Reboot after finished with setup
2020-08-03 10:31:24 -04:00
weslambert
7e2917fc99 Reboot after finished with setup 2020-08-03 10:31:03 -04:00
Jason Ertel
f47128824e Before finishing setup, rescan the log file and root mailbox for errors 2020-08-02 09:04:29 -04:00
weslambert
9255e77263 Merge pull request #1129 from Security-Onion-Solutions/feature/aws_standalone_defaults
Add AWS Standalone Defaults
2020-07-31 16:15:12 -04:00
Wes Lambert
ecafbc6014 Add AWS Standalone Defaults 2020-07-31 20:12:25 +00:00
Josh Brower
f99413c84d Merge pull request #1128 from Security-Onion-Solutions/feature/launcher-update
Osquery & WLB Parsing Update for WEL & Sysmon
2020-07-31 16:07:41 -04:00
Josh Brower
4d66d37ac5 Merge branch 'dev' into feature/launcher-update 2020-07-31 16:07:33 -04:00
Josh Brower
d971d07720 Osquery & WLB Parsing Update for WEL & Sysmon 2020-07-31 16:06:15 -04:00
Josh Patterson
40272b2ed0 Merge pull request #1126 from Security-Onion-Solutions/issue/1091
Issue/1091
2020-07-31 13:53:28 -04:00
m0duspwnens
b3b67ff2a5 Merge remote-tracking branch 'remotes/origin/dev' into issue/1091 2020-07-31 13:50:11 -04:00
m0duspwnens
d16d2b6551 full path to salt bootstrap 2020-07-31 13:42:06 -04:00
m0duspwnens
e3581bb76e change to salt-common 2020-07-31 13:36:21 -04:00
m0duspwnens
13c9fa3089 test minion upgrade at end 2020-07-31 13:32:12 -04:00
m0duspwnens
1e1d6a395d cant get grains.filter_by to work for some reason 2020-07-31 13:25:37 -04:00
m0duspwnens
d7ad2fbfd7 move include 2020-07-31 13:17:56 -04:00
m0duspwnens
dd865f6a68 change map 2020-07-31 13:10:37 -04:00
m0duspwnens
173f945fc0 remove comma 2020-07-31 13:01:37 -04:00
m0duspwnens
d6f89cb09a fix ubuntu salt-common package name 2020-07-31 12:37:19 -04:00
m0duspwnens
7287f5f935 wordsmithing 2020-07-30 17:01:17 -04:00
m0duspwnens
da9dc42a47 more logging 2020-07-30 16:47:40 -04:00
m0duspwnens
2ad17dfd06 dont append 2020-07-30 16:42:59 -04:00
m0duspwnens
8d044084e1 try to log soup 2020-07-30 16:41:21 -04:00
Josh Brower
ed8d443fe5 Merge pull request #1125 from Security-Onion-Solutions/feature/launcher-update
Fleet - Update osquery config for 4.4 windows_events
2020-07-30 16:35:42 -04:00
Josh Brower
4e01ef2795 Fleet - Update osquery config for 4.4 windows_events 2020-07-30 16:34:48 -04:00
m0duspwnens
de7f67ff2f fix UPGRADECOMMAND 2020-07-30 16:31:37 -04:00
m0duspwnens
f209deac98 call detect_os function 2020-07-30 16:25:45 -04:00
m0duspwnens
914d890a51 fix UPGRADECOMMAND 2020-07-30 16:21:01 -04:00
m0duspwnens
8180f2cd93 remove quotes 2020-07-30 16:13:38 -04:00
m0duspwnens
cc48b55acf change state name 2020-07-30 16:06:01 -04:00
m0duspwnens
1492d132ca add ability to upgrade salt minion and master for ubuntu 2020-07-30 16:00:50 -04:00
m0duspwnens
a4fc2cbd42 caps 2020-07-30 13:50:22 -04:00
m0duspwnens
4bf4634762 ensure yum versionlock with a state rather than cmd.run state 2020-07-30 13:47:21 -04:00
m0duspwnens
6812d3f5c5 change output wording, add periods 2020-07-30 13:35:09 -04:00
m0duspwnens
a562d70fe2 stop salt minion first then salt master 2020-07-30 13:18:59 -04:00
m0duspwnens
8a8705f469 move when we check for salt minion update in setup 2020-07-30 12:41:09 -04:00
m0duspwnens
9570efbf8e fix opt check 2020-07-30 12:15:09 -04:00
m0duspwnens
c099f3c5ec change if for optargs 2020-07-30 11:49:34 -04:00
m0duspwnens
de0b34a66b change if for optargs 2020-07-30 11:43:18 -04:00
m0duspwnens
1c5e6fa10f change if for optargs 2020-07-30 11:39:58 -04:00
m0duspwnens
e9d889f719 fix regex 2020-07-30 11:33:19 -04:00
m0duspwnens
2222bce77b update regex 2020-07-30 11:22:12 -04:00
m0duspwnens
728afdcaaf exit soup if batch size invalid 2020-07-30 11:18:27 -04:00
m0duspwnens
3d4a96fae0 update ssl state unless , check and upgrade salt minion if needed during install 2020-07-30 11:16:37 -04:00
weslambert
00ba4ca6c0 Merge pull request #1121 from Security-Onion-Solutions/fix/thehive_static
Fix/thehive static
2020-07-30 10:27:43 -04:00
weslambert
4282930f08 Update cortex-application.conf 2020-07-30 10:26:49 -04:00
weslambert
c58ee8a37d Add Cortex play secret 2020-07-30 10:25:53 -04:00
weslambert
b6a053070f Change TheHive play secret 2020-07-30 10:25:07 -04:00
weslambert
2fab00458b Add randomized play secrets for Cortex + TheHive 2020-07-30 10:23:00 -04:00
Mike Reeves
55053748df Merge pull request #1119 from Security-Onion-Solutions/fix/2.0.3
2.0.3
2020-07-30 09:52:04 -04:00
m0duspwnens
14584b28e1 include salt state in salt.minion, manager salt-minion service in salt.minion state; 2020-07-29 16:04:47 -04:00
m0duspwnens
3e78c88114 update salt top to run salt.minion state if defined version not installed. only apply other states if proper version installed 2020-07-29 15:52:48 -04:00
Mike Reeves
1e15786430 Update VERIFY_ISO.md 2020-07-29 15:48:37 -04:00
Mike Reeves
c73d4aa690 Update sig file for 2.0.3 2020-07-29 15:40:02 -04:00
m0duspwnens
22b757f112 dont install new minion if already installed 2020-07-29 15:36:35 -04:00
m0duspwnens
03144446c8 revert branch to original code 2020-07-29 14:59:00 -04:00
m0duspwnens
5a814f8312 change condidtional statement 2020-07-29 14:41:58 -04:00
m0duspwnens
8c466f548b update wording 2020-07-29 14:38:42 -04:00
m0duspwnens
171aa1178a fix vars and if statement 2020-07-29 14:36:42 -04:00
m0duspwnens
8a44d4752b fix var def 2020-07-29 14:26:57 -04:00
m0duspwnens
c949845218 only try to upgrade salt on grid if salt upgraded on manager 2020-07-29 14:20:17 -04:00
m0duspwnens
b8c0653818 soup upgrade salt on minions - add batch size option 2020-07-29 14:18:11 -04:00
weslambert
646bf1cb4d Merge pull request #1118 from Security-Onion-Solutions/fix/wazuh_register_to
Fix/wazuh registration timeout
2020-07-29 13:53:45 -04:00
weslambert
c48ba8abaf Re-arrange config 2020-07-29 13:52:12 -04:00
weslambert
9db390023b Increase timeout from 10s to 30s 2020-07-29 13:51:46 -04:00
m0duspwnens
0de6e86cdb dont run booststrap-salt if the proper version is installed 2020-07-29 13:39:55 -04:00
m0duspwnens
b9d0bd86ca fbkeylink and fbcertlink owned by socore:socore 2020-07-29 13:27:06 -04:00
m0duspwnens
9b29dff04f only generate p8 files if the key used for genetation changes 2020-07-29 11:40:45 -04:00
m0duspwnens
dca3855f81 remove always update if branch specified 2020-07-29 10:50:11 -04:00
m0duspwnens
b67e3507d3 always update and clean dockers 2020-07-29 10:13:30 -04:00
Mike Reeves
e3da326fcb Remove non used pillar items 2020-07-29 09:27:18 -04:00
weslambert
4b36c4a809 Merge pull request #1115 from Security-Onion-Solutions/fix/remove_ls_syslog
Remove LS syslog port binding
2020-07-29 08:35:41 -04:00
weslambert
7d432091e2 Remove LS syslog port binding 2020-07-29 08:35:07 -04:00
Josh Brower
e7b9e001e1 mysql init.sls - change startup time from 2 min to 15min
Closes https://github.com/Security-Onion-Solutions/securityonion/issues/1106
2020-07-28 22:08:00 -04:00
m0duspwnens
f056a0a17b use import_yaml 2020-07-28 17:09:53 -04:00
m0duspwnens
8905869db2 move salt pillars to defaults 2020-07-28 16:58:44 -04:00
m0duspwnens
bfae439c90 salt state distribute bootstrap script 2020-07-28 16:37:14 -04:00
Doug Burks
cf63e891b5 Update changes.json 2020-07-28 16:29:03 -04:00
m0duspwnens
4d5c8e5c2b add salt minion state to install/upgrade salt-minion 2020-07-28 16:22:42 -04:00
Mike Reeves
b46b7ae1a0 Update changes.json 2020-07-28 16:19:16 -04:00
Mike Reeves
db89089291 Update README.md 2020-07-28 16:15:59 -04:00
Mike Reeves
1ff440b7b0 Update VERSION 2020-07-28 16:15:23 -04:00
Josh Brower
b1c09a9b72 Typo fix - ingest parser - win.eventlogs 2020-07-28 15:23:17 -04:00
m0duspwnens
c00b452f8d change module.run for ca state 2020-07-28 15:10:16 -04:00
m0duspwnens
73830123b6 Merge remote-tracking branch 'remotes/origin/dev' into issue/1091 2020-07-28 14:32:07 -04:00
m0duspwnens
307945e260 dont state salt-minion service, allow salt state to start it during highstate 2020-07-28 13:51:28 -04:00
m0duspwnens
2067cc118f remove broken logging 2020-07-28 13:25:43 -04:00
m0duspwnens
77acb8f348 change ot /opt/so/log 2020-07-28 13:20:01 -04:00
m0duspwnens
d8375cce14 touch soup log 2020-07-28 13:15:47 -04:00
m0duspwnens
73a1a05404 change back sed delimiters, last highstate log level to info 2020-07-28 13:11:38 -04:00
Josh Brower
fe76f1c87c Merge pull request #1111 from Security-Onion-Solutions/feature/refactor-sysmon-parsing
initial refactor - beats/sysmon parsing
2020-07-28 11:04:13 -04:00
Josh Brower
55e60cb749 initial refactor - beats/sysmon parsing 2020-07-28 11:03:33 -04:00
m0duspwnens
fb453a0d9c change sed delimiters in soup 2020-07-28 08:13:03 -04:00
m0duspwnens
254dcdb2f0 prevent dockers from redownloading if we are updating soup to a branch 2020-07-27 18:19:26 -04:00
m0duspwnens
f42a39ca69 allow soup to continue update if branch is specified 2020-07-27 18:08:27 -04:00
m0duspwnens
e811718ebc change to salt 3001.1, fix dupe state name, add git branch option to soup 2020-07-27 17:53:02 -04:00
m0duspwnens
7606cc0ad0 changes to ssl state for salt 3001 2020-07-27 15:51:31 -04:00
weslambert
0f6ecdf38a Merge pull request #1104 from Security-Onion-Solutions/feature/cortex_orguser
Create default orguser if empty
2020-07-27 09:50:23 -04:00
Wes Lambert
e81fd7464b Create default orguser if empty 2020-07-27 13:49:17 +00:00
weslambert
ced51761fa Merge pull request #1103 from Security-Onion-Solutions/feature/wazuh_version
Bump Wazuh version
2020-07-27 09:46:27 -04:00
Wes Lambert
ac5aeb4801 Bump Wazuh version 2020-07-27 13:45:34 +00:00
weslambert
88ffd0c17c Merge pull request #1101 from Security-Onion-Solutions/feature/wazuh_symlinks
Add Wazuh Wazuh symlinks for config/rules
2020-07-27 08:15:58 -04:00
Wes Lambert
51e27cadc8 Add Wazuh Wazuh symlinks for cpnfig/rules 2020-07-27 12:14:43 +00:00
weslambert
2d2bebdd9c Merge pull request #1100 from Security-Onion-Solutions/feature/wazuh_nsm
Move Wazuh from /opt/so/ to /nsm/wazuh
2020-07-27 07:59:39 -04:00
Wes Lambert
958ee25f6d Move Wazuh from /opt/so/ to /nsm/wazuh 2020-07-27 11:58:12 +00:00
weslambert
2d096ddd66 Merge pull request #1096 from Security-Onion-Solutions/fix/elastalert_thehive
Make sure we are searching all clusters when running rules
2020-07-24 18:05:46 -04:00
Wes Lambert
3ac9f1800b Make sure we are searching all clusters when running rules 2020-07-24 22:04:30 +00:00
m0duspwnens
78491e1fc5 soup update salt on manager for centos - https://github.com/Security-Onion-Solutions/securityonion/issues/1091 2020-07-24 15:06:06 -04:00
William Wernert
6c9c60b8dd Merge branch 'master' into dev
# Conflicts:
#	VERSION
2020-07-24 11:50:34 -04:00
Doug Burks
25f6ec861a Merge pull request #1090 from Security-Onion-Solutions/fix/2.0.2
Fix/2.0.2
2020-07-24 11:47:19 -04:00
Mike Reeves
2cabcd4239 Update sig file and hashes 2020-07-24 10:19:38 -04:00
Mike Reeves
91e7a474d5 Update VERIFY_ISO.md 2020-07-24 10:18:09 -04:00
Mike Reeves
79c45156c2 Update changes.json 2020-07-23 22:13:02 -04:00
Mike Reeves
31daad1e5b Update VERIFY_ISO.md
still needs MD5s etc
2020-07-23 22:11:22 -04:00
Mike Reeves
650c983a2e Update README.md 2020-07-23 22:09:05 -04:00
Mike Reeves
95bb1147ca Update VERSION 2020-07-23 22:08:23 -04:00
Jason Ertel
ec09c064d0 If SENSOR_CHECKIN_INTERVAL_MS is still not set when using in a template, fallback to 10s 2020-07-23 21:19:45 -04:00
Jason Ertel
39426afffd Ensure SENSOR_CHECKIN_INTERVAL_MS var is non-null before saving static pillar 2020-07-23 21:00:10 -04:00
Jason Ertel
9eeb527ea7 Include UTC parameter when providing a hyperlink to Hunt from so-import-pcap output 2020-07-23 17:18:42 -04:00
Mike Reeves
bb6871a54a Merge pull request #1087 from Security-Onion-Solutions/TOoSmOotH-patch-2
Update VERIFY_ISO.md
2020-07-23 15:29:32 -04:00
Mike Reeves
261310ce92 Update VERIFY_ISO.md 2020-07-23 15:28:37 -04:00
Mike Reeves
5417b31a10 Merge pull request #1086 from Security-Onion-Solutions/TOoSmOotH-patch-2
Update VERIFY_ISO.md
2020-07-23 15:27:27 -04:00
Mike Reeves
11932366cd Update VERIFY_ISO.md 2020-07-23 15:25:53 -04:00
Doug Burks
2f73dcc6f6 Merge pull request #1085 from Security-Onion-Solutions/fix/2.0.1sig
Update Signature and hashes
2020-07-23 15:23:58 -04:00
Mike Reeves
acf20bf2e8 Update Signature and hashes 2020-07-23 15:20:22 -04:00
Mike Reeves
4d84b840e4 Update Signature and hashes 2020-07-23 15:16:39 -04:00
Mike Reeves
c112dfa098 Merge pull request #1074 from Security-Onion-Solutions/fix/2.0.1sig
Update Signature and Download Links
2020-07-23 13:36:30 -04:00
Mike Reeves
3dd8e1998d Update Signature and Download Links 2020-07-23 13:33:12 -04:00
Mike Reeves
d66f424e5e Merge pull request #1072 from Security-Onion-Solutions/fix/2.0.1-pcap-interval
Fix/2.0.1 Update Readme and changes.json
2020-07-23 12:12:13 -04:00
Mike Reeves
4b127010ee Update changes.json 2020-07-23 11:59:20 -04:00
Mike Reeves
75477fe9bf Update changes.json 2020-07-23 11:56:14 -04:00
Mike Reeves
30fa9872f9 Update README.md 2020-07-23 10:38:26 -04:00
Jason Ertel
1e993da31d Merge master into dev to pull in 2.0.1-rc.1 patch 2020-07-23 09:56:42 -04:00
William Wernert
f3c24f1f01 [fix] Add check for $TESTING 2020-07-21 16:43:21 -04:00
William Wernert
c70bb9e58f Merge pull request #1053 from Security-Onion-Solutions/feature/storage-calculation
Feature/storage calculation
2020-07-21 16:41:12 -04:00
William Wernert
752d1bceb4 [fix] Remove old storage space check 2020-07-21 16:36:37 -04:00
William Wernert
ddf0a5055e [fix] Exit on NO 2020-07-21 16:34:08 -04:00
William Wernert
003271127a [feat] Only check storage during setup on a network install 2020-07-21 16:32:28 -04:00
William Wernert
c531395452 Merge branch 'dev' into feature/storage-calculation 2020-07-21 16:24:28 -04:00
William Wernert
e43829b22c [fix] Add then to if statement 2020-07-21 16:24:13 -04:00
William Wernert
d6f7dcb630 [refactor] Changes to storage requirements
See #1047
2020-07-21 15:35:13 -04:00
Jason Ertel
d2df405cf0 so-import-pcap improvements: Ensure PCAP filenames with spaces are handled properly; Provide link directly to the imported logs, filtered by import ID; Require sudo access to run so-import-pcap 2020-07-21 11:07:09 -04:00
Mike Reeves
abc68c2efb Update VERIFY_ISO.md 2020-07-21 08:51:46 -04:00
Jason Ertel
3281467994 When running in automated mode, cat all piped in input to setup log 2020-07-20 20:26:35 -04:00
Jason Ertel
e881f4c92b Increment VERSION for dev to 2.1.0-rc.2; Add more logging to troubleshoot automated setup not initiating post-installation steps 2020-07-20 17:37:53 -04:00
159 changed files with 11501 additions and 1068 deletions

View File

@@ -1,6 +1,6 @@
## Security Onion 2.0.0.rc1
## Security Onion 2.1.0.rc2
Security Onion 2.0.0 RC1 is here! This version requires a fresh install, but there is good news - we have brought back soup! From now on, you should be able to run soup on the manager to upgrade your environment to RC2 and beyond!
Security Onion 2.1.0 RC2 is here!
### Warnings and Disclaimers
@@ -14,24 +14,24 @@ Security Onion 2.0.0 RC1 is here! This version requires a fresh install, but the
### Release Notes
https://docs.securityonion.net/en/2.0/release-notes.html
https://docs.securityonion.net/en/2.1/release-notes.html
### Requirements
https://docs.securityonion.net/en/2.0/hardware.html
https://docs.securityonion.net/en/2.1/hardware.html
### Download
https://docs.securityonion.net/en/2.0/download.html
https://docs.securityonion.net/en/2.1/download.html
### Installation
https://docs.securityonion.net/en/2.0/installation.html
https://docs.securityonion.net/en/2.1/installation.html
### FAQ
https://docs.securityonion.net/en/2.0/faq.html
https://docs.securityonion.net/en/2.1/faq.html
### Feedback
https://docs.securityonion.net/en/2.0/community-support.html
https://docs.securityonion.net/en/2.1/community-support.html

View File

@@ -1,16 +1,16 @@
### 2.0.0-rc1 ISO image built on 2020/07/20
### 2.1.0-rc2 ISO image built on 2020/08/23
### Download and Verify
2.0.0-rc1 ISO image:
https://download.securityonion.net/file/securityonion/securityonion-2.0.0-rc1.iso
2.1.0-rc2 ISO image:
https://download.securityonion.net/file/securityonion/securityonion-2.1.0-rc2.iso
MD5: 788570E839439C23956581C6145B8689
SHA1: A87CAF016C989D4DB4D4ED619DF072B708BA28FE
SHA256: C5AC6419AF40CB98E93C53CE4101E7DE5F51AEE76DB46734191D783503649210
MD5: 9EAE772B64F5B3934C0DB7913E38D6D4
SHA1: D0D347AE30564871DE81203C0CE53B950F8732CE
SHA256: 888AC7758C975FAA0A7267E5EFCB082164AC7AC8DCB3B370C06BA0B8493DAC44
Signature for ISO image:
https://github.com/Security-Onion-Solutions/securityonion/raw/master/sigs/securityonion-2.0.0-rc1.iso.sig
https://github.com/Security-Onion-Solutions/securityonion/raw/master/sigs/securityonion-2.1.0-rc2.iso.sig
Signing key:
https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/master/KEYS
@@ -24,22 +24,22 @@ wget https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/ma
Download the signature file for the ISO:
```
wget https://github.com/Security-Onion-Solutions/securityonion/raw/master/sigs/securityonion-2.0.0-rc1.iso.sig
wget https://github.com/Security-Onion-Solutions/securityonion/raw/master/sigs/securityonion-2.1.0-rc2.iso.sig
```
Download the ISO image:
```
wget https://download.securityonion.net/file/securityonion/securityonion-2.0.0-rc1.iso
wget https://download.securityonion.net/file/securityonion/securityonion-2.1.0-rc2.iso
```
Verify the downloaded ISO image using the signature file:
```
gpg --verify securityonion-2.0.0-rc1.iso.sig securityonion-2.0.0-rc1.iso
gpg --verify securityonion-2.1.0-rc2.iso.sig securityonion-2.1.0-rc2.iso
```
The output should show "Good signature" and the Primary key fingerprint should match what's shown below:
```
gpg: Signature made Mon 20 Jul 2020 03:01:19 PM EDT using RSA key ID FE507013
gpg: Signature made Sun 23 Aug 2020 04:37:00 PM EDT using RSA key ID FE507013
gpg: Good signature from "Security Onion Solutions, LLC <info@securityonionsolutions.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
@@ -47,4 +47,4 @@ Primary key fingerprint: C804 A93D 36BE 0C73 3EA1 9644 7C10 60B7 FE50 7013
```
Once you've verified the ISO image, you're ready to proceed to our Installation guide:
https://docs.securityonion.net/en/2.0/installation.html
https://docs.securityonion.net/en/2.1/installation.html

View File

@@ -1 +1 @@
2.0.1-rc.1
2.1.0-rc.2

View File

@@ -13,6 +13,7 @@ role:
fleet:
heavynode:
helixsensor:
import:
manager:
managersearch:
standalone:

View File

@@ -44,11 +44,11 @@ echo " guid: $GUID" >> $local_salt_dir/pillar/data/$TYPE.sls
echo " rootfs: $ROOTFS" >> $local_salt_dir/pillar/data/$TYPE.sls
echo " nsmfs: $NSM" >> $local_salt_dir/pillar/data/$TYPE.sls
if [ $TYPE == 'sensorstab' ]; then
echo " monint: $MONINT" >> $local_salt_dir/pillar/data/$TYPE.sls
echo " monint: bond0" >> $local_salt_dir/pillar/data/$TYPE.sls
salt-call state.apply grafana queue=True
fi
if [ $TYPE == 'evaltab' ] || [ $TYPE == 'standalonetab' ]; then
echo " monint: $MONINT" >> $local_salt_dir/pillar/data/$TYPE.sls
echo " monint: bond0" >> $local_salt_dir/pillar/data/$TYPE.sls
if [ ! $10 ]; then
salt-call state.apply grafana queue=True
salt-call state.apply utility queue=True

View File

@@ -1,11 +1,11 @@
{%- set FLEETMANAGER = salt['pillar.get']('static:fleet_manager', False) -%}
{%- set FLEETNODE = salt['pillar.get']('static:fleet_node', False) -%}
{%- set FLEETMANAGER = salt['pillar.get']('global:fleet_manager', False) -%}
{%- set FLEETNODE = salt['pillar.get']('global:fleet_node', False) -%}
{% set WAZUH = salt['pillar.get']('manager:wazuh', '0') %}
{% set THEHIVE = salt['pillar.get']('manager:thehive', '0') %}
{% set PLAYBOOK = salt['pillar.get']('manager:playbook', '0') %}
{% set FREQSERVER = salt['pillar.get']('manager:freq', '0') %}
{% set DOMAINSTATS = salt['pillar.get']('manager:domainstats', '0') %}
{% set ZEEKVER = salt['pillar.get']('static:zeekversion', 'COMMUNITY') %}
{% set ZEEKVER = salt['pillar.get']('global:zeekversion', 'COMMUNITY') %}
{% set GRAFANA = salt['pillar.get']('manager:grafana', '0') %}
eval:

View File

@@ -33,6 +33,8 @@ firewall:
- 9300
- 9400
- 9500
- 9595
- 9696
udp:
- 1514
minions:

View File

@@ -1,7 +1,6 @@
logstash:
docker_options:
port_bindings:
- 0.0.0.0:514:514
- 0.0.0.0:5044:5044
- 0.0.0.0:5644:5644
- 0.0.0.0:6050:6050

View File

@@ -1,3 +1,4 @@
{%- set PIPELINE = salt['pillar.get']('global:pipeline', 'redis') %}
logstash:
pipelines:
manager:
@@ -5,3 +6,4 @@ logstash:
- so/0009_input_beats.conf
- so/0010_input_hhbeats.conf
- so/9999_output_redis.conf.jinja

View File

@@ -1,3 +1,4 @@
{%- set PIPELINE = salt['pillar.get']('global:pipeline', 'minio') %}
logstash:
pipelines:
search:

View File

@@ -2,7 +2,7 @@ base:
'*':
- patch.needs_restarting
'*_eval or *_helix or *_heavynode or *_sensor or *_standalone':
'*_eval or *_helix or *_heavynode or *_sensor or *_standalone or *_import':
- match: compound
- zeek
@@ -14,14 +14,14 @@ base:
- elasticsearch.search
'*_sensor':
- static
- global
- zeeklogs
- healthcheck.sensor
- minions.{{ grains.id }}
'*_manager or *_managersearch':
- match: compound
- static
- global
- data.*
- secrets
- minions.{{ grains.id }}
@@ -36,7 +36,7 @@ base:
- secrets
- healthcheck.eval
- elasticsearch.eval
- static
- global
- minions.{{ grains.id }}
'*_standalone':
@@ -48,20 +48,20 @@ base:
- zeeklogs
- secrets
- healthcheck.standalone
- static
- global
- minions.{{ grains.id }}
'*_node':
- static
- global
- minions.{{ grains.id }}
'*_heavynode':
- static
- global
- zeeklogs
- minions.{{ grains.id }}
'*_helix':
- static
- global
- fireeye
- zeeklogs
- logstash
@@ -69,14 +69,21 @@ base:
- minions.{{ grains.id }}
'*_fleet':
- static
- global
- data.*
- secrets
- minions.{{ grains.id }}
'*_searchnode':
- static
- global
- logstash
- logstash.search
- elasticsearch.search
- minions.{{ grains.id }}
'*_import':
- zeeklogs
- secrets
- elasticsearch.eval
- global
- minions.{{ grains.id }}

View File

@@ -10,12 +10,16 @@
file.directory: []
pki_private_key:
x509.private_key_managed:
- name: /etc/pki/ca.key
- bits: 4096
- passphrase:
- cipher: aes_256_cbc
- backup: True
x509.private_key_managed:
- name: /etc/pki/ca.key
- bits: 4096
- passphrase:
- cipher: aes_256_cbc
- backup: True
{% if salt['file.file_exists']('/etc/pki/ca.key') -%}
- prereq:
- x509: /etc/pki/ca.crt
{%- endif %}
/etc/pki/ca.crt:
x509.certificate_managed:
@@ -32,22 +36,19 @@ pki_private_key:
- days_valid: 3650
- days_remaining: 0
- backup: True
- managed_private_key:
name: /etc/pki/ca.key
bits: 4096
backup: True
- replace: False
- require:
- file: /etc/pki
send_x509_pem_entries_to_mine:
x509_pem_entries:
module.run:
- mine.send:
- func: x509.get_pem_entries
- glob_path: /etc/pki/ca.crt
- name: x509.get_pem_entries
- glob_path: /etc/pki/ca.crt
cakeyperms:
file.managed:
- replace: False
- name: /etc/pki/ca.key
- mode: 640
- group: 939
- group: 939

View File

@@ -0,0 +1,10 @@
{% set docker = {
'containers': [
'so-filebeat',
'so-nginx',
'so-soc',
'so-kratos',
'so-elasticsearch',
'so-kibana'
]
} %}

View File

@@ -20,7 +20,7 @@
{% if role in ['eval', 'managersearch', 'manager', 'standalone'] %}
{{ append_containers('manager', 'grafana', 0) }}
{{ append_containers('static', 'fleet_manager', 0) }}
{{ append_containers('global', 'fleet_manager', 0) }}
{{ append_containers('manager', 'wazuh', 0) }}
{{ append_containers('manager', 'thehive', 0) }}
{{ append_containers('manager', 'playbook', 0) }}
@@ -29,11 +29,11 @@
{% endif %}
{% if role in ['eval', 'heavynode', 'sensor', 'standalone'] %}
{{ append_containers('static', 'strelka', 0) }}
{{ append_containers('global', 'strelka', 0) }}
{% endif %}
{% if role in ['heavynode', 'standalone'] %}
{{ append_containers('static', 'zeekversion', 'SURICATA') }}
{{ append_containers('global', 'zeekversion', 'SURICATA') }}
{% endif %}
{% if role == 'searchnode' %}
@@ -41,5 +41,5 @@
{% endif %}
{% if role == 'sensor' %}
{{ append_containers('static', 'zeekversion', 'SURICATA') }}
{{ append_containers('global', 'zeekversion', 'SURICATA') }}
{% endif %}

View File

@@ -21,6 +21,30 @@ local_salt_dir=/opt/so/saltstack/local
SKIP=0
function usage {
cat << EOF
Usage: $0 [-abefhoprsw] [ -i IP ]
This program allows you to add a firewall rule to allow connections from a new IP address or CIDR range.
If you run this program with no arguments, it will present a menu for you to choose your options.
If you want to automate and skip the menu, you can pass the desired options as command line arguments.
EXAMPLES
To add 10.1.2.3 to the analyst role:
so-allow -a -i 10.1.2.3
To add 10.1.2.0/24 to the osquery role:
so-allow -o -i 10.1.2.0/24
EOF
}
while getopts "ahfesprbowi:" OPTION
do
case $OPTION in
@@ -36,7 +60,7 @@ do
FULLROLE="beats_endpoint"
SKIP=1
;;
e)
e)
FULLROLE="elasticsearch_rest"
SKIP=1
;;
@@ -127,7 +151,7 @@ salt-call state.apply firewall queue=True
if grep -q -R "wazuh: 1" $local_salt_dir/pillar/*; then
# If analyst, add to Wazuh AR whitelist
if [ "$FULLROLE" == "analyst" ]; then
WAZUH_MGR_CFG="/opt/so/wazuh/etc/ossec.conf"
WAZUH_MGR_CFG="/nsm/wazuh/etc/ossec.conf"
if ! grep -q "<white_list>$IP</white_list>" $WAZUH_MGR_CFG ; then
DATE=$(date)
sed -i 's/<\/ossec_config>//' $WAZUH_MGR_CFG

View File

@@ -76,6 +76,7 @@ if [ $MANAGERCHECK != 'so-helix' ]; then
"so-kibana:$VERSION" \
"so-kratos:$VERSION" \
"so-logstash:$VERSION" \
"so-minio:$VERSION" \
"so-mysql:$VERSION" \
"so-nginx:$VERSION" \
"so-pcaptools:$VERSION" \

View File

@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{%- set MANAGERIP = salt['pillar.get']('static:managerip', '') -%}
{%- set MANAGERIP = salt['pillar.get']('global:managerip', '') -%}
. /usr/sbin/so-common
SKIP=0

View File

@@ -29,9 +29,9 @@ manager_check() {
}
manager_check
VERSION=$(grep soversion $local_salt_dir/pillar/static.sls | cut -d':' -f2|sed 's/ //g')
# Modify static.sls to enable Features
sed -i 's/features: False/features: True/' $local_salt_dir/pillar/static.sls
VERSION=$(grep soversion $local_salt_dir/pillar/global.sls | cut -d':' -f2|sed 's/ //g')
# Modify global.sls to enable Features
sed -i 's/features: False/features: True/' $local_salt_dir/pillar/global.sls
SUFFIX="-features"
TRUSTED_CONTAINERS=( \
"so-elasticsearch:$VERSION$SUFFIX" \

View File

@@ -15,10 +15,13 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set MANAGER = salt['grains.get']('master') %}
{% set VERSION = salt['pillar.get']('static:soversion') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{%- set MANAGERIP = salt['pillar.get']('static:managerip') -%}
{%- set MANAGER = salt['grains.get']('master') %}
{%- set VERSION = salt['pillar.get']('global:soversion') %}
{%- set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{%- set MANAGERIP = salt['pillar.get']('global:managerip') -%}
{%- set URLBASE = salt['pillar.get']('global:url_base') %}
. /usr/sbin/so-common
function usage {
cat << EOF
@@ -32,13 +35,13 @@ EOF
function pcapinfo() {
PCAP=$1
ARGS=$2
docker run --rm -v $PCAP:/input.pcap --entrypoint capinfos {{ MANAGER }}:5000/{{ IMAGEREPO }}/so-pcaptools:{{ VERSION }} /input.pcap $ARGS
docker run --rm -v "$PCAP:/input.pcap" --entrypoint capinfos {{ MANAGER }}:5000/{{ IMAGEREPO }}/so-pcaptools:{{ VERSION }} /input.pcap $ARGS
}
function pcapfix() {
PCAP=$1
PCAP_OUT=$2
docker run --rm -v $PCAP:/input.pcap -v $PCAP_OUT:$PCAP_OUT --entrypoint pcapfix {{ MANAGER }}:5000/{{ IMAGEREPO }}/so-pcaptools:{{ VERSION }} /input.pcap -o $PCAP_OUT > /dev/null 2>&1
docker run --rm -v "$PCAP:/input.pcap" -v $PCAP_OUT:$PCAP_OUT --entrypoint pcapfix {{ MANAGER }}:5000/{{ IMAGEREPO }}/so-pcaptools:{{ VERSION }} /input.pcap -o $PCAP_OUT > /dev/null 2>&1
}
function suricata() {
@@ -57,7 +60,7 @@ function suricata() {
-v /opt/so/conf/suricata/rules:/etc/suricata/rules:ro \
-v ${LOG_PATH}:/var/log/suricata/:rw \
-v ${NSM_PATH}/:/nsm/:rw \
-v $PCAP:/input.pcap:ro \
-v "$PCAP:/input.pcap:ro" \
-v /opt/so/conf/suricata/bpf:/etc/suricata/bpf:ro \
{{ MANAGER }}:5000/{{ IMAGEREPO }}/so-suricata:{{ VERSION }} \
--runmode single -k none -r /input.pcap > $LOG_PATH/console.log 2>&1
@@ -76,7 +79,7 @@ function zeek() {
-v $NSM_PATH/logs:/nsm/zeek/logs:rw \
-v $NSM_PATH/spool:/nsm/zeek/spool:rw \
-v $NSM_PATH/extracted:/nsm/zeek/extracted:rw \
-v $PCAP:/input.pcap:ro \
-v "$PCAP:/input.pcap:ro" \
-v /opt/so/conf/zeek/local.zeek:/opt/zeek/share/zeek/site/local.zeek:ro \
-v /opt/so/conf/zeek/node.cfg:/opt/zeek/etc/node.cfg:ro \
-v /opt/so/conf/zeek/zeekctl.cfg:/opt/zeek/etc/zeekctl.cfg:ro \
@@ -210,9 +213,9 @@ cat << EOF
Import complete!
You can use the following hyperlink to view data in the time range of your import. You can triple-click to quickly highlight the entire hyperlink and you can then copy it into your browser:
https://{{ MANAGERIP }}/#/hunt?q=%2a%20%7C%20groupby%20event.module%20event.dataset&t=${START_OLDEST_SLASH}%2000%3A00%3A00%20AM%20-%20${END_NEWEST_SLASH}%2000%3A00%3A00%20AM
https://{{ URLBASE }}/#/hunt?q=import.id:${HASH}%20%7C%20groupby%20event.module%20event.dataset&t=${START_OLDEST_SLASH}%2000%3A00%3A00%20AM%20-%20${END_NEWEST_SLASH}%2000%3A00%3A00%20AM&z=UTC
or you can manually set your Time Range to be:
or you can manually set your Time Range to be (in UTC):
From: $START_OLDEST To: $END_NEWEST
Please note that it may take 30 seconds or more for events to appear in Onion Hunt.

View File

@@ -1,9 +1,9 @@
#!/bin/bash
#
# {%- set FLEET_MANAGER = salt['pillar.get']('static:fleet_manager', False) -%}
# {%- set FLEET_NODE = salt['pillar.get']('static:fleet_node', False) -%}
# {%- set FLEET_IP = salt['pillar.get']('static:fleet_ip', '') %}
# {%- set MANAGER = salt['pillar.get']('manager:url_base', '') %}
# {%- set FLEET_MANAGER = salt['pillar.get']('global:fleet_manager', False) -%}
# {%- set FLEET_NODE = salt['pillar.get']('global:fleet_node', False) -%}
# {%- set FLEET_IP = salt['pillar.get']('global:fleet_ip', '') %}
# {%- set MANAGER = salt['pillar.get']('global:url_base', '') %}
#
# Copyright 2014,2015,2016,2017,2018,2019,2020 Security Onion Solutions, LLC
#

View File

@@ -17,4 +17,4 @@
. /usr/sbin/so-common
docker exec so-soctopus python3 playbook_play-sync.py >> /opt/so/log/soctopus/so-playbook-sync.log 2>&1
docker exec so-soctopus python3 playbook_play-sync.py

View File

@@ -10,4 +10,4 @@ got_root() {
}
got_root
docker exec -it so-idstools /bin/bash -c 'cd /opt/so/idstools/etc && idstools-rulecat'
docker exec -d so-idstools /bin/bash -c 'cd /opt/so/idstools/etc && idstools-rulecat'

View File

@@ -18,13 +18,18 @@
. /usr/sbin/so-common
UPDATE_DIR=/tmp/sogh/securityonion
INSTALLEDVERSION=$(cat /etc/soversion)
default_salt_dir=/opt/so/saltstack/default
INSTALLEDSALTVERSION=$(salt --versions-report | grep Salt: | awk {'print $2'})
DEFAULT_SALT_DIR=/opt/so/saltstack/default
BATCHSIZE=5
SOUP_LOG=/root/soup.log
exec 3>&1 1>${SOUP_LOG} 2>&1
manager_check() {
# Check to see if this is a manager
MANAGERCHECK=$(cat /etc/salt/grains | grep role | awk '{print $2}')
if [[ "$MANAGERCHECK" =~ ^('so-eval'|'so-manager'|'so-standalone'|'so-managersearch')$ ]]; then
echo "This is a manager. We can proceed"
if [[ "$MANAGERCHECK" =~ ^('so-eval'|'so-manager'|'so-standalone'|'so-managersearch'|'so-import')$ ]]; then
echo "This is a manager. We can proceed."
MINIONID=$(salt-call grains.get id --out=txt|awk -F: {'print $2'}|tr -d ' ')
else
echo "Please run soup on the manager. The manager controls all updates."
exit 0
@@ -58,28 +63,122 @@ clone_to_tmp() {
copy_new_files() {
# Copy new files over to the salt dir
cd /tmp/sogh/securityonion
rsync -a salt $default_salt_dir/
rsync -a pillar $default_salt_dir/
chown -R socore:socore $default_salt_dir/
chmod 755 $default_salt_dir/pillar/firewall/addfirewall.sh
rsync -a salt $DEFAULT_SALT_DIR/
rsync -a pillar $DEFAULT_SALT_DIR/
chown -R socore:socore $DEFAULT_SALT_DIR/
chmod 755 $DEFAULT_SALT_DIR/pillar/firewall/addfirewall.sh
cd /tmp
}
detect_os() {
# Detect Base OS
echo "Determining Base OS." >> "$SOUP_LOG" 2>&1
if [ -f /etc/redhat-release ]; then
OS="centos"
elif [ -f /etc/os-release ]; then
OS="ubuntu"
fi
echo "Found OS: $OS" >> "$SOUP_LOG" 2>&1
}
highstate() {
# Run a highstate but first cancel a running one.
salt-call saltutil.kill_all_jobs
salt-call state.highstate
salt-call state.highstate -l info
}
masterlock() {
echo "Locking Salt Master"
if [[ "$INSTALLEDVERSION" =~ rc.1 ]]; then
TOPFILE=/opt/so/saltstack/default/salt/top.sls
BACKUPTOPFILE=/opt/so/saltstack/default/salt/top.sls.backup
mv -v $TOPFILE $BACKUPTOPFILE
echo "base:" > $TOPFILE
echo " $MINIONID:" >> $TOPFILE
echo " - ca" >> $TOPFILE
echo " - ssl" >> $TOPFILE
echo " - elasticsearch" >> $TOPFILE
fi
}
masterunlock() {
echo "Unlocking Salt Master"
if [[ "$INSTALLEDVERSION" =~ rc.1 ]]; then
mv -v $BACKUPTOPFILE $TOPFILE
fi
}
playbook() {
echo "Applying playbook settings"
if [[ "$INSTALLEDVERSION" =~ rc.1 ]]; then
salt-call state.apply playbook.db_init
rm -f /opt/so/rules/elastalert/playbook/*.yaml
so-playbook-ruleupdate >> /root/soup_playbook_rule_update.log 2>&1 &
fi
}
pillar_changes() {
# This function is to add any new pillar items if needed.
echo "Checking to see if pillar changes are needed"
echo "Checking to see if pillar changes are needed."
# Move baseurl in global.sls
if [[ "$INSTALLEDVERSION" =~ rc.1 ]]; then
# Move the static file to global.sls
echo "Migrating static.sls to global.sls"
mv -v /opt/so/saltstack/local/pillar/static.sls /opt/so/saltstack/local/pillar/global.sls >> "$SOUP_LOG" 2>&1
sed -i '1c\global:' /opt/so/saltstack/local/pillar/global.sls >> "$SOUP_LOG" 2>&1
# Moving baseurl from minion sls file to inside global.sls
local line=$(grep '^ url_base:' /opt/so/saltstack/local/pillar/minions/$MINIONID.sls)
sed -i '/^ url_base:/d' /opt/so/saltstack/local/pillar/minions/$MINIONID.sls;
sed -i "/^global:/a \\$line" /opt/so/saltstack/local/pillar/global.sls;
# Adding play values to the global.sls
local HIVEPLAYSECRET=$(tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 20 | head -n 1)
local CORTEXPLAYSECRET=$(tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 20 | head -n 1)
sed -i "/^global:/a \\ hiveplaysecret: $HIVEPLAYSECRET" /opt/so/saltstack/local/pillar/global.sls;
sed -i "/^global:/a \\ cortexplaysecret: $CORTEXPLAYSECRET" /opt/so/saltstack/local/pillar/global.sls;
# Move storage nodes to hostname for SSL
# Get a list we can use:
grep -A1 searchnode /opt/so/saltstack/local/pillar/data/nodestab.sls | grep -v '\-\-' | sed '$!N;s/\n/ /' | awk '{print $1,$3}' | awk '/_searchnode:/{gsub(/\_searchnode:/, "_searchnode"); print}' >/tmp/nodes.txt
# Remove the nodes from cluster settings
while read p; do
local NAME=$(echo $p | awk '{print $1}')
local IP=$(echo $p | awk '{print $2}')
echo "Removing the old cross cluster config for $NAME"
curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_cluster/settings -d '{"persistent":{"cluster":{"remote":{"'$NAME'":{"skip_unavailable":null,"seeds":null}}}}}'
done </tmp/nodes.txt
# Add the nodes back using hostname
while read p; do
local NAME=$(echo $p | awk '{print $1}')
local EHOSTNAME=$(echo $p | awk -F"_" '{print $1}')
local IP=$(echo $p | awk '{print $2}')
echo "Adding the new cross cluster config for $NAME"
curl -XPUT http://localhost:9200/_cluster/settings -H'Content-Type: application/json' -d '{"persistent": {"search": {"remote": {"'$NAME'": {"skip_unavailable": "true", "seeds": ["'$EHOSTNAME':9300"]}}}}}'
done </tmp/nodes.txt
fi
}
update_dockers() {
# List all the containers
if [ $MANAGERCHECK != 'so-helix' ]; then
if [ $MANAGERCHECK == 'so-import' ]; then
TRUSTED_CONTAINERS=( \
"so-idstools" \
"so-nginx" \
"so-filebeat" \
"so-suricata" \
"so-soc" \
"so-elasticsearch" \
"so-kibana" \
"so-kratos" \
"so-suricata" \
"so-registry" \
"so-pcaptools" \
"so-zeek" )
elif [ $MANAGERCHECK != 'so-helix' ]; then
TRUSTED_CONTAINERS=( \
"so-acng" \
"so-thehive-cortex" \
@@ -97,6 +196,7 @@ update_dockers() {
"so-kibana" \
"so-kratos" \
"so-logstash" \
"so-minio" \
"so-mysql" \
"so-nginx" \
"so-pcaptools" \
@@ -143,9 +243,9 @@ update_dockers() {
update_version() {
# Update the version to the latest
echo "Updating the version file."
echo "Updating the Security Onion version file."
echo $NEWVERSION > /etc/soversion
sed -i "s/$INSTALLEDVERSION/$NEWVERSION/g" /opt/so/saltstack/local/pillar/static.sls
sed -i "s/$INSTALLEDVERSION/$NEWVERSION/g" /opt/so/saltstack/local/pillar/global.sls
}
upgrade_check() {
@@ -154,8 +254,44 @@ upgrade_check() {
if [ "$INSTALLEDVERSION" == "$NEWVERSION" ]; then
echo "You are already running the latest version of Security Onion."
exit 0
fi
}
upgrade_check_salt() {
NEWSALTVERSION=$(grep version: $UPDATE_DIR/salt/salt/master.defaults.yaml | awk {'print $2'})
if [ "$INSTALLEDSALTVERSION" == "$NEWSALTVERSION" ]; then
echo "You are already running the correct version of Salt for Security Onion."
else
echo "Performing Upgrade from $INSTALLEDVERSION to $NEWVERSION"
SALTUPGRADED=True
echo "Performing upgrade of Salt from $INSTALLEDSALTVERSION to $NEWSALTVERSION."
echo ""
# If CentOS
if [ "$OS" == "centos" ]; then
echo "Removing yum versionlock for Salt."
echo ""
yum versionlock delete "salt-*"
echo "Updating Salt packages and restarting services."
echo ""
sh $UPDATE_DIR/salt/salt/scripts/bootstrap-salt.sh -F -M -x python3 stable "$NEWSALTVERSION"
echo "Applying yum versionlock for Salt."
echo ""
yum versionlock add "salt-*"
# Else do Ubuntu things
elif [ "$OS" == "ubuntu" ]; then
echo "Removing apt hold for Salt."
echo ""
apt-mark unhold "salt-common"
apt-mark unhold "salt-master"
apt-mark unhold "salt-minion"
echo "Updating Salt packages and restarting services."
echo ""
sh $UPDATE_DIR/salt/salt/scripts/bootstrap-salt.sh -F -M -x python3 stable "$NEWSALTVERSION"
echo "Applying apt hold for Salt."
echo ""
apt-mark hold "salt-common"
apt-mark hold "salt-master"
apt-mark hold "salt-minion"
fi
fi
}
@@ -167,41 +303,111 @@ verify_latest_update_script() {
echo "This version of the soup script is up to date. Proceeding."
else
echo "You are not running the latest soup version. Updating soup."
cp $UPDATE_DIR/salt/common/tools/sbin/soup $default_salt_dir/salt/common/tools/sbin/
cp $UPDATE_DIR/salt/common/tools/sbin/soup $DEFAULT_SALT_DIR/salt/common/tools/sbin/
salt-call state.apply common queue=True
echo ""
echo "soup has been updated. Please run soup again"
echo "soup has been updated. Please run soup again."
exit 0
fi
}
echo "Checking to see if this is a manager"
main () {
while getopts ":b" opt; do
case "$opt" in
b ) # process option b
shift
BATCHSIZE=$1
if ! [[ "$BATCHSIZE" =~ ^[0-9]+$ ]]; then
echo "Batch size must be a number greater than 0."
exit 1
fi
;;
\? ) echo "Usage: cmd [-b]"
;;
esac
done
echo "Checking to see if this is a manager."
echo ""
manager_check
echo "Cloning latest code to a temporary location"
echo "Found that Security Onion $INSTALLEDVERSION is currently installed."
echo ""
detect_os
echo ""
echo "Cloning Security Onion github repo into $UPDATE_DIR."
clone_to_tmp
echo ""
echo "Verifying we have the latest script"
echo "Verifying we have the latest soup script."
verify_latest_update_script
echo ""
echo "Let's see if we need to update"
echo "Let's see if we need to update Security Onion."
upgrade_check
echo ""
echo "Making pillar changes"
echo "Performing upgrade from Security Onion $INSTALLEDVERSION to Security Onion $NEWVERSION."
echo ""
echo "Stopping Salt Minion service."
systemctl stop salt-minion
echo ""
echo "Stopping Salt Master service."
systemctl stop salt-master
echo ""
echo "Checking for Salt Master and Minion updates."
upgrade_check_salt
echo "Making pillar changes."
pillar_changes
echo ""
echo "Cleaning up old dockers"
echo "Cleaning up old dockers."
clean_dockers
echo ""
echo "Updating docker to $NEWVERSION"
echo "Updating dockers to $NEWVERSION."
update_dockers
echo ""
echo "Copying new code"
echo "Copying new Security Onion code from $UPDATE_DIR to $DEFAULT_SALT_DIR."
copy_new_files
echo ""
echo "Updating version"
update_version
echo ""
echo "Running a highstate to complete upgrade"
echo "Locking down Salt Master for upgrade"
masterlock
echo ""
echo "Starting Salt Master service."
systemctl start salt-master
echo ""
echo "Running a highstate to complete the Security Onion upgrade on this manager. This could take several minutes."
highstate
echo ""
echo "Upgrade from $INSTALLEDVERSION to $NEWVERSION complete."
echo ""
echo "Stopping Salt Master to remove ACL"
systemctl stop salt-master
masterunlock
echo ""
echo "Starting Salt Master service."
systemctl start salt-master
highstate
playbook
SALTUPGRADED="True"
if [[ "$SALTUPGRADED" == "True" ]]; then
echo ""
echo "Upgrading Salt on the remaining Security Onion nodes from $INSTALLEDSALTVERSION to $NEWSALTVERSION."
salt -C 'not *_eval and not *_helix and not *_manager and not *_managersearch and not *_standalone' -b $BATCHSIZE state.apply salt.minion
echo ""
fi
}
main "$@" | tee /dev/fd/3

View File

@@ -1,5 +1,5 @@
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
{% if grains['role'] in ['so-eval', 'so-node', 'so-managersearch', 'so-heavynode', 'so-standalone'] %}
# Curator

View File

@@ -1,4 +1,4 @@
{%- set FLEETSETUP = salt['pillar.get']('static:fleetsetup', '0') -%}
{%- set FLEETSETUP = salt['pillar.get']('global:fleetsetup', '0') -%}
{%- if FLEETSETUP != 0 %}
launcherpkg:

View File

@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
# Create the group
dstatsgroup:

View File

@@ -16,12 +16,12 @@ disable_rules_on_error: false
# How often ElastAlert will query Elasticsearch
# The unit can be anything from weeks to seconds
run_every:
minutes: 1
minutes: 3
# ElastAlert will buffer results from the most recent
# period of time, in case some log sources are not in real time
buffer_time:
minutes: 1
minutes: 10
# The maximum time between queries for ElastAlert to start at the most recently
# run query. When ElastAlert starts, for each rule, it will search elastalert_metadata
@@ -38,7 +38,7 @@ es_host: {{ esip }}
es_port: {{ esport }}
# Sets timeout for connecting to and reading from es_host
es_conn_timeout: 60
es_conn_timeout: 55
# The maximum number of documents that will be downloaded from Elasticsearch in
# a single query. The default is 10,000, and if you expect to get near this number,

View File

@@ -16,7 +16,7 @@ class PlaybookESAlerter(Alerter):
today = strftime("%Y.%m.%d", gmtime())
timestamp = strftime("%Y-%m-%d"'T'"%H:%M:%S", gmtime())
headers = {"Content-Type": "application/json"}
payload = {"rule.name": self.rule['play_title'],"event.severity": self.rule['event.severity'],"kibana_pivot": self.rule['kibana_pivot'],"soc_pivot": self.rule['soc_pivot'],"event.module": self.rule['event.module'],"event.dataset": self.rule['event.dataset'],"play_url": self.rule['play_url'],"sigma_level": self.rule['sigma_level'],"rule.category": self.rule['rule.category'],"data": match, "@timestamp": timestamp}
payload = {"rule.name": self.rule['play_title'],"event.severity": self.rule['event.severity'],"kibana_pivot": self.rule['kibana_pivot'],"soc_pivot": self.rule['soc_pivot'],"event.module": self.rule['event.module'],"event.dataset": self.rule['event.dataset'],"play_url": self.rule['play_url'],"sigma_level": self.rule['sigma_level'],"rule.category": self.rule['rule.category'],"event_data": match, "@timestamp": timestamp}
url = f"http://{self.rule['elasticsearch_host']}/so-playbook-alerts-{today}/_doc/"
requests.post(url, data=json.dumps(payload), headers=headers, verify=False)

View File

@@ -1,21 +1,17 @@
{% set es = salt['pillar.get']('static:managerip', '') %}
{% set hivehost = salt['pillar.get']('static:managerip', '') %}
{% set hivekey = salt['pillar.get']('static:hivekey', '') %}
{% set MANAGER = salt['pillar.get']('manager:url_base', '') %}
{% set es = salt['pillar.get']('global:managerip', '') %}
{% set hivehost = salt['pillar.get']('global:managerip', '') %}
{% set hivekey = salt['pillar.get']('global:hivekey', '') %}
{% set MANAGER = salt['pillar.get']('global:url_base', '') %}
# Elastalert rule to forward Suricata alerts from Security Onion to a specified TheHive instance.
#
es_host: {{es}}
es_port: 9200
name: Suricata-Alert
type: frequency
index: "so-ids-*"
num_events: 1
timeframe:
minutes: 10
type: any
index: "*:so-ids-*"
buffer_time:
minutes: 10
allow_buffer_time_overlap: true
minutes: 5
query_key: ["rule.uuid","source.ip","destination.ip"]
realert:
days: 1

View File

@@ -1,21 +1,17 @@
{% set es = salt['pillar.get']('static:managerip', '') %}
{% set hivehost = salt['pillar.get']('static:managerip', '') %}
{% set hivekey = salt['pillar.get']('static:hivekey', '') %}
{% set MANAGER = salt['pillar.get']('manager:url_base', '') %}
{% set es = salt['pillar.get']('global:managerip', '') %}
{% set hivehost = salt['pillar.get']('global:managerip', '') %}
{% set hivekey = salt['pillar.get']('global:hivekey', '') %}
{% set MANAGER = salt['pillar.get']('global:url_base', '') %}
# Elastalert rule to forward high level Wazuh alerts from Security Onion to a specified TheHive instance.
#
es_host: {{es}}
es_port: 9200
name: Wazuh-Alert
type: frequency
index: "so-ossec-*"
num_events: 1
timeframe:
minutes: 10
type: any
index: "*:so-ossec-*"
buffer_time:
minutes: 10
allow_buffer_time_overlap: true
minutes: 5
realert:
days: 1
filter:

View File

@@ -12,8 +12,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
{% if grains['role'] in ['so-eval','so-managersearch', 'so-manager', 'so-standalone'] %}

View File

@@ -5,6 +5,7 @@
{%- set ESCLUSTERNAME = salt['pillar.get']('elasticsearch:esclustername', '') %}
{%- endif %}
{%- set NODEIP = salt['pillar.get']('elasticsearch:mainip', '') -%}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
cluster.name: "{{ ESCLUSTERNAME }}"
network.host: 0.0.0.0
@@ -16,12 +17,30 @@ discovery.zen.minimum_master_nodes: 1
path.logs: /var/log/elasticsearch
action.destructive_requires_name: true
transport.bind_host: 0.0.0.0
transport.publish_host: {{ NODEIP }}
transport.publish_host: {{ grains.host }}
transport.publish_port: 9300
cluster.routing.allocation.disk.threshold_enabled: true
cluster.routing.allocation.disk.watermark.low: 95%
cluster.routing.allocation.disk.watermark.high: 98%
cluster.routing.allocation.disk.watermark.flood_stage: 98%
{%- if FEATURES is sameas true %}
#xpack.security.enabled: false
#xpack.security.http.ssl.enabled: false
#xpack.security.transport.ssl.enabled: false
#xpack.security.http.ssl.key: /usr/share/elasticsearch/config/elasticsearch.key
#xpack.security.http.ssl.certificate: /usr/share/elasticsearch/config/elasticsearch.crt
#xpack.security.http.ssl.certificate_authorities: /usr/share/elasticsearch/config/ca.crt
#xpack.security.transport.ssl.key: /usr/share/elasticsearch/config/elasticsearch.key
#xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/elasticsearch.crt
#xpack.security.transport.ssl.certificate_authorities: /usr/share/elasticsearch/config/ca.crt
#xpack.security.transport.ssl.verification_mode: none
#xpack.security.http.ssl.client_authentication: none
#xpack.security.authc:
# anonymous:
# username: anonymous_user
# roles: superuser
# authz_exception: true
{%- endif %}
node.attr.box_type: {{ NODE_ROUTE_TYPE }}
node.name: {{ ESCLUSTERNAME }}
script.max_compilations_rate: 1000/1m

View File

@@ -1,53 +1,8 @@
{
"description" : "beats.common",
"processors" : [
{"community_id": {"if": "ctx.winlog.event_data?.Protocol != null", "field":["winlog.event_data.SourceIp","winlog.event_data.SourcePort","winlog.event_data.DestinationIp","winlog.event_data.DestinationPort","winlog.event_data.Protocol"],"target_field":"network.community_id"}},
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational'", "field": "event.module", "value": "sysmon", "override": true } },
{ "set": { "if": "ctx.winlog?.channel != null", "field": "event.module", "value": "windows_eventlog", "override": false, "ignore_failure": true } },
{ "set": { "if": "ctx.agent?.type != null", "field": "module", "value": "{{agent.type}}", "override": true } },
{ "set": { "if": "ctx.winlog?.channel != 'Microsoft-Windows-Sysmon/Operational'", "field": "event.dataset", "value": "{{winlog.channel}}", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 3", "field": "event.category", "value": "host,process,network", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 1", "field": "event.category", "value": "host,process", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 1", "field": "event.dataset", "value": "process_creation", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 2", "field": "event.dataset", "value": "process_changed_file", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 3", "field": "event.dataset", "value": "network_connection", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 5", "field": "event.dataset", "value": "process_terminated", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 6", "field": "event.dataset", "value": "driver_loaded", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 7", "field": "event.dataset", "value": "image_loaded", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 8", "field": "event.dataset", "value": "create_remote_thread", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 9", "field": "event.dataset", "value": "raw_file_access_read", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 10", "field": "event.dataset", "value": "process_access", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 11", "field": "event.dataset", "value": "file_create", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 12", "field": "event.dataset", "value": "registry_create_delete", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 13", "field": "event.dataset", "value": "registry_value_set", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 14", "field": "event.dataset", "value": "registry_key_value_rename", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 15", "field": "event.dataset", "value": "file_create_stream_hash", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 16", "field": "event.dataset", "value": "config_change", "override": true } },
{ "set": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 22", "field": "event.dataset", "value": "dns_query", "override": true } },
{ "rename": { "field": "agent.hostname", "target_field": "agent.name", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.SubjectUserName", "target_field": "user.name", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.DestinationHostname", "target_field": "destination.hostname", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.DestinationIp", "target_field": "destination.ip", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.DestinationPort", "target_field": "destination.port", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.Image", "target_field": "process.executable", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.ProcessID", "target_field": "process.pid", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.ProcessGuid", "target_field": "process.entity_id", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.CommandLine", "target_field": "process.command_line", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.CurrentDirectory", "target_field": "process.working_directory", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.Description", "target_field": "process.pe.description", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.Product", "target_field": "process.pe.product", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.OriginalFileName", "target_field": "process.pe.original_file_name", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.FileVersion", "target_field": "process.pe.file_version", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.ParentCommandLine", "target_field": "process.parent.command_line", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.ParentImage", "target_field": "process.parent.executable", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.ParentProcessGuid", "target_field": "process.parent.entity_id", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.ParentProcessId", "target_field": "process.ppid", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.Protocol", "target_field": "network.transport", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.User", "target_field": "user.name", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.SourceHostname", "target_field": "source.hostname", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.SourceIp", "target_field": "source.ip", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.SourcePort", "target_field": "source.port", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.targetFilename", "target_field": "file.target", "ignore_missing": true } },
{ "pipeline": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational'", "name": "sysmon" } },
{ "pipeline": { "if": "ctx.winlog?.channel != 'Microsoft-Windows-Sysmon/Operational'", "name":"win.eventlogs" } },
{ "pipeline": { "name": "common" } }
]
}

View File

@@ -42,13 +42,14 @@
{ "set": { "if": "ctx.event?.severity == 3", "field": "event.severity_label", "value": "high", "override": true } },
{ "set": { "if": "ctx.event?.severity == 4", "field": "event.severity_label", "value": "critical", "override": true } },
{ "rename": { "field": "module", "target_field": "event.module", "ignore_failure": true, "ignore_missing": true } },
{ "rename": { "field": "dataset", "target_field": "event.dataset", "ignore_failure": true, "ignore_missing": true } },
{ "rename": { "field": "category", "target_field": "event.category", "ignore_missing": true } },
{ "rename": { "field": "dataset", "target_field": "event.dataset", "ignore_failure": true, "ignore_missing": true } },
{ "rename": { "field": "category", "target_field": "event.category", "ignore_failure": true, "ignore_missing": true } },
{ "rename": { "field": "message2.community_id", "target_field": "network.community_id", "ignore_failure": true, "ignore_missing": true } },
{ "lowercase": { "field": "event.dataset", "ignore_failure": true, "ignore_missing": true } },
{ "convert": { "field": "destination.port", "type": "integer", "ignore_failure": true, "ignore_missing": true } },
{ "convert": { "field": "source.port", "type": "integer", "ignore_failure": true, "ignore_missing": true } },
{ "convert": { "field": "log.id.uid", "type": "string", "ignore_failure": true, "ignore_missing": true } },
{ "convert": { "field": "agent.id", "type": "string", "ignore_failure": true, "ignore_missing": true } },
{ "convert": { "field": "event.severity", "type": "integer", "ignore_failure": true, "ignore_missing": true } },
{
"remove": {

View File

@@ -2,78 +2,24 @@
"description" : "osquery",
"processors" : [
{ "json": { "field": "message", "target_field": "message2", "ignore_failure": true } },
{ "gsub": { "field": "message2.columns.data", "pattern": "\\\\xC2\\\\xAE", "replacement": "", "ignore_missing": true } },
{ "json": { "field": "message2.columns.data", "target_field": "message2.columns.winlog", "ignore_failure": true } },
{ "rename": { "if": "ctx.message2.columns?.eventid != null", "field": "message2.columns", "target_field": "winlog", "ignore_missing": true } },
{ "json": { "field": "winlog.data", "target_field": "temp", "ignore_failure": true } },
{ "rename": { "field": "temp.Data", "target_field": "winlog.event_data", "ignore_missing": true } },
{ "rename": { "field": "winlog.source", "target_field": "winlog.channel", "ignore_missing": true } },
{ "rename": { "field": "winlog.eventid", "target_field": "winlog.event_id", "ignore_missing": true } },
{ "pipeline": { "if": "ctx.winlog?.channel == 'Microsoft-Windows-Sysmon/Operational'", "name": "sysmon" } },
{ "pipeline": { "if": "ctx.winlog?.channel != 'Microsoft-Windows-Sysmon/Operational'", "name":"win.eventlogs" } },
{
"script": {
"lang": "painless",
"source": "def dict = ['result': new HashMap()]; for (entry in ctx['message2'].entrySet()) { dict['result'][entry.getKey()] = entry.getValue(); } ctx['osquery'] = dict; "
}
},
{ "rename": { "field": "osquery.result.hostIdentifier", "target_field": "osquery.result.host_identifier", "ignore_missing": true } },
{ "rename": { "field": "osquery.result.calendarTime", "target_field": "osquery.result.calendar_time", "ignore_missing": true } },
{ "rename": { "field": "osquery.result.unixTime", "target_field": "osquery.result.unix_time", "ignore_missing": true } },
{ "json": { "field": "message", "target_field": "message3", "ignore_failure": true } },
{ "gsub": { "field": "message3.columns.data", "pattern": "\\\\xC2\\\\xAE", "replacement": "", "ignore_missing": true } },
{ "json": { "field": "message3.columns.data", "target_field": "message3.columns.winlog", "ignore_failure": true } },
{ "rename": { "field": "message3.columns.username", "target_field": "user.name", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.uid", "target_field": "user.uid", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.gid", "target_field": "user.gid", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.shell", "target_field": "user.shell", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.cmdline", "target_field": "process.command_line", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.pid", "target_field": "process.pid", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.parent", "target_field": "process.ppid", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.cwd", "target_field": "process.working_directory", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.community_id", "target_field": "network.community_id", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.local_address", "target_field": "local.ip", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.local_port", "target_field": "local.port", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.remote_address", "target_field": "remote.ip", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.remote_port", "target_field": "remote.port", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.process_name", "target_field": "process.name", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.eventid", "target_field": "event.code", "ignore_missing": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational'", "field": "event.module", "value": "sysmon", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source != null", "field": "event.module", "value": "windows_eventlog", "override": false, "ignore_failure": true } },
{ "set": { "if": "ctx.message3.columns?.source != 'Microsoft-Windows-Sysmon/Operational'", "field": "event.dataset", "value": "{{message3.columns.source}}", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 1", "field": "event.dataset", "value": "process_creation", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 2", "field": "event.dataset", "value": "process_changed_file", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 3", "field": "event.dataset", "value": "network_connection", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 5", "field": "event.dataset", "value": "process_terminated", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 6", "field": "event.dataset", "value": "driver_loaded", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 7", "field": "event.dataset", "value": "image_loaded", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 8", "field": "event.dataset", "value": "create_remote_thread", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 9", "field": "event.dataset", "value": "raw_file_access_read", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 10", "field": "event.dataset", "value": "process_access", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 11", "field": "event.dataset", "value": "file_create", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 12", "field": "event.dataset", "value": "registry_create_delete", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 13", "field": "event.dataset", "value": "registry_value_set", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 14", "field": "event.dataset", "value": "registry_key_value_rename", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 15", "field": "event.dataset", "value": "file_create_stream_hash", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 16", "field": "event.dataset", "value": "config_change", "override": true } },
{ "set": { "if": "ctx.message3.columns?.source == 'Microsoft-Windows-Sysmon/Operational' && ctx.event?.code == 22", "field": "event.dataset", "value": "dns_query", "override": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.SubjectUserName", "target_field": "user.name", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.destinationHostname", "target_field": "destination.hostname", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.destinationIp", "target_field": "destination.ip", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.destinationPort", "target_field": "destination.port", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.Image", "target_field": "process.executable", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.ProcessID", "target_field": "process.pid", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.ProcessGuid", "target_field": "process.entity_id", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.CommandLine", "target_field": "process.command_line", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.CurrentDirectory", "target_field": "process.working_directory", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.Description", "target_field": "process.pe.description", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.Product", "target_field": "process.pe.product", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.OriginalFileName", "target_field": "process.pe.original_file_name", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.FileVersion", "target_field": "process.pe.file_version", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.ParentCommandLine", "target_field": "process.parent.command_line", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.ParentImage", "target_field": "process.parent.executable", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.ParentProcessGuid", "target_field": "process.parent.entity_id", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.ParentProcessId", "target_field": "process.ppid", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.User", "target_field": "user.name", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.parentImage", "target_field": "parent_image_path", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.sourceHostname", "target_field": "source.hostname", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.sourceIp", "target_field": "source_ip", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.sourcePort", "target_field": "source.port", "ignore_missing": true } },
{ "rename": { "field": "message3.columns.winlog.EventData.targetFilename", "target_field": "file.target", "ignore_missing": true } },
{ "remove": { "field": [ "message3"], "ignore_failure": false } },
{ "set": { "field": "event.module", "value": "osquery", "override": false } },
{ "set": { "field": "event.dataset", "value": "{{osquery.result.name}}", "override": false} },
{ "pipeline": { "name": "common" } }
]
}

View File

@@ -0,0 +1,54 @@
{
"description" : "sysmon",
"processors" : [
{"community_id": {"if": "ctx.winlog.event_data?.Protocol != null", "field":["winlog.event_data.SourceIp","winlog.event_data.SourcePort","winlog.event_data.DestinationIp","winlog.event_data.DestinationPort","winlog.event_data.Protocol"],"target_field":"network.community_id"}},
{ "set": { "field": "event.code", "value": "{{winlog.event_id}}", "override": true } },
{ "set": { "field": "event.module", "value": "sysmon", "override": true } },
{ "set": { "if": "ctx.winlog?.computer_name != null", "field": "observer.name", "value": "{{winlog.computer_name}}", "override": true } },
{ "set": { "if": "ctx.event?.code == '3'", "field": "event.category", "value": "host,process,network", "override": true } },
{ "set": { "if": "ctx.event?.code == '1'", "field": "event.category", "value": "host,process", "override": true } },
{ "set": { "if": "ctx.event?.code == '5'", "field": "event.category", "value": "host,process", "override": true } },
{ "set": { "if": "ctx.event?.code == '6'", "field": "event.category", "value": "host,driver", "override": true } },
{ "set": { "if": "ctx.event?.code == '22'", "field": "event.category", "value": "network", "override": true } },
{ "set": { "if": "ctx.event?.code == '1'", "field": "event.dataset", "value": "process_creation", "override": true } },
{ "set": { "if": "ctx.event?.code == '2'", "field": "event.dataset", "value": "process_changed_file", "override": true } },
{ "set": { "if": "ctx.event?.code == '3'", "field": "event.dataset", "value": "network_connection", "override": true } },
{ "set": { "if": "ctx.event?.code == '5'", "field": "event.dataset", "value": "process_terminated", "override": true } },
{ "set": { "if": "ctx.event?.code == '6'", "field": "event.dataset", "value": "driver_loaded", "override": true } },
{ "set": { "if": "ctx.event?.code == '7'", "field": "event.dataset", "value": "image_loaded", "override": true } },
{ "set": { "if": "ctx.event?.code == '8'", "field": "event.dataset", "value": "create_remote_thread", "override": true } },
{ "set": { "if": "ctx.event?.code == '9'", "field": "event.dataset", "value": "raw_file_access_read", "override": true } },
{ "set": { "if": "ctx.event?.code == '10'", "field": "event.dataset", "value": "process_access", "override": true } },
{ "set": { "if": "ctx.event?.code == '11'", "field": "event.dataset", "value": "file_create", "override": true } },
{ "set": { "if": "ctx.event?.code == '12'", "field": "event.dataset", "value": "registry_create_delete", "override": true } },
{ "set": { "if": "ctx.event?.code == '13'", "field": "event.dataset", "value": "registry_value_set", "override": true } },
{ "set": { "if": "ctx.event?.code == '14'", "field": "event.dataset", "value": "registry_key_value_rename", "override": true } },
{ "set": { "if": "ctx.event?.code == '15'", "field": "event.dataset", "value": "file_create_stream_hash", "override": true } },
{ "set": { "if": "ctx.event?.code == '16'", "field": "event.dataset", "value": "config_change", "override": true } },
{ "set": { "if": "ctx.event?.code == '22'", "field": "event.dataset", "value": "dns_query", "override": true } },
{ "rename": { "field": "winlog.event_data.SubjectUserName", "target_field": "user.name", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.DestinationHostname", "target_field": "destination.hostname", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.DestinationIp", "target_field": "destination.ip", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.DestinationPort", "target_field": "destination.port", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.Image", "target_field": "process.executable", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.ProcessID", "target_field": "process.pid", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.ProcessGuid", "target_field": "process.entity_id", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.CommandLine", "target_field": "process.command_line", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.CurrentDirectory", "target_field": "process.working_directory", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.Description", "target_field": "process.pe.description", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.Product", "target_field": "process.pe.product", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.Company", "target_field": "process.pe.company", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.OriginalFileName", "target_field": "process.pe.original_file_name", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.FileVersion", "target_field": "process.pe.file_version", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.ParentCommandLine", "target_field": "process.parent.command_line", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.ParentImage", "target_field": "process.parent.executable", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.ParentProcessGuid", "target_field": "process.parent.entity_id", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.ParentProcessId", "target_field": "process.ppid", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.Protocol", "target_field": "network.transport", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.User", "target_field": "user.name", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.SourceHostname", "target_field": "source.hostname", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.SourceIp", "target_field": "source.ip", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.SourcePort", "target_field": "source.port", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.targetFilename", "target_field": "file.target", "ignore_missing": true } }
]
}

View File

@@ -0,0 +1,10 @@
{
"description" : "win.eventlogs",
"processors" : [
{ "set": { "if": "ctx.winlog?.channel != null", "field": "event.module", "value": "windows_eventlog", "override": false, "ignore_failure": true } },
{ "set": { "if": "ctx.winlog?.channel != null", "field": "event.dataset", "value": "{{winlog.channel}}", "override": true } },
{ "set": { "if": "ctx.winlog?.computer_name != null", "field": "observer.name", "value": "{{winlog.computer_name}}", "override": true } },
{ "rename": { "field": "winlog.event_data.SubjectUserName", "target_field": "user.name", "ignore_missing": true } },
{ "rename": { "field": "winlog.event_data.User", "target_field": "user.name", "ignore_missing": true } }
]
}

View File

@@ -0,0 +1,32 @@
#!/bin/bash
#
# Copyright 2014,2015,2016,2017,2018,2019 Security Onion Solutions, LLC
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{%- set VERSION = salt['pillar.get']('global:soversion', '') %}
{%- set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{%- set MANAGER = salt['grains.get']('master') %}
. /usr/sbin/so-common
# Check to see if we have extracted the ca cert.
if [ ! -f /opt/so/saltstack/local/salt/common/cacerts ]; then
docker run -v /etc/pki/ca.crt:/etc/pki/ca.crt --name so-elasticsearchca --user root --entrypoint jdk/bin/keytool {{ MANAGER }}:5000/{{ IMAGEREPO }}/so-elasticsearch:{{ VERSION }} -keystore /etc/pki/ca-trust/extracted/java/cacerts -alias SOSCA -import -file /etc/pki/ca.crt -storepass changeit -noprompt
docker cp so-elasticsearchca:/etc/pki/ca-trust/extracted/java/cacerts /opt/so/saltstack/local/salt/common/cacerts
docker cp so-elasticsearchca:/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /opt/so/saltstack/local/salt/common/tls-ca-bundle.pem
docker rm so-elasticsearchca
echo "" >> /opt/so/saltstack/local/salt/common/tls-ca-bundle.pem
echo "sosca" >> /opt/so/saltstack/local/salt/common/tls-ca-bundle.pem
cat /etc/pki/ca.crt >> /opt/so/saltstack/local/salt/common/tls-ca-bundle.pem
else
exit 0
fi

View File

@@ -0,0 +1,12 @@
keystore.path: /usr/share/elasticsearch/config/sokeys
keystore.password: changeit
keystore.algorithm: SunX509
truststore.path: /etc/pki/java/cacerts
truststore.password: changeit
truststore.algorithm: PKIX
protocols:
- TLSv1.2
ciphers:
- TLS_RSA_WITH_AES_128_CBC_SHA256
transport.encrypted: true
http.encrypted: false

View File

@@ -12,23 +12,27 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
{%- set NODEIP = salt['pillar.get']('elasticsearch:mainip', '') -%}
{% if FEATURES %}
{% set FEATURES = "-features" %}
{%- if FEATURES is sameas true %}
{% set FEATUREZ = "-features" %}
{% else %}
{% set FEATURES = '' %}
{% set FEATUREZ = '' %}
{% endif %}
{% if grains['role'] in ['so-eval','so-managersearch', 'so-manager', 'so-standalone'] %}
{% if grains['role'] in ['so-eval','so-managersearch', 'so-manager', 'so-standalone', 'so-import'] %}
{% set esclustername = salt['pillar.get']('manager:esclustername', '') %}
{% set esheap = salt['pillar.get']('manager:esheap', '') %}
{% set ismanager = True %}
{% elif grains['role'] in ['so-node','so-heavynode'] %}
{% set esclustername = salt['pillar.get']('elasticsearch:esclustername', '') %}
{% set esheap = salt['pillar.get']('elasticsearch:esheap', '') %}
{% set ismanager = False %}
{% endif %}
{% set TEMPLATES = salt['pillar.get']('elasticsearch:templates', {}) %}
@@ -37,6 +41,46 @@ vm.max_map_count:
sysctl.present:
- value: 262144
{% if ismanager %}
# We have to add the Manager CA to the CA list
cascriptsync:
file.managed:
- name: /usr/sbin/so-catrust
- source: salt://elasticsearch/files/scripts/so-catrust
- user: 939
- group: 939
- mode: 750
- template: jinja
# Run the CA magic
cascriptfun:
cmd.run:
- name: /usr/sbin/so-catrust
{% endif %}
# Move our new CA over so Elastic and Logstash can use SSL with the internal CA
catrustdir:
file.directory:
- name: /opt/so/conf/ca
- user: 939
- group: 939
- makedirs: True
cacertz:
file.managed:
- name: /opt/so/conf/ca/cacerts
- source: salt://common/cacerts
- user: 939
- group: 939
capemz:
file.managed:
- name: /opt/so/conf/ca/tls-ca-bundle.pem
- source: salt://common/tls-ca-bundle.pem
- user: 939
- group: 939
# Add ES Group
elasticsearchgroup:
group.present:
@@ -95,6 +139,13 @@ esyml:
- group: 939
- template: jinja
sotls:
file.managed:
- name: /opt/so/conf/elasticsearch/sotls.yml
- source: salt://elasticsearch/files/sotls.yml
- user: 930
- group: 939
#sync templates to /opt/so/conf/elasticsearch/templates
{% for TEMPLATE in TEMPLATES %}
es_template_{{TEMPLATE.split('.')[0] | replace("/","_") }}:
@@ -126,18 +177,23 @@ eslogdir:
so-elasticsearch:
docker_container.running:
- image: {{ MANAGER }}:5000/{{ IMAGEREPO }}/so-elasticsearch:{{ VERSION }}{{ FEATURES }}
- image: {{ MANAGER }}:5000/{{ IMAGEREPO }}/so-elasticsearch:{{ VERSION }}{{ FEATUREZ }}
- hostname: elasticsearch
- name: so-elasticsearch
- user: elasticsearch
- extra_hosts:
- {{ grains.host }}:{{ NODEIP }}
{%- if ismanager %}
{%- if salt['pillar.get']('nodestab', {}) %}
{%- for SN, SNDATA in salt['pillar.get']('nodestab', {}).items() %}
- {{ SN.split('_')|first }}:{{ SNDATA.ip }}
{%- endfor %}
{%- endif %}
{%- endif %}
- environment:
- discovery.type=single-node
#- bootstrap.memory_lock=true
#- cluster.name={{ esclustername }}
- ES_JAVA_OPTS=-Xms{{ esheap }} -Xmx{{ esheap }}
#- http.host=0.0.0.0
#- transport.host=127.0.0.1
- ulimits:
ulimits:
- memlock=-1:-1
- nofile=65536:65536
- nproc=4096
@@ -149,6 +205,16 @@ so-elasticsearch:
- /opt/so/conf/elasticsearch/log4j2.properties:/usr/share/elasticsearch/config/log4j2.properties:ro
- /nsm/elasticsearch:/usr/share/elasticsearch/data:rw
- /opt/so/log/elasticsearch:/var/log/elasticsearch:rw
- /opt/so/conf/ca/cacerts:/etc/pki/ca-trust/extracted/java/cacerts:ro
- /etc/pki/ca.crt:/usr/share/elasticsearch/config/ca.crt:ro
- /etc/pki/elasticsearch.p12:/usr/share/elasticsearch/config/elasticsearch.p12:ro
- /opt/so/conf/elasticsearch/sotls.yml:/usr/share/elasticsearch/config/sotls.yml:ro
- watch:
- file: cacertz
- file: esyml
- file: esingestconf
- file: so-elasticsearch-pipelines-file
so-elasticsearch-pipelines-file:
file.managed:

View File

@@ -18,7 +18,7 @@
"@version":{
"type":"keyword"
},
"osquery":{
"osquery":{
"type":"object",
"dynamic":true
},
@@ -85,7 +85,7 @@
"type":"object",
"dynamic": true
},
"client":{
"client":{
"type":"object",
"dynamic": true
},
@@ -177,6 +177,10 @@
"type":"object",
"dynamic": true
},
"import":{
"type":"object",
"dynamic": true
},
"ingest":{
"type":"object",
"dynamic": true
@@ -185,7 +189,7 @@
"type":"object",
"dynamic": true
},
"irc":{
"irc":{
"type":"object",
"dynamic": true
},
@@ -201,7 +205,7 @@
"type":"object",
"dynamic": true
},
"message":{
"message":{
"type":"text",
"fields":{
"keyword":{
@@ -213,7 +217,7 @@
"type":"object",
"dynamic": true
},
"mysql":{
"mysql":{
"type":"object",
"dynamic": true
},
@@ -221,7 +225,7 @@
"type":"object",
"dynamic": true
},
"notice":{
"notice":{
"type":"object",
"dynamic": true
},
@@ -269,7 +273,7 @@
"type":"object",
"dynamic": true
},
"request":{
"request":{
"type":"object",
"dynamic": true
},
@@ -281,7 +285,7 @@
"type":"object",
"dynamic": true
},
"scan":{
"scan":{
"type":"object",
"dynamic": true
},
@@ -317,7 +321,7 @@
"type":"object",
"dynamic": true
},
"source":{
"source":{
"type":"object",
"dynamic": true
},
@@ -329,7 +333,7 @@
"type":"object",
"dynamic": true
},
"syslog":{
"syslog":{
"type":"object",
"dynamic": true
},
@@ -383,8 +387,16 @@
},
"winlog":{
"type":"object",
"dynamic": true
},
"dynamic": true,
"properties":{
"event_id":{
"type":"long"
},
"event_data":{
"type":"object"
}
}
},
"x509":{
"type":"object",
"dynamic": true

View File

@@ -1,16 +1,16 @@
{%- if grains.role == 'so-heavynode' %}
{%- set MANAGER = salt['pillar.get']('sensor:mainip' '') %}
{%- set MANAGER = salt['grains.get']('host' '') %}
{%- else %}
{%- set MANAGER = salt['grains.get']('master') %}
{%- endif %}
{%- set HOSTNAME = salt['grains.get']('host', '') %}
{%- set ZEEKVER = salt['pillar.get']('static:zeekversion', 'COMMUNITY') %}
{%- set WAZUHENABLED = salt['pillar.get']('static:wazuh', '0') %}
{%- set ZEEKVER = salt['pillar.get']('global:zeekversion', 'COMMUNITY') %}
{%- set WAZUHENABLED = salt['pillar.get']('global:wazuh', '0') %}
{%- set STRELKAENABLED = salt['pillar.get']('strelka:enabled', '0') %}
{%- set FLEETMANAGER = salt['pillar.get']('static:fleet_manager', False) -%}
{%- set FLEETNODE = salt['pillar.get']('static:fleet_node', False) -%}
{%- set FLEETMANAGER = salt['pillar.get']('global:fleet_manager', False) -%}
{%- set FLEETNODE = salt['pillar.get']('global:fleet_node', False) -%}
name: {{ HOSTNAME }}
@@ -74,7 +74,7 @@ filebeat.modules:
# List of prospectors to fetch data.
filebeat.inputs:
#------------------------------ Log prospector --------------------------------
{%- if grains['role'] == 'so-sensor' or grains['role'] == "so-eval" or grains['role'] == "so-helix" or grains['role'] == "so-heavynode" or grains['role'] == "so-standalone" %}
{%- if grains['role'] in ['so-sensor', "so-eval", "so-helix", "so-heavynode", "so-standalone", "so-import"] %}
- type: udp
enabled: true
host: "0.0.0.0:514"
@@ -253,7 +253,7 @@ output.{{ type }}:
{%- endfor %}
{%- else %}
#----------------------------- Elasticsearch/Logstash output ---------------------------------
{%- if grains['role'] == "so-eval" %}
{%- if grains['role'] in ["so-eval", "so-import"] %}
output.elasticsearch:
enabled: true
hosts: ["{{ MANAGER }}:9200"]

View File

@@ -11,12 +11,12 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
{% set MANAGERIP = salt['pillar.get']('static:managerip', '') %}
{% set MANAGERIP = salt['pillar.get']('global:managerip', '') %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
{% if FEATURES %}
{%- if FEATURES is sameas true %}
{% set FEATURES = "-features" %}
{% else %}
{% set FEATURES = '' %}
@@ -60,8 +60,8 @@ so-filebeat:
- /nsm:/nsm:ro
- /opt/so/log/filebeat:/usr/share/filebeat/logs:rw
- /opt/so/conf/filebeat/etc/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
- /opt/so/wazuh/logs/alerts:/wazuh/alerts:ro
- /opt/so/wazuh/logs/archives:/wazuh/archives:ro
- /nsm/wazuh/logs/alerts:/wazuh/alerts:ro
- /nsm/wazuh/logs/archives:/wazuh/archives:ro
- /opt/so/conf/filebeat/etc/pki/filebeat.crt:/usr/share/filebeat/filebeat.crt:ro
- /opt/so/conf/filebeat/etc/pki/filebeat.key:/usr/share/filebeat/filebeat.key:ro
- /etc/ssl/certs/intca.crt:/usr/share/filebeat/intraca.crt:ro

View File

@@ -15,6 +15,7 @@ role:
- {{ portgroups.mysql }}
- {{ portgroups.kibana }}
- {{ portgroups.redis }}
- {{ portgroups.minio }}
- {{ portgroups.influxdb }}
- {{ portgroups.fleet_api }}
- {{ portgroups.cortex }}
@@ -38,6 +39,7 @@ role:
search_node:
portgroups:
- {{ portgroups.redis }}
- {{ portgroups.minio }}
- {{ portgroups.elasticsearch_node }}
self:
portgroups:
@@ -99,6 +101,7 @@ role:
- {{ portgroups.mysql }}
- {{ portgroups.kibana }}
- {{ portgroups.redis }}
- {{ portgroups.minio }}
- {{ portgroups.influxdb }}
- {{ portgroups.fleet_api }}
- {{ portgroups.cortex }}
@@ -122,6 +125,7 @@ role:
search_node:
portgroups:
- {{ portgroups.redis }}
- {{ portgroups.minio }}
- {{ portgroups.elasticsearch_node }}
self:
portgroups:
@@ -180,6 +184,7 @@ role:
- {{ portgroups.mysql }}
- {{ portgroups.kibana }}
- {{ portgroups.redis }}
- {{ portgroups.minio }}
- {{ portgroups.influxdb }}
- {{ portgroups.fleet_api }}
- {{ portgroups.cortex }}
@@ -203,6 +208,7 @@ role:
search_node:
portgroups:
- {{ portgroups.redis }}
- {{ portgroups.minio }}
- {{ portgroups.elasticsearch_node }}
self:
portgroups:
@@ -261,6 +267,7 @@ role:
- {{ portgroups.mysql }}
- {{ portgroups.kibana }}
- {{ portgroups.redis }}
- {{ portgroups.minio }}
- {{ portgroups.influxdb }}
- {{ portgroups.fleet_api }}
- {{ portgroups.cortex }}
@@ -284,6 +291,7 @@ role:
search_node:
portgroups:
- {{ portgroups.redis }}
- {{ portgroups.minio }}
- {{ portgroups.elasticsearch_node }}
self:
portgroups:
@@ -434,16 +442,24 @@ role:
chain:
DOCKER-USER:
hostgroups:
self:
manager:
portgroups:
- {{ portgroups.redis }}
- {{ portgroups.beats_5044 }}
- {{ portgroups.beats_5644 }}
- {{ portgroups.elasticsearch_node }}
dockernet:
portgroups:
- {{ portgroups.elasticsearch_node }}
- {{ portgroups.elasticsearch_rest }}
elasticsearch_rest:
portgroups:
- {{ portgroups.elasticsearch_rest }}
INPUT:
hostgroups:
anywhere:
portgroups:
- {{ portgroups.ssh }}
dockernet:
portgroups:
- {{ portgroups.all }}
localhost:
portgroups:
- {{ portgroups.all }}
@@ -480,3 +496,55 @@ role:
localhost:
portgroups:
- {{ portgroups.all }}
import:
chain:
DOCKER-USER:
hostgroups:
manager:
portgroups:
- {{ portgroups.kibana }}
- {{ portgroups.redis }}
- {{ portgroups.influxdb }}
- {{ portgroups.elasticsearch_rest }}
- {{ portgroups.elasticsearch_node }}
minion:
portgroups:
- {{ portgroups.docker_registry }}
sensor:
portgroups:
- {{ portgroups.beats_5044 }}
- {{ portgroups.beats_5644 }}
- {{ portgroups.sensoroni }}
search_node:
portgroups:
- {{ portgroups.redis }}
- {{ portgroups.elasticsearch_node }}
self:
portgroups:
- {{ portgroups.syslog}}
beats_endpoint:
portgroups:
- {{ portgroups.beats_5044 }}
beats_endpoint_ssl:
portgroups:
- {{ portgroups.beats_5644 }}
elasticsearch_rest:
portgroups:
- {{ portgroups.elasticsearch_rest }}
analyst:
portgroups:
- {{ portgroups.nginx }}
INPUT:
hostgroups:
anywhere:
portgroups:
- {{ portgroups.ssh }}
dockernet:
portgroups:
- {{ portgroups.all }}
localhost:
portgroups:
- {{ portgroups.all }}
minion:
portgroups:
- {{ portgroups.salt_manager }}

View File

@@ -45,6 +45,9 @@ firewall:
kibana:
tcp:
- 5601
minio:
tcp:
- 9595
mysql:
tcp:
- 3306
@@ -61,6 +64,7 @@ firewall:
redis:
tcp:
- 6379
- 9696
salt_manager:
tcp:
- 4505

View File

@@ -1,17 +1,17 @@
{% set MANAGER = salt['grains.get']('master') %}
{% set ENROLLSECRET = salt['pillar.get']('secrets:fleet_enroll-secret') %}
{% set CURRENTPACKAGEVERSION = salt['pillar.get']('static:fleet_packages-version') %}
{% set VERSION = salt['pillar.get']('static:soversion') %}
{% set CUSTOM_FLEET_HOSTNAME = salt['pillar.get']('static:fleet_custom_hostname', None) %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{%- set FLEETNODE = salt['pillar.get']('static:fleet_node') -%}
{% set CURRENTPACKAGEVERSION = salt['pillar.get']('global:fleet_packages-version') %}
{% set VERSION = salt['pillar.get']('global:soversion') %}
{% set CUSTOM_FLEET_HOSTNAME = salt['pillar.get']('global:fleet_custom_hostname', None) %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{%- set FLEETNODE = salt['pillar.get']('global:fleet_node') -%}
{% if CUSTOM_FLEET_HOSTNAME != None and CUSTOM_FLEET_HOSTNAME != '' %}
{% set HOSTNAME = CUSTOM_FLEET_HOSTNAME %}
{% elif FLEETNODE %}
{% set HOSTNAME = grains.host %}
{% else %}
{% set HOSTNAME = salt['pillar.get']('manager:url_base') %}
{% set HOSTNAME = salt['pillar.get']('global:url_base') %}
{% endif %}
so/fleet:

View File

@@ -1,4 +1,4 @@
{% set CUSTOM_FLEET_HOSTNAME = salt['pillar.get']('static:fleet_custom_hostname', None) %}
{% set CUSTOM_FLEET_HOSTNAME = salt['pillar.get']('global:fleet_custom_hostname', None) %}
so/fleet:
event.send:

View File

@@ -22,6 +22,8 @@ spec:
distributed_tls_max_attempts: 3
distributed_tls_read_endpoint: /api/v1/osquery/distributed/read
distributed_tls_write_endpoint: /api/v1/osquery/distributed/write
enable_windows_events_publisher: true
enable_windows_events_subscriber: true
logger_plugin: tls
logger_tls_endpoint: /api/v1/osquery/log
logger_tls_period: 10

View File

@@ -1,8 +1,8 @@
{%- set MYSQLPASS = salt['pillar.get']('secrets:mysql', None) -%}
{%- set FLEETPASS = salt['pillar.get']('secrets:fleet', None) -%}
{%- set FLEETJWT = salt['pillar.get']('secrets:fleet_jwt', None) -%}
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
{% set FLEETARCH = salt['grains.get']('role') %}
@@ -10,7 +10,7 @@
{% set MAININT = salt['pillar.get']('host:mainint') %}
{% set MAINIP = salt['grains.get']('ip_interfaces').get(MAININT)[0] %}
{% else %}
{% set MAINIP = salt['pillar.get']('static:managerip') %}
{% set MAINIP = salt['pillar.get']('global:managerip') %}
{% endif %}
include:

View File

@@ -1,8 +1,8 @@
{%- set FLEETMANAGER = salt['pillar.get']('static:fleet_manager', False) -%}
{%- set FLEETNODE = salt['pillar.get']('static:fleet_node', False) -%}
{%- set FLEETHOSTNAME = salt['pillar.get']('static:fleet_hostname', False) -%}
{%- set FLEETIP = salt['pillar.get']('static:fleet_ip', False) -%}
{% set CUSTOM_FLEET_HOSTNAME = salt['pillar.get']('static:fleet_custom_hostname', None) %}
{%- set FLEETMANAGER = salt['pillar.get']('global:fleet_manager', False) -%}
{%- set FLEETNODE = salt['pillar.get']('global:fleet_node', False) -%}
{%- set FLEETHOSTNAME = salt['pillar.get']('global:fleet_hostname', False) -%}
{%- set FLEETIP = salt['pillar.get']('global:fleet_ip', False) -%}
{% set CUSTOM_FLEET_HOSTNAME = salt['pillar.get']('global:fleet_custom_hostname', None) %}
{% if CUSTOM_FLEET_HOSTNAME != (None and '') %}

View File

@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
# Create the user
fservergroup:

View File

@@ -1,4 +1,4 @@
{%- set MANAGER = salt['pillar.get']('static:managerip', '') %}
{%- set MANAGER = salt['pillar.get']('global:managerip', '') %}
apiVersion: 1
deleteDatasources:

View File

@@ -1,7 +1,7 @@
{% set GRAFANA = salt['pillar.get']('manager:grafana', '0') %}
{% set MANAGER = salt['grains.get']('master') %}
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% if grains['role'] in ['so-manager', 'so-managersearch', 'so-eval', 'so-standalone'] and GRAFANA == 1 %}
@@ -91,7 +91,6 @@ dashboard-manager:
- defaults:
SERVERNAME: {{ SN }}
MANINT: {{ SNDATA.manint }}
MONINT: {{ SNDATA.manint }}
CPUS: {{ SNDATA.totalcpus }}
UID: so_overview
ROOTFS: {{ SNDATA.rootfs }}
@@ -114,7 +113,6 @@ dashboard-managersearch:
- defaults:
SERVERNAME: {{ SN }}
MANINT: {{ SNDATA.manint }}
MONINT: {{ SNDATA.manint }}
CPUS: {{ SNDATA.totalcpus }}
UID: so_overview
ROOTFS: {{ SNDATA.rootfs }}
@@ -137,7 +135,7 @@ dashboard-standalone:
- defaults:
SERVERNAME: {{ SN }}
MANINT: {{ SNDATA.manint }}
MONINT: {{ SNDATA.manint }}
MONINT: {{ SNDATA.monint }}
CPUS: {{ SNDATA.totalcpus }}
UID: so_overview
ROOTFS: {{ SNDATA.rootfs }}
@@ -159,8 +157,8 @@ dashboard-{{ SN }}:
- source: salt://grafana/dashboards/sensor_nodes/sensor.json
- defaults:
SERVERNAME: {{ SN }}
MONINT: {{ SNDATA.monint }}
MANINT: {{ SNDATA.manint }}
MONINT: {{ SNDATA.monint }}
CPUS: {{ SNDATA.totalcpus }}
UID: {{ SNDATA.guid }}
ROOTFS: {{ SNDATA.rootfs }}
@@ -183,7 +181,6 @@ dashboardsearch-{{ SN }}:
- defaults:
SERVERNAME: {{ SN }}
MANINT: {{ SNDATA.manint }}
MONINT: {{ SNDATA.manint }}
CPUS: {{ SNDATA.totalcpus }}
UID: {{ SNDATA.guid }}
ROOTFS: {{ SNDATA.rootfs }}

View File

@@ -12,8 +12,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
# IDSTools Setup
idstoolsdir:

View File

@@ -1,7 +1,7 @@
{% set GRAFANA = salt['pillar.get']('manager:grafana', '0') %}
{% set MANAGER = salt['grains.get']('master') %}
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% if grains['role'] in ['so-manager', 'so-managersearch', 'so-eval', 'so-standalone'] and GRAFANA == 1 %}

View File

@@ -1,7 +1,7 @@
#!/bin/bash
# {%- set FLEET_MANAGER = salt['pillar.get']('static:fleet_manager', False) -%}
# {%- set FLEET_NODE = salt['pillar.get']('static:fleet_node', False) -%}
# {%- set MANAGER = salt['pillar.get']('manager:url_base', '') %}
# {%- set FLEET_MANAGER = salt['pillar.get']('global:fleet_manager', False) -%}
# {%- set FLEET_NODE = salt['pillar.get']('global:fleet_node', False) -%}
# {%- set MANAGER = salt['pillar.get']('global:url_base', '') %}
KIBANA_VERSION="7.6.1"

View File

@@ -1,6 +1,7 @@
---
# Default Kibana configuration from kibana-docker.
{%- set ES = salt['pillar.get']('manager:mainip', '') -%}
{%- set FEATURES = salt['pillar.get']('elastic:features', False) %}
server.name: kibana
server.host: "0"
server.basePath: /kibana

View File

@@ -1,8 +1,8 @@
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
{% if FEATURES %}
{%- if FEATURES is sameas true %}
{% set FEATURES = "-features" %}
{% else %}
{% set FEATURES = '' %}

View File

@@ -12,12 +12,13 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
{% set MANAGERIP = salt['pillar.get']('global:managerip') %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
{% if FEATURES %}
{%- if FEATURES is sameas true %}
{% set FEATURES = "-features" %}
{% else %}
{% set FEATURES = '' %}
@@ -127,7 +128,7 @@ importdir:
# Create the logstash data directory
nsmlsdir:
file.directory:
- name: /nsm/logstash
- name: /nsm/logstash/tmp
- user: 931
- group: 939
- makedirs: True
@@ -146,6 +147,8 @@ so-logstash:
- hostname: so-logstash
- name: so-logstash
- user: logstash
- extra_hosts:
- {{ MANAGER }}:{{ MANAGERIP }}
- environment:
- LS_JAVA_OPTS=-Xms{{ lsheap }} -Xmx{{ lsheap }}
- port_bindings:
@@ -165,12 +168,19 @@ so-logstash:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
- /etc/pki/filebeat.crt:/usr/share/logstash/filebeat.crt:ro
- /etc/pki/filebeat.p8:/usr/share/logstash/filebeat.key:ro
{% if grains['role'] == 'so-heavynode' %}
- /etc/ssl/certs/intca.crt:/usr/share/filebeat/ca.crt:ro
{% else %}
- /etc/pki/ca.crt:/usr/share/filebeat/ca.crt:ro
{% endif %}
- /opt/so/conf/ca/cacerts:/etc/pki/ca-trust/extracted/java/cacerts:ro
- /opt/so/conf/ca/tls-ca-bundle.pem:/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem:ro
- /etc/pki/ca.cer:/ca/ca.crt:ro
{%- if grains['role'] == 'so-eval' %}
- /nsm/zeek:/nsm/zeek:ro
- /nsm/suricata:/suricata:ro
- /opt/so/wazuh/logs/alerts:/wazuh/alerts:ro
- /opt/so/wazuh/logs/archives:/wazuh/archives:ro
- /nsm/wazuh/logs/alerts:/wazuh/alerts:ro
- /nsm/wazuh/logs/archives:/wazuh/archives:ro
- /opt/so/log/fleet/:/osquery/logs:ro
- /opt/so/log/strelka:/strelka:ro
{%- endif %}
@@ -184,4 +194,4 @@ so-logstash:
{% endfor %}
{% for TEMPLATE in TEMPLATES %}
- file: es_template_{{TEMPLATE.split('.')[0] | replace("/","_") }}
{% endfor %}
{% endfor %}

View File

@@ -0,0 +1,23 @@
{%- if grains.role == 'so-heavynode' %}
{%- set MANAGER = salt['grains.get']('host') %}
{%- else %}
{%- set MANAGER = salt['grains.get']('master') %}
{% endif -%}
{%- set THREADS = salt['pillar.get']('logstash_settings:ls_input_threads', '') %}
{%- set access_key = salt['pillar.get']('minio:access_key', '') %}
{%- set access_secret = salt['pillar.get']('minio:access_secret', '') %}
{%- set INTERVAL = salt['pillar.get']('s3_settings:interval', 5) %}
input {
s3 {
access_key_id => "{{ access_key }}"
secret_access_key => "{{ access_secret }}"
endpoint => "https://{{ MANAGER }}:9595"
bucket => "logstash"
delete => true
interval => {{ INTERVAL }}
codec => json
additional_settings => {
"force_path_style" => true
}
}
}

View File

@@ -1,13 +1,11 @@
{%- if grains.role == 'so-heavynode' %}
{%- set MANAGER = salt['pillar.get']('elasticsearch:mainip', '') %}
{%- else %}
{%- set MANAGER = salt['pillar.get']('static:managerip', '') %}
{% endif -%}
{%- set MANAGER = salt['grains.get']('master') %}
{%- set THREADS = salt['pillar.get']('logstash_settings:ls_input_threads', '') %}
input {
redis {
host => '{{ MANAGER }}'
port => 9696
ssl => true
data_type => 'list'
key => 'logstash:unparsed'
type => 'redis-input'

View File

@@ -3,6 +3,7 @@
{%- else %}
{%- set ES = salt['pillar.get']('elasticsearch:mainip', '') -%}
{%- endif %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
output {
if [module] =~ "zeek" and "import" not in [tags] {
elasticsearch {

View File

@@ -3,6 +3,7 @@
{%- else %}
{%- set ES = salt['pillar.get']('elasticsearch:mainip', '') -%}
{%- endif %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
output {
if "import" in [tags] {
elasticsearch {

View File

@@ -3,6 +3,7 @@
{%- else %}
{%- set ES = salt['pillar.get']('elasticsearch:mainip', '') -%}
{%- endif %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
output {
if [event_type] == "sflow" {
elasticsearch {

View File

@@ -3,6 +3,7 @@
{%- else %}
{%- set ES = salt['pillar.get']('elasticsearch:mainip', '') -%}
{%- endif %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
output {
if [event_type] == "ids" and "import" not in [tags] {
elasticsearch {

View File

@@ -3,6 +3,7 @@
{%- else %}
{%- set ES = salt['pillar.get']('elasticsearch:mainip', '') -%}
{%- endif %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
output {
if [module] =~ "syslog" {
elasticsearch {

View File

@@ -3,6 +3,7 @@
{%- else %}
{%- set ES = salt['pillar.get']('elasticsearch:mainip', '') -%}
{%- endif %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
output {
if [module] =~ "osquery" {
elasticsearch {

View File

@@ -3,6 +3,7 @@
{%- else %}
{%- set ES = salt['pillar.get']('elasticsearch:mainip', '') -%}
{%- endif %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
output {
if "firewall" in [tags] {
elasticsearch {

View File

@@ -3,6 +3,7 @@
{%- else %}
{%- set ES = salt['pillar.get']('elasticsearch:mainip', '') -%}
{%- endif %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
output {
if [module] =~ "suricata" and "import" not in [tags] {
elasticsearch {

View File

@@ -3,6 +3,7 @@
{%- else %}
{%- set ES = salt['pillar.get']('elasticsearch:mainip', '') -%}
{%- endif %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
output {
if "beat-ext" in [tags] and "import" not in [tags] {
elasticsearch {

View File

@@ -3,6 +3,7 @@
{%- else %}
{%- set ES = salt['pillar.get']('elasticsearch:mainip', '') -%}
{%- endif %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
output {
if [module] =~ "ossec" {
elasticsearch {

View File

@@ -3,6 +3,7 @@
{%- else %}
{%- set ES = salt['pillar.get']('elasticsearch:mainip', '') -%}
{%- endif %}
{% set FEATURES = salt['pillar.get']('elastic:features', False) %}
output {
if [module] =~ "strelka" {
elasticsearch {

View File

@@ -0,0 +1,25 @@
{%- set MANAGER = salt['grains.get']('master') %}
{%- set access_key = salt['pillar.get']('minio:access_key', '') %}
{%- set access_secret = salt['pillar.get']('minio:access_secret', '') %}
{%- set SIZE_FILE = salt['pillar.get']('s3_settings:size_file', 2048) %}
{%- set TIME_FILE = salt['pillar.get']('s3_settings:time_file', 1) %}
{%- set UPLOAD_QUEUE_SIZE = salt['pillar.get']('s3_settings:upload_queue_size', 4) %}
{%- set ENCODING = salt['pillar.get']('s3_settings:encoding', 'gzip') %}
output {
s3 {
access_key_id => "{{ access_key }}"
secret_access_key => "{{ access_secret}}"
endpoint => "https://{{ MANAGER }}:9595"
bucket => "logstash"
size_file => {{ SIZE_FILE }}
time_file => {{ TIME_FILE }}
codec => json
encoding => {{ ENCODING }}
upload_queue_size => {{ UPLOAD_QUEUE_SIZE }}
temporary_directory => "/usr/share/logstash/data/tmp"
validate_credentials_on_root_bucket => false
additional_settings => {
"force_path_style" => true
}
}
}

View File

@@ -1,8 +1,9 @@
{% set MANAGER = salt['pillar.get']('static:managerip', '') %}
{%- set MANAGER = salt['grains.get']('master') %}
{% set BATCH = salt['pillar.get']('logstash_settings:ls_pipeline_batch_size', 125) %}
output {
redis {
host => '{{ MANAGER }}'
port => 6379
data_type => 'list'
key => 'logstash:unparsed'
congestion_interval => 1

View File

@@ -12,10 +12,10 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
{% set managerproxy = salt['pillar.get']('static:managerupdate', '0') %}
{% set managerproxy = salt['pillar.get']('global:managerupdate', '0') %}
socore_own_saltstack:
file.directory:

View File

@@ -13,47 +13,47 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set access_key = salt['pillar.get']('manager:access_key', '') %}
{% set access_secret = salt['pillar.get']('manager:access_secret', '') %}
{% set access_key = salt['pillar.get']('minio:access_key', '') %}
{% set access_secret = salt['pillar.get']('minio:access_secret', '') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
# Minio Setup
minioconfdir:
file.directory:
- name: /opt/so/conf/minio/etc
- name: /opt/so/conf/minio/etc/certs
- user: 939
- group: 939
- makedirs: True
miniodatadir:
file.directory:
- name: /nsm/minio/data
- name: /nsm/minio/data/
- user: 939
- group: 939
- makedirs: True
#redisconfsync:
# file.recurse:
# - name: /opt/so/conf/redis/etc
# - source: salt://redis/etc
# - user: 939
# - group: 939
# - template: jinja
logstashbucket:
file.directory:
- name: /nsm/minio/data/logstash
- user: 939
- group: 939
- makedirs: True
minio/minio:
docker_image.present
minio:
so-minio:
docker_container.running:
- image: minio/minio
- image: {{ MANAGER }}:5000/{{ IMAGEREPO }}/so-minio:{{ VERSION }}
- hostname: so-minio
- user: socore
- port_bindings:
- 0.0.0.0:9000:9000
- 0.0.0.0:9595:9595
- environment:
- MINIO_ACCESS_KEY: {{ access_key }}
- MINIO_SECRET_KEY: {{ access_secret }}
- binds:
- /nsm/minio/data:/data:rw
- /opt/so/conf/minio/etc:/root/.minio:rw
- entrypoint: "/usr/bin/docker-entrypoint.sh server /data"
- network_mode: so-elastic-net
- /opt/so/conf/minio/etc:/.minio:rw
- /etc/pki/minio.key:/.minio/certs/private.key:ro
- /etc/pki/minio.crt:/.minio/certs/public.crt:ro
- entrypoint: "/usr/bin/docker-entrypoint.sh server --certs-dir /.minio/certs --address :9595 /data"

View File

@@ -1,6 +1,6 @@
{% set needs_restarting_check = salt['mine.get']('*', 'needs_restarting.check', tgt_type='glob') -%}
{% set role = grains.id.split('_') | last -%}
{% set url = salt['pillar.get']('manager:url_base') -%}
{% set url = salt['pillar.get']('global:url_base') -%}
{% if role in ['eval', 'managersearch', 'manager', 'standalone'] %}
Access the Security Onion web interface at https://{{ url }}

View File

@@ -1,7 +1,7 @@
{%- set MYSQLPASS = salt['pillar.get']('secrets:mysql', None) %}
{%- set MANAGERIP = salt['pillar.get']('static:managerip', '') %}
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{%- set MANAGERIP = salt['pillar.get']('global:managerip', '') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
{% set MAINIP = salt['pillar.get']('elasticsearch:mainip') %}
{% set FLEETARCH = salt['grains.get']('role') %}
@@ -10,7 +10,7 @@
{% set MAININT = salt['pillar.get']('host:mainint') %}
{% set MAINIP = salt['grains.get']('ip_interfaces').get(MAININT)[0] %}
{% else %}
{% set MAINIP = salt['pillar.get']('static:managerip') %}
{% set MAINIP = salt['pillar.get']('global:managerip') %}
{% endif %}
# MySQL Setup
@@ -89,7 +89,7 @@ so-mysql:
- /opt/so/conf/mysql/etc
cmd.run:
- name: until nc -z {{ MAINIP }} 3306; do sleep 1; done
- timeout: 120
- timeout: 900
- onchanges:
- docker_container: so-mysql
{% endif %}
{% endif %}

View File

@@ -1,7 +1,7 @@
{%- set managerip = salt['pillar.get']('manager:mainip', '') %}
{%- set FLEET_MANAGER = salt['pillar.get']('static:fleet_manager') %}
{%- set FLEET_NODE = salt['pillar.get']('static:fleet_node') %}
{%- set FLEET_IP = salt['pillar.get']('static:fleet_ip', None) %}
{%- set FLEET_MANAGER = salt['pillar.get']('global:fleet_manager') %}
{%- set FLEET_NODE = salt['pillar.get']('global:fleet_node') %}
{%- set FLEET_IP = salt['pillar.get']('global:fleet_ip', None) %}
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
@@ -297,6 +297,9 @@ http {
}
location /sensoroniagents/ {
if ($http_authorization = "") {
return 403;
}
proxy_pass http://{{ managerip }}:9822/;
proxy_read_timeout 90;
proxy_connect_timeout 90;

View File

@@ -0,0 +1,326 @@
{%- set managerip = salt['pillar.get']('manager:mainip', '') %}
{%- set FLEET_MANAGER = salt['pillar.get']('global:fleet_manager') %}
{%- set FLEET_NODE = salt['pillar.get']('global:fleet_node') %}
{%- set FLEET_IP = salt['pillar.get']('global:fleet_ip', None) %}
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
client_max_body_size 1024M;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
#server {
# listen 80 default_server;
# listen [::]:80 default_server;
# server_name _;
# root /opt/socore/html;
# index index.html;
# Load configuration files for the default server block.
#include /etc/nginx/default.d/*.conf;
# location / {
# }
# error_page 404 /404.html;
# location = /40x.html {
# }
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
#}
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
{% if FLEET_MANAGER %}
server {
listen 8090 ssl http2 default_server;
server_name _;
root /opt/socore/html;
index blank.html;
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/server.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location ~ ^/kolide.agent.Api/(RequestEnrollment|RequestConfig|RequestQueries|PublishLogs|PublishResults|CheckHealth)$ {
grpc_pass grpcs://{{ managerip }}:8080;
grpc_set_header Host $host;
grpc_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
}
}
{% endif %}
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
#listen [::]:443 ssl http2 default_server;
server_name _;
root /opt/socore/html;
index index.html;
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/server.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
#include /etc/nginx/default.d/*.conf;
location ~* (^/login/|^/js/.*|^/css/.*|^/images/.*) {
proxy_pass http://{{ managerip }}:9822;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
auth_request /auth/sessions/whoami;
proxy_pass http://{{ managerip }}:9822/;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Forwarded-Proto $scheme;
}
location ~ ^/auth/.*?(whoami|login|logout|settings) {
rewrite /auth/(.*) /$1 break;
proxy_pass http://{{ managerip }}:4433;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
location /cyberchef/ {
auth_request /auth/sessions/whoami;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
location /navigator/ {
auth_request /auth/sessions/whoami;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
location /packages/ {
try_files $uri =206;
auth_request /auth/sessions/whoami;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
location /grafana/ {
auth_request /auth/sessions/whoami;
rewrite /grafana/(.*) /$1 break;
proxy_pass http://{{ managerip }}:3000/;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
location /kibana/ {
auth_request /auth/sessions/whoami;
rewrite /kibana/(.*) /$1 break;
proxy_pass http://{{ managerip }}:5601/;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
location /nodered/ {
proxy_pass http://{{ managerip }}:1880/;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
location /playbook/ {
proxy_pass http://{{ managerip }}:3200/playbook/;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
{%- if FLEET_NODE %}
location /fleet/ {
return 301 https://{{ FLEET_IP }}/fleet;
}
{%- else %}
location /fleet/ {
proxy_pass https://{{ managerip }}:8080;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
{%- endif %}
location /thehive/ {
proxy_pass http://{{ managerip }}:9000/thehive/;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_http_version 1.1; # this is essential for chunked responses to work
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
location /cortex/ {
proxy_pass http://{{ managerip }}:9001/cortex/;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_http_version 1.1; # this is essential for chunked responses to work
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
location /soctopus/ {
proxy_pass http://{{ managerip }}:7000/;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
location /kibana/app/soc/ {
rewrite ^/kibana/app/soc/(.*) /soc/$1 permanent;
}
location /kibana/app/fleet/ {
rewrite ^/kibana/app/fleet/(.*) /fleet/$1 permanent;
}
location /kibana/app/soctopus/ {
rewrite ^/kibana/app/soctopus/(.*) /soctopus/$1 permanent;
}
location /sensoroniagents/ {
proxy_pass http://{{ managerip }}:9822/;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
proxy_set_header X-Forwarded-Proto $scheme;
}
error_page 401 = @error401;
location @error401 {
add_header Set-Cookie "AUTH_REDIRECT=$request_uri;Path=/;Max-Age=14400";
return 302 /auth/self-service/browser/flows/login;
}
#error_page 404 /404.html;
# location = /usr/share/nginx/html/40x.html {
#}
error_page 500 502 503 504 /50x.html;
location = /usr/share/nginx/html/50x.html {
}
}
}

View File

@@ -1,7 +1,7 @@
{%- set managerip = salt['pillar.get']('manager:mainip', '') %}
{%- set FLEET_MANAGER = salt['pillar.get']('static:fleet_manager') %}
{%- set FLEET_NODE = salt['pillar.get']('static:fleet_node') %}
{%- set FLEET_IP = salt['pillar.get']('static:fleet_ip', None) %}
{%- set FLEET_MANAGER = salt['pillar.get']('global:fleet_manager') %}
{%- set FLEET_NODE = salt['pillar.get']('global:fleet_node') %}
{%- set FLEET_IP = salt['pillar.get']('global:fleet_ip', None) %}
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
@@ -297,6 +297,9 @@ http {
}
location /sensoroniagents/ {
if ($http_authorization = "") {
return 403;
}
proxy_pass http://{{ managerip }}:9822/;
proxy_read_timeout 90;
proxy_connect_timeout 90;

View File

@@ -1,7 +1,7 @@
{%- set managerip = salt['pillar.get']('manager:mainip', '') %}
{%- set FLEET_MANAGER = salt['pillar.get']('static:fleet_manager') %}
{%- set FLEET_NODE = salt['pillar.get']('static:fleet_node') %}
{%- set FLEET_IP = salt['pillar.get']('static:fleet_ip', None) %}
{%- set FLEET_MANAGER = salt['pillar.get']('global:fleet_manager') %}
{%- set FLEET_NODE = salt['pillar.get']('global:fleet_node') %}
{%- set FLEET_IP = salt['pillar.get']('global:fleet_ip', None) %}
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
@@ -296,6 +296,9 @@ http {
}
location /sensoroniagents/ {
if ($http_authorization = "") {
return 403;
}
proxy_pass http://{{ managerip }}:9822/;
proxy_read_timeout 90;
proxy_connect_timeout 90;

View File

@@ -1,7 +1,7 @@
{%- set managerip = salt['pillar.get']('manager:mainip', '') %}
{%- set FLEET_MANAGER = salt['pillar.get']('static:fleet_manager') %}
{%- set FLEET_NODE = salt['pillar.get']('static:fleet_node') %}
{%- set FLEET_IP = salt['pillar.get']('static:fleet_ip', None) %}
{%- set FLEET_MANAGER = salt['pillar.get']('global:fleet_manager') %}
{%- set FLEET_NODE = salt['pillar.get']('global:fleet_node') %}
{%- set FLEET_IP = salt['pillar.get']('global:fleet_ip', None) %}
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
@@ -297,6 +297,9 @@ http {
}
location /sensoroniagents/ {
if ($http_authorization = "") {
return 403;
}
proxy_pass http://{{ managerip }}:9822/;
proxy_read_timeout 90;
proxy_connect_timeout 90;

View File

@@ -1,4 +1,4 @@
{%- set ip = salt['pillar.get']('static:managerip', '') %}
{%- set URL_BASE = salt['pillar.get']('global:url_base', '') %}
{
"enterprise_attack_url": "https://raw.githubusercontent.com/mitre/cti/master/enterprise-attack/enterprise-attack.json",
@@ -16,7 +16,7 @@
"domain": "mitre-enterprise",
"custom_context_menu_items": [ {"label": "view related plays","url": " https://{{ip}}/playbook/projects/detection-playbooks/issues?utf8=%E2%9C%93&set_filter=1&sort=id%3Adesc&f%5B%5D=cf_15&op%5Bcf_15%5D=%3D&f%5B%5D=&c%5B%5D=status&c%5B%5D=cf_10&c%5B%5D=cf_13&c%5B%5D=cf_18&c%5B%5D=cf_19&c%5B%5D=cf_1&c%5B%5D=updated_on&v%5Bcf_15%5D%5B%5D=~Technique_ID~"}],
"custom_context_menu_items": [ {"label": "view related plays","url": " https://{{URL_BASE}}/playbook/projects/detection-playbooks/issues?utf8=%E2%9C%93&set_filter=1&sort=id%3Adesc&f%5B%5D=cf_15&op%5Bcf_15%5D=%3D&f%5B%5D=&c%5B%5D=status&c%5B%5D=cf_10&c%5B%5D=cf_13&c%5B%5D=cf_18&c%5B%5D=cf_19&c%5B%5D=cf_1&c%5B%5D=updated_on&v%5Bcf_15%5D%5B%5D=~Technique_ID~"}],
"default_layers": {
"enabled": true,

View File

@@ -1,8 +1,8 @@
{% set FLEETMANAGER = salt['pillar.get']('static:fleet_manager', False) %}
{% set FLEETNODE = salt['pillar.get']('static:fleet_node', False) %}
{% set FLEETMANAGER = salt['pillar.get']('global:fleet_manager', False) %}
{% set FLEETNODE = salt['pillar.get']('global:fleet_node', False) %}
{% set MANAGER = salt['grains.get']('master') %}
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
# Drop the correct nginx config based on role
nginxconfdir:

View File

@@ -1,4 +1,4 @@
{%- set ip = salt['pillar.get']('static:managerip', '') -%}
{%- set ip = salt['pillar.get']('global:managerip', '') -%}
#!/bin/bash
default_salt_dir=/opt/so/saltstack/default

File diff suppressed because one or more lines are too long

View File

@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
# Create the nodered group
noderedgroup:

View File

@@ -1,5 +1,5 @@
needs_restarting:
module.run:
- mine.send:
- func: needs_restarting.check
- name: needs_restarting.check
- order: last

View File

@@ -1,11 +1,11 @@
{%- set MANAGER = salt['grains.get']('master') -%}
{%- set SENSORONIKEY = salt['pillar.get']('static:sensoronikey', '') -%}
{%- set SENSORONIKEY = salt['pillar.get']('global:sensoronikey', '') -%}
{%- set CHECKININTERVALMS = salt['pillar.get']('pcap:sensor_checkin_interval_ms', 10000) -%}
{
"logFilename": "/opt/sensoroni/logs/sensoroni.log",
"logLevel":"debug",
"agent": {
"pollIntervalMs": {{ CHECKININTERVALMS }},
"pollIntervalMs": {{ CHECKININTERVALMS if CHECKININTERVALMS else 10000 }},
"serverUrl": "https://{{ MANAGER }}/sensoroniagents",
"verifyCert": false,
"modules": {

View File

@@ -12,12 +12,13 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
{% set INTERFACE = salt['pillar.get']('sensor:interface', 'bond0') %}
{% set BPF_STENO = salt['pillar.get']('steno:bpf', None) %}
{% set BPF_COMPILED = "" %}
{% from "pcap/map.jinja" import START with context %}
# PCAP Section
@@ -131,6 +132,7 @@ sensoronilog:
so-steno:
docker_container.running:
- image: {{ MANAGER }}:5000/{{ IMAGEREPO }}/so-steno:{{ VERSION }}
- start: {{ START }}
- network_mode: host
- privileged: True
- port_bindings:

6
salt/pcap/map.jinja Normal file
View File

@@ -0,0 +1,6 @@
# don't start the docker container if it is an import node
{% if grains.id.split('_')|last == 'import' %}
{% set START = False %}
{% else %}
{% set START = True %}
{% endif %}

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
{% set MANAGERIP = salt['pillar.get']('manager:mainip', '') %}
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
{% set MAINIP = salt['grains.get']('ip_interfaces').get(salt['pillar.get']('sensor:mainint', salt['pillar.get']('manager:mainint', salt['pillar.get']('elasticsearch:mainint', salt['pillar.get']('host:mainint')))))[0] %}
{%- set MYSQLPASS = salt['pillar.get']('secrets:mysql', None) -%}

View File

@@ -10,7 +10,7 @@ def run():
MINIONID = data['id']
ACTION = data['data']['action']
LOCAL_SALT_DIR = "/opt/so/saltstack/local"
STATICFILE = f"{LOCAL_SALT_DIR}/pillar/static.sls"
STATICFILE = f"{LOCAL_SALT_DIR}/pillar/global.sls"
SECRETSFILE = f"{LOCAL_SALT_DIR}/pillar/secrets.sls"
if MINIONID.split('_')[-1] in ['manager','eval','fleet','managersearch','standalone']:

File diff suppressed because it is too large Load Diff

View File

@@ -12,8 +12,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('static:imagerepo') %}
{% set VERSION = salt['pillar.get']('global:soversion', 'HH1.2.2') %}
{% set IMAGEREPO = salt['pillar.get']('global:imagerepo') %}
{% set MANAGER = salt['grains.get']('master') %}
# Redis Setup
@@ -53,10 +53,14 @@ so-redis:
- user: socore
- port_bindings:
- 0.0.0.0:6379:6379
- 0.0.0.0:9696:9696
- binds:
- /opt/so/log/redis:/var/log/redis:rw
- /opt/so/conf/redis/etc/redis.conf:/usr/local/etc/redis/redis.conf:ro
- /opt/so/conf/redis/working:/redis:rw
- /etc/pki/redis.crt:/certs/redis.crt:ro
- /etc/pki/redis.key:/certs/redis.key:ro
- /etc/pki/ca.crt:/certs/ca.crt:ro
- entrypoint: "redis-server /usr/local/etc/redis/redis.conf"
- watch:
- file: /opt/so/conf/redis/etc

View File

@@ -40,7 +40,7 @@ dockerregistryconf:
# Install the registry container
so-dockerregistry:
docker_container.running:
- image: registry:2
- image: registry:latest
- hostname: so-registry
- restart_policy: always
- port_bindings:

View File

@@ -1,15 +1,13 @@
{% if grains['os'] != 'CentOS' %}
saltpymodules:
pkg.installed:
- pkgs:
- python-docker
- python-m2crypto
{% endif %}
{% endif %}
salt_minion_service:
service.running:
- name: salt-minion
- enable: True
salt_bootstrap:
file.managed:
- name: /usr/sbin/bootstrap-salt.sh
- source: salt://salt/scripts/bootstrap-salt.sh
- mode: 755

18
salt/salt/map.jinja Normal file
View File

@@ -0,0 +1,18 @@
{% import_yaml 'salt/minion.defaults.yaml' as salt %}
{% set SALTVERSION = salt.salt.minion.version %}
{% if grains.os|lower == 'ubuntu' %}
{% set COMMON = 'salt-common' %}
{% elif grains.os|lower == 'centos' %}
{% set COMMON = 'salt' %}
{% endif %}
{% if grains.saltversion|string != SALTVERSION|string %}
{% if grains.os|lower == 'centos' %}
{% set UPGRADECOMMAND = 'yum versionlock delete "salt-*" && sh /usr/sbin/bootstrap-salt.sh -F -x python3 stable ' ~ SALTVERSION %}
{% elif grains.os|lower == 'ubuntu' %}
{% set UPGRADECOMMAND = 'apt-mark unhold salt-common && apt-mark unhold salt-minion && sh /usr/sbin/bootstrap-salt.sh -F -x python3 stable ' ~ SALTVERSION %}
{% endif %}
{% else %}
{% set UPGRADECOMMAND = 'echo Already running Salt Minon version ' ~ SALTVERSION %}
{% endif %}

Some files were not shown because too many files have changed in this diff Show More