mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2026-05-09 21:02:36 +02:00
Compare commits
910 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 50ab63162a | |||
| 38965ccab5 | |||
| eeb249e00d | |||
| dff06cb085 | |||
| 8c1d1c95db | |||
| 790f5171a6 | |||
| 252c51dafb | |||
| a07e6e1058 | |||
| 3f9678056d | |||
| c895b6a274 | |||
| 418f41c7e4 | |||
| 05679e79fc | |||
| af3aa53612 | |||
| 5eae349938 | |||
| 2f8ce33cf7 | |||
| 61b2a76a09 | |||
| b89b7cab59 | |||
| 71c5e34e03 | |||
| 880300d644 | |||
| f5b59cacec | |||
| ea5097f1b4 | |||
| cc66daba1a | |||
| ea54aafa86 | |||
| 03f140161c | |||
| 7bdc306ad4 | |||
| 5e1e685ce0 | |||
| c89d674a92 | |||
| 9b1ddcacb4 | |||
| 5703023008 | |||
| 59fe9a0587 | |||
| b8e555e913 | |||
| 16b15c786b | |||
| 3e13ea5c7a | |||
| 9159eab9fd | |||
| 0519812866 | |||
| fc2f02c0a0 | |||
| 1e3a00a833 | |||
| f21f0a9a96 | |||
| 6ff764e6a1 | |||
| f5568995ac | |||
| 47eea80d03 | |||
| 0b919ff0fa | |||
| c9f2038990 | |||
| bf05efa59f | |||
| b058bc8c05 | |||
| 7ddda03ee9 | |||
| 5513e74807 | |||
| 31ee365a91 | |||
| f46ac6b9d7 | |||
| 31f314504e | |||
| 0d76ddd49f | |||
| b0447a9af5 | |||
| ef6eafeff1 | |||
| ccfdafea0a | |||
| 93cdac592e | |||
| 2eaf0e812a | |||
| cab7c9d573 | |||
| 8c792a8cfa | |||
| c091a0845c | |||
| cf23723c54 | |||
| 30bc02178a | |||
| 84e8013e46 | |||
| 80ec4cecec | |||
| 82482d309a | |||
| d437a2856a | |||
| f0b44ad56c | |||
| cffc3353bc | |||
| e075d07f5c | |||
| fe8f57c43b | |||
| 3456de3a30 | |||
| 14767dd8b5 | |||
| 8189f46a03 | |||
| cfb5c1c9d2 | |||
| 244968ce23 | |||
| 65f89b22b2 | |||
| 7684aadb87 | |||
| 188744357f | |||
| 4baf4657f6 | |||
| 1006710226 | |||
| cd661027a6 | |||
| 28fdf15304 | |||
| 90edf7e8f1 | |||
| 552e4c0d1c | |||
| ba2c51bee2 | |||
| 7b9ac7ae6d | |||
| 62708ac97d | |||
| f8fdc6d14e | |||
| 72fbf386eb | |||
| 15773bae34 | |||
| ce8a774129 | |||
| c06de33318 | |||
| 41dc9df7cd | |||
| cb956fb399 | |||
| 5c34cdd943 | |||
| 5e8613f38b | |||
| 69472e70b4 | |||
| 090f3a3e02 | |||
| 85242651b2 | |||
| 80cd9920b2 | |||
| ca21e32d83 | |||
| 6ab12ceec4 | |||
| bfcf7d4668 | |||
| 4a23832267 | |||
| b3be999aea | |||
| ab5de4c104 | |||
| 614589153b | |||
| 5e715036fb | |||
| 748a67314f | |||
| a561f8c783 | |||
| fb5ee6b9e9 | |||
| 7d6f8d922b | |||
| f86adf8053 | |||
| 8f6b1a07b7 | |||
| 6c92672566 | |||
| aba5893965 | |||
| 866c9988a0 | |||
| f032ff40a2 | |||
| 03421c1bcd | |||
| 4d8661d2e0 | |||
| 6a1073b616 | |||
| 6a4e05d60f | |||
| 981f3642a0 | |||
| 33a9ac5701 | |||
| 020472085b | |||
| 8aaeee20b9 | |||
| e32de6893b | |||
| f05eb742dd | |||
| cd3a661dd6 | |||
| 55c957170d | |||
| d41daa37f1 | |||
| b59896bb47 | |||
| c59a6516fc | |||
| 88684a6c19 | |||
| d0d671a828 | |||
| 8779fb8cbc | |||
| 042e5ae9f0 | |||
| 45f50cc121 | |||
| 22fcccef1c | |||
| 977081b6e7 | |||
| 3dbf97944d | |||
| 03b2a7d2de | |||
| 395da2cca0 | |||
| 997d323763 | |||
| d5edf57ccb | |||
| 94b9089b79 | |||
| 81e4fe78e7 | |||
| 5d3f2298b6 | |||
| b17e4006a1 | |||
| 8cf5d9c1a6 | |||
| cdac2bfa16 | |||
| b0a69d30c9 | |||
| 196d59869a | |||
| c0ab8f24e9 | |||
| bd26a52227 | |||
| 03279732b7 | |||
| 2c4d0a0d71 | |||
| d49d13289e | |||
| aaf60bea87 | |||
| e95932f28c | |||
| bbe091fa14 | |||
| 54c3167b10 | |||
| b1721b6467 | |||
| 214404265a | |||
| 25c39540c8 | |||
| f7373ed79c | |||
| d203aec44a | |||
| be8ed1e1d8 | |||
| a732985351 | |||
| 98947f3906 | |||
| b80d7fd610 | |||
| 849e9e14ad | |||
| 0ebc8c7beb | |||
| e0801282eb | |||
| bdf4b2c68d | |||
| e49fc0dd27 | |||
| f52da4a933 | |||
| f38758a9c7 | |||
| 1ac3a2d2f1 | |||
| 965ced94c4 | |||
| bc3634b13d | |||
| 5c50060857 | |||
| 00fa75869b | |||
| ab0e6f9bec | |||
| 213cdb479d | |||
| 8da96e93c8 | |||
| 0160cae7d7 | |||
| d7bf52de76 | |||
| fea5a3026d | |||
| 7f21bee0d4 | |||
| ade3a46a9a | |||
| e6a2e49d37 | |||
| 1438913f6a | |||
| 51fa4922b9 | |||
| b878728882 | |||
| 386e9214fc | |||
| 4becf3e20f | |||
| 0334ef9677 | |||
| 0537e1b3f6 | |||
| 6fff05b444 | |||
| 01a37df7fc | |||
| b3e78c9cc3 | |||
| d871b61150 | |||
| b2536a64d8 | |||
| 3d1eecfad6 | |||
| 8eaa07a186 | |||
| 9446b750c0 | |||
| fdd4173632 | |||
| b7227e15eb | |||
| 90d9e5b927 | |||
| 802bf9ce27 | |||
| 0b6ba6d2f2 | |||
| 55a8b1064d | |||
| 11a3e12e94 | |||
| 38868af08a | |||
| ace5dff351 | |||
| 265cde5296 | |||
| 55052c4811 | |||
| e36044e164 | |||
| 6fa4a69753 | |||
| 4fc3c852a1 | |||
| 32b03f514e | |||
| a605c5c62c | |||
| 2368e8b793 | |||
| 317b6cb614 | |||
| a6d20bdc71 | |||
| 93fb10de86 | |||
| 1a4d009b7f | |||
| 9d63a47792 | |||
| 7001e90667 | |||
| a0573212c0 | |||
| 5f79644aef | |||
| 0603e96c08 | |||
| ece3c367b5 | |||
| 8953ffcc49 | |||
| 9ee3423b32 | |||
| 7d759a99fe | |||
| d3802c1668 | |||
| 874618d512 | |||
| fa9032b323 | |||
| 17942676c6 | |||
| 458c6de39d | |||
| a39f696a34 | |||
| 9aa193af3b | |||
| 3f1f256748 | |||
| c78ea0183f | |||
| e9417dd437 | |||
| 14b5aa476e | |||
| 861e850f9a | |||
| 6356a0bf95 | |||
| f31e288005 | |||
| b2ea7138f3 | |||
| f29a91ea4c | |||
| 4b0033c60a | |||
| c20004c210 | |||
| 45dc1ce036 | |||
| 0cc10fbf80 | |||
| e71ee97717 | |||
| 77d0a7277a | |||
| 2ae87de409 | |||
| a69a65c44f | |||
| d89beefc8c | |||
| 9c371fc374 | |||
| 4fb9cce41c | |||
| e226efa799 | |||
| 82a41894f3 | |||
| 7aadc3851f | |||
| ca1498fca1 | |||
| 15fc4f2655 | |||
| 089a111ae8 | |||
| 33bd04b797 | |||
| 5920a14478 | |||
| 67f116daed | |||
| c09e8f0d71 | |||
| de99cda766 | |||
| 3ede19a106 | |||
| b6e2df45c7 | |||
| af98c8e2da | |||
| 6b8e48c973 | |||
| 109ee55d8c | |||
| ff8cd194f1 | |||
| d5dd0d88ed | |||
| 46c5bf40e0 | |||
| 3ed7b36865 | |||
| 85649da2cb | |||
| f7fa4d05fb | |||
| 96b456cd76 | |||
| 4666b993e5 | |||
| 4fa6b265a0 | |||
| 567e19e5d7 | |||
| f036623d55 | |||
| 1204ce96f3 | |||
| bc178a9784 | |||
| c338daabce | |||
| fe7af49a82 | |||
| aeb09b16db | |||
| 583ec5176e | |||
| 4bb1dabb89 | |||
| 89c3d45abe | |||
| 551f7831de | |||
| 193c9d202e | |||
| b5912fc1e4 | |||
| 33f538b73e | |||
| d3ea5def69 | |||
| d1b6ef411b | |||
| 8ca825b9a1 | |||
| 209e237d0d | |||
| 325dceb01b | |||
| 02baa18502 | |||
| 268dc03131 | |||
| e39edab00d | |||
| acb6e84248 | |||
| 9231c8d2f2 | |||
| bc044fa2d5 | |||
| 84b815c2ef | |||
| 1ab44a40d3 | |||
| 9317e51f20 | |||
| 33a8ef1568 | |||
| 01e846ba22 | |||
| 9df3a8fc18 | |||
| 36098e6314 | |||
| 32079a7bce | |||
| 3701c1d847 | |||
| f46aef1611 | |||
| d256be3eb3 | |||
| 653fda124f | |||
| b46e86c39b | |||
| de9f9549af | |||
| 749e22e4b9 | |||
| 69ec1987af | |||
| 570624da7e | |||
| 7772657b4b | |||
| 6d97667634 | |||
| 1676c84f9c | |||
| e665899e4d | |||
| 1dcca0bfd3 | |||
| 0b4a246ddb | |||
| f97dc70fcb | |||
| cce80eb2fb | |||
| 2f95512199 | |||
| b008661b6b | |||
| b99c7ce76e | |||
| c30a0d5b5b | |||
| 74eda68d84 | |||
| ef1dfc3152 | |||
| f6cd35e143 | |||
| d010af9a24 | |||
| 7a0b21647f | |||
| 610374816d | |||
| 3ff74948d8 | |||
| 0086c24729 | |||
| 9d2b84818f | |||
| b74aa32deb | |||
| 3d8663db66 | |||
| 65978a340f | |||
| a8b0e41dbe | |||
| 1bc4b44be7 | |||
| 1a3d4a2051 | |||
| 9d639df882 | |||
| 8c7767b381 | |||
| 96582add5e | |||
| 5bfef3f527 | |||
| 3875970dc5 | |||
| 7aa4f28524 | |||
| 96fdfb3829 | |||
| ac593e4632 | |||
| 51e7861757 | |||
| 6332df04d1 | |||
| 32701b5941 | |||
| 0dec6693dc | |||
| 41a6ab5b4f | |||
| e18e0fd69a | |||
| 2c0e287f8c | |||
| 9a76cfe3d3 | |||
| 6c4dc7cc09 | |||
| 5388b92865 | |||
| f932444101 | |||
| 1d2518310d | |||
| e10f043b1c | |||
| 65735fc4d3 | |||
| b7f516fca4 | |||
| c8d8997119 | |||
| c230cf4eb7 | |||
| 344dd7d61f | |||
| cd8949d26b | |||
| f9e2940181 | |||
| f33079f1e3 | |||
| e6a0838e4c | |||
| cc93976db9 | |||
| b3b67acf07 | |||
| 64926941dc | |||
| c32935e2e6 | |||
| 4f98beaf9e | |||
| 655c88cd09 | |||
| f62e02a477 | |||
| 2b3e405b2d | |||
| 59328d3909 | |||
| 4d7b1095b7 | |||
| 338146fedd | |||
| bca1194a46 | |||
| a0926b7b87 | |||
| 44e45843bf | |||
| 9701d0ac20 | |||
| 23ee9c2bb0 | |||
| 51247be6b9 | |||
| 4dc64400c5 | |||
| ae45d40eca | |||
| ebf982bf86 | |||
| d07cfdd3fe | |||
| 497294c363 | |||
| cc3a69683c | |||
| 0c98bd96c7 | |||
| a6d456e108 | |||
| c420e198fb | |||
| 5a85003952 | |||
| c354924b68 | |||
| db0d687b87 | |||
| ed6473a34b | |||
| 1b99d5081a | |||
| 07e51121ba | |||
| 9a1e95cd09 | |||
| 76dd6f07ab | |||
| c955f9210a | |||
| d35483aa02 | |||
| a9284b35a2 | |||
| 58cab35a4c | |||
| 6d7243038c | |||
| 3a83c52660 | |||
| d42b5ef901 | |||
| 2b511cef77 | |||
| 4bbcc5002a | |||
| f1dbea6e2d | |||
| 25f1a0251f | |||
| 87494f64c7 | |||
| ce1858fe05 | |||
| 9fc3a73035 | |||
| 0d52efafa8 | |||
| 3b63ef149a | |||
| cc3ee43192 | |||
| b37e38e3c3 | |||
| 25982b79ab | |||
| cb9d72ebd7 | |||
| 7e8f3b753f | |||
| 47373adad2 | |||
| 6891a95254 | |||
| 2e0100fd35 | |||
| a969c319f5 | |||
| 4942f83d4f | |||
| 6f4566c23e | |||
| 891ea997e7 | |||
| 01810a782c | |||
| 6d6292714f | |||
| 88fb7d06e6 | |||
| 39abe19cfd | |||
| 807b40019f | |||
| 5f168a33ed | |||
| d1170cb69f | |||
| 19fdc9319b | |||
| dc53b49f15 | |||
| af4b34801f | |||
| 1ae8896a05 | |||
| 6fb0c5dbfe | |||
| 58bf6d3eff | |||
| a887551dad | |||
| b20177b0ef | |||
| 1e710a22ce | |||
| d562445686 | |||
| c41e19ad0b | |||
| a3e6b1ee1d | |||
| a28cc274ba | |||
| a66006c8a6 | |||
| 3ad480453a | |||
| 205748e992 | |||
| dfe707ab64 | |||
| 308e5ea505 | |||
| 3e343bff84 | |||
| 1d6e32fbab | |||
| 310a6b4f27 | |||
| 180ba3a958 | |||
| 6d3465626e | |||
| fab91edd2d | |||
| 752390be2e | |||
| 02639d3bc5 | |||
| 4a3fc06a4d | |||
| 0c2b3f3c62 | |||
| 660020cc76 | |||
| b59a95b72f | |||
| 030a667d26 | |||
| a40760e601 | |||
| dc3ca99c12 | |||
| 7e3aa11a73 | |||
| c409339446 | |||
| c588bf4395 | |||
| 6d77b1e4c3 | |||
| 99662c999f | |||
| ef2b89f5bf | |||
| 2878f82754 | |||
| 2e16250c93 | |||
| f03bbdbc09 | |||
| dbfccdfff8 | |||
| dfcbbfd157 | |||
| 37e803917e | |||
| 66ee074795 | |||
| 90bde94371 | |||
| 84f8e1cc92 | |||
| e3830fa286 | |||
| 13a5c8baa7 | |||
| c5610edd83 | |||
| 5119e6c45a | |||
| 02e22c87e8 | |||
| 0772926992 | |||
| b2bb92d413 | |||
| 19bebe44aa | |||
| f30a652e19 | |||
| ff18b1f074 | |||
| 9eb682bc40 | |||
| c135f886a9 | |||
| 28b7a24cc1 | |||
| a52ee063e5 | |||
| 767a54c91b | |||
| ac28e1b967 | |||
| 5e10a0d9e2 | |||
| dd28dc6ddd | |||
| e58c1e189c | |||
| 1c1b23c328 | |||
| 2206cdb0fa | |||
| 1999db0bb3 | |||
| c3cde61202 | |||
| 8e68f96316 | |||
| 138aa9c554 | |||
| f0e380870d | |||
| 34717fb65e | |||
| d81dfb99d0 | |||
| fb9a0ab8b6 | |||
| 928fb23e96 | |||
| d9862aefcf | |||
| 496b97d706 | |||
| 830b5b9a21 | |||
| 06e731c762 | |||
| be2a829524 | |||
| 8cab242ad0 | |||
| 99054a2687 | |||
| adcb7840bd | |||
| 8db6fef92d | |||
| 24329e3731 | |||
| 1db88bdbb5 | |||
| 7c2cdb78e9 | |||
| e858a1211e | |||
| 01cb0fccb6 | |||
| 86394dab01 | |||
| 53fcafea50 | |||
| 574a81da7f | |||
| ed693a7ae6 | |||
| e5c936e8cf | |||
| 9f3a9dfab0 | |||
| c0030bc513 | |||
| a637b0e61b | |||
| 2f0e673ec3 | |||
| 84c39b5de7 | |||
| 07902d17cc | |||
| 1a7761c531 | |||
| 2773da5a12 | |||
| e23b3a62f3 | |||
| 57684efddf | |||
| 1641aa111b | |||
| ca2530e07f | |||
| 104b53c6ec | |||
| 6c5f8e4e2d | |||
| b8d586addd | |||
| 1b5cd4f53a | |||
| d2002a5158 | |||
| 5250292e95 | |||
| acc6715f90 | |||
| b6af59d9b0 | |||
| 49a651fd72 | |||
| 2d688331df | |||
| b12c4a96e9 | |||
| 6dd06c0fe9 | |||
| 17ae9b3349 | |||
| 8dc163f074 | |||
| 8ce70e1f18 | |||
| 98eab906af | |||
| d558f20715 | |||
| 967138cdff | |||
| c76ac717f2 | |||
| a671ac387a | |||
| ab4c5acd0c | |||
| 1043315e6b | |||
| d357864d69 | |||
| 44b855dd93 | |||
| 2094b4f688 | |||
| 5252482fe3 | |||
| abeebc7bc4 | |||
| 4193130ed0 | |||
| 89467adf9c | |||
| a283e7ea0b | |||
| a54479d603 | |||
| 49ebbf3232 | |||
| 05da5c039c | |||
| f3d0248ec5 | |||
| 4dc24b22c7 | |||
| fc0e3c0124 | |||
| 32c1d6f95c | |||
| c25aed9a2b | |||
| d79e27774c | |||
| 194178a250 | |||
| d78b55873d | |||
| f3ba28062b | |||
| 2434ce14d3 | |||
| 66be04e78a | |||
| 62e9472f1a | |||
| c699c2fe2a | |||
| a35889ebdc | |||
| 8995752c27 | |||
| 57e76232ec | |||
| d7a14d9e00 | |||
| 6b90961e87 | |||
| 6547afe6c0 | |||
| 3a5c6ee43a | |||
| 0f08d5d640 | |||
| f85dd910a3 | |||
| c1ab8952eb | |||
| dfe399291f | |||
| 70a36bafa5 | |||
| 381d95e032 | |||
| cd8a74290b | |||
| d91eaa9ae5 | |||
| 8c7933cd60 | |||
| 88f461042d | |||
| ea085c5ff6 | |||
| 39ea1d317d | |||
| 827ed7b273 | |||
| 8690304dff | |||
| 1e327c143c | |||
| 19232124f2 | |||
| e8b67da08b | |||
| b5d19bd561 | |||
| ad01be66ea | |||
| d546d52069 | |||
| 13cc8c4258 | |||
| 9d3f6059ee | |||
| 43855b8ca2 | |||
| ec3cc7a854 | |||
| 63be7ef6ca | |||
| b8aad7f5e6 | |||
| c02e491609 | |||
| 670cd19051 | |||
| 8c44481ee1 | |||
| a8c94a891b | |||
| ff35946050 | |||
| 95d32cb076 | |||
| 018186ccbd | |||
| 5040df7551 | |||
| c3604f6e80 | |||
| 7a21b7903d | |||
| a77a53f20b | |||
| ee45fc31a2 | |||
| ceae22adab | |||
| 202eb7e876 | |||
| 89a9c30cc8 | |||
| 7012ff6609 | |||
| 621da9e7e3 | |||
| 26bb0d064f | |||
| 9ee64f93ca | |||
| 641ff95f41 | |||
| 49115cde55 | |||
| 7d0e1c92a3 | |||
| 419acab48a | |||
| 528572c15b | |||
| d72e4ae97d | |||
| 76c0b881ff | |||
| 836c49b755 | |||
| 24def3a196 | |||
| b6d58b2fb8 | |||
| 770a74c83d | |||
| 039d5ae9aa | |||
| 2fb73cd516 | |||
| 2427344dca | |||
| 62cb661bab | |||
| 1e04199ea6 | |||
| 4666916077 | |||
| f094b1162d | |||
| ae9619f0c3 | |||
| 87cc389088 | |||
| ec046a6943 | |||
| 7eefe7b79c | |||
| c4fea9cb9d | |||
| 3fded86aa1 | |||
| 05e7c32cf9 | |||
| af2ff2b07c | |||
| b47d915cb6 | |||
| 376d525ad7 | |||
| 9c854a13cc | |||
| ff780738fd | |||
| 2c8d413f16 | |||
| 48801da44e | |||
| 641b8ef0b6 | |||
| 036a21ff17 | |||
| 2abf434ebe | |||
| 4dc477cc1d | |||
| 0bba68769b | |||
| e25d1c0ff3 | |||
| f9ace4791f | |||
| 7cb9b5f257 | |||
| c95af6b992 | |||
| 2fc4d2923d | |||
| eeeae08ec8 | |||
| 220f25e206 | |||
| fa3a79a787 | |||
| ca71add51b | |||
| 3fa3f83007 | |||
| 377802410e | |||
| 2e0ea3f374 | |||
| 508260bd46 | |||
| a1e963f834 | |||
| 8a98040008 | |||
| 47e611682a | |||
| 5bac1e4d15 | |||
| ad025b9683 | |||
| 3e97ddc22d | |||
| 151e8bfc4e | |||
| a914a02273 | |||
| bb3632d1b2 | |||
| 66bb1272ae | |||
| bbef96ac25 | |||
| f9cbde10a6 | |||
| fe1bae96ed | |||
| eab6173a31 | |||
| 98499c3963 | |||
| 26da525ebe | |||
| c65c9777bd | |||
| af68af7f18 | |||
| 0c11a9b733 | |||
| 59d077f3ff | |||
| 6383712731 | |||
| e067b7134e | |||
| 183c530c82 | |||
| 33d68478b6 | |||
| 22c0323bda | |||
| 19114c1a26 | |||
| 11b8e13418 | |||
| 6fdd7b3751 | |||
| 30c3255cb2 | |||
| 35ebbc974c | |||
| f1d0db8171 | |||
| 9968d697f3 | |||
| 02c54a264d | |||
| e814a3409f | |||
| 55847c7bdc | |||
| 598515e5b4 | |||
| 692625f8cd | |||
| f8ae3f12e6 | |||
| 3780ed1b4f | |||
| 8d269fee30 | |||
| 35157f2e8b | |||
| 60f1947eb4 | |||
| ffaab4a1b4 | |||
| 70e1309c9f | |||
| 5c0045f9f8 | |||
| b66be9c226 | |||
| 651393988a | |||
| cf19c8f8c2 | |||
| ba3ae92702 | |||
| 8e2bed7f91 | |||
| 028b69c7d4 | |||
| 0cf913a7c1 | |||
| 13fbcd712b | |||
| 0aae107155 | |||
| d2dcf7e7c1 | |||
| 6efdf1b9d0 | |||
| a11259c683 | |||
| 863db14b61 | |||
| 335aaa5594 | |||
| 07ed93de19 | |||
| 8093e5ce7c | |||
| 585fba4bc6 | |||
| b8f69b5008 | |||
| aebfb19ab7 | |||
| 490669d378 | |||
| 3434d0f200 | |||
| 765a22e6f0 | |||
| 546c562ef0 | |||
| b64d4e3658 | |||
| 0fb00d569e | |||
| b64fa51268 | |||
| 1871d48f7f | |||
| b010919099 | |||
| ce2a7135cb | |||
| 0fed757b11 | |||
| 1a3b3b21fb | |||
| d86e21c751 | |||
| e408718230 | |||
| ee848b8a8c | |||
| a60c34d548 | |||
| 8a2fc5d62b | |||
| da56a421e5 | |||
| bfb0d0ddb5 | |||
| c812c3991e | |||
| ca9dad396f | |||
| a615fc8e47 | |||
| ac38f32e32 | |||
| f2d1b9ac95 | |||
| 14a6280531 | |||
| 41300af944 | |||
| 21e91a7537 | |||
| 4127e0fc53 | |||
| d090852895 | |||
| 78915f900b | |||
| 8cc19b0748 | |||
| fe690922de | |||
| 257a471383 | |||
| bee83a320b | |||
| b45e114ef2 | |||
| b14614ae53 | |||
| 8381fa1d42 | |||
| a3eeba4761 | |||
| 97587064f8 | |||
| ae01da780e | |||
| 60b0af5ab7 | |||
| 0e22acc255 | |||
| 655eea2b00 | |||
| ce05f29dc4 | |||
| 7e12167b52 | |||
| 706a6e2d56 | |||
| a4dc482372 | |||
| f4191fb7fa | |||
| d2063c7e11 | |||
| c01a9006a6 | |||
| f118e25e8c | |||
| d40bbf6b09 | |||
| 0455063a39 | |||
| 532b2c222a | |||
| 67ea7d31e1 | |||
| a1b1294247 | |||
| 1c3d3d703c | |||
| 9c3e3f8e06 | |||
| 48e5cf7e67 | |||
| bd61ee22be | |||
| 4f8a0c4173 | |||
| 6b0fbe4634 | |||
| 2616a2bba3 | |||
| c10e686ec6 | |||
| a8ec3717c4 | |||
| 7dc855bbbe | |||
| 1ef4d2cde1 | |||
| 8c5aa4a0e6 | |||
| 5879eeabfa | |||
| 022ee36bca | |||
| aacd689bae | |||
| 388c90f641 | |||
| c22f9687fb | |||
| 0a88c812e8 | |||
| e28ff38d39 | |||
| ab1d97c985 | |||
| 4a489afb89 | |||
| c957c6ce14 | |||
| e57cc03084 | |||
| 3a0590f950 | |||
| 43e4cf632a | |||
| 92c6229e00 | |||
| 8252924203 | |||
| bdb88cc87b | |||
| f4be5641da | |||
| 4484e2d031 | |||
| b8dc9ea560 | |||
| d4bffba736 | |||
| d2d0d53eef | |||
| 31a49268cb | |||
| 2f51349ff8 | |||
| a885baf960 | |||
| 3f2793088a | |||
| 0f24c8e8bb | |||
| 8a751e097d | |||
| 4a582804b0 | |||
| f278056493 | |||
| f2c665e4fa | |||
| ce32a0081e | |||
| 563a495725 | |||
| 9e18fe64cf | |||
| 708a681ed9 | |||
| a40937409a | |||
| b8d374b2af | |||
| fa31bd4bf7 | |||
| 5b453ca972 | |||
| 6784bdcb54 | |||
| e77e5c3cea | |||
| 222352b4b3 | |||
| 4ac95447eb | |||
| 9cba9d9ae0 | |||
| e7be8991f1 | |||
| 09dd3f529b | |||
| abad833c5e | |||
| 4363e71e80 | |||
| 45bc2ec380 | |||
| 9bf7b9bda5 | |||
| ab19fa9ece | |||
| 53d7d69135 | |||
| b22776dc5a | |||
| dc6d9d4ba2 | |||
| 075ef5e02c | |||
| 5c7c3fb996 | |||
| f4907a5b5c | |||
| a5c4783564 | |||
| d3e83d154b | |||
| aa36e9a785 | |||
| b712d505f2 | |||
| 6d56deb2e4 | |||
| 101e2e8ba1 | |||
| 83bff72cd4 | |||
| b24afac0f4 | |||
| b129b4ceaa |
@@ -11,7 +11,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: "Contributor Check"
|
- name: "Contributor Check"
|
||||||
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
|
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
|
||||||
uses: cla-assistant/github-action@v2.1.3-beta
|
uses: cla-assistant/github-action@v2.3.1
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
PERSONAL_ACCESS_TOKEN : ${{ secrets.PERSONAL_ACCESS_TOKEN }}
|
PERSONAL_ACCESS_TOKEN : ${{ secrets.PERSONAL_ACCESS_TOKEN }}
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ on:
|
|||||||
push:
|
push:
|
||||||
paths:
|
paths:
|
||||||
- "salt/sensoroni/files/analyzers/**"
|
- "salt/sensoroni/files/analyzers/**"
|
||||||
|
- "salt/manager/tools/sbin"
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- "salt/sensoroni/files/analyzers/**"
|
- "salt/sensoroni/files/analyzers/**"
|
||||||
|
- "salt/manager/tools/sbin"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@@ -16,7 +18,7 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
python-version: ["3.10"]
|
python-version: ["3.10"]
|
||||||
python-code-path: ["salt/sensoroni/files/analyzers"]
|
python-code-path: ["salt/sensoroni/files/analyzers", "salt/manager/tools/sbin"]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
@@ -34,4 +36,4 @@ jobs:
|
|||||||
flake8 ${{ matrix.python-code-path }} --show-source --max-complexity=12 --doctests --max-line-length=200 --statistics
|
flake8 ${{ matrix.python-code-path }} --show-source --max-complexity=12 --doctests --max-line-length=200 --statistics
|
||||||
- name: Test with pytest
|
- name: Test with pytest
|
||||||
run: |
|
run: |
|
||||||
pytest ${{ matrix.python-code-path }} --cov=${{ matrix.python-code-path }} --doctest-modules --cov-report=term --cov-fail-under=100 --cov-config=${{ matrix.python-code-path }}/pytest.ini
|
pytest ${{ matrix.python-code-path }} --cov=${{ matrix.python-code-path }} --doctest-modules --cov-report=term --cov-fail-under=100 --cov-config=pytest.ini
|
||||||
|
|||||||
+11
-12
@@ -1,18 +1,17 @@
|
|||||||
### 2.4.10-20230821 ISO image released on 2023/08/21
|
### 2.4.30-20231228 ISO image released on 2024/01/02
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Download and Verify
|
### Download and Verify
|
||||||
|
|
||||||
2.4.10-20230821 ISO image:
|
2.4.30-20231228 ISO image:
|
||||||
https://download.securityonion.net/file/securityonion/securityonion-2.4.10-20230821.iso
|
https://download.securityonion.net/file/securityonion/securityonion-2.4.30-20231228.iso
|
||||||
|
|
||||||
MD5: 353EB36F807DC947F08F79B3DCFA420E
|
MD5: DBD47645CD6FA8358C51D8753046FB54
|
||||||
SHA1: B25E3BEDB81BBEF319DC710267E6D78422F39C56
|
SHA1: 2494091065434ACB028F71444A5D16E8F8A11EDF
|
||||||
SHA256: 3D369E92FEB65D14E1A981E99FA223DA52C92057A037C243AD6332B6B9A6D9BC
|
SHA256: 3345AE1DC58AC7F29D82E60D9A36CDF8DE19B7DFF999D8C4F89C7BD36AEE7F1D
|
||||||
|
|
||||||
Signature for ISO image:
|
Signature for ISO image:
|
||||||
https://github.com/Security-Onion-Solutions/securityonion/raw/2.4/main/sigs/securityonion-2.4.10-20230821.iso.sig
|
https://github.com/Security-Onion-Solutions/securityonion/raw/2.4/main/sigs/securityonion-2.4.30-20231228.iso.sig
|
||||||
|
|
||||||
Signing key:
|
Signing key:
|
||||||
https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/2.4/main/KEYS
|
https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/2.4/main/KEYS
|
||||||
@@ -26,22 +25,22 @@ wget https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/2.
|
|||||||
|
|
||||||
Download the signature file for the ISO:
|
Download the signature file for the ISO:
|
||||||
```
|
```
|
||||||
wget https://github.com/Security-Onion-Solutions/securityonion/raw/2.4/main/sigs/securityonion-2.4.10-20230821.iso.sig
|
wget https://github.com/Security-Onion-Solutions/securityonion/raw/2.4/main/sigs/securityonion-2.4.30-20231228.iso.sig
|
||||||
```
|
```
|
||||||
|
|
||||||
Download the ISO image:
|
Download the ISO image:
|
||||||
```
|
```
|
||||||
wget https://download.securityonion.net/file/securityonion/securityonion-2.4.10-20230821.iso
|
wget https://download.securityonion.net/file/securityonion/securityonion-2.4.30-20231228.iso
|
||||||
```
|
```
|
||||||
|
|
||||||
Verify the downloaded ISO image using the signature file:
|
Verify the downloaded ISO image using the signature file:
|
||||||
```
|
```
|
||||||
gpg --verify securityonion-2.4.10-20230821.iso.sig securityonion-2.4.10-20230821.iso
|
gpg --verify securityonion-2.4.30-20231228.iso.sig securityonion-2.4.30-20231228.iso
|
||||||
```
|
```
|
||||||
|
|
||||||
The output should show "Good signature" and the Primary key fingerprint should match what's shown below:
|
The output should show "Good signature" and the Primary key fingerprint should match what's shown below:
|
||||||
```
|
```
|
||||||
gpg: Signature made Mon 21 Aug 2023 09:47:50 AM EDT using RSA key ID FE507013
|
gpg: Signature made Thu 28 Dec 2023 10:08:31 AM EST using RSA key ID FE507013
|
||||||
gpg: Good signature from "Security Onion Solutions, LLC <info@securityonionsolutions.com>"
|
gpg: Good signature from "Security Onion Solutions, LLC <info@securityonionsolutions.com>"
|
||||||
gpg: WARNING: This key is not certified with a trusted signature!
|
gpg: WARNING: This key is not certified with a trusted signature!
|
||||||
gpg: There is no indication that the signature belongs to the owner.
|
gpg: There is no indication that the signature belongs to the owner.
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@@ -12,7 +12,6 @@ role:
|
|||||||
eval:
|
eval:
|
||||||
fleet:
|
fleet:
|
||||||
heavynode:
|
heavynode:
|
||||||
helixsensor:
|
|
||||||
idh:
|
idh:
|
||||||
import:
|
import:
|
||||||
manager:
|
manager:
|
||||||
|
|||||||
@@ -7,19 +7,23 @@
|
|||||||
tgt_type='compound') | dictsort()
|
tgt_type='compound') | dictsort()
|
||||||
%}
|
%}
|
||||||
|
|
||||||
{% set hostname = cached_grains[minionid]['host'] %}
|
# only add a node to the pillar if it returned an ip from the mine
|
||||||
{% set node_type = minionid.split('_')[1] %}
|
{% if ip | length > 0%}
|
||||||
{% if node_type not in node_types.keys() %}
|
{% set hostname = cached_grains[minionid]['host'] %}
|
||||||
{% do node_types.update({node_type: {hostname: ip[0]}}) %}
|
{% set node_type = minionid.split('_')[1] %}
|
||||||
{% else %}
|
{% if node_type not in node_types.keys() %}
|
||||||
{% if hostname not in node_types[node_type] %}
|
{% do node_types.update({node_type: {hostname: ip[0]}}) %}
|
||||||
{% do node_types[node_type].update({hostname: ip[0]}) %}
|
|
||||||
{% else %}
|
{% else %}
|
||||||
{% do node_types[node_type][hostname].update(ip[0]) %}
|
{% if hostname not in node_types[node_type] %}
|
||||||
|
{% do node_types[node_type].update({hostname: ip[0]}) %}
|
||||||
|
{% else %}
|
||||||
|
{% do node_types[node_type][hostname].update(ip[0]) %}
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
logstash:
|
logstash:
|
||||||
nodes:
|
nodes:
|
||||||
{% for node_type, values in node_types.items() %}
|
{% for node_type, values in node_types.items() %}
|
||||||
|
|||||||
+14
-10
@@ -4,18 +4,22 @@
|
|||||||
{% set hostname = minionid.split('_')[0] %}
|
{% set hostname = minionid.split('_')[0] %}
|
||||||
{% set node_type = minionid.split('_')[1] %}
|
{% set node_type = minionid.split('_')[1] %}
|
||||||
{% set is_alive = False %}
|
{% set is_alive = False %}
|
||||||
{% if minionid in manage_alived.keys() %}
|
|
||||||
{% if ip[0] == manage_alived[minionid] %}
|
# only add a node to the pillar if it returned an ip from the mine
|
||||||
{% set is_alive = True %}
|
{% if ip | length > 0%}
|
||||||
|
{% if minionid in manage_alived.keys() %}
|
||||||
|
{% if ip[0] == manage_alived[minionid] %}
|
||||||
|
{% set is_alive = True %}
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% if node_type not in node_types.keys() %}
|
||||||
{% if node_type not in node_types.keys() %}
|
{% do node_types.update({node_type: {hostname: {'ip':ip[0], 'alive':is_alive }}}) %}
|
||||||
{% do node_types.update({node_type: {hostname: {'ip':ip[0], 'alive':is_alive }}}) %}
|
|
||||||
{% else %}
|
|
||||||
{% if hostname not in node_types[node_type] %}
|
|
||||||
{% do node_types[node_type].update({hostname: {'ip':ip[0], 'alive':is_alive}}) %}
|
|
||||||
{% else %}
|
{% else %}
|
||||||
{% do node_types[node_type][hostname].update({'ip':ip[0], 'alive':is_alive}) %}
|
{% if hostname not in node_types[node_type] %}
|
||||||
|
{% do node_types[node_type].update({hostname: {'ip':ip[0], 'alive':is_alive}}) %}
|
||||||
|
{% else %}
|
||||||
|
{% do node_types[node_type][hostname].update({'ip':ip[0], 'alive':is_alive}) %}
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
thresholding:
|
|
||||||
sids:
|
|
||||||
8675309:
|
|
||||||
- threshold:
|
|
||||||
gen_id: 1
|
|
||||||
type: threshold
|
|
||||||
track: by_src
|
|
||||||
count: 10
|
|
||||||
seconds: 10
|
|
||||||
- threshold:
|
|
||||||
gen_id: 1
|
|
||||||
type: limit
|
|
||||||
track: by_dst
|
|
||||||
count: 100
|
|
||||||
seconds: 30
|
|
||||||
- rate_filter:
|
|
||||||
gen_id: 1
|
|
||||||
track: by_rule
|
|
||||||
count: 50
|
|
||||||
seconds: 30
|
|
||||||
new_action: alert
|
|
||||||
timeout: 30
|
|
||||||
- suppress:
|
|
||||||
gen_id: 1
|
|
||||||
track: by_either
|
|
||||||
ip: 10.10.3.7
|
|
||||||
11223344:
|
|
||||||
- threshold:
|
|
||||||
gen_id: 1
|
|
||||||
type: limit
|
|
||||||
track: by_dst
|
|
||||||
count: 10
|
|
||||||
seconds: 10
|
|
||||||
- rate_filter:
|
|
||||||
gen_id: 1
|
|
||||||
track: by_src
|
|
||||||
count: 50
|
|
||||||
seconds: 20
|
|
||||||
new_action: pass
|
|
||||||
timeout: 60
|
|
||||||
- suppress:
|
|
||||||
gen_id: 1
|
|
||||||
track: by_src
|
|
||||||
ip: 10.10.3.0/24
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
thresholding:
|
|
||||||
sids:
|
|
||||||
<signature id>:
|
|
||||||
- threshold:
|
|
||||||
gen_id: <generator id>
|
|
||||||
type: <threshold | limit | both>
|
|
||||||
track: <by_src | by_dst>
|
|
||||||
count: <count>
|
|
||||||
seconds: <seconds>
|
|
||||||
- rate_filter:
|
|
||||||
gen_id: <generator id>
|
|
||||||
track: <by_src | by_dst | by_rule | by_both>
|
|
||||||
count: <count>
|
|
||||||
seconds: <seconds>
|
|
||||||
new_action: <alert | pass>
|
|
||||||
timeout: <seconds>
|
|
||||||
- suppress:
|
|
||||||
gen_id: <generator id>
|
|
||||||
track: <by_src | by_dst | by_either>
|
|
||||||
ip: <ip | subnet>
|
|
||||||
+8
-15
@@ -4,14 +4,9 @@ base:
|
|||||||
- global.adv_global
|
- global.adv_global
|
||||||
- docker.soc_docker
|
- docker.soc_docker
|
||||||
- docker.adv_docker
|
- docker.adv_docker
|
||||||
- firewall.soc_firewall
|
|
||||||
- firewall.adv_firewall
|
|
||||||
- influxdb.token
|
- influxdb.token
|
||||||
- logrotate.soc_logrotate
|
- logrotate.soc_logrotate
|
||||||
- logrotate.adv_logrotate
|
- logrotate.adv_logrotate
|
||||||
- nginx.soc_nginx
|
|
||||||
- nginx.adv_nginx
|
|
||||||
- node_data.ips
|
|
||||||
- ntp.soc_ntp
|
- ntp.soc_ntp
|
||||||
- ntp.adv_ntp
|
- ntp.adv_ntp
|
||||||
- patch.needs_restarting
|
- patch.needs_restarting
|
||||||
@@ -21,6 +16,14 @@ base:
|
|||||||
- sensoroni.adv_sensoroni
|
- sensoroni.adv_sensoroni
|
||||||
- telegraf.soc_telegraf
|
- telegraf.soc_telegraf
|
||||||
- telegraf.adv_telegraf
|
- telegraf.adv_telegraf
|
||||||
|
- users
|
||||||
|
|
||||||
|
'* and not *_desktop':
|
||||||
|
- firewall.soc_firewall
|
||||||
|
- firewall.adv_firewall
|
||||||
|
- nginx.soc_nginx
|
||||||
|
- nginx.adv_nginx
|
||||||
|
- node_data.ips
|
||||||
|
|
||||||
'*_manager or *_managersearch':
|
'*_manager or *_managersearch':
|
||||||
- match: compound
|
- match: compound
|
||||||
@@ -59,8 +62,6 @@ base:
|
|||||||
- elastalert.adv_elastalert
|
- elastalert.adv_elastalert
|
||||||
- backup.soc_backup
|
- backup.soc_backup
|
||||||
- backup.adv_backup
|
- backup.adv_backup
|
||||||
- curator.soc_curator
|
|
||||||
- curator.adv_curator
|
|
||||||
- soctopus.soc_soctopus
|
- soctopus.soc_soctopus
|
||||||
- soctopus.adv_soctopus
|
- soctopus.adv_soctopus
|
||||||
- minions.{{ grains.id }}
|
- minions.{{ grains.id }}
|
||||||
@@ -111,8 +112,6 @@ base:
|
|||||||
- kibana.adv_kibana
|
- kibana.adv_kibana
|
||||||
- strelka.soc_strelka
|
- strelka.soc_strelka
|
||||||
- strelka.adv_strelka
|
- strelka.adv_strelka
|
||||||
- curator.soc_curator
|
|
||||||
- curator.adv_curator
|
|
||||||
- kratos.soc_kratos
|
- kratos.soc_kratos
|
||||||
- kratos.adv_kratos
|
- kratos.adv_kratos
|
||||||
- redis.soc_redis
|
- redis.soc_redis
|
||||||
@@ -170,8 +169,6 @@ base:
|
|||||||
- kibana.adv_kibana
|
- kibana.adv_kibana
|
||||||
- strelka.soc_strelka
|
- strelka.soc_strelka
|
||||||
- strelka.adv_strelka
|
- strelka.adv_strelka
|
||||||
- curator.soc_curator
|
|
||||||
- curator.adv_curator
|
|
||||||
- backup.soc_backup
|
- backup.soc_backup
|
||||||
- backup.adv_backup
|
- backup.adv_backup
|
||||||
- zeek.soc_zeek
|
- zeek.soc_zeek
|
||||||
@@ -192,8 +189,6 @@ base:
|
|||||||
- logstash.adv_logstash
|
- logstash.adv_logstash
|
||||||
- elasticsearch.soc_elasticsearch
|
- elasticsearch.soc_elasticsearch
|
||||||
- elasticsearch.adv_elasticsearch
|
- elasticsearch.adv_elasticsearch
|
||||||
- curator.soc_curator
|
|
||||||
- curator.adv_curator
|
|
||||||
- redis.soc_redis
|
- redis.soc_redis
|
||||||
- redis.adv_redis
|
- redis.adv_redis
|
||||||
- zeek.soc_zeek
|
- zeek.soc_zeek
|
||||||
@@ -266,8 +261,6 @@ base:
|
|||||||
- soctopus.adv_soctopus
|
- soctopus.adv_soctopus
|
||||||
- kibana.soc_kibana
|
- kibana.soc_kibana
|
||||||
- kibana.adv_kibana
|
- kibana.adv_kibana
|
||||||
- curator.soc_curator
|
|
||||||
- curator.adv_curator
|
|
||||||
- backup.soc_backup
|
- backup.soc_backup
|
||||||
- backup.adv_backup
|
- backup.adv_backup
|
||||||
- kratos.soc_kratos
|
- kratos.soc_kratos
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# users pillar goes in /opt/so/saltstack/local/pillar/users/init.sls
|
||||||
|
# the users directory may need to be created under /opt/so/saltstack/local/pillar
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
users:
|
||||||
|
sclapton:
|
||||||
|
# required fields
|
||||||
|
status: present
|
||||||
|
# node_access determines which node types the user can access.
|
||||||
|
# this can either be by grains.role or by final part of the minion id after the _
|
||||||
|
node_access:
|
||||||
|
- standalone
|
||||||
|
- searchnode
|
||||||
|
# optional fields
|
||||||
|
fullname: Stevie Claptoon
|
||||||
|
uid: 1001
|
||||||
|
gid: 1001
|
||||||
|
homephone: does not have a phone
|
||||||
|
groups:
|
||||||
|
- mygroup1
|
||||||
|
- mygroup2
|
||||||
|
- wheel # give sudo access
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
users:
|
||||||
|
sclapton:
|
||||||
|
# required fields
|
||||||
|
status: <present | absent>
|
||||||
|
# node_access determines which node types the user can access.
|
||||||
|
# this can either be by grains.role or by final part of the minion id after the _
|
||||||
|
node_access:
|
||||||
|
- standalone
|
||||||
|
- searchnode
|
||||||
|
# optional fields
|
||||||
|
fullname: <string>
|
||||||
|
uid: <integer>
|
||||||
|
gid: <integer>
|
||||||
|
roomnumber: <string>
|
||||||
|
workphone: <string>
|
||||||
|
homephone: <string>
|
||||||
|
groups:
|
||||||
|
- <string>
|
||||||
|
- <string>
|
||||||
|
- wheel # give sudo access
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
||||||
|
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
||||||
|
# https://securityonion.net/license; you may not use this file except in compliance with the
|
||||||
|
# Elastic License 2.0.
|
||||||
|
|
||||||
|
if [[ $# -ne 1 ]]; then
|
||||||
|
echo "Usage: $0 <python_script_dir>"
|
||||||
|
echo "Runs tests on all *_test.py files in the given directory."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
HOME_DIR=$(dirname "$0")
|
||||||
|
TARGET_DIR=${1:-.}
|
||||||
|
|
||||||
|
PATH=$PATH:/usr/local/bin
|
||||||
|
|
||||||
|
if ! which pytest &> /dev/null || ! which flake8 &> /dev/null ; then
|
||||||
|
echo "Missing dependencies. Consider running the following command:"
|
||||||
|
echo " python -m pip install flake8 pytest pytest-cov"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
pip install pytest pytest-cov
|
||||||
|
flake8 "$TARGET_DIR" "--config=${HOME_DIR}/pytest.ini"
|
||||||
|
python3 -m pytest "--cov-config=${HOME_DIR}/pytest.ini" "--cov=$TARGET_DIR" --doctest-modules --cov-report=term --cov-fail-under=100 "$TARGET_DIR"
|
||||||
@@ -188,6 +188,9 @@
|
|||||||
'docker_clean'
|
'docker_clean'
|
||||||
],
|
],
|
||||||
'so-desktop': [
|
'so-desktop': [
|
||||||
|
'ssl',
|
||||||
|
'docker_clean',
|
||||||
|
'telegraf'
|
||||||
],
|
],
|
||||||
}, grain='role') %}
|
}, grain='role') %}
|
||||||
|
|
||||||
@@ -216,10 +219,6 @@
|
|||||||
{% do allowed_states.append('kibana.secrets') %}
|
{% do allowed_states.append('kibana.secrets') %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if grains.role in ['so-eval', 'so-standalone', 'so-managersearch', 'so-heavynode', 'so-manager'] %}
|
|
||||||
{% do allowed_states.append('curator') %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if grains.role in ['so-eval', 'so-manager', 'so-standalone', 'so-managersearch'] %}
|
{% if grains.role in ['so-eval', 'so-manager', 'so-standalone', 'so-managersearch'] %}
|
||||||
{% do allowed_states.append('elastalert') %}
|
{% do allowed_states.append('elastalert') %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{% macro remove_comments(bpfmerged, app) %}
|
||||||
|
|
||||||
|
{# remove comments from the bpf #}
|
||||||
|
{% for bpf in bpfmerged[app] %}
|
||||||
|
{% if bpf.strip().startswith('#') %}
|
||||||
|
{% do bpfmerged[app].pop(loop.index0) %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% endmacro %}
|
||||||
@@ -1,4 +1,7 @@
|
|||||||
{% import_yaml 'bpf/defaults.yaml' as BPFDEFAULTS %}
|
{% import_yaml 'bpf/defaults.yaml' as BPFDEFAULTS %}
|
||||||
{% set BPFMERGED = salt['pillar.get']('bpf', BPFDEFAULTS.bpf, merge=True) %}
|
{% set BPFMERGED = salt['pillar.get']('bpf', BPFDEFAULTS.bpf, merge=True) %}
|
||||||
|
{% import 'bpf/macros.jinja' as MACROS %}
|
||||||
|
|
||||||
|
{{ MACROS.remove_comments(BPFMERGED, 'pcap') }}
|
||||||
|
|
||||||
{% set PCAPBPF = BPFMERGED.pcap %}
|
{% set PCAPBPF = BPFMERGED.pcap %}
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
{% import_yaml 'bpf/defaults.yaml' as BPFDEFAULTS %}
|
{% import_yaml 'bpf/defaults.yaml' as BPFDEFAULTS %}
|
||||||
{% set BPFMERGED = salt['pillar.get']('bpf', BPFDEFAULTS.bpf, merge=True) %}
|
{% set BPFMERGED = salt['pillar.get']('bpf', BPFDEFAULTS.bpf, merge=True) %}
|
||||||
|
{% import 'bpf/macros.jinja' as MACROS %}
|
||||||
|
|
||||||
|
{{ MACROS.remove_comments(BPFMERGED, 'suricata') }}
|
||||||
|
|
||||||
{% set SURICATABPF = BPFMERGED.suricata %}
|
{% set SURICATABPF = BPFMERGED.suricata %}
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
{% import_yaml 'bpf/defaults.yaml' as BPFDEFAULTS %}
|
{% import_yaml 'bpf/defaults.yaml' as BPFDEFAULTS %}
|
||||||
{% set BPFMERGED = salt['pillar.get']('bpf', BPFDEFAULTS.bpf, merge=True) %}
|
{% set BPFMERGED = salt['pillar.get']('bpf', BPFDEFAULTS.bpf, merge=True) %}
|
||||||
|
{% import 'bpf/macros.jinja' as MACROS %}
|
||||||
|
|
||||||
|
{{ MACROS.remove_comments(BPFMERGED, 'zeek') }}
|
||||||
|
|
||||||
{% set ZEEKBPF = BPFMERGED.zeek %}
|
{% set ZEEKBPF = BPFMERGED.zeek %}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ x509_signing_policies:
|
|||||||
- ST: Utah
|
- ST: Utah
|
||||||
- L: Salt Lake City
|
- L: Salt Lake City
|
||||||
- basicConstraints: "critical CA:false"
|
- basicConstraints: "critical CA:false"
|
||||||
- keyUsage: "critical keyEncipherment"
|
- keyUsage: "critical keyEncipherment digitalSignature"
|
||||||
- subjectKeyIdentifier: hash
|
- subjectKeyIdentifier: hash
|
||||||
- authorityKeyIdentifier: keyid,issuer:always
|
- authorityKeyIdentifier: keyid,issuer:always
|
||||||
- extendedKeyUsage: serverAuth
|
- extendedKeyUsage: serverAuth
|
||||||
|
|||||||
@@ -50,6 +50,12 @@ pki_public_ca_crt:
|
|||||||
attempts: 5
|
attempts: 5
|
||||||
interval: 30
|
interval: 30
|
||||||
|
|
||||||
|
mine_update_ca_crt:
|
||||||
|
module.run:
|
||||||
|
- mine.update: []
|
||||||
|
- onchanges:
|
||||||
|
- x509: pki_public_ca_crt
|
||||||
|
|
||||||
cakeyperms:
|
cakeyperms:
|
||||||
file.managed:
|
file.managed:
|
||||||
- replace: False
|
- replace: False
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ include:
|
|||||||
- common.packages
|
- common.packages
|
||||||
{% if GLOBALS.role in GLOBALS.manager_roles %}
|
{% if GLOBALS.role in GLOBALS.manager_roles %}
|
||||||
- manager.elasticsearch # needed for elastic_curl_config state
|
- manager.elasticsearch # needed for elastic_curl_config state
|
||||||
|
- manager.kibana
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
net.core.wmem_default:
|
net.core.wmem_default:
|
||||||
@@ -178,6 +179,14 @@ so-status_check_cron:
|
|||||||
- month: '*'
|
- month: '*'
|
||||||
- dayweek: '*'
|
- dayweek: '*'
|
||||||
|
|
||||||
|
# This cronjob/script runs a check if the node needs restarted, but should be used for future status checks as well
|
||||||
|
common_status_check_cron:
|
||||||
|
cron.present:
|
||||||
|
- name: '/usr/sbin/so-common-status-check > /dev/null 2>&1'
|
||||||
|
- identifier: common_status_check
|
||||||
|
- user: root
|
||||||
|
- minute: '*/10'
|
||||||
|
|
||||||
remove_post_setup_cron:
|
remove_post_setup_cron:
|
||||||
cron.absent:
|
cron.absent:
|
||||||
- name: 'PATH=$PATH:/usr/sbin salt-call state.highstate'
|
- name: 'PATH=$PATH:/usr/sbin salt-call state.highstate'
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ commonpkgs:
|
|||||||
- python3-dateutil
|
- python3-dateutil
|
||||||
- python3-docker
|
- python3-docker
|
||||||
- python3-packaging
|
- python3-packaging
|
||||||
- python3-watchdog
|
|
||||||
- python3-lxml
|
- python3-lxml
|
||||||
- git
|
- git
|
||||||
- rsync
|
- rsync
|
||||||
@@ -47,10 +46,16 @@ python-rich:
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if GLOBALS.os_family == 'RedHat' %}
|
{% if GLOBALS.os_family == 'RedHat' %}
|
||||||
|
|
||||||
|
remove_mariadb:
|
||||||
|
pkg.removed:
|
||||||
|
- name: mariadb-devel
|
||||||
|
|
||||||
commonpkgs:
|
commonpkgs:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- skip_suggestions: True
|
- skip_suggestions: True
|
||||||
- pkgs:
|
- pkgs:
|
||||||
|
- python3-dnf-plugin-versionlock
|
||||||
- curl
|
- curl
|
||||||
- device-mapper-persistent-data
|
- device-mapper-persistent-data
|
||||||
- fuse
|
- fuse
|
||||||
@@ -63,26 +68,19 @@ commonpkgs:
|
|||||||
- httpd-tools
|
- httpd-tools
|
||||||
- jq
|
- jq
|
||||||
- lvm2
|
- lvm2
|
||||||
{% if GLOBALS.os == 'CentOS Stream' %}
|
|
||||||
- MariaDB-devel
|
|
||||||
{% else %}
|
|
||||||
- mariadb-devel
|
|
||||||
{% endif %}
|
|
||||||
- net-tools
|
- net-tools
|
||||||
- nmap-ncat
|
- nmap-ncat
|
||||||
- openssl
|
|
||||||
- procps-ng
|
- procps-ng
|
||||||
- python3-dnf-plugin-versionlock
|
|
||||||
- python3-docker
|
- python3-docker
|
||||||
- python3-m2crypto
|
- python3-m2crypto
|
||||||
- python3-packaging
|
- python3-packaging
|
||||||
- python3-pyyaml
|
- python3-pyyaml
|
||||||
- python3-rich
|
- python3-rich
|
||||||
- python3-watchdog
|
|
||||||
- rsync
|
- rsync
|
||||||
- sqlite
|
- sqlite
|
||||||
- tcpdump
|
- tcpdump
|
||||||
- unzip
|
- unzip
|
||||||
- wget
|
- wget
|
||||||
- yum-utils
|
- yum-utils
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -19,4 +19,5 @@ soup_manager_scripts:
|
|||||||
- source: salt://manager/tools/sbin
|
- source: salt://manager/tools/sbin
|
||||||
- include_pat:
|
- include_pat:
|
||||||
- so-firewall
|
- so-firewall
|
||||||
- soup
|
- so-repo-sync
|
||||||
|
- soup
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
# Elastic agent is not managed by salt. Because of this we must store this base information in a
|
# Elastic agent is not managed by salt. Because of this we must store this base information in a
|
||||||
# script that accompanies the soup system. Since so-common is one of those special soup files,
|
# script that accompanies the soup system. Since so-common is one of those special soup files,
|
||||||
# and since this same logic is required during installation, it's included in this file.
|
# and since this same logic is required during installation, it's included in this file.
|
||||||
ELASTIC_AGENT_TARBALL_VERSION="8.8.2"
|
ELASTIC_AGENT_TARBALL_VERSION="8.10.4"
|
||||||
ELASTIC_AGENT_URL="https://repo.securityonion.net/file/so-repo/prod/2.4/elasticagent/elastic-agent_SO-$ELASTIC_AGENT_TARBALL_VERSION.tar.gz"
|
ELASTIC_AGENT_URL="https://repo.securityonion.net/file/so-repo/prod/2.4/elasticagent/elastic-agent_SO-$ELASTIC_AGENT_TARBALL_VERSION.tar.gz"
|
||||||
ELASTIC_AGENT_MD5_URL="https://repo.securityonion.net/file/so-repo/prod/2.4/elasticagent/elastic-agent_SO-$ELASTIC_AGENT_TARBALL_VERSION.md5"
|
ELASTIC_AGENT_MD5_URL="https://repo.securityonion.net/file/so-repo/prod/2.4/elasticagent/elastic-agent_SO-$ELASTIC_AGENT_TARBALL_VERSION.md5"
|
||||||
ELASTIC_AGENT_FILE="/nsm/elastic-fleet/artifacts/elastic-agent_SO-$ELASTIC_AGENT_TARBALL_VERSION.tar.gz"
|
ELASTIC_AGENT_FILE="/nsm/elastic-fleet/artifacts/elastic-agent_SO-$ELASTIC_AGENT_TARBALL_VERSION.tar.gz"
|
||||||
@@ -133,34 +133,47 @@ check_elastic_license() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
check_salt_master_status() {
|
check_salt_master_status() {
|
||||||
local timeout=$1
|
local count=0
|
||||||
echo "Checking if we can talk to the salt master"
|
local attempts="${1:- 10}"
|
||||||
salt-call state.show_top concurrent=true
|
current_time="$(date '+%b %d %H:%M:%S')"
|
||||||
|
echo "Checking if we can access the salt master and that it is ready at: ${current_time}"
|
||||||
return
|
while ! salt-call state.show_top -l error concurrent=true 1> /dev/null; do
|
||||||
|
current_time="$(date '+%b %d %H:%M:%S')"
|
||||||
|
echo "Can't access salt master or it is not ready at: ${current_time}"
|
||||||
|
((count+=1))
|
||||||
|
if [[ $count -eq $attempts ]]; then
|
||||||
|
# 10 attempts takes about 5.5 minutes
|
||||||
|
echo "Gave up trying to access salt-master"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
current_time="$(date '+%b %d %H:%M:%S')"
|
||||||
|
echo "Successfully accessed and salt master ready at: ${current_time}"
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# this is only intended to be used to check the status of the minion from a salt master
|
||||||
check_salt_minion_status() {
|
check_salt_minion_status() {
|
||||||
local timeout=$1
|
local minion="$1"
|
||||||
echo "Checking if the salt minion will respond to jobs" >> "$setup_log" 2>&1
|
local timeout="${2:-5}"
|
||||||
salt "$MINION_ID" test.ping -t $timeout > /dev/null 2>&1
|
local logfile="${3:-'/dev/stdout'}"
|
||||||
|
echo "Checking if the salt minion: $minion will respond to jobs" >> "$logfile" 2>&1
|
||||||
|
salt "$minion" test.ping -t $timeout > /dev/null 2>&1
|
||||||
local status=$?
|
local status=$?
|
||||||
if [ $status -gt 0 ]; then
|
if [ $status -gt 0 ]; then
|
||||||
echo " Minion did not respond" >> "$setup_log" 2>&1
|
echo " Minion did not respond" >> "$logfile" 2>&1
|
||||||
else
|
else
|
||||||
echo " Received job response from salt minion" >> "$setup_log" 2>&1
|
echo " Received job response from salt minion" >> "$logfile" 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return $status
|
return $status
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
copy_new_files() {
|
copy_new_files() {
|
||||||
# Copy new files over to the salt dir
|
# Copy new files over to the salt dir
|
||||||
cd $UPDATE_DIR
|
cd $UPDATE_DIR
|
||||||
rsync -a salt $DEFAULT_SALT_DIR/
|
rsync -a salt $DEFAULT_SALT_DIR/ --delete
|
||||||
rsync -a pillar $DEFAULT_SALT_DIR/
|
rsync -a pillar $DEFAULT_SALT_DIR/ --delete
|
||||||
chown -R socore:socore $DEFAULT_SALT_DIR/
|
chown -R socore:socore $DEFAULT_SALT_DIR/
|
||||||
chmod 755 $DEFAULT_SALT_DIR/pillar/firewall/addfirewall.sh
|
chmod 755 $DEFAULT_SALT_DIR/pillar/firewall/addfirewall.sh
|
||||||
cd /tmp
|
cd /tmp
|
||||||
@@ -242,7 +255,7 @@ gpg_rpm_import() {
|
|||||||
else
|
else
|
||||||
local RPMKEYSLOC="$UPDATE_DIR/salt/repo/client/files/$OS/keys"
|
local RPMKEYSLOC="$UPDATE_DIR/salt/repo/client/files/$OS/keys"
|
||||||
fi
|
fi
|
||||||
RPMKEYS=('RPM-GPG-KEY-oracle' 'RPM-GPG-KEY-EPEL-9' 'SALT-PROJECT-GPG-PUBKEY-2023.pub' 'docker.pub' 'securityonion.pub' 'MariaDB-Server-GPG-KEY')
|
RPMKEYS=('RPM-GPG-KEY-oracle' 'RPM-GPG-KEY-EPEL-9' 'SALT-PROJECT-GPG-PUBKEY-2023.pub' 'docker.pub' 'securityonion.pub')
|
||||||
for RPMKEY in "${RPMKEYS[@]}"; do
|
for RPMKEY in "${RPMKEYS[@]}"; do
|
||||||
rpm --import $RPMKEYSLOC/$RPMKEY
|
rpm --import $RPMKEYSLOC/$RPMKEY
|
||||||
echo "Imported $RPMKEY"
|
echo "Imported $RPMKEY"
|
||||||
@@ -384,6 +397,10 @@ retry() {
|
|||||||
echo "<Start of output>"
|
echo "<Start of output>"
|
||||||
echo "$output"
|
echo "$output"
|
||||||
echo "<End of output>"
|
echo "<End of output>"
|
||||||
|
if [[ $exitcode -eq 0 ]]; then
|
||||||
|
echo "Forcing exit code to 1"
|
||||||
|
exitcode=1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
elif [ -n "$failedOutput" ]; then
|
elif [ -n "$failedOutput" ]; then
|
||||||
if [[ "$output" =~ "$failedOutput" ]]; then
|
if [[ "$output" =~ "$failedOutput" ]]; then
|
||||||
@@ -392,7 +409,7 @@ retry() {
|
|||||||
echo "$output"
|
echo "$output"
|
||||||
echo "<End of output>"
|
echo "<End of output>"
|
||||||
if [[ $exitcode -eq 0 ]]; then
|
if [[ $exitcode -eq 0 ]]; then
|
||||||
echo "The exitcode was 0, but we are setting to 1 since we found $failedOutput in the output."
|
echo "Forcing exit code to 1"
|
||||||
exitcode=1
|
exitcode=1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@@ -430,6 +447,24 @@ run_check_net_err() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wait_for_salt_minion() {
|
||||||
|
local minion="$1"
|
||||||
|
local timeout="${2:-5}"
|
||||||
|
local logfile="${3:-'/dev/stdout'}"
|
||||||
|
retry 60 5 "journalctl -u salt-minion.service | grep 'Minion is ready to receive requests'" >> "$logfile" 2>&1 || fail
|
||||||
|
local attempt=0
|
||||||
|
# each attempts would take about 15 seconds
|
||||||
|
local maxAttempts=20
|
||||||
|
until check_salt_minion_status "$minion" "$timeout" "$logfile"; do
|
||||||
|
attempt=$((attempt+1))
|
||||||
|
if [[ $attempt -eq $maxAttempts ]]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
salt_minion_count() {
|
salt_minion_count() {
|
||||||
local MINIONDIR="/opt/so/saltstack/local/pillar/minions"
|
local MINIONDIR="/opt/so/saltstack/local/pillar/minions"
|
||||||
MINIONCOUNT=$(ls -la $MINIONDIR/*.sls | grep -v adv_ | wc -l)
|
MINIONCOUNT=$(ls -la $MINIONDIR/*.sls | grep -v adv_ | wc -l)
|
||||||
@@ -442,15 +477,51 @@ set_os() {
|
|||||||
OS=rocky
|
OS=rocky
|
||||||
OSVER=9
|
OSVER=9
|
||||||
is_rocky=true
|
is_rocky=true
|
||||||
|
is_rpm=true
|
||||||
elif grep -q "CentOS Stream release 9" /etc/redhat-release; then
|
elif grep -q "CentOS Stream release 9" /etc/redhat-release; then
|
||||||
OS=centos
|
OS=centos
|
||||||
OSVER=9
|
OSVER=9
|
||||||
is_centos=true
|
is_centos=true
|
||||||
|
is_rpm=true
|
||||||
|
elif grep -q "AlmaLinux release 9" /etc/redhat-release; then
|
||||||
|
OS=alma
|
||||||
|
OSVER=9
|
||||||
|
is_alma=true
|
||||||
|
is_rpm=true
|
||||||
|
elif grep -q "Red Hat Enterprise Linux release 9" /etc/redhat-release; then
|
||||||
|
if [ -f /etc/oracle-release ]; then
|
||||||
|
OS=oracle
|
||||||
|
OSVER=9
|
||||||
|
is_oracle=true
|
||||||
|
is_rpm=true
|
||||||
|
else
|
||||||
|
OS=rhel
|
||||||
|
OSVER=9
|
||||||
|
is_rhel=true
|
||||||
|
is_rpm=true
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
cron_service_name="crond"
|
cron_service_name="crond"
|
||||||
else
|
elif [ -f /etc/os-release ]; then
|
||||||
OS=ubuntu
|
if grep -q "UBUNTU_CODENAME=focal" /etc/os-release; then
|
||||||
is_ubuntu=true
|
OSVER=focal
|
||||||
|
UBVER=20.04
|
||||||
|
OS=ubuntu
|
||||||
|
is_ubuntu=true
|
||||||
|
is_deb=true
|
||||||
|
elif grep -q "UBUNTU_CODENAME=jammy" /etc/os-release; then
|
||||||
|
OSVER=jammy
|
||||||
|
UBVER=22.04
|
||||||
|
OS=ubuntu
|
||||||
|
is_ubuntu=true
|
||||||
|
is_deb=true
|
||||||
|
elif grep -q "VERSION_CODENAME=bookworm" /etc/os-release; then
|
||||||
|
OSVER=bookworm
|
||||||
|
DEBVER=12
|
||||||
|
is_debian=true
|
||||||
|
OS=debian
|
||||||
|
is_deb=true
|
||||||
|
fi
|
||||||
cron_service_name="cron"
|
cron_service_name="cron"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -484,6 +555,10 @@ set_version() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
status () {
|
||||||
|
printf "\n=========================================================================\n$(date) | $1\n=========================================================================\n"
|
||||||
|
}
|
||||||
|
|
||||||
systemctl_func() {
|
systemctl_func() {
|
||||||
local action=$1
|
local action=$1
|
||||||
local echo_action=$1
|
local echo_action=$1
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
||||||
|
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
||||||
|
# https://securityonion.net/license; you may not use this file except in compliance with the
|
||||||
|
# Elastic License 2.0.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
import os
|
||||||
|
|
||||||
|
sys.path.append('/opt/saltstack/salt/lib/python3.10/site-packages/')
|
||||||
|
import salt.config
|
||||||
|
import salt.loader
|
||||||
|
|
||||||
|
__opts__ = salt.config.minion_config('/etc/salt/minion')
|
||||||
|
__grains__ = salt.loader.grains(__opts__)
|
||||||
|
|
||||||
|
def check_needs_restarted():
|
||||||
|
osfam = __grains__['os_family']
|
||||||
|
val = '0'
|
||||||
|
outfile = "/opt/so/log/sostatus/needs_restarted"
|
||||||
|
|
||||||
|
if osfam == 'Debian':
|
||||||
|
if os.path.exists('/var/run/reboot-required'):
|
||||||
|
val = '1'
|
||||||
|
elif osfam == 'RedHat':
|
||||||
|
cmd = 'needs-restarting -r > /dev/null 2>&1'
|
||||||
|
try:
|
||||||
|
needs_restarting = subprocess.check_call(cmd, shell=True)
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
|
val = '1'
|
||||||
|
else:
|
||||||
|
fail("Unsupported OS")
|
||||||
|
|
||||||
|
with open(outfile, 'w') as f:
|
||||||
|
f.write(val)
|
||||||
|
|
||||||
|
def fail(msg):
|
||||||
|
print(msg, file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
proc = subprocess.run(['id', '-u'], stdout=subprocess.PIPE, encoding="utf-8")
|
||||||
|
if proc.stdout.strip() != "0":
|
||||||
|
fail("This program must be run as root")
|
||||||
|
|
||||||
|
check_needs_restarted()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
@@ -42,7 +42,6 @@ container_list() {
|
|||||||
)
|
)
|
||||||
elif [ $MANAGERCHECK != 'so-helix' ]; then
|
elif [ $MANAGERCHECK != 'so-helix' ]; then
|
||||||
TRUSTED_CONTAINERS=(
|
TRUSTED_CONTAINERS=(
|
||||||
"so-curator"
|
|
||||||
"so-elastalert"
|
"so-elastalert"
|
||||||
"so-elastic-agent"
|
"so-elastic-agent"
|
||||||
"so-elastic-agent-builder"
|
"so-elastic-agent-builder"
|
||||||
@@ -137,7 +136,7 @@ update_docker_containers() {
|
|||||||
for i in "${TRUSTED_CONTAINERS[@]}"
|
for i in "${TRUSTED_CONTAINERS[@]}"
|
||||||
do
|
do
|
||||||
if [ -z "$PROGRESS_CALLBACK" ]; then
|
if [ -z "$PROGRESS_CALLBACK" ]; then
|
||||||
echo "Downloading $i" >> "$LOG_FILE" 2>&1
|
echo "Downloading $i" >> "$LOG_FILE" 2>&1
|
||||||
else
|
else
|
||||||
$PROGRESS_CALLBACK $i
|
$PROGRESS_CALLBACK $i
|
||||||
fi
|
fi
|
||||||
|
|||||||
Executable
+252
@@ -0,0 +1,252 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
||||||
|
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
||||||
|
# https://securityonion.net/license; you may not use this file except in compliance with the
|
||||||
|
# Elastic License 2.0.
|
||||||
|
|
||||||
|
. /usr/sbin/so-common
|
||||||
|
|
||||||
|
RECENT_LOG_LINES=200
|
||||||
|
EXCLUDE_STARTUP_ERRORS=N
|
||||||
|
EXCLUDE_FALSE_POSITIVE_ERRORS=N
|
||||||
|
EXCLUDE_KNOWN_ERRORS=N
|
||||||
|
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
--exclude-connection-errors)
|
||||||
|
EXCLUDE_STARTUP_ERRORS=Y
|
||||||
|
;;
|
||||||
|
--exclude-false-positives)
|
||||||
|
EXCLUDE_FALSE_POSITIVE_ERRORS=Y
|
||||||
|
;;
|
||||||
|
--exclude-known-errors)
|
||||||
|
EXCLUDE_KNOWN_ERRORS=Y
|
||||||
|
;;
|
||||||
|
--unknown)
|
||||||
|
EXCLUDE_STARTUP_ERRORS=Y
|
||||||
|
EXCLUDE_FALSE_POSITIVE_ERRORS=Y
|
||||||
|
EXCLUDE_KNOWN_ERRORS=Y
|
||||||
|
;;
|
||||||
|
--recent-log-lines)
|
||||||
|
shift
|
||||||
|
RECENT_LOG_LINES=$1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 [options]"
|
||||||
|
echo ""
|
||||||
|
echo "where options are:"
|
||||||
|
echo " --recent-log-lines N looks at the most recent N log lines per file or container; defaults to 200"
|
||||||
|
echo " --exclude-connection-errors exclude errors caused by a recent server or container restart"
|
||||||
|
echo " --exclude-false-positives exclude logs that are known false positives"
|
||||||
|
echo " --exclude-known-errors exclude errors that are known and non-critical issues"
|
||||||
|
echo " --unknown exclude everything mentioned above; only show unknown errors"
|
||||||
|
echo ""
|
||||||
|
echo "A non-zero return value indicates errors were found"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Security Onion Log Check - $(date)"
|
||||||
|
echo "-------------------------------------------"
|
||||||
|
echo ""
|
||||||
|
echo "- RECENT_LOG_LINES: $RECENT_LOG_LINES"
|
||||||
|
echo "- EXCLUDE_STARTUP_ERRORS: $EXCLUDE_STARTUP_ERRORS"
|
||||||
|
echo "- EXCLUDE_FALSE_POSITIVE_ERRORS: $EXCLUDE_FALSE_POSITIVE_ERRORS"
|
||||||
|
echo "- EXCLUDE_KNOWN_ERRORS: $EXCLUDE_KNOWN_ERRORS"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
function status() {
|
||||||
|
header "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
function exclude_container() {
|
||||||
|
name=$1
|
||||||
|
|
||||||
|
exclude_id=$(docker ps | grep "$name" | awk '{print $1}')
|
||||||
|
if [[ -n "$exclude_id" ]]; then
|
||||||
|
CONTAINER_IDS=$(echo $CONTAINER_IDS | sed -e "s/$exclude_id//g")
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function exclude_log() {
|
||||||
|
name=$1
|
||||||
|
|
||||||
|
cat /tmp/log_check_files | grep -v $name > /tmp/log_check_files.new
|
||||||
|
mv /tmp/log_check_files.new /tmp/log_check_files
|
||||||
|
}
|
||||||
|
|
||||||
|
function check_for_errors() {
|
||||||
|
if cat /tmp/log_check | grep -i error | grep -vEi "$EXCLUDED_ERRORS"; then
|
||||||
|
RESULT=1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
EXCLUDED_ERRORS="__LOG_CHECK_PLACEHOLDER_EXCLUSION__"
|
||||||
|
|
||||||
|
if [[ $EXCLUDE_STARTUP_ERRORS == 'Y' ]]; then
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|database is locked" # server not yet ready
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|econnreset" # server not yet ready
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|unreachable" # server not yet ready (logstash waiting on elastic)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|shutdown process" # server not yet ready (logstash waiting on elastic)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|contain valid certificates" # server not yet ready (logstash waiting on elastic)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|failedaction" # server not yet ready (logstash waiting on elastic)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|no route to host" # server not yet ready
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|not running" # server not yet ready
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|unavailable" # server not yet ready
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|request.py" # server not yet ready (python stack output)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|httperror" # server not yet ready
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|servfail" # server not yet ready
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|connect" # server not yet ready
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|missing shards" # server not yet ready
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|failed to send metrics" # server not yet ready
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|broken pipe" # server not yet ready
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|status: 502" # server not yet ready (nginx waiting on upstream)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|timeout exceeded" # server not yet ready (telegraf waiting on elasticsearch)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|influxsize kbytes" # server not yet ready (telegraf waiting on influx)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|expected field at" # server not yet ready (telegraf waiting on health data)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|connection timed out" # server not yet ready (telegraf plugin unable to connect)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|command timed out" # server not yet ready (telegraf plugin waiting for script to finish)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|cached the public key" # server not yet ready (salt minion waiting on key acceptance)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|no ingest nodes" # server not yet ready (logstash waiting on elastic)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|failed to poll" # server not yet ready (sensoroni waiting on soc)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|minions returned with non" # server not yet ready (salt waiting on minions)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|so_long_term" # server not yet ready (influxdb not yet setup)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|search_phase_execution_exception" # server not yet ready (elastalert running searches before ES is ready)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|timeout retrieving docker" # Telegraf unable to reach Docker engine, rare
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|timeout retrieving container" # Telegraf unable to reach Docker engine, rare
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|error while communicating" # Elasticsearch MS -> HN "sensor" temporarily unavailable
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|tls handshake error" # Docker registry container when new node comes onlines
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|Unable to get license information" # Logstash trying to contact ES before it's ready
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $EXCLUDE_FALSE_POSITIVE_ERRORS == 'Y' ]]; then
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|elastalert_status_error" # false positive
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|elastalert_error" # false positive
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|error: '0'" # false positive
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|errors_index" # false positive
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|noerror" # false positive
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|outofmemoryerror" # false positive (elastic command line)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|adding component template" # false positive (elastic security)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|adding index template" # false positive (elastic security)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|fs_errors" # false positive (suricata stats)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|error-template" # false positive (elastic templates)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|deprecated" # false positive (playbook)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|windows" # false positive (playbook)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|could cause errors" # false positive (playbook)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|_error.yml" # false positive (playbook)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|id.orig_h" # false positive (zeek test data)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|emerging-all.rules" # false positive (error in rulename)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|invalid query input" # false positive (Invalid user input in hunt query)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|example" # false positive (example test data)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|status 200" # false positive (request successful, contained error string in content)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|app_layer.error" # false positive (suricata 7) in stats.log e.g. app_layer.error.imap.parser | Total | 0
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|is not an ip string literal" # false positive (Open Canary logging out blank IP addresses)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $EXCLUDE_KNOWN_ERRORS == 'Y' ]]; then
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|eof"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|raise" # redis/python generic stack line, rely on other lines for actual error
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|fail\\(error\\)" # redis/python generic stack line, rely on other lines for actual error
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|urlerror" # idstools connection timeout
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|timeouterror" # idstools connection timeout
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|forbidden" # playbook
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|_ml" # Elastic ML errors
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|context canceled" # elastic agent during shutdown
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|exited with code 128" # soctopus errors during forced restart by highstate
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|geoip databases update" # airgap can't update GeoIP DB
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|filenotfounderror" # bug in 2.4.10 filecheck salt state caused duplicate cronjobs
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|salt-minion-check" # bug in early 2.4 place Jinja script in non-jinja salt dir causing cron output errors
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|generating elastalert config" # playbook expected error
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|activerecord" # playbook expected error
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|monitoring.metrics" # known issue with elastic agent casting the field incorrectly if an integer value shows up before a float
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|repodownload.conf" # known issue with reposync on pre-2.4.20
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|missing versions record" # stenographer corrupt index
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|soc.field." # known ingest type collisions issue with earlier versions of SO
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|error parsing signature" # Malformed Suricata rule, from upstream provider
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|sticky buffer has no matches" # Non-critical Suricata error
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|Unable to determine destination index stats" # Elastic transform temporary error
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|cannot join on an empty table" # InfluxDB flux query, import nodes
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|exhausting result iterator" # InfluxDB flux query mismatched table results (temporary data issue)
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|failed to finish run" # InfluxDB rare error, self-recoverable
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|iteration"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|communication packets"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|use of closed"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|bookkeeper"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|noindices"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|failed to start transient scope"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|so-user.lock exists"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|systemd-run"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|retcode: 1"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|telemetry-task"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|redisqueue"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|fleet_detail_query"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|num errors=0"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|provisioning/alerting"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|provisioning/notifiers"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|provisoning/plugins"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|active-responses.log"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|scanentropy"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|integration policy"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|blob unknown"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|token required"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|zeekcaptureloss"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|unable to create detection"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|error installing new prebuilt rules"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|parent.error"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|req.LocalMeta.host.ip" # known issue in GH
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|sendmail" # zeek
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|stats.log"
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|context deadline exceeded"
|
||||||
|
fi
|
||||||
|
|
||||||
|
RESULT=0
|
||||||
|
|
||||||
|
# Check Security Onion container stdout/stderr logs
|
||||||
|
CONTAINER_IDS=$(docker ps -q)
|
||||||
|
exclude_container so-kibana # kibana error logs are too verbose with large varieties of errors most of which are temporary
|
||||||
|
exclude_container so-idstools # ignore due to known issues and noisy logging
|
||||||
|
exclude_container so-playbook # ignore due to several playbook known issues
|
||||||
|
|
||||||
|
for container_id in $CONTAINER_IDS; do
|
||||||
|
container_name=$(docker ps --format json | jq ". | select(.ID==\"$container_id\")|.Names")
|
||||||
|
status "Checking container $container_name"
|
||||||
|
docker logs -n $RECENT_LOG_LINES $container_id > /tmp/log_check 2>&1
|
||||||
|
check_for_errors
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check Security Onion related log files
|
||||||
|
find /opt/so/log/ /nsm -name \*.log > /tmp/log_check_files
|
||||||
|
if [[ -f /var/log/cron ]]; then
|
||||||
|
echo "/var/log/cron" >> /tmp/log_check_files
|
||||||
|
fi
|
||||||
|
exclude_log "kibana.log" # kibana error logs are too verbose with large varieties of errors most of which are temporary
|
||||||
|
exclude_log "spool" # disregard zeek analyze logs as this is data specific
|
||||||
|
exclude_log "import" # disregard imported test data the contains error strings
|
||||||
|
exclude_log "update.log" # ignore playbook updates due to several known issues
|
||||||
|
exclude_log "playbook.log" # ignore due to several playbook known issues
|
||||||
|
exclude_log "cron-cluster-delete.log" # ignore since Curator has been removed
|
||||||
|
exclude_log "cron-close.log" # ignore since Curator has been removed
|
||||||
|
exclude_log "curator.log" # ignore since Curator has been removed
|
||||||
|
|
||||||
|
for log_file in $(cat /tmp/log_check_files); do
|
||||||
|
status "Checking log file $log_file"
|
||||||
|
tail -n $RECENT_LOG_LINES $log_file > /tmp/log_check
|
||||||
|
check_for_errors
|
||||||
|
done
|
||||||
|
|
||||||
|
# Cleanup temp files
|
||||||
|
rm -f /tmp/log_check_files
|
||||||
|
rm -f /tmp/log_check
|
||||||
|
|
||||||
|
if [[ $RESULT -eq 0 ]]; then
|
||||||
|
echo -e "\nResult: No errors found"
|
||||||
|
else
|
||||||
|
echo -e "\nResult: One or more errors found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit $RESULT
|
||||||
@@ -41,8 +41,13 @@ done
|
|||||||
if [ $SKIP -ne 1 ]; then
|
if [ $SKIP -ne 1 ]; then
|
||||||
# Inform user we are about to delete all data
|
# Inform user we are about to delete all data
|
||||||
echo
|
echo
|
||||||
echo "This script will delete all NIDS data (PCAP, Suricata, Zeek)"
|
echo "This script will delete all NSM data from /nsm."
|
||||||
echo "If you would like to proceed, please type "AGREE" and hit ENTER."
|
echo
|
||||||
|
echo "This includes Suricata data, Zeek data, and full packet capture (PCAP)."
|
||||||
|
echo
|
||||||
|
echo "This will NOT delete any Suricata or Zeek logs that have already been ingested into Elasticsearch."
|
||||||
|
echo
|
||||||
|
echo "If you would like to proceed, then type AGREE and press ENTER."
|
||||||
echo
|
echo
|
||||||
# Read user input
|
# Read user input
|
||||||
read INPUT
|
read INPUT
|
||||||
@@ -54,8 +59,8 @@ delete_pcap() {
|
|||||||
[ -d $PCAP_DATA ] && so-pcap-stop && rm -rf $PCAP_DATA/* && so-pcap-start
|
[ -d $PCAP_DATA ] && so-pcap-stop && rm -rf $PCAP_DATA/* && so-pcap-start
|
||||||
}
|
}
|
||||||
delete_suricata() {
|
delete_suricata() {
|
||||||
SURI_LOG="/opt/so/log/suricata/eve.json"
|
SURI_LOG="/nsm/suricata/"
|
||||||
[ -f $SURI_LOG ] && so-suricata-stop && rm -f $SURI_LOG && so-suricata-start
|
[ -d $SURI_LOG ] && so-suricata-stop && rm -rf $SURI_LOG/* && so-suricata-start
|
||||||
}
|
}
|
||||||
delete_zeek() {
|
delete_zeek() {
|
||||||
ZEEK_LOG="/nsm/zeek/logs/"
|
ZEEK_LOG="/nsm/zeek/logs/"
|
||||||
|
|||||||
@@ -5,4 +5,14 @@
|
|||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
# https://securityonion.net/license; you may not use this file except in compliance with the
|
||||||
# Elastic License 2.0.
|
# Elastic License 2.0.
|
||||||
|
|
||||||
|
. /usr/sbin/so-common
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Playback live sample data onto monitor interface
|
||||||
so-tcpreplay /opt/samples/* 2> /dev/null
|
so-tcpreplay /opt/samples/* 2> /dev/null
|
||||||
|
|
||||||
|
# Ingest sample pfsense log entry
|
||||||
|
if is_sensor_node; then
|
||||||
|
echo "<134>$(date '+%b %d %H:%M:%S') filterlog[31624]: 84,,,1567509287,igb0.244,match,pass,in,4,0x0,,64,0,0,DF,6,tcp,64,192.168.1.1,10.10.10.10,56320,443,0,S,3333585167,,65535,,mss;nop;wscale;nop;nop;TS;sackOK;eol" | nc -uv -w1 127.0.0.1 514 > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
local_salt_dir=/opt/so/saltstack/local
|
|
||||||
|
|
||||||
zeek_logs_enabled() {
|
|
||||||
echo "zeeklogs:" > $local_salt_dir/pillar/zeeklogs.sls
|
|
||||||
echo " enabled:" >> $local_salt_dir/pillar/zeeklogs.sls
|
|
||||||
for BLOG in "${BLOGS[@]}"; do
|
|
||||||
echo " - $BLOG" | tr -d '"' >> $local_salt_dir/pillar/zeeklogs.sls
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
whiptail_manager_adv_service_zeeklogs() {
|
|
||||||
BLOGS=$(whiptail --title "so-zeek-logs" --checklist "Please Select Logs to Send:" 24 78 12 \
|
|
||||||
"conn" "Connection Logging" ON \
|
|
||||||
"dce_rpc" "RPC Logs" ON \
|
|
||||||
"dhcp" "DHCP Logs" ON \
|
|
||||||
"dnp3" "DNP3 Logs" ON \
|
|
||||||
"dns" "DNS Logs" ON \
|
|
||||||
"dpd" "DPD Logs" ON \
|
|
||||||
"files" "Files Logs" ON \
|
|
||||||
"ftp" "FTP Logs" ON \
|
|
||||||
"http" "HTTP Logs" ON \
|
|
||||||
"intel" "Intel Hits Logs" ON \
|
|
||||||
"irc" "IRC Chat Logs" ON \
|
|
||||||
"kerberos" "Kerberos Logs" ON \
|
|
||||||
"modbus" "MODBUS Logs" ON \
|
|
||||||
"notice" "Zeek Notice Logs" ON \
|
|
||||||
"ntlm" "NTLM Logs" ON \
|
|
||||||
"pe" "PE Logs" ON \
|
|
||||||
"radius" "Radius Logs" ON \
|
|
||||||
"rfb" "RFB Logs" ON \
|
|
||||||
"rdp" "RDP Logs" ON \
|
|
||||||
"sip" "SIP Logs" ON \
|
|
||||||
"smb_files" "SMB Files Logs" ON \
|
|
||||||
"smb_mapping" "SMB Mapping Logs" ON \
|
|
||||||
"smtp" "SMTP Logs" ON \
|
|
||||||
"snmp" "SNMP Logs" ON \
|
|
||||||
"ssh" "SSH Logs" ON \
|
|
||||||
"ssl" "SSL Logs" ON \
|
|
||||||
"syslog" "Syslog Logs" ON \
|
|
||||||
"tunnel" "Tunnel Logs" ON \
|
|
||||||
"weird" "Zeek Weird Logs" ON \
|
|
||||||
"mysql" "MySQL Logs" ON \
|
|
||||||
"socks" "SOCKS Logs" ON \
|
|
||||||
"x509" "x.509 Logs" ON 3>&1 1>&2 2>&3 )
|
|
||||||
|
|
||||||
local exitstatus=$?
|
|
||||||
|
|
||||||
IFS=' ' read -ra BLOGS <<< "$BLOGS"
|
|
||||||
|
|
||||||
return $exitstatus
|
|
||||||
}
|
|
||||||
|
|
||||||
whiptail_manager_adv_service_zeeklogs
|
|
||||||
return_code=$?
|
|
||||||
case $return_code in
|
|
||||||
1)
|
|
||||||
whiptail --title "so-zeek-logs" --msgbox "Cancelling. No changes have been made." 8 75
|
|
||||||
;;
|
|
||||||
255)
|
|
||||||
whiptail --title "so-zeek-logs" --msgbox "Whiptail error occured, exiting." 8 75
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
zeek_logs_enabled
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
@@ -80,8 +80,8 @@ function evtx2es() {
|
|||||||
-e "SHIFTTS=$SHIFTDATE" \
|
-e "SHIFTTS=$SHIFTDATE" \
|
||||||
-v "$EVTX:/tmp/data.evtx" \
|
-v "$EVTX:/tmp/data.evtx" \
|
||||||
-v "/nsm/import/$HASH/evtx/:/tmp/evtx/" \
|
-v "/nsm/import/$HASH/evtx/:/tmp/evtx/" \
|
||||||
-v "/nsm/import/evtx-end_newest:/tmp/newest" \
|
-v "/nsm/import/$HASH/evtx-end_newest:/tmp/newest" \
|
||||||
-v "/nsm/import/evtx-start_oldest:/tmp/oldest" \
|
-v "/nsm/import/$HASH/evtx-start_oldest:/tmp/oldest" \
|
||||||
--entrypoint "/evtx_calc_timestamps.sh" \
|
--entrypoint "/evtx_calc_timestamps.sh" \
|
||||||
{{ MANAGER }}:5000/{{ IMAGEREPO }}/so-pcaptools:{{ VERSION }} >> $LOG_FILE 2>&1
|
{{ MANAGER }}:5000/{{ IMAGEREPO }}/so-pcaptools:{{ VERSION }} >> $LOG_FILE 2>&1
|
||||||
}
|
}
|
||||||
@@ -111,12 +111,6 @@ INVALID_EVTXS_COUNT=0
|
|||||||
VALID_EVTXS_COUNT=0
|
VALID_EVTXS_COUNT=0
|
||||||
SKIPPED_EVTXS_COUNT=0
|
SKIPPED_EVTXS_COUNT=0
|
||||||
|
|
||||||
touch /nsm/import/evtx-start_oldest
|
|
||||||
touch /nsm/import/evtx-end_newest
|
|
||||||
|
|
||||||
echo $START_OLDEST > /nsm/import/evtx-start_oldest
|
|
||||||
echo $END_NEWEST > /nsm/import/evtx-end_newest
|
|
||||||
|
|
||||||
# paths must be quoted in case they include spaces
|
# paths must be quoted in case they include spaces
|
||||||
for EVTX in $INPUT_FILES; do
|
for EVTX in $INPUT_FILES; do
|
||||||
EVTX=$(/usr/bin/realpath "$EVTX")
|
EVTX=$(/usr/bin/realpath "$EVTX")
|
||||||
@@ -141,8 +135,15 @@ for EVTX in $INPUT_FILES; do
|
|||||||
status "- this EVTX has already been imported; skipping"
|
status "- this EVTX has already been imported; skipping"
|
||||||
SKIPPED_EVTXS_COUNT=$((SKIPPED_EVTXS_COUNT + 1))
|
SKIPPED_EVTXS_COUNT=$((SKIPPED_EVTXS_COUNT + 1))
|
||||||
else
|
else
|
||||||
|
# create EVTX directory
|
||||||
EVTX_DIR=$HASH_DIR/evtx
|
EVTX_DIR=$HASH_DIR/evtx
|
||||||
mkdir -p $EVTX_DIR
|
mkdir -p $EVTX_DIR
|
||||||
|
# create import timestamp files
|
||||||
|
for i in evtx-start_oldest evtx-end_newest; do
|
||||||
|
if ! [ -f "$i" ]; then
|
||||||
|
touch /nsm/import/$HASH/$i
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# import evtx and write them to import ingest pipeline
|
# import evtx and write them to import ingest pipeline
|
||||||
status "- importing logs to Elasticsearch..."
|
status "- importing logs to Elasticsearch..."
|
||||||
@@ -154,28 +155,37 @@ for EVTX in $INPUT_FILES; do
|
|||||||
VALID_EVTXS_COUNT=$((VALID_EVTXS_COUNT + 1))
|
VALID_EVTXS_COUNT=$((VALID_EVTXS_COUNT + 1))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# compare $START to $START_OLDEST
|
|
||||||
START=$(cat /nsm/import/evtx-start_oldest)
|
|
||||||
START_COMPARE=$(date -d $START +%s)
|
|
||||||
START_OLDEST_COMPARE=$(date -d $START_OLDEST +%s)
|
|
||||||
if [ $START_COMPARE -lt $START_OLDEST_COMPARE ]; then
|
|
||||||
START_OLDEST=$START
|
|
||||||
fi
|
|
||||||
|
|
||||||
# compare $ENDNEXT to $END_NEWEST
|
|
||||||
END=$(cat /nsm/import/evtx-end_newest)
|
|
||||||
ENDNEXT=`date +%Y-%m-%d --date="$END 1 day"`
|
|
||||||
ENDNEXT_COMPARE=$(date -d $ENDNEXT +%s)
|
|
||||||
END_NEWEST_COMPARE=$(date -d $END_NEWEST +%s)
|
|
||||||
if [ $ENDNEXT_COMPARE -gt $END_NEWEST_COMPARE ]; then
|
|
||||||
END_NEWEST=$ENDNEXT
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -f "${EVTX}" "${EVTX_DIR}"/data.evtx
|
cp -f "${EVTX}" "${EVTX_DIR}"/data.evtx
|
||||||
chmod 644 "${EVTX_DIR}"/data.evtx
|
chmod 644 "${EVTX_DIR}"/data.evtx
|
||||||
|
|
||||||
fi # end of valid evtx
|
fi # end of valid evtx
|
||||||
|
|
||||||
|
# determine start and end and make sure they aren't reversed
|
||||||
|
START=$(cat /nsm/import/$HASH/evtx-start_oldest)
|
||||||
|
END=$(cat /nsm/import/$HASH/evtx-end_newest)
|
||||||
|
START_EPOCH=`date -d "$START" +"%s"`
|
||||||
|
END_EPOCH=`date -d "$END" +"%s"`
|
||||||
|
if [ "$START_EPOCH" -gt "$END_EPOCH" ]; then
|
||||||
|
TEMP=$START
|
||||||
|
START=$END
|
||||||
|
END=$TEMP
|
||||||
|
fi
|
||||||
|
|
||||||
|
# compare $START to $START_OLDEST
|
||||||
|
START_COMPARE=$(date -d $START +%s)
|
||||||
|
START_OLDEST_COMPARE=$(date -d $START_OLDEST +%s)
|
||||||
|
if [ $START_COMPARE -lt $START_OLDEST_COMPARE ]; then
|
||||||
|
START_OLDEST=$START
|
||||||
|
fi
|
||||||
|
|
||||||
|
# compare $ENDNEXT to $END_NEWEST
|
||||||
|
ENDNEXT=`date +%Y-%m-%d --date="$END 1 day"`
|
||||||
|
ENDNEXT_COMPARE=$(date -d $ENDNEXT +%s)
|
||||||
|
END_NEWEST_COMPARE=$(date -d $END_NEWEST +%s)
|
||||||
|
if [ $ENDNEXT_COMPARE -gt $END_NEWEST_COMPARE ]; then
|
||||||
|
END_NEWEST=$ENDNEXT
|
||||||
|
fi
|
||||||
|
|
||||||
status
|
status
|
||||||
|
|
||||||
done # end of for-loop processing evtx files
|
done # end of for-loop processing evtx files
|
||||||
|
|||||||
@@ -49,11 +49,18 @@ check_nsm_raid() {
|
|||||||
|
|
||||||
check_boss_raid() {
|
check_boss_raid() {
|
||||||
MVCLI=$(/usr/local/bin/mvcli info -o vd |grep status |grep functional)
|
MVCLI=$(/usr/local/bin/mvcli info -o vd |grep status |grep functional)
|
||||||
|
MVTEST=$(/usr/local/bin/mvcli info -o vd | grep "No adapter")
|
||||||
|
|
||||||
if [[ -n $MVCLI ]]; then
|
# Check to see if this is a SM based system
|
||||||
BOSSRAID=0
|
if [[ -z $MVTEST ]]; then
|
||||||
|
if [[ -n $MVCLI ]]; then
|
||||||
|
BOSSRAID=0
|
||||||
|
else
|
||||||
|
BOSSRAID=1
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
BOSSRAID=1
|
# This doesn't have boss raid so lets make it 0
|
||||||
|
BOSSRAID=0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,4 +97,4 @@ else
|
|||||||
RAIDSTATUS=1
|
RAIDSTATUS=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "nsmraid=$RAIDSTATUS" > /opt/so/log/raid/status.log
|
echo "nsmraid=$RAIDSTATUS" > /opt/so/log/raid/status.log
|
||||||
|
|||||||
@@ -1,81 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
|
||||||
{% from "curator/map.jinja" import CURATORMERGED %}
|
|
||||||
|
|
||||||
# Create the group
|
|
||||||
curatorgroup:
|
|
||||||
group.present:
|
|
||||||
- name: curator
|
|
||||||
- gid: 934
|
|
||||||
|
|
||||||
# Add user
|
|
||||||
curator:
|
|
||||||
user.present:
|
|
||||||
- uid: 934
|
|
||||||
- gid: 934
|
|
||||||
- home: /opt/so/conf/curator
|
|
||||||
- createhome: False
|
|
||||||
|
|
||||||
# Create the log directory
|
|
||||||
curlogdir:
|
|
||||||
file.directory:
|
|
||||||
- name: /opt/so/log/curator
|
|
||||||
- user: 934
|
|
||||||
- group: 939
|
|
||||||
|
|
||||||
curactiondir:
|
|
||||||
file.directory:
|
|
||||||
- name: /opt/so/conf/curator/action
|
|
||||||
- user: 934
|
|
||||||
- group: 939
|
|
||||||
- makedirs: True
|
|
||||||
|
|
||||||
actionconfs:
|
|
||||||
file.recurse:
|
|
||||||
- name: /opt/so/conf/curator/action
|
|
||||||
- source: salt://curator/files/action
|
|
||||||
- user: 934
|
|
||||||
- group: 939
|
|
||||||
- template: jinja
|
|
||||||
- defaults:
|
|
||||||
CURATORMERGED: {{ CURATORMERGED.elasticsearch.index_settings }}
|
|
||||||
|
|
||||||
curconf:
|
|
||||||
file.managed:
|
|
||||||
- name: /opt/so/conf/curator/curator.yml
|
|
||||||
- source: salt://curator/files/curator.yml
|
|
||||||
- user: 934
|
|
||||||
- group: 939
|
|
||||||
- mode: 660
|
|
||||||
- template: jinja
|
|
||||||
- show_changes: False
|
|
||||||
|
|
||||||
curator_sbin:
|
|
||||||
file.recurse:
|
|
||||||
- name: /usr/sbin
|
|
||||||
- source: salt://curator/tools/sbin
|
|
||||||
- user: 934
|
|
||||||
- group: 939
|
|
||||||
- file_mode: 755
|
|
||||||
|
|
||||||
curator_sbin_jinja:
|
|
||||||
file.recurse:
|
|
||||||
- name: /usr/sbin
|
|
||||||
- source: salt://curator/tools/sbin_jinja
|
|
||||||
- user: 934
|
|
||||||
- group: 939
|
|
||||||
- file_mode: 755
|
|
||||||
- template: jinja
|
|
||||||
|
|
||||||
{% else %}
|
|
||||||
|
|
||||||
{{sls}}_state_not_allowed:
|
|
||||||
test.fail_without_changes:
|
|
||||||
- name: {{sls}}_state_not_allowed
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
curator:
|
|
||||||
enabled: False
|
|
||||||
elasticsearch:
|
|
||||||
index_settings:
|
|
||||||
logs-import-so:
|
|
||||||
close: 73000
|
|
||||||
delete: 73001
|
|
||||||
logs-strelka-so:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-suricata-so:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-syslog-so:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-zeek-so:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-elastic_agent-metricbeat-default:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-elastic_agent-osquerybeat-default:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-elastic_agent-fleet_server-default:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-elastic_agent-filebeat-default:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-elastic_agent-default:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-system-auth-default:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-system-application-default:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-system-security-default:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-system-system-default:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-system-syslog-default:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-windows-powershell-default:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
logs-windows-sysmon_operational-default:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-beats:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-elasticsearch:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-firewall:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-ids:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-import:
|
|
||||||
close: 73000
|
|
||||||
delete: 73001
|
|
||||||
so-kratos:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-kibana:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-logstash:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-netflow:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-osquery:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-ossec:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-redis:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-strelka:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-syslog:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
so-zeek:
|
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
+14
-15
@@ -1,22 +1,17 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
# https://securityonion.net/license; you may not use this file except in compliance with the
|
||||||
# Elastic License 2.0.
|
# Elastic License 2.0.
|
||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
|
||||||
|
|
||||||
include:
|
|
||||||
- curator.sostatus
|
|
||||||
|
|
||||||
so-curator:
|
so-curator:
|
||||||
docker_container.absent:
|
docker_container.absent:
|
||||||
- force: True
|
- force: True
|
||||||
|
|
||||||
so-curator_so-status.disabled:
|
so-curator_so-status.disabled:
|
||||||
file.comment:
|
file.line:
|
||||||
- name: /opt/so/conf/so-status/so-status.conf
|
- name: /opt/so/conf/so-status/so-status.conf
|
||||||
- regex: ^so-curator$
|
- match: ^so-curator$
|
||||||
|
- mode: delete
|
||||||
|
|
||||||
so-curator-cluster-close:
|
so-curator-cluster-close:
|
||||||
cron.absent:
|
cron.absent:
|
||||||
@@ -26,10 +21,14 @@ so-curator-cluster-delete:
|
|||||||
cron.absent:
|
cron.absent:
|
||||||
- identifier: so-curator-cluster-delete
|
- identifier: so-curator-cluster-delete
|
||||||
|
|
||||||
{% else %}
|
delete_curator_configuration:
|
||||||
|
file.absent:
|
||||||
|
- name: /opt/so/conf/curator
|
||||||
|
- recurse: True
|
||||||
|
|
||||||
{{sls}}_state_not_allowed:
|
{% set files = salt.file.find(path='/usr/sbin', name='so-curator*') %}
|
||||||
test.fail_without_changes:
|
{% if files|length > 0 %}
|
||||||
- name: {{sls}}_state_not_allowed
|
delete_curator_scripts:
|
||||||
|
file.absent:
|
||||||
{% endif %}
|
- names: {{files|yaml}}
|
||||||
|
{% endif %}
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
|
||||||
|
|
||||||
include:
|
|
||||||
- curator.config
|
|
||||||
- curator.sostatus
|
|
||||||
|
|
||||||
so-curator:
|
|
||||||
docker_container.running:
|
|
||||||
- image: {{ GLOBALS.registry_host }}:5000/{{ GLOBALS.image_repo }}/so-curator:{{ GLOBALS.so_version }}
|
|
||||||
- start: True
|
|
||||||
- hostname: curator
|
|
||||||
- name: so-curator
|
|
||||||
- user: curator
|
|
||||||
- networks:
|
|
||||||
- sobridge:
|
|
||||||
- ipv4_address: {{ DOCKER.containers['so-curator'].ip }}
|
|
||||||
- interactive: True
|
|
||||||
- tty: True
|
|
||||||
- binds:
|
|
||||||
- /opt/so/conf/curator/curator.yml:/etc/curator/config/curator.yml:ro
|
|
||||||
- /opt/so/conf/curator/action/:/etc/curator/action:ro
|
|
||||||
- /opt/so/log/curator:/var/log/curator:rw
|
|
||||||
{% if DOCKER.containers['so-curator'].custom_bind_mounts %}
|
|
||||||
{% for BIND in DOCKER.containers['so-curator'].custom_bind_mounts %}
|
|
||||||
- {{ BIND }}
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
{% if DOCKER.containers['so-curator'].extra_hosts %}
|
|
||||||
- extra_hosts:
|
|
||||||
{% for XTRAHOST in DOCKER.containers['so-curator'].extra_hosts %}
|
|
||||||
- {{ XTRAHOST }}
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
{% if DOCKER.containers['so-curator'].extra_env %}
|
|
||||||
- environment:
|
|
||||||
{% for XTRAENV in DOCKER.containers['so-curator'].extra_env %}
|
|
||||||
- {{ XTRAENV }}
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
- require:
|
|
||||||
- file: actionconfs
|
|
||||||
- file: curconf
|
|
||||||
- file: curlogdir
|
|
||||||
- watch:
|
|
||||||
- file: curconf
|
|
||||||
|
|
||||||
delete_so-curator_so-status.disabled:
|
|
||||||
file.uncomment:
|
|
||||||
- name: /opt/so/conf/so-status/so-status.conf
|
|
||||||
- regex: ^so-curator$
|
|
||||||
|
|
||||||
so-curator-cluster-close:
|
|
||||||
cron.present:
|
|
||||||
- name: /usr/sbin/so-curator-cluster-close > /opt/so/log/curator/cron-close.log 2>&1
|
|
||||||
- identifier: so-curator-cluster-close
|
|
||||||
- user: root
|
|
||||||
- minute: '2'
|
|
||||||
- hour: '*/1'
|
|
||||||
- daymonth: '*'
|
|
||||||
- month: '*'
|
|
||||||
- dayweek: '*'
|
|
||||||
|
|
||||||
so-curator-cluster-delete:
|
|
||||||
cron.present:
|
|
||||||
- name: /usr/sbin/so-curator-cluster-delete > /opt/so/log/curator/cron-cluster-delete.log 2>&1
|
|
||||||
- identifier: so-curator-cluster-delete
|
|
||||||
- user: root
|
|
||||||
- minute: '*/5'
|
|
||||||
- hour: '*'
|
|
||||||
- daymonth: '*'
|
|
||||||
- month: '*'
|
|
||||||
- dayweek: '*'
|
|
||||||
|
|
||||||
{% else %}
|
|
||||||
|
|
||||||
{{sls}}_state_not_allowed:
|
|
||||||
test.fail_without_changes:
|
|
||||||
- name: {{sls}}_state_not_allowed
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{% import_yaml 'elasticsearch/defaults.yaml' as ELASTICDEFAULTS %}
|
|
||||||
{% set ELASTICMERGED = salt['pillar.get']('elasticsearch:retention', ELASTICDEFAULTS.elasticsearch.retention, merge=true) %}
|
|
||||||
|
|
||||||
{{ ELASTICMERGED.retention_pct }}
|
|
||||||
|
|
||||||
{%- set log_size_limit = salt['pillar.get']('elasticsearch:log_size_limit') %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete indices when {{log_size_limit}}(GB) is exceeded.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-.*|so-.*|.ds-logs-.*-so.*)$'
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(so-case.*)$'
|
|
||||||
exclude: True
|
|
||||||
- filtertype: space
|
|
||||||
source: creation_date
|
|
||||||
use_age: True
|
|
||||||
disk_space: {{log_size_limit}}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-elastic_agent-default'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Elastic Agent default indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-elastic_agent-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-elastic_agent-default'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Elastic Agent default indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-elastic_agent-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-elastic_agent-filebeat-default'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Elastic Agent Filebeat indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-elastic_agent.filebeat-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-elastic_agent-filebeat-default'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Elastic Agent Filebeat indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-elastic_agent.filebeat-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-elastic_agent-fleet_server-default'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Elastic Agent Fleet Server indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-elastic_agent.fleet_server-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-elastic_agent-fleet_server-default'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete import indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-elastic_agent.fleet_server-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-elastic_agent-metricbeat-default'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Elastic Agent Metricbeat indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-elastic_agent.metricbeat-default-.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-elastic_agent-metricbeat-default'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Elastic Agent Metricbeat indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-elastic_agent.metricbeat-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-elastic_agent-osquerybeat-default'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Elastic Agent Osquerybeat indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-elastic_agent.osquerybeat-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-elastic_agent-osquerybeat-default'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Elastic Agent Osquerybeat indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-elastic_agent.osquerybeat-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-import-so'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete import indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-import-so.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-import-so'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close import indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-import-so.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-import-so'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete import indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-import-so.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-strelka-so'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Strelka indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-strelka-so.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-strelka-so'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Strelka indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-strelka-so.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-suricata-so'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Suricata indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-suricata-so.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-suricata-so'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Suricata indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-suricata-so.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-syslog-so'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close syslog indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-syslog-so.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-syslog-so'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete syslog indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-syslog-so.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-system-application-default'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Elastic Agent system application indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-system.application-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-system-application-default'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Elastic Agent system application indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-system.application-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-system-auth-default'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Elastic Agent system auth indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-system.auth-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-system-auth-default'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Elastic Agent system auth indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-system.auth-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-system-security-default'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Elastic Agent system security indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-system.security-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-system-security-default'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Elastic Agent system security indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-system.security-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-system-syslog-default'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Elastic Agent system syslog indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-system.syslog-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-system-syslog-default'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Elastic Agent system syslog indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-system.syslog-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-system-system-default'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Elastic Agent system system indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-system.system-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-system-system-default'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Elastic Agent system system indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-system.system-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-windows-powershell-default'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Elastic Agent Windows Powershell indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-windows.powershell-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-windows-powershell-default'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Elastic Agent Windows Powershell indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-windows.powershell-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-windows-sysmon_operational-default'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Elastic Agent Windows Sysmon operational indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-windows.sysmon_operational-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-windows-sysmon_operational-default'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Elastic Agent Windows Sysmon operational indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-windows.sysmon_operational-default.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['logs-zeek-so'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Zeek indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-zeek-so.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['logs-zeek-so'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete Zeek indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(.ds-logs-zeek-so.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['so-beats'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Beats indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-beats.*|so-beats.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['so-beats'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete beats indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-beats.*|so-beats.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['so-elasticsearch'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close elasticsearch indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-elasticsearch.*|so-elasticsearch.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['so-elasticsearch'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete elasticsearch indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-elasticsearch.*|so-elasticsearch.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['so-firewall'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Firewall indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-firewall.*|so-firewall.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['so-firewall'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete firewall indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-firewall.*|so-firewall.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['so-ids'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close IDS indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-ids.*|so-ids.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['so-ids'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete IDS indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-ids.*|so-ids.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['so-import'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close Import indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-import.*|so-import.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['so-import'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete import indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-import.*|so-import.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['so-kibana'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close kibana indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-kibana.*|so-kibana.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['so-kibana'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete kibana indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-kibana.*|so-kibana.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['so-kratos'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close kratos indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-kratos.*|so-kratos.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['so-kratos'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete kratos indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-kratos.*|so-kratos.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['so-logstash'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close logstash indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-logstash.*|so-logstash.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['so-logstash'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete logstash indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-logstash.*|so-logstash.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['so-netflow'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close netflow indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-netflow.*|so-netflow.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['so-netflow'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete netflow indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-netflow.*|so-netflow.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['so-osquery'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close osquery indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-osquery.*|so-osquery.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set DELETE_DAYS = CURATORMERGED['so-osquery'].delete %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: delete_indices
|
|
||||||
description: >-
|
|
||||||
Delete import indices when older than {{ DELETE_DAYS }} days.
|
|
||||||
options:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-osquery.*|so-osquery.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{ DELETE_DAYS }}
|
|
||||||
exclude:
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
{%- set cur_close_days = CURATORMERGED['so-ossec'].close %}
|
|
||||||
actions:
|
|
||||||
1:
|
|
||||||
action: close
|
|
||||||
description: >-
|
|
||||||
Close ossec indices older than {{cur_close_days}} days.
|
|
||||||
options:
|
|
||||||
delete_aliases: False
|
|
||||||
timeout_override:
|
|
||||||
ignore_empty_list: True
|
|
||||||
disable_action: False
|
|
||||||
filters:
|
|
||||||
- filtertype: pattern
|
|
||||||
kind: regex
|
|
||||||
value: '^(logstash-ossec.*|so-ossec.*)$'
|
|
||||||
- filtertype: age
|
|
||||||
source: name
|
|
||||||
direction: older
|
|
||||||
timestring: '%Y.%m.%d'
|
|
||||||
unit: days
|
|
||||||
unit_count: {{cur_close_days}}
|
|
||||||
exclude:
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user