mirror of
https://github.com/wazuh/wazuh-docker.git
synced 2025-10-23 04:51:57 +00:00
Compare commits
816 Commits
817-automa
...
enhancemen
Author | SHA1 | Date | |
---|---|---|---|
|
e20e92e475 | ||
|
61c32079fa | ||
|
5be199b9df | ||
|
971858cddd | ||
|
b9a52df0ff | ||
|
5252ce6c53 | ||
|
5ef484647a | ||
|
f9adac8c56 | ||
|
8bb96f3d69 | ||
|
574c7b05c7 | ||
|
fc563acdaa | ||
|
0778474353 | ||
|
6038fce076 | ||
|
3b7fa8d000 | ||
|
4116634ddd | ||
|
fbaee58767 | ||
|
8b18fb613c | ||
|
45366e121f | ||
|
93ea37158d | ||
|
1f58526256 | ||
|
041cea8a9a | ||
|
53db9379b8 | ||
|
02074c678e | ||
|
084530ef80 | ||
|
69df531ca9 | ||
|
f809a1ebbb | ||
|
a5c313843e | ||
|
ea0e679c27 | ||
|
7ca14b9fc8 | ||
|
42977e3131 | ||
|
f4e7d1938d | ||
|
691694a38d | ||
|
19f4aaea4d | ||
|
5bbacebe89 | ||
|
f9c5215c8b | ||
|
564e2b3ec4 | ||
|
c5970f2922 | ||
|
276c8a2e6c | ||
|
b1f0a1f46a | ||
|
5795fa154d | ||
|
424846ae40 | ||
|
db4133d7a8 | ||
|
50769ef689 | ||
|
dbb776690d | ||
|
60746362ac | ||
|
f61af29c6b | ||
|
1aa149933b | ||
|
06a797d793 | ||
|
8695a087d5 | ||
|
61b3f5f6ed | ||
|
868c371c31 | ||
|
bd7aedc0dd | ||
|
4177d1095c | ||
|
97e4dde53d | ||
|
884151b322 | ||
|
447c0bdaf8 | ||
|
e6c5e82a32 | ||
|
d237faa5ab | ||
|
92d0582201 | ||
|
cc206659cc | ||
|
8bafe1295b | ||
|
027b26047f | ||
|
af023a9b44 | ||
|
0ec38df1c7 | ||
|
be0ac01c4a | ||
|
62ae93eee9 | ||
|
e292957740 | ||
|
eb4efb3458 | ||
|
46d6dc8fe5 | ||
|
08ba82d16d | ||
|
9d882fcd67 | ||
|
9e1c33245d | ||
|
6dfa4a2e32 | ||
|
8ab3018e62 | ||
|
e08a3d85db | ||
|
42db717668 | ||
|
7b1d2836fa | ||
|
301ea9e21a | ||
|
0b3e9ba8e7 | ||
|
189e875939 | ||
|
a335684a27 | ||
|
9d851e6399 | ||
|
c28d104022 | ||
|
3859ca38ec | ||
|
e06d5ae2e4 | ||
|
4ea8fc266e | ||
|
5771c49f0d | ||
|
471aedae5b | ||
|
82955c06ee | ||
|
84280fae08 | ||
|
b38b3c7e59 | ||
|
9c33d34254 | ||
|
205983317f | ||
|
570bf081bc | ||
|
cd3e8b8b30 | ||
|
f0253ba984 | ||
|
8e7b2cd390 | ||
|
8522ec23b9 | ||
|
d43f85312a | ||
|
ae9d06ed35 | ||
|
b84a49db92 | ||
|
73fffcf52d | ||
|
999d01f48a | ||
|
bd758935e7 | ||
|
0e284a2309 | ||
|
b597e1cecc | ||
|
247a6b0375 | ||
|
879a10cc9f | ||
|
0fef2182eb | ||
|
7b00fb8f73 | ||
|
cdbc5485b4 | ||
|
6249cb8f30 | ||
|
7fe9ba2e19 | ||
|
996c593242 | ||
|
4f4edab1a9 | ||
|
d5a60b7264 | ||
|
6eb3f60684 | ||
|
bbc4529088 | ||
|
60e5304cd6 | ||
|
28f2320c6e | ||
|
819880d1cf | ||
|
f08c39ed6d | ||
|
1916f4166a | ||
|
36bdb5fedb | ||
|
15a856dc32 | ||
|
1486b5942c | ||
|
25319ee004 | ||
|
f47ca7fbc0 | ||
|
5ef94b819c | ||
|
e77ceb6ad6 | ||
|
127e74296a | ||
|
0aa63db271 | ||
|
583f75176d | ||
|
11d2c84203 | ||
|
2e52ebd7b7 | ||
|
4223b44f3f | ||
|
3fc48bec11 | ||
|
56750a07f2 | ||
|
b362e0774b | ||
|
d11e421cdd | ||
|
99c163f4e5 | ||
|
acc3c22bed | ||
|
6eb435a82f | ||
|
ac760dbb14 | ||
|
2adb0cc46d | ||
|
ca6cc555f2 | ||
|
eca65a8538 | ||
|
a063b27592 | ||
|
bc2a446c17 | ||
|
80b7c047ec | ||
|
4b0818bc2c | ||
|
28c051a05e | ||
|
1f0f98ddaa | ||
|
bc35a25b3b | ||
|
0399e7b16a | ||
|
e8f5fd25f2 | ||
|
125053f6d5 | ||
|
f38bc64415 | ||
|
2ee7cfa515 | ||
|
39554677bf | ||
|
1a1bc2d72b | ||
|
34bd04e5fc | ||
|
54b2d4ce33 | ||
|
096f0abb32 | ||
|
701fdc33bb | ||
|
719d4c2b05 | ||
|
8a1e5043c6 | ||
|
78cb2fc571 | ||
|
6f49d17696 | ||
|
f0c56d6da2 | ||
|
e86fbd6791 | ||
|
3e120aee77 | ||
|
e10fd22fcc | ||
|
eded59bc25 | ||
|
0110e696d0 | ||
|
6e30c077d6 | ||
|
622c67d2cc | ||
|
4c3a6696f6 | ||
|
5ed2095854 | ||
|
f3474a392e | ||
|
62fc011c2c | ||
|
55f209e57f | ||
|
4923750ea4 | ||
|
bdce114251 | ||
|
0a440c0433 | ||
|
311ffc72d8 | ||
|
65fe95472b | ||
|
21e1943cab | ||
|
4a2d9b54d3 | ||
|
3f320be95d | ||
|
5712d37a7a | ||
|
5d5cc9d30a | ||
|
956d42e932 | ||
|
1e70aad5f8 | ||
|
09841ba9e4 | ||
|
c014ea77f4 | ||
|
12d8e8f122 | ||
|
fe327f10a3 | ||
|
5063213d39 | ||
|
dca7f9382e | ||
|
577e533958 | ||
|
98930a6708 | ||
|
f08a3cf64d | ||
|
8cf7909bc0 | ||
|
0c57402b94 | ||
|
1e261c165e | ||
|
b60e875962 | ||
|
693b9d9c23 | ||
|
a275a08cfe | ||
|
e74db2ad83 | ||
|
2709a8e457 | ||
|
0682effeca | ||
|
c248592d39 | ||
|
6049aec381 | ||
|
ad6a08c2b0 | ||
|
a583069698 | ||
|
a67c407bfe | ||
|
6138516ad9 | ||
|
665f6fd84a | ||
|
9c36a8a13b | ||
|
2487a5481e | ||
|
8cb7da82df | ||
|
91513bda93 | ||
|
6b62f1c738 | ||
|
7257ddc0aa | ||
|
bdd919fc48 | ||
|
3112eb2bd5 | ||
|
e9ed0d1d31 | ||
|
ed9b2f0d39 | ||
|
24f12a72d7 | ||
|
faddbe4af4 | ||
|
f4596dc833 | ||
|
78006fc5bd | ||
|
956be62183 | ||
|
60d6fb8b98 | ||
|
2b10eff949 | ||
|
94b8b655cd | ||
|
8019e386bc | ||
|
e1d70c35fe | ||
|
3398c9f2b3 | ||
|
0763499562 | ||
|
88842eede8 | ||
|
ef4f28a0c1 | ||
|
79cdec2032 | ||
|
7eb5d0843c | ||
|
36e7160332 | ||
|
cf3eb61081 | ||
|
fda4a171f4 | ||
|
1e6f93b20a | ||
|
aed1004471 | ||
|
450a59a7c8 | ||
|
6d63befeb7 | ||
|
1f32d2a358 | ||
|
fc1ece705e | ||
|
829e43511e | ||
|
e759449ca2 | ||
|
86845841c7 | ||
|
b9c6d1b0dc | ||
|
7974ed0e04 | ||
|
d7d12521d2 | ||
|
ec68bd1049 | ||
|
0650c53e47 | ||
|
3dfb3505a2 | ||
|
f8b2399347 | ||
|
4ba7cba72d | ||
|
37918b47cd | ||
|
9d710e182d | ||
|
d59ee1bd35 | ||
|
53d1ad8e3e | ||
|
f63c34d73b | ||
|
e60187803c | ||
|
842180baa6 | ||
|
f0488805a4 | ||
|
ac6d9e576c | ||
|
2b44780605 | ||
|
c6b38e3de9 | ||
|
cfa0a220d6 | ||
|
2125b08544 | ||
|
98c0431498 | ||
|
e95dd33a89 | ||
|
817e864977 | ||
|
78048b6a65 | ||
|
169d24af64 | ||
|
042d0bf075 | ||
|
bac9daa337 | ||
|
2c39ce5303 | ||
|
9487dd592e | ||
|
a55eb7f14a | ||
|
b0d14dca28 | ||
|
f96b340074 | ||
|
2b25f362fd | ||
|
2e18b6a873 | ||
|
2bd7c0d6f1 | ||
|
ec69c20413 | ||
|
937b5fad87 | ||
|
7df0ee2a22 | ||
|
db89d2154f | ||
|
824265943f | ||
|
de2f3995ec | ||
|
52eae12790 | ||
|
efa179698e | ||
|
5963054220 | ||
|
902b165719 | ||
|
7d2d8fe1c9 | ||
|
317643eabf | ||
|
d57ce6b432 | ||
|
ef98a5dd83 | ||
|
c00960f7b4 | ||
|
097af398df | ||
|
3d7c673671 | ||
|
b022f9f5c1 | ||
|
390a71ebea | ||
|
7063480f1f | ||
|
4c74ebfc80 | ||
|
ec76ea8d92 | ||
|
ce0a855c3d | ||
|
d10af3b669 | ||
|
b7609311dc | ||
|
81c42d02b1 | ||
|
ee3159b225 | ||
|
7ec98fedf9 | ||
|
10f278cadb | ||
|
3bed3a3a31 | ||
|
9109104af2 | ||
|
2efc6c56fa | ||
|
daf1e837a1 | ||
|
9881957f86 | ||
|
8c874235bf | ||
|
1e7d1c62ec | ||
|
72421d608a | ||
|
a9efe64d33 | ||
|
650d2936c4 | ||
|
c9cf940a19 | ||
|
353ea5976a | ||
|
d2181f78cd | ||
|
d904595787 | ||
|
b62a1d5c94 | ||
|
92d6f87091 | ||
|
fa025c602e | ||
|
f4ccd4b0a6 | ||
|
74e30e89f8 | ||
|
cbeb18c13f | ||
|
c95eb42902 | ||
|
f685bfaa9d | ||
|
dc13ef3f72 | ||
|
6afcc00ba7 | ||
|
b13aef91d1 | ||
|
b61953cc35 | ||
|
4b98b24999 | ||
|
1fea52d4d0 | ||
|
97ba114f8e | ||
|
fc1bc7796a | ||
|
cbdc152dda | ||
|
12653111bd | ||
|
e866a8d013 | ||
|
e03cfde3bc | ||
|
866ee48871 | ||
|
9918f95f3f | ||
|
654d1dbf36 | ||
|
935aee6d2a | ||
|
219843dbb8 | ||
|
b1fec6690b | ||
|
a8754c54bc | ||
|
b0c5fb3559 | ||
|
02ee94f312 | ||
|
69f9ab8de2 | ||
|
89f3b0d600 | ||
|
51e17d2dac | ||
|
031db43568 | ||
|
387727d496 | ||
|
781fa76384 | ||
|
73650d79b3 | ||
|
b4af946000 | ||
|
a733046471 | ||
|
e8d2463d99 | ||
|
4f0da7a58e | ||
|
92eef99c13 | ||
|
f5b237458a | ||
|
04c64e78bc | ||
|
8d9d04adc5 | ||
|
1e8db5cfbd | ||
|
59e0ec54bd | ||
|
a826212051 | ||
|
6e7e8525bb | ||
|
799dadc1cf | ||
|
8f3478361d | ||
|
6a242a36ce | ||
|
1564b2d4cd | ||
|
96048c7bf3 | ||
|
401673e743 | ||
|
d8780f0e37 | ||
|
520291162f | ||
|
63217770f7 | ||
|
8c44d566df | ||
|
d0b02cf15c | ||
|
b274806f60 | ||
|
2e8c7f99b5 | ||
|
992fa82f6d | ||
|
c88172dc56 | ||
|
3f8444a71e | ||
|
0de952d1b3 | ||
|
8a574da9ec | ||
|
6b35c9d4bc | ||
|
f7e7a5a5fb | ||
|
7835e6a678 | ||
|
23900dbcc1 | ||
|
0bb7a00125 | ||
|
467a405754 | ||
|
1046a3a13e | ||
|
6fef542ee2 | ||
|
55f9fe3ded | ||
|
d538e47eef | ||
|
0d628f20cc | ||
|
53b9d71c23 | ||
|
1b3251852c | ||
|
4ba6e124b1 | ||
|
33a55344d3 | ||
|
a4a9207dec | ||
|
98037bf25c | ||
|
7f09331a95 | ||
|
ec9076261f | ||
|
5a5fbdd62c | ||
|
d6cefe7288 | ||
|
0296f59f8c | ||
|
057752d7bc | ||
|
b47361e4c9 | ||
|
d3d2ae7b86 | ||
|
91a56eb429 | ||
|
c99985f479 | ||
|
a6d0a1ffeb | ||
|
f746e96b74 | ||
|
db7596ca03 | ||
|
174ae3d14c | ||
|
52a9479e48 | ||
|
ec63264545 | ||
|
114d6edff2 | ||
|
eb894d868d | ||
|
adba797c54 | ||
|
43ecb7f623 | ||
|
0567dd1632 | ||
|
6ef6883b8a | ||
|
41b25fe60f | ||
|
a89eddb135 | ||
|
284b945cd8 | ||
|
d820c63982 | ||
|
b2ef887f66 | ||
|
d98ef7a8be | ||
|
f1978f4b88 | ||
|
b6ebf179db | ||
|
086b24c490 | ||
|
4e8569009e | ||
|
daa122f14b | ||
|
297cf50c27 | ||
|
caddf2893a | ||
|
892822fe29 | ||
|
99e708c1a9 | ||
|
32809c9c52 | ||
|
64ab19be1a | ||
|
8814200fb2 | ||
|
69d61278cf | ||
|
27888e0b83 | ||
|
d744287776 | ||
|
5791218f83 | ||
|
cc05d1a251 | ||
|
81b0172b37 | ||
|
b2e30894da | ||
|
4c82d16144 | ||
|
eba8b9172f | ||
|
ca8cf4f717 | ||
|
2c92c87b02 | ||
|
9b1ba35383 | ||
|
2258605ec2 | ||
|
74546d0cab | ||
|
09aeb68b14 | ||
|
10008a792b | ||
|
402c5d6fea | ||
|
81738baf88 | ||
|
4210c23a4c | ||
|
ddf1d781eb | ||
|
3d58ff0049 | ||
|
d44b87800a | ||
|
e756c20053 | ||
|
0ef3428788 | ||
|
52ddc7607f | ||
|
957de01c8f | ||
|
86dd284368 | ||
|
94c6a1b446 | ||
|
375d94d22f | ||
|
eb6eae692c | ||
|
16681104b4 | ||
|
794e9a27f4 | ||
|
dcf48426c1 | ||
|
f8eb0b5f1d | ||
|
139f7a52f6 | ||
|
2df37520a7 | ||
|
45ca9a1b37 | ||
|
8002f2d402 | ||
|
423fc248ef | ||
|
12d45d83ad | ||
|
f7f90941ed | ||
|
717a897c11 | ||
|
37d38ecf92 | ||
|
573090edcb | ||
|
c38a25224c | ||
|
351c6b319c | ||
|
9f58e6f21f | ||
|
6c50089d53 | ||
|
56ccf81185 | ||
|
20a3f170d8 | ||
|
dc167c2316 | ||
|
6b910bc636 | ||
|
95bd43c7e5 | ||
|
ff5e59982b | ||
|
ed136c994e | ||
|
b55cfaa9a0 | ||
|
6591e7e4a1 | ||
|
a97c14e807 | ||
|
25e4c24c87 | ||
|
2ccd5dc431 | ||
|
a68da465d3 | ||
|
486c41e3f9 | ||
|
504e1f2017 | ||
|
15413250e8 | ||
|
fa956c53e7 | ||
|
49bc23682f | ||
|
4863d54c99 | ||
|
d352019385 | ||
|
27962e38f1 | ||
|
f1140fc088 | ||
|
0ecf533cdc | ||
|
cda712949a | ||
|
4a95d18b9a | ||
|
122acb404d | ||
|
efac96b011 | ||
|
7c814de638 | ||
|
1ee77e40ce | ||
|
bfae09af52 | ||
|
1c0b12deaa | ||
|
92b3395abc | ||
|
b1d10f879c | ||
|
98e96a5260 | ||
|
84e57b9c9a | ||
|
ee9fdc383a | ||
|
2cd1ca79e6 | ||
|
4c2582952f | ||
|
e13cfcf454 | ||
|
e48255641f | ||
|
103c7e66df | ||
|
40618586a9 | ||
|
274c0bc692 | ||
|
c4d6a254cc | ||
|
d45e2d984e | ||
|
781e6a4082 | ||
|
0c7d298eea | ||
|
05ef9b899b | ||
|
c46b1c0d82 | ||
|
3a3218f0d4 | ||
|
dd86d1b707 | ||
|
60563720f3 | ||
|
0cd98767c8 | ||
|
8aad8651d7 | ||
|
3c073ab5ea | ||
|
b8ff013b36 | ||
|
5106715b0c | ||
|
523a28b20d | ||
|
8aef2921d9 | ||
|
0d66cfbd5a | ||
|
0f1cc4b955 | ||
|
aee83a1a2d | ||
|
7474e836b6 | ||
|
acb3688346 | ||
|
4d153f6705 | ||
|
85ba8cb9b0 | ||
|
5aaeb0d944 | ||
|
aa88dad36a | ||
|
a424c683ae | ||
|
0555e4956b | ||
|
dee2c3c8dc | ||
|
6b89644918 | ||
|
1e29e8fcfc | ||
|
25be906860 | ||
|
c18a1eca56 | ||
|
14dcc8b6a6 | ||
|
89e0fc9604 | ||
|
64f083631d | ||
|
fa2f2b2a31 | ||
|
8d1c239a3c | ||
|
ded91b2f0a | ||
|
d7e051af19 | ||
|
b4db7f16cc | ||
|
61bfe58491 | ||
|
9d3701fa60 | ||
|
c550c1a852 | ||
|
1b41068618 | ||
|
8ac3ea1e8a | ||
|
893796c4a2 | ||
|
d6a72c6fb1 | ||
|
7172c818c7 | ||
|
a2ee29bfd3 | ||
|
e205c87d37 | ||
|
545ef6851b | ||
|
36c06dc4c8 | ||
|
3fd3f42389 | ||
|
b22fa235c7 | ||
|
c3c8ea3d02 | ||
|
905b4de859 | ||
|
23d34f6a89 | ||
|
8fa20abbbd | ||
|
d9b053caf4 | ||
|
d5dc67e9c3 | ||
|
93c53a712d | ||
|
5f3a0481ba | ||
|
958e466682 | ||
|
7d5b1c4f85 | ||
|
69868c0c70 | ||
|
d8f7fd6767 | ||
|
a98e57bb6c | ||
|
b3441a6b07 | ||
|
a3e2a2d88b | ||
|
6407325761 | ||
|
7312f86235 | ||
|
d6b73cb3dc | ||
|
62627e32fd | ||
|
149df5e492 | ||
|
8fbda5afd3 | ||
|
b40e90d19c | ||
|
a6c22d9618 | ||
|
d449ae7f76 | ||
|
8cc5c8b0bb | ||
|
536dd51aa7 | ||
|
088b855f73 | ||
|
5769159cf9 | ||
|
41515e9c49 | ||
|
0fbbf5aee2 | ||
|
37f565bb8a | ||
|
2ac53b9b3d | ||
|
d1c252c6c0 | ||
|
e9f689dbfc | ||
|
be19c70082 | ||
|
0c6077c3e0 | ||
|
de7754364d | ||
|
73ada94ed6 | ||
|
63817dfd55 | ||
|
dcef9834b4 | ||
|
9253127ce8 | ||
|
17029c5510 | ||
|
2234517218 | ||
|
637110c278 | ||
|
b18c068650 | ||
|
9a871dbbcb | ||
|
1fae0d3452 | ||
|
0a4c057492 | ||
|
2902a0ce0b | ||
|
c0fb4172f3 | ||
|
77c18adce5 | ||
|
8886e2347e | ||
|
f1d8565989 | ||
|
e5abd5d24e | ||
|
902b0d8e52 | ||
|
b377a0f6eb | ||
|
44e9bebed0 | ||
|
3434070c06 | ||
|
8169e95107 | ||
|
2de4a28098 | ||
|
760fc8ccbf | ||
|
44303d3701 | ||
|
c0d97893a4 | ||
|
0826f2c176 | ||
|
d531b8dd72 | ||
|
1d8332725f | ||
|
a2f50192b6 | ||
|
bd513e80cc | ||
|
6a4dc3c3eb | ||
|
41267d4ddf | ||
|
67f34fb8fe | ||
|
865f7625f4 | ||
|
c56952eaa0 | ||
|
8b8a28167e | ||
|
cb7d8785c6 | ||
|
f1001c2f25 | ||
|
d0eaae482c | ||
|
e67b7eae70 | ||
|
17ed766228 | ||
|
6c91bac96d | ||
|
216b5a6818 | ||
|
e19fa14013 | ||
|
57c7eaa5af | ||
|
fbe073612c | ||
|
1dec665a97 | ||
|
757e5dbf05 | ||
|
32b1d88e36 | ||
|
94be842afc | ||
|
d20bbe247c | ||
|
e01d39e138 | ||
|
1eeca6267b | ||
|
d755ffbac8 | ||
|
221c3ccd24 | ||
|
1ff589ccaf | ||
|
d4c98491fc | ||
|
673c28b637 | ||
|
2cd9262bab | ||
|
7db3d0d278 | ||
|
fc4cef1072 | ||
|
7d3bea67f7 | ||
|
3953986652 | ||
|
f2dab81387 | ||
|
da82008a75 | ||
|
54975ab099 | ||
|
5b23d48e46 | ||
|
919500bd74 | ||
|
a9d505b316 | ||
|
a0899a8358 | ||
|
b27d991f0c | ||
|
4d0aa57ed2 | ||
|
1a75d4eb77 | ||
|
247555b1b6 | ||
|
442d457933 | ||
|
0f65448718 | ||
|
a9533264d6 | ||
|
ce8dd29425 | ||
|
a433989865 | ||
|
ff1e5f991a | ||
|
55ee49aff5 | ||
|
75f92308a1 | ||
|
61c37a78de | ||
|
39208c513c | ||
|
3650feeb0e | ||
|
f4f99f17b7 | ||
|
3c9b5ac717 | ||
|
8e3b8aada8 | ||
|
6a98b87b8e | ||
|
56dbf052c9 | ||
|
7abaea9b4c | ||
|
303b64c7ae | ||
|
2340db4079 | ||
|
9159eda943 | ||
|
d278782134 | ||
|
77725b7eb2 | ||
|
4e7c2cf72a | ||
|
41196a5529 | ||
|
8ce1f36f10 | ||
|
e2e95a5c57 | ||
|
1238820b6c | ||
|
f168bd62fe | ||
|
2058734154 | ||
|
4e34f1f7b7 | ||
|
b259665fc6 | ||
|
820079f1d0 | ||
|
efc8ab88df | ||
|
f71616939e | ||
|
9a9fac6243 | ||
|
11d15670f4 | ||
|
7427eff847 | ||
|
5abe95a0f1 | ||
|
fed4302744 | ||
|
750aa90b91 | ||
|
aec90c2f3d | ||
|
84a40b9eea | ||
|
57c63bc60e | ||
|
dd46f8a2c1 | ||
|
76a38f68b5 | ||
|
4caf18f12c | ||
|
ea11d66f42 | ||
|
02a75a7678 | ||
|
7e0311e99a | ||
|
e939010507 | ||
|
b7bce45e82 | ||
|
697b7538cc | ||
|
2cbf64dafa | ||
|
638d548d74 | ||
|
d6f19cebf5 | ||
|
944c6aa4c8 | ||
|
5e3676e125 | ||
|
fd9c09a7e5 | ||
|
395b769b6a | ||
|
ee46520701 | ||
|
b838023509 | ||
|
be9019a065 | ||
|
42193f4cfa | ||
|
6e7b1c2899 | ||
|
06a1efc094 | ||
|
e9764b0a6a | ||
|
6398b66e10 | ||
|
70938d52d2 | ||
|
d5932ac4a1 | ||
|
4b621466a0 | ||
|
e24d17f730 | ||
|
b33aea9ef8 | ||
|
3525003ef7 | ||
|
00a94ce5b0 | ||
|
e826236a28 | ||
|
137989ddd1 | ||
|
0d76a85ded | ||
|
e95455a12b | ||
|
887293d474 | ||
|
ae20f302c0 | ||
|
08314f9e2e | ||
|
c6f1f31d57 | ||
|
312466704d | ||
|
d00fc0ccf6 | ||
|
42ea26b3bd | ||
|
fe75f8fb4e | ||
|
8b1ed497ab | ||
|
195b34c259 | ||
|
08c9b95455 | ||
|
028b5f6034 | ||
|
cd7dc4c7cf | ||
|
40faad148d | ||
|
02aaf45e9d | ||
|
cd9f211eb3 | ||
|
20c8000fec | ||
|
095d878b04 | ||
|
53903126cf | ||
|
63ceab20b0 | ||
|
5fb369f9e8 | ||
|
6ddaecd7b5 |
7
.env
7
.env
@@ -1,3 +1,6 @@
|
||||
WAZUH_VERSION=4.4.1
|
||||
WAZUH_IMAGE_VERSION=4.4.1
|
||||
WAZUH_VERSION=5.0.0
|
||||
WAZUH_IMAGE_VERSION=5.0.0
|
||||
WAZUH_TAG_REVISION=1
|
||||
FILEBEAT_TEMPLATE_BRANCH=5.0.0
|
||||
WAZUH_FILEBEAT_MODULE=wazuh-filebeat-0.4.tar.gz
|
||||
WAZUH_UI_REVISION=1
|
||||
|
2
.github/.goss.yaml
vendored
2
.github/.goss.yaml
vendored
@@ -56,7 +56,7 @@ package:
|
||||
wazuh-manager:
|
||||
installed: true
|
||||
versions:
|
||||
- 4.4.1-1
|
||||
- 5.0.0-1
|
||||
port:
|
||||
tcp:1514:
|
||||
listening: true
|
||||
|
161
.github/workflows/Procedure_push_docker_images.yml
vendored
Normal file
161
.github/workflows/Procedure_push_docker_images.yml
vendored
Normal file
@@ -0,0 +1,161 @@
|
||||
run-name: Launch Push Docker Images - ${{ inputs.id }}
|
||||
name: Push Docker Images
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
image_tag:
|
||||
description: 'Docker image tag'
|
||||
default: '5.0.0'
|
||||
required: true
|
||||
docker_reference:
|
||||
description: 'wazuh-docker reference'
|
||||
default: 'v5.0.0'
|
||||
required: true
|
||||
PRODUCTS:
|
||||
description: 'Comma-separated list of the image names to build and push'
|
||||
default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer'
|
||||
required: true
|
||||
filebeat_module_version:
|
||||
description: 'Filebeat module version'
|
||||
default: '0.4'
|
||||
required: true
|
||||
revision:
|
||||
description: 'Package revision'
|
||||
default: '1'
|
||||
required: true
|
||||
push_images:
|
||||
description: 'Push images'
|
||||
type: boolean
|
||||
default: true
|
||||
required: true
|
||||
id:
|
||||
description: "ID used to identify the workflow uniquely."
|
||||
type: string
|
||||
required: false
|
||||
dev:
|
||||
description: "Add tag suffix '-dev' to the image tag ?"
|
||||
type: boolean
|
||||
default: true
|
||||
required: false
|
||||
workflow_call:
|
||||
inputs:
|
||||
image_tag:
|
||||
description: 'Docker image tag'
|
||||
default: '5.0.0'
|
||||
required: true
|
||||
type: string
|
||||
docker_reference:
|
||||
description: 'wazuh-docker reference'
|
||||
default: 'v5.0.0'
|
||||
required: false
|
||||
type: string
|
||||
products:
|
||||
description: 'Comma-separated list of the image names to build and push'
|
||||
default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer'
|
||||
required: true
|
||||
type: string
|
||||
filebeat_module_version:
|
||||
description: 'Filebeat module version'
|
||||
default: '0.4'
|
||||
required: true
|
||||
type: string
|
||||
revision:
|
||||
description: 'Package revision'
|
||||
default: '1'
|
||||
required: true
|
||||
type: string
|
||||
push_images:
|
||||
description: 'Push images'
|
||||
type: boolean
|
||||
default: true
|
||||
required: true
|
||||
id:
|
||||
description: "ID used to identify the workflow uniquely."
|
||||
type: string
|
||||
required: false
|
||||
dev:
|
||||
description: "Add tag suffix '-dev' to the image tag ?"
|
||||
type: boolean
|
||||
default: false
|
||||
required: false
|
||||
|
||||
jobs:
|
||||
build-and-push:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Print inputs
|
||||
run: |
|
||||
echo "---------------------------------------------"
|
||||
echo "Running Procedure_push_docker_images workflow"
|
||||
echo "---------------------------------------------"
|
||||
echo "* BRANCH: ${{ github.ref }}"
|
||||
echo "* COMMIT: ${{ github.sha }}"
|
||||
echo "---------------------------------------------"
|
||||
echo "Inputs provided:"
|
||||
echo "---------------------------------------------"
|
||||
echo "* id: ${{ inputs.id }}"
|
||||
echo "* image_tag: ${{ inputs.image_tag }}"
|
||||
echo "* docker_reference: ${{ inputs.docker_reference }}"
|
||||
echo "* products: ${{ inputs.products }}"
|
||||
echo "* filebeat_module_version: ${{ inputs.filebeat_module_version }}"
|
||||
echo "* revision: ${{ inputs.revision }}"
|
||||
echo "* push_images: ${{ inputs.push_images }}"
|
||||
echo "* dev: ${{ inputs.dev }}"
|
||||
echo "---------------------------------------------"
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.docker_reference }}
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
- name: Build Wazuh images
|
||||
run: |
|
||||
IMAGE_TAG=${{ inputs.image_tag }}
|
||||
FILEBEAT_MODULE_VERSION=${{ inputs.filebeat_module_version }}
|
||||
REVISION=${{ inputs.revision }}
|
||||
|
||||
if [[ "$IMAGE_TAG" == *"-"* ]]; then
|
||||
IFS='-' read -r -a tokens <<< "$IMAGE_TAG"
|
||||
if [ -z "${tokens[1]}" ]; then
|
||||
echo "Invalid image tag: $IMAGE_TAG"
|
||||
exit 1
|
||||
fi
|
||||
DEV_STAGE=${tokens[1]}
|
||||
WAZUH_VER=${tokens[0]}
|
||||
./build-docker-images/build-images.sh -v $WAZUH_VER -r $REVISION -d $DEV_STAGE -f $FILEBEAT_MODULE_VERSION
|
||||
else
|
||||
./build-docker-images/build-images.sh -v $IMAGE_TAG -r $REVISION -f $FILEBEAT_MODULE_VERSION
|
||||
fi
|
||||
|
||||
# Save .env file (generated by build-images.sh) contents to $GITHUB_ENV
|
||||
ENV_FILE_PATH=".env"
|
||||
|
||||
if [ -f $ENV_FILE_PATH ]; then
|
||||
while IFS= read -r line || [ -n "$line" ]; do
|
||||
echo "$line" >> $GITHUB_ENV
|
||||
done < $ENV_FILE_PATH
|
||||
else
|
||||
echo "The environment file $ENV_FILE_PATH does not exist!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Tag and Push Wazuh images
|
||||
if: ${{ inputs.push_images }}
|
||||
run: |
|
||||
IMAGE_TAG="${{ inputs.image_tag }}$( [ "${{ inputs.dev }}" == "true" ] && echo '-dev' || true )"
|
||||
IMAGE_NAMES=${{ inputs.products }}
|
||||
IFS=',' read -r -a images <<< "$IMAGE_NAMES"
|
||||
for image in "${images[@]}"; do
|
||||
echo "Tagging and pushing wazuh/$image:${WAZUH_VERSION} to wazuh/$image:$IMAGE_TAG"
|
||||
docker tag wazuh/$image:${WAZUH_VERSION} wazuh/$image:$IMAGE_TAG
|
||||
echo "Pushing wazuh/$image:$IMAGE_TAG ..."
|
||||
docker push wazuh/$image:$IMAGE_TAG
|
||||
done
|
81
.github/workflows/push.yml
vendored
81
.github/workflows/push.yml
vendored
@@ -22,6 +22,7 @@ jobs:
|
||||
docker save wazuh/wazuh-manager:${{env.WAZUH_IMAGE_VERSION}} -o /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-manager.tar
|
||||
docker save wazuh/wazuh-indexer:${{env.WAZUH_IMAGE_VERSION}} -o /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-indexer.tar
|
||||
docker save wazuh/wazuh-dashboard:${{env.WAZUH_IMAGE_VERSION}} -o /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-dashboard.tar
|
||||
docker save wazuh/wazuh-cert-tool:${{env.WAZUH_IMAGE_VERSION}} -o /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-cert-tool.tar
|
||||
|
||||
- name: Temporarily save Wazuh manager Docker image
|
||||
uses: actions/upload-artifact@v3
|
||||
@@ -44,6 +45,13 @@ jobs:
|
||||
path: /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-dashboard.tar
|
||||
retention-days: 1
|
||||
|
||||
- name: Temporarily save Wazuh Cert Tool Docker image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: docker-artifact-cert-tool
|
||||
path: /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-cert-tool.tar
|
||||
retention-days: 1
|
||||
|
||||
- name: Install Goss
|
||||
uses: e1himself/goss-installation-action@v1.0.3
|
||||
with:
|
||||
@@ -81,18 +89,25 @@ jobs:
|
||||
with:
|
||||
name: docker-artifact-dashboard
|
||||
|
||||
- name: Retrieve saved Wazuh Cert Tool Docker image
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: docker-artifact-cert-tool
|
||||
|
||||
- name: Docker load
|
||||
run: |
|
||||
docker load --input ./wazuh-indexer.tar
|
||||
docker load --input ./wazuh-dashboard.tar
|
||||
docker load --input ./wazuh-manager.tar
|
||||
docker load --input ./wazuh-cert-tool.tar
|
||||
rm -rf wazuh-manager.tar wazuh-indexer.tar wazuh-dashboard.tar wazuh-cert-tool.tar
|
||||
|
||||
|
||||
- name: Create single node certficates
|
||||
run: docker-compose -f single-node/generate-indexer-certs.yml run --rm generator
|
||||
run: docker compose -f single-node/generate-certs.yml run --rm generator
|
||||
|
||||
- name: Start single node stack
|
||||
run: docker-compose -f single-node/docker-compose.yml up -d
|
||||
run: docker compose -f single-node/docker-compose.yml up -d
|
||||
|
||||
- name: Check Wazuh indexer start
|
||||
run: |
|
||||
@@ -126,8 +141,9 @@ jobs:
|
||||
|
||||
- name: Check documents into wazuh-alerts index
|
||||
run: |
|
||||
sleep 120
|
||||
docs="`curl -XGET "https://0.0.0.0:9200/wazuh-alerts*/_count" -u admin:SecretPassword -k -s | jq -r ".count"`"
|
||||
if [[ $docs -gt 100 ]]; then
|
||||
if [[ $docs -gt 0 ]]; then
|
||||
echo "wazuh-alerts index documents: ${docs}"
|
||||
else
|
||||
echo "wazuh-alerts index documents: ${docs}"
|
||||
@@ -138,7 +154,7 @@ jobs:
|
||||
run: |
|
||||
qty_templates="`curl -XGET "https://0.0.0.0:9200/_cat/templates" -u admin:SecretPassword -k -s | grep -P "wazuh|wazuh-agent|wazuh-statistics" | wc -l`"
|
||||
templates="`curl -XGET "https://0.0.0.0:9200/_cat/templates" -u admin:SecretPassword -k -s | grep -P "wazuh|wazuh-agent|wazuh-statistics"`"
|
||||
if [[ $qty_templates -eq 3 ]]; then
|
||||
if [[ $qty_templates -gt 3 ]]; then
|
||||
echo "wazuh templates:"
|
||||
echo "${templates}"
|
||||
else
|
||||
@@ -161,10 +177,6 @@ jobs:
|
||||
env:
|
||||
TOKEN: $(curl -s -u wazuh-wui:MyS3cr37P450r.*- -k -X GET "https://0.0.0.0:55000/security/user/authenticate?raw=true")
|
||||
|
||||
- name: Check errors in ossec.log
|
||||
run: ./.github/single-node-log-check.sh
|
||||
|
||||
|
||||
- name: Check filebeat output
|
||||
run: ./.github/single-node-filebeat-check.sh
|
||||
|
||||
@@ -178,8 +190,8 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Stop single node stack
|
||||
run: docker-compose -f single-node/docker-compose.yml down
|
||||
- name: Check errors in ossec.log
|
||||
run: ./.github/single-node-log-check.sh
|
||||
|
||||
check-multi-node:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -192,6 +204,14 @@ jobs:
|
||||
- name: Create enviroment variables
|
||||
run: cat .env > $GITHUB_ENV
|
||||
|
||||
- name: free disk space
|
||||
run: |
|
||||
sudo swapoff -a
|
||||
sudo rm -f /swapfile
|
||||
sudo apt clean
|
||||
docker rmi $(docker image ls -aq)
|
||||
df -h
|
||||
|
||||
- name: Retrieve saved Wazuh dashboard Docker image
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
@@ -207,21 +227,34 @@ jobs:
|
||||
with:
|
||||
name: docker-artifact-indexer
|
||||
|
||||
- name: Retrieve saved Wazuh Cert Tool Docker image
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: docker-artifact-cert-tool
|
||||
|
||||
- name: Docker load
|
||||
run: |
|
||||
docker load --input ./wazuh-manager.tar
|
||||
docker load --input ./wazuh-indexer.tar
|
||||
docker load --input ./wazuh-dashboard.tar
|
||||
docker load --input ./wazuh-manager.tar
|
||||
docker load --input ./wazuh-cert-tool.tar
|
||||
rm -rf wazuh-manager.tar wazuh-indexer.tar wazuh-dashboard.tar wazuh-cert-tool.tar
|
||||
|
||||
- name: Create multi node certficates
|
||||
run: docker-compose -f multi-node/generate-indexer-certs.yml run --rm generator
|
||||
run: docker compose -f multi-node/generate-certs.yml run --rm generator
|
||||
|
||||
- name: Start multi node stack
|
||||
run: docker-compose -f multi-node/docker-compose.yml up -d
|
||||
run: docker compose -f multi-node/docker-compose.yml up -d
|
||||
|
||||
- name: Check Wazuh indexer start
|
||||
run: |
|
||||
sleep 120
|
||||
until [[ `curl -XGET "https://0.0.0.0:9200/_cluster/health" -u admin:SecretPassword -k -s | grep green | wc -l` -eq 1 ]]
|
||||
do
|
||||
echo 'Waiting for Wazuh indexer start'
|
||||
free -m
|
||||
df -h
|
||||
sleep 120
|
||||
done
|
||||
status_green="`curl -XGET "https://0.0.0.0:9200/_cluster/health" -u admin:SecretPassword -k -s | grep green | wc -l`"
|
||||
if [[ $status_green -eq 1 ]]; then
|
||||
curl -XGET "https://0.0.0.0:9200/_cluster/health" -u admin:SecretPassword -k -s
|
||||
@@ -250,8 +283,15 @@ jobs:
|
||||
|
||||
- name: Check documents into wazuh-alerts index
|
||||
run: |
|
||||
until [[ $(``curl -XGET "https://0.0.0.0:9200/wazuh-alerts*/_count" -u admin:SecretPassword -k -s | jq -r ".count"``) -gt 0 ]]
|
||||
do
|
||||
echo 'Waiting for Wazuh indexer events'
|
||||
free -m
|
||||
df -h
|
||||
sleep 10
|
||||
done
|
||||
docs="`curl -XGET "https://0.0.0.0:9200/wazuh-alerts*/_count" -u admin:SecretPassword -k -s | jq -r ".count"`"
|
||||
if [[ $docs -gt 100 ]]; then
|
||||
if [[ $docs -gt 0 ]]; then
|
||||
echo "wazuh-alerts index documents: ${docs}"
|
||||
else
|
||||
echo "wazuh-alerts index documents: ${docs}"
|
||||
@@ -262,7 +302,7 @@ jobs:
|
||||
run: |
|
||||
qty_templates="`curl -XGET "https://0.0.0.0:9200/_cat/templates" -u admin:SecretPassword -k -s | grep "wazuh" | wc -l`"
|
||||
templates="`curl -XGET "https://0.0.0.0:9200/_cat/templates" -u admin:SecretPassword -k -s | grep "wazuh"`"
|
||||
if [[ $qty_templates -eq 3 ]]; then
|
||||
if [[ $qty_templates -gt 3 ]]; then
|
||||
echo "wazuh templates:"
|
||||
echo "${templates}"
|
||||
else
|
||||
@@ -292,10 +332,6 @@ jobs:
|
||||
env:
|
||||
TOKEN: $(curl -s -u wazuh-wui:MyS3cr37P450r.*- -k -X GET "https://0.0.0.0:55000/security/user/authenticate?raw=true")
|
||||
|
||||
- name: Check errors in ossec.log
|
||||
run: ./.github/multi-node-log-check.sh
|
||||
|
||||
|
||||
- name: Check filebeat output
|
||||
run: ./.github/multi-node-filebeat-check.sh
|
||||
|
||||
@@ -307,4 +343,7 @@ jobs:
|
||||
else
|
||||
echo "Wazuh dashboard status: ${status}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
- name: Check errors in ossec.log
|
||||
run: ./.github/multi-node-log-check.sh
|
77
.github/workflows/trivy-dashboard.yml
vendored
Normal file
77
.github/workflows/trivy-dashboard.yml
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
# This workflow uses actions that are not certified by GitHub.
|
||||
# They are provided by a third-party and are governed by
|
||||
# separate terms of service, privacy policy, and support
|
||||
# documentation.
|
||||
|
||||
name: Trivy scan Wazuh dashboard
|
||||
|
||||
on:
|
||||
release:
|
||||
types:
|
||||
- published
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- stable
|
||||
schedule:
|
||||
- cron: '34 2 * * 1'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
permissions:
|
||||
contents: read # for actions/checkout to fetch code
|
||||
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
|
||||
|
||||
name: Build images and upload Trivy results
|
||||
runs-on: "ubuntu-latest"
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Installing dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y jq
|
||||
|
||||
- name: Checkout latest tag
|
||||
run: |
|
||||
latest=$(curl -s "https://api.github.com/repos/wazuh/wazuh-docker/releases/latest" | jq -r '.tag_name')
|
||||
git fetch origin
|
||||
git checkout $latest
|
||||
|
||||
- name: Build Wazuh images
|
||||
run: build-docker-images/build-images.sh
|
||||
|
||||
- name: Create enviroment variables
|
||||
run: |
|
||||
cat .env > $GITHUB_ENV
|
||||
echo "GITHUB_REF_NAME="${GITHUB_REF_NAME%/*} >> $GITHUB_ENV
|
||||
|
||||
- name: Run Trivy vulnerability scanner for Wazuh dashboard
|
||||
uses: aquasecurity/trivy-action@2a2157eb22c08c9a1fac99263430307b8d1bc7a2
|
||||
with:
|
||||
image-ref: 'wazuh/wazuh-dashboard:${{env.WAZUH_IMAGE_VERSION}}'
|
||||
format: 'template'
|
||||
template: '@/contrib/sarif.tpl'
|
||||
output: 'trivy-results-dashboard.sarif'
|
||||
severity: 'LOW,MEDIUM,CRITICAL,HIGH'
|
||||
|
||||
- name: Upload Trivy scan results to GitHub Security tab
|
||||
uses: github/codeql-action/upload-sarif@v2
|
||||
with:
|
||||
sarif_file: 'trivy-results-dashboard.sarif'
|
||||
|
||||
- name: Slack notification
|
||||
uses: rtCamp/action-slack-notify@v2
|
||||
env:
|
||||
SLACK_CHANNEL: cicd-monitoring
|
||||
SLACK_COLOR: ${{ job.status }} # or a specific color like 'good' or '#ff00ff'
|
||||
#SLACK_ICON: https://github.com/rtCamp.png?size=48
|
||||
SLACK_MESSAGE: "Check the results: https://github.com/wazuh/wazuh-docker/security/code-scanning?query=is%3Aopen+branch%3A${{ env.GITHUB_REF_NAME }}"
|
||||
SLACK_TITLE: Wazuh docker Trivy vulnerability scan finished.
|
||||
SLACK_USERNAME: github_actions
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
77
.github/workflows/trivy-indexer.yml
vendored
Normal file
77
.github/workflows/trivy-indexer.yml
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
# This workflow uses actions that are not certified by GitHub.
|
||||
# They are provided by a third-party and are governed by
|
||||
# separate terms of service, privacy policy, and support
|
||||
# documentation.
|
||||
|
||||
name: Trivy scan Wazuh indexer
|
||||
|
||||
on:
|
||||
release:
|
||||
types:
|
||||
- published
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- stable
|
||||
schedule:
|
||||
- cron: '34 2 * * 1'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
permissions:
|
||||
contents: read # for actions/checkout to fetch code
|
||||
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
|
||||
|
||||
name: Build images and upload Trivy results
|
||||
runs-on: "ubuntu-latest"
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Installing dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y jq
|
||||
|
||||
- name: Checkout latest tag
|
||||
run: |
|
||||
latest=$(curl -s "https://api.github.com/repos/wazuh/wazuh-docker/releases/latest" | jq -r '.tag_name')
|
||||
git fetch origin
|
||||
git checkout $latest
|
||||
|
||||
- name: Build Wazuh images
|
||||
run: build-docker-images/build-images.sh
|
||||
|
||||
- name: Create enviroment variables
|
||||
run: |
|
||||
cat .env > $GITHUB_ENV
|
||||
echo "GITHUB_REF_NAME="${GITHUB_REF_NAME%/*} >> $GITHUB_ENV
|
||||
|
||||
- name: Run Trivy vulnerability scanner for Wazuh indexer
|
||||
uses: aquasecurity/trivy-action@2a2157eb22c08c9a1fac99263430307b8d1bc7a2
|
||||
with:
|
||||
image-ref: 'wazuh/wazuh-indexer:${{env.WAZUH_IMAGE_VERSION}}'
|
||||
format: 'template'
|
||||
template: '@/contrib/sarif.tpl'
|
||||
output: 'trivy-results-indexer.sarif'
|
||||
severity: 'LOW,MEDIUM,CRITICAL,HIGH'
|
||||
|
||||
- name: Upload Trivy scan results to GitHub Security tab
|
||||
uses: github/codeql-action/upload-sarif@v2
|
||||
with:
|
||||
sarif_file: 'trivy-results-indexer.sarif'
|
||||
|
||||
- name: Slack notification
|
||||
uses: rtCamp/action-slack-notify@v2
|
||||
env:
|
||||
SLACK_CHANNEL: cicd-monitoring
|
||||
SLACK_COLOR: ${{ job.status }} # or a specific color like 'good' or '#ff00ff'
|
||||
#SLACK_ICON: https://github.com/rtCamp.png?size=48
|
||||
SLACK_MESSAGE: "Check the results: https://github.com/wazuh/wazuh-docker/security/code-scanning?query=is%3Aopen+branch%3A${{ env.GITHUB_REF_NAME }}"
|
||||
SLACK_TITLE: Wazuh docker Trivy vulnerability scan finished.
|
||||
SLACK_USERNAME: github_actions
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
77
.github/workflows/trivy-manager.yml
vendored
Normal file
77
.github/workflows/trivy-manager.yml
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
# This workflow uses actions that are not certified by GitHub.
|
||||
# They are provided by a third-party and are governed by
|
||||
# separate terms of service, privacy policy, and support
|
||||
# documentation.
|
||||
|
||||
name: Trivy scan Wazuh manager
|
||||
|
||||
on:
|
||||
release:
|
||||
types:
|
||||
- published
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- stable
|
||||
schedule:
|
||||
- cron: '34 2 * * 1'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
permissions:
|
||||
contents: read # for actions/checkout to fetch code
|
||||
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
|
||||
|
||||
name: Build images and upload Trivy results
|
||||
runs-on: "ubuntu-latest"
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Installing dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y jq
|
||||
|
||||
- name: Checkout latest tag
|
||||
run: |
|
||||
latest=$(curl -s "https://api.github.com/repos/wazuh/wazuh-docker/releases/latest" | jq -r '.tag_name')
|
||||
git fetch origin
|
||||
git checkout $latest
|
||||
|
||||
- name: Build Wazuh images
|
||||
run: build-docker-images/build-images.sh
|
||||
|
||||
- name: Create enviroment variables
|
||||
run: |
|
||||
cat .env > $GITHUB_ENV
|
||||
echo "GITHUB_REF_NAME="${GITHUB_REF_NAME%/*} >> $GITHUB_ENV
|
||||
|
||||
- name: Run Trivy vulnerability scanner for Wazuh manager
|
||||
uses: aquasecurity/trivy-action@2a2157eb22c08c9a1fac99263430307b8d1bc7a2
|
||||
with:
|
||||
image-ref: 'wazuh/wazuh-manager:${{env.WAZUH_IMAGE_VERSION}}'
|
||||
format: 'template'
|
||||
template: '@/contrib/sarif.tpl'
|
||||
output: 'trivy-results-manager.sarif'
|
||||
severity: 'LOW,MEDIUM,CRITICAL,HIGH'
|
||||
|
||||
- name: Upload Trivy scan results to GitHub Security tab
|
||||
uses: github/codeql-action/upload-sarif@v2
|
||||
with:
|
||||
sarif_file: 'trivy-results-manager.sarif'
|
||||
|
||||
- name: Slack notification
|
||||
uses: rtCamp/action-slack-notify@v2
|
||||
env:
|
||||
SLACK_CHANNEL: cicd-monitoring
|
||||
SLACK_COLOR: ${{ job.status }} # or a specific color like 'good' or '#ff00ff'
|
||||
#SLACK_ICON: https://github.com/rtCamp.png?size=48
|
||||
SLACK_MESSAGE: "Check the results: https://github.com/wazuh/wazuh-docker/security/code-scanning?query=is%3Aopen+branch%3A${{ env.GITHUB_REF_NAME }}"
|
||||
SLACK_TITLE: Wazuh docker Trivy vulnerability scan finished.
|
||||
SLACK_USERNAME: github_actions
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
204
CHANGELOG.md
204
CHANGELOG.md
@@ -1,6 +1,205 @@
|
||||
# Change Log
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [5.0.0]
|
||||
|
||||
### Added
|
||||
|
||||
- none
|
||||
|
||||
### Changed
|
||||
|
||||
- Delete service tag and modifiy docker-compose execution for a new version ([#1632](https://github.com/wazuh/wazuh-docker/pull/1632))
|
||||
- Remove deprecated attribute version in docker-compose.yml ([#1595](https://github.com/wazuh/wazuh-docker/pull/1595)) by https://github.com/h3ssan
|
||||
|
||||
### Fixed
|
||||
|
||||
- None
|
||||
|
||||
### Deleted
|
||||
|
||||
- None
|
||||
|
||||
## [4.10.2]
|
||||
|
||||
### Added
|
||||
|
||||
- none
|
||||
|
||||
### Changed
|
||||
|
||||
- None
|
||||
|
||||
### Fixed
|
||||
|
||||
- None
|
||||
|
||||
### Deleted
|
||||
|
||||
- None
|
||||
|
||||
## [4.10.1]
|
||||
|
||||
### Added
|
||||
|
||||
- none
|
||||
|
||||
### Changed
|
||||
|
||||
- None
|
||||
|
||||
### Fixed
|
||||
|
||||
- None
|
||||
|
||||
### Deleted
|
||||
|
||||
- None
|
||||
|
||||
## [4.10.0]
|
||||
|
||||
### Added
|
||||
|
||||
- Migrate the push docker images procedure to GitHub Actions ([#5651](https://github.com/wazuh/wazuh-qa/issues/5651))
|
||||
|
||||
### Changed
|
||||
|
||||
- None
|
||||
|
||||
### Fixed
|
||||
|
||||
- None
|
||||
|
||||
### Deleted
|
||||
|
||||
- None
|
||||
|
||||
## [4.9.2]
|
||||
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.9.2](https://github.com/wazuh/wazuh/blob/v4.9.2/CHANGELOG.md#v492)
|
||||
|
||||
## [4.9.1]
|
||||
|
||||
### Added
|
||||
|
||||
- None
|
||||
|
||||
### Changed
|
||||
|
||||
- None
|
||||
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix typos into Wazuh manager entrypoint ([#1569](https://github.com/wazuh/wazuh-docker/pull/1569))
|
||||
|
||||
### Deleted
|
||||
|
||||
- None
|
||||
|
||||
|
||||
## Wazuh Docker v4.9.0
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.9.0](https://github.com/wazuh/wazuh/blob/v4.9.0/CHANGELOG.md#v490)
|
||||
|
||||
## Wazuh Docker v4.8.2
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.8.2](https://github.com/wazuh/wazuh/blob/v4.8.2/CHANGELOG.md#v482)
|
||||
|
||||
## Wazuh Docker v4.8.1
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.8.1](https://github.com/wazuh/wazuh/blob/v4.8.1/CHANGELOG.md#v481)
|
||||
|
||||
## Wazuh Docker v4.8.0
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.8.0](https://github.com/wazuh/wazuh/blob/v4.8.0/CHANGELOG.md#v480)
|
||||
|
||||
## Wazuh Docker v4.7.5
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.7.5](https://github.com/wazuh/wazuh/blob/v4.7.5/CHANGELOG.md#v475)
|
||||
|
||||
## Wazuh Docker v4.7.4
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.7.4](https://github.com/wazuh/wazuh/blob/v4.7.4/CHANGELOG.md#v474)
|
||||
|
||||
## Wazuh Docker v4.7.3
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.7.3](https://github.com/wazuh/wazuh/blob/v4.7.3/CHANGELOG.md#v473)
|
||||
|
||||
## Wazuh Docker v4.7.2
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.7.2](https://github.com/wazuh/wazuh/blob/v4.7.2/CHANGELOG.md#v472)
|
||||
|
||||
## Wazuh Docker v4.7.1
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.7.1](https://github.com/wazuh/wazuh/blob/v4.7.1/CHANGELOG.md#v471)
|
||||
|
||||
## Wazuh Docker v4.7.0
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.7.0](https://github.com/wazuh/wazuh/blob/v4.7.0/CHANGELOG.md#v470)
|
||||
|
||||
## Wazuh Docker v4.6.0
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.6.0](https://github.com/wazuh/wazuh/blob/v4.6.0/CHANGELOG.md#v460)
|
||||
|
||||
## Wazuh Docker v4.5.4
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.5.4](https://github.com/wazuh/wazuh/blob/v4.5.4/CHANGELOG.md#v454)
|
||||
|
||||
## Wazuh Docker v4.5.3
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.5.3](https://github.com/wazuh/wazuh/blob/v4.5.3/CHANGELOG.md#v453)
|
||||
|
||||
## Wazuh Docker v4.5.2
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.5.2](https://github.com/wazuh/wazuh/blob/v4.5.2/CHANGELOG.md#v452)
|
||||
|
||||
## Wazuh Docker v4.5.1
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.5.1](https://github.com/wazuh/wazuh/blob/v4.5.1/CHANGELOG.md#v451)
|
||||
|
||||
## Wazuh Docker v4.5.0
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.5.0](https://github.com/wazuh/wazuh/blob/v4.5.0/CHANGELOG.md#v450)
|
||||
|
||||
## Wazuh Docker v4.4.5
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.4.5](https://github.com/wazuh/wazuh/blob/v4.4.5/CHANGELOG.md#v445)
|
||||
|
||||
## Wazuh Docker v4.4.4
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.4.4](https://github.com/wazuh/wazuh/blob/v4.4.4/CHANGELOG.md#v444)
|
||||
|
||||
## Wazuh Docker v4.4.3
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.4.3](https://github.com/wazuh/wazuh/blob/v4.4.3/CHANGELOG.md#v443)
|
||||
|
||||
## Wazuh Docker v4.4.2
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.4.2](https://github.com/wazuh/wazuh/blob/v4.4.2/CHANGELOG.md#v442)
|
||||
|
||||
## Wazuh Docker v4.4.1
|
||||
### Added
|
||||
|
||||
@@ -11,6 +210,11 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
- Update Wazuh to version [4.4.0](https://github.com/wazuh/wazuh/blob/v4.4.0/CHANGELOG.md#v440)
|
||||
|
||||
## Wazuh Docker v4.3.11
|
||||
### Added
|
||||
|
||||
- Update Wazuh to version [4.3.11](https://github.com/wazuh/wazuh/blob/v4.3.11/CHANGELOG.md#v4311)
|
||||
|
||||
## Wazuh Docker v4.3.10
|
||||
### Added
|
||||
|
||||
|
109
README.md
109
README.md
@@ -8,19 +8,19 @@
|
||||
In this repository you will find the containers to run:
|
||||
|
||||
* Wazuh manager: it runs the Wazuh manager, Wazuh API and Filebeat OSS
|
||||
* Wazuh dashboard: provides a web user interface to browse through alerts data and allows you to visualize agents configuration and status.
|
||||
* Wazuh dashboard: provides a web user interface to browse through alert data and allows you to visualize the agents configuration and status.
|
||||
* Wazuh indexer: Wazuh indexer container (working as a single-node cluster or as a multi-node cluster). **Be aware to increase the `vm.max_map_count` setting, as it's detailed in the [Wazuh documentation](https://documentation.wazuh.com/current/docker/wazuh-container.html#increase-max-map-count-on-your-host-linux).**
|
||||
|
||||
The folder `build-docker-images` contains a README explaining how to build the Wazuh images and the necessary assets.
|
||||
The folder `indexer-certs-creator` contains a README explaining how to create the certificates creator tool and the necessary assets.
|
||||
The folder `single-node` contains a README explaining how to run a Wazuh environment with one Wazuh manager, one Wazuh indexer, and one Wazuh dashboard.
|
||||
The folder `multi-node` contains a README explaining how to run a Wazuh environment with two Wazuh managers, three Wazuh indexer, and one Wazuh dashboard.
|
||||
The folder `multi-node` contains a README explaining how to run a Wazuh environment with two Wazuh managers, three Wazuh indexers, and one Wazuh dashboard.
|
||||
|
||||
## Documentation
|
||||
|
||||
* [Wazuh full documentation](http://documentation.wazuh.com)
|
||||
* [Wazuh documentation for Docker](https://documentation.wazuh.com/current/docker/index.html)
|
||||
* [Docker hub](https://hub.docker.com/u/wazuh)
|
||||
* [Docker Hub](https://hub.docker.com/u/wazuh)
|
||||
|
||||
|
||||
### Setup SSL certificate
|
||||
@@ -38,7 +38,7 @@ Default values are included when available.
|
||||
```
|
||||
API_USERNAME="wazuh-wui" # Wazuh API username
|
||||
API_PASSWORD="MyS3cr37P450r.*-" # Wazuh API password - Must comply with requirements
|
||||
# (8+ length, uppercase, lowercase, specials chars)
|
||||
# (8+ length, uppercase, lowercase, special chars)
|
||||
|
||||
INDEXER_URL=https://wazuh.indexer:9200 # Wazuh indexer URL
|
||||
INDEXER_USERNAME=admin # Wazuh indexer Username
|
||||
@@ -53,25 +53,11 @@ SSL_KEY="" # Path of Filebeat SSL Key
|
||||
```
|
||||
PATTERN="wazuh-alerts-*" # Default index pattern to use
|
||||
|
||||
CHECKS_PATTERN=true # Defines which checks must to be consider by the healthcheck
|
||||
CHECKS_TEMPLATE=true # step once the Wazuh app starts. Values must to be true or false
|
||||
CHECKS_PATTERN=true # Defines which checks must be considered by the healthcheck
|
||||
CHECKS_TEMPLATE=true # step once the Wazuh app starts. Values must be true or false
|
||||
CHECKS_API=true
|
||||
CHECKS_SETUP=true
|
||||
|
||||
EXTENSIONS_PCI=true # Enable PCI Extension
|
||||
EXTENSIONS_GDPR=true # Enable GDPR Extension
|
||||
EXTENSIONS_HIPAA=true # Enable HIPAA Extension
|
||||
EXTENSIONS_NIST=true # Enable NIST Extension
|
||||
EXTENSIONS_TSC=true # Enable TSC Extension
|
||||
EXTENSIONS_AUDIT=true # Enable Audit Extension
|
||||
EXTENSIONS_OSCAP=false # Enable OpenSCAP Extension
|
||||
EXTENSIONS_CISCAT=false # Enable CISCAT Extension
|
||||
EXTENSIONS_AWS=false # Enable AWS Extension
|
||||
EXTENSIONS_GCP=false # Enable GCP Extension
|
||||
EXTENSIONS_VIRUSTOTAL=false # Enable Virustotal Extension
|
||||
EXTENSIONS_OSQUERY=false # Enable OSQuery Extension
|
||||
EXTENSIONS_DOCKER=false # Enable Docker Extension
|
||||
|
||||
APP_TIMEOUT=20000 # Defines maximum timeout to be used on the Wazuh app requests
|
||||
|
||||
API_SELECTOR=true Defines if the user is allowed to change the selected API directly from the Wazuh app top menu
|
||||
@@ -89,18 +75,23 @@ WAZUH_MONITORING_REPLICAS=0 ##
|
||||
## Directory structure
|
||||
|
||||
├── build-docker-images
|
||||
│ ├── docker-compose.yml
|
||||
│ ├── build-images.sh
|
||||
│ ├── build-images.yml
|
||||
│ ├── README.md
|
||||
│ ├── wazuh-dashboard
|
||||
│ │ ├── config
|
||||
│ │ │ ├── config.sh
|
||||
│ │ │ ├── config.yml
|
||||
│ │ │ ├── dl_base.sh
|
||||
│ │ │ ├── entrypoint.sh
|
||||
│ │ │ ├── install_wazuh_app.sh
|
||||
│ │ │ ├── opensearch_dashboards.yml
|
||||
│ │ │ ├── wazuh_app_config.sh
|
||||
│ │ │ └── wazuh.yml
|
||||
│ │ └── Dockerfile
|
||||
│ ├── wazuh-indexer
|
||||
│ │ ├── config
|
||||
│ │ │ ├── action_groups.yml
|
||||
│ │ │ ├── config.sh
|
||||
│ │ │ ├── config.yml
|
||||
│ │ │ ├── entrypoint.sh
|
||||
@@ -112,6 +103,7 @@ WAZUH_MONITORING_REPLICAS=0 ##
|
||||
│ │ └── Dockerfile
|
||||
│ └── wazuh-manager
|
||||
│ ├── config
|
||||
│ │ ├── check_repository.sh
|
||||
│ │ ├── create_user.py
|
||||
│ │ ├── etc
|
||||
│ │ │ ├── cont-init.d
|
||||
@@ -124,19 +116,21 @@ WAZUH_MONITORING_REPLICAS=0 ##
|
||||
│ │ │ │ └── run
|
||||
│ │ │ └── ossec-logs
|
||||
│ │ │ └── run
|
||||
│ │ ├── filebeat_module.sh
|
||||
│ │ ├── filebeat.yml
|
||||
│ │ ├── permanent_data.env
|
||||
│ │ ├── permanent_data.sh
|
||||
│ │ └── wazuh.repo
|
||||
│ │ └── permanent_data.sh
|
||||
│ └── Dockerfile
|
||||
├── CHANGELOG.md
|
||||
├── indexer-certs-creator
|
||||
│ ├── config
|
||||
│ │ └── entrypoint.sh
|
||||
│ └── Dockerfile
|
||||
│ ├── Dockerfile
|
||||
│ └── README.md
|
||||
├── LICENSE
|
||||
├── multi-node
|
||||
│ ├── config
|
||||
│ │ ├── certs.yml
|
||||
│ │ ├── nginx
|
||||
│ │ │ └── nginx.conf
|
||||
│ │ ├── wazuh_cluster
|
||||
@@ -145,58 +139,73 @@ WAZUH_MONITORING_REPLICAS=0 ##
|
||||
│ │ ├── wazuh_dashboard
|
||||
│ │ │ ├── opensearch_dashboards.yml
|
||||
│ │ │ └── wazuh.yml
|
||||
│ │ ├── wazuh_indexer
|
||||
│ │ │ ├── internal_users.yml
|
||||
│ │ │ ├── wazuh1.indexer.yml
|
||||
│ │ │ ├── wazuh2.indexer.yml
|
||||
│ │ │ └── wazuh3.indexer.yml
|
||||
│ │ └── wazuh_indexer_ssl_certs
|
||||
│ │ └── certs.yml
|
||||
│ │ └── wazuh_indexer
|
||||
│ │ ├── internal_users.yml
|
||||
│ │ ├── wazuh1.indexer.yml
|
||||
│ │ ├── wazuh2.indexer.yml
|
||||
│ │ └── wazuh3.indexer.yml
|
||||
│ ├── docker-compose.yml
|
||||
│ ├── generate-indexer-certs.yml
|
||||
│ ├── Migration-to-Wazuh-4.3.md
|
||||
│ ├── Migration-to-Wazuh-4.4.md
|
||||
│ ├── README.md
|
||||
│ └── volume-migrator.sh
|
||||
├── README.md
|
||||
├── SECURITY.md
|
||||
├── single-node
|
||||
│ ├── config
|
||||
│ │ ├── certs.yml
|
||||
│ │ ├── wazuh_cluster
|
||||
│ │ │ └── wazuh_manager.conf
|
||||
│ │ ├── wazuh_dashboard
|
||||
│ │ │ ├── opensearch_dashboards.yml
|
||||
│ │ │ └── wazuh.yml
|
||||
│ │ ├── wazuh_indexer
|
||||
│ │ │ ├── internal_users.yml
|
||||
│ │ │ └── wazuh.indexer.yml
|
||||
│ │ └── wazuh_indexer_ssl_certs
|
||||
│ │ ├── admin-key.pem
|
||||
│ │ ├── admin.pem
|
||||
│ │ ├── certs.yml
|
||||
│ │ ├── root-ca.key
|
||||
│ │ ├── root-ca.pem
|
||||
│ │ ├── wazuh.dashboard-key.pem
|
||||
│ │ ├── wazuh.dashboard.pem
|
||||
│ │ ├── wazuh.indexer-key.pem
|
||||
│ │ ├── wazuh.indexer.pem
|
||||
│ │ ├── wazuh.manager-key.pem
|
||||
│ │ └── wazuh.manager.pem
|
||||
│ │ └── wazuh_indexer
|
||||
│ │ ├── internal_users.yml
|
||||
│ │ └── wazuh.indexer.yml
|
||||
│ ├── docker-compose.yml
|
||||
│ ├── generate-indexer-certs.yml
|
||||
│ └── README.md
|
||||
└── VERSION
|
||||
|
||||
|
||||
|
||||
## Branches
|
||||
|
||||
* `master` branch contains the latest code, be aware of possible bugs on this branch.
|
||||
* `stable` branch on correspond to the last Wazuh stable version.
|
||||
* `stable` branch corresponds to the last Wazuh stable version.
|
||||
|
||||
## Compatibility Matrix
|
||||
|
||||
| Wazuh version | ODFE | XPACK |
|
||||
|---------------|---------|--------|
|
||||
| v5.0.0 | | |
|
||||
| v4.10.2 | | |
|
||||
| v4.10.1 | | |
|
||||
| v4.10.0 | | |
|
||||
| v4.9.2 | | |
|
||||
| v4.9.1 | | |
|
||||
| v4.9.0 | | |
|
||||
| v4.8.2 | | |
|
||||
| v4.8.1 | | |
|
||||
| v4.8.0 | | |
|
||||
| v4.7.5 | | |
|
||||
| v4.7.4 | | |
|
||||
| v4.7.3 | | |
|
||||
| v4.7.2 | | |
|
||||
| v4.7.1 | | |
|
||||
| v4.7.0 | | |
|
||||
| v4.6.0 | | |
|
||||
| v4.5.4 | | |
|
||||
| v4.5.3 | | |
|
||||
| v4.5.2 | | |
|
||||
| v4.5.1 | | |
|
||||
| v4.5.0 | | |
|
||||
| v4.4.5 | | |
|
||||
| v4.4.4 | | |
|
||||
| v4.4.3 | | |
|
||||
| v4.4.2 | | |
|
||||
| v4.4.1 | | |
|
||||
| v4.4.0 | | |
|
||||
| v4.3.11 | | |
|
||||
| v4.3.10 | | |
|
||||
| v4.3.9 | | |
|
||||
| v4.3.8 | | |
|
||||
@@ -235,7 +244,7 @@ These Docker containers are based on:
|
||||
* "deviantony" dockerfiles which can be found at [https://github.com/deviantony/docker-elk](https://github.com/deviantony/docker-elk)
|
||||
* "xetus-oss" dockerfiles, which can be found at [https://github.com/xetus-oss/docker-ossec-server](https://github.com/xetus-oss/docker-ossec-server)
|
||||
|
||||
We thank you them and everyone else who has contributed to this project.
|
||||
We thank them and everyone else who has contributed to this project.
|
||||
|
||||
## License and copyright
|
||||
|
||||
|
45
SECURITY.md
Normal file
45
SECURITY.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# Wazuh Open Source Project Security Policy
|
||||
|
||||
Version: 2023-06-12
|
||||
|
||||
## Introduction
|
||||
This document outlines the Security Policy for Wazuh's open source projects. It emphasizes our commitment to maintain a secure environment for our users and contributors, and reflects our belief in the power of collaboration to identify and resolve security vulnerabilities.
|
||||
|
||||
## Scope
|
||||
This policy applies to all open source projects developed, maintained, or hosted by Wazuh.
|
||||
|
||||
## Reporting Security Vulnerabilities
|
||||
If you believe you've discovered a potential security vulnerability in one of our open source projects, we strongly encourage you to report it to us responsibly.
|
||||
|
||||
Please submit your findings as security advisories under the "Security" tab in the relevant GitHub repository. Alternatively, you may send the details of your findings to [security@wazuh.com](mailto:security@wazuh.com).
|
||||
|
||||
## Vulnerability Disclosure Policy
|
||||
Upon receiving a report of a potential vulnerability, our team will initiate an investigation. If the reported issue is confirmed as a vulnerability, we will take the following steps:
|
||||
|
||||
1. Acknowledgment: We will acknowledge the receipt of your vulnerability report and begin our investigation.
|
||||
2. Validation: We will validate the issue and work on reproducing it in our environment.
|
||||
3. Remediation: We will work on a fix and thoroughly test it
|
||||
4. Release & Disclosure: After 90 days from the discovery of the vulnerability, or as soon as a fix is ready and thoroughly tested (whichever comes first), we will release a security update for the affected project. We will also publicly disclose the vulnerability by publishing a CVE (Common Vulnerabilities and Exposures) and acknowledging the discovering party.
|
||||
5. Exceptions: In order to preserve the security of the Wazuh community at large, we might extend the disclosure period to allow users to patch their deployments.
|
||||
|
||||
This 90-day period allows for end-users to update their systems and minimizes the risk of widespread exploitation of the vulnerability.
|
||||
|
||||
## Automatic Scanning
|
||||
We leverage GitHub Actions to perform automated scans of our supply chain. These scans assist us in identifying vulnerabilities and outdated dependencies in a proactive and timely manner.
|
||||
|
||||
## Credit
|
||||
We believe in giving credit where credit is due. If you report a security vulnerability to us, and we determine that it is a valid vulnerability, we will publicly credit you for the discovery when we disclose the vulnerability. If you wish to remain anonymous, please indicate so in your initial report.
|
||||
|
||||
We do appreciate and encourage feedback from our community, but currently we do not have a bounty program. We might start bounty programs in the future.
|
||||
|
||||
## Compliance with this Policy
|
||||
We consider the discovery and reporting of security vulnerabilities an important public service. We encourage responsible reporting of any vulnerabilities that may be found in our site or applications.
|
||||
|
||||
Furthermore, we will not take legal action against or suspend or terminate access to the site or services of those who discover and report security vulnerabilities in accordance with this policy because of the fact.
|
||||
|
||||
We ask that all users and contributors respect this policy and the security of our community's users by disclosing vulnerabilities to us in accordance with this policy.
|
||||
|
||||
## Changes to this Security Policy
|
||||
This policy may be revised from time to time. Each version of the policy will be identified at the top of the page by its effective date.
|
||||
|
||||
If you have any questions about this Security Policy, please contact us at [security@wazuh.com](mailto:security@wazuh.com)
|
4
VERSION
4
VERSION
@@ -1,2 +1,2 @@
|
||||
WAZUH-DOCKER_VERSION="4.4.1"
|
||||
REVISION="40405"
|
||||
WAZUH-DOCKER_VERSION="5.0.0"
|
||||
REVISION="50000"
|
||||
|
@@ -9,3 +9,24 @@ $ build-docker-images/build-images.sh
|
||||
```
|
||||
|
||||
This script initializes the environment variables needed to build each of the images.
|
||||
|
||||
The script allows you to build images from other versions of Wazuh, to do this you must use the -v or --version argument:
|
||||
|
||||
```
|
||||
$ build-docker-images/build-images.sh -v 5.0.0
|
||||
```
|
||||
|
||||
To get all the available script options use the -h or --help option:
|
||||
|
||||
```
|
||||
$ build-docker-images/build-images.sh -h
|
||||
|
||||
Usage: build-docker-images/build-images.sh [OPTIONS]
|
||||
|
||||
-d, --dev <ref> [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default.
|
||||
-f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default 0.4.
|
||||
-r, --revision <rev> [Optional] Package revision. By default 1
|
||||
-v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, 5.0.0.
|
||||
-h, --help Show this help.
|
||||
|
||||
```
|
@@ -1,17 +1,145 @@
|
||||
WAZUH_IMAGE_VERSION=4.4.1
|
||||
WAZUH_IMAGE_VERSION=5.0.0
|
||||
WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g')
|
||||
WAZUH_TAG_REVISION=1
|
||||
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g')
|
||||
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g')
|
||||
IMAGE_VERSION=${WAZUH_IMAGE_VERSION}
|
||||
|
||||
## If wazuh manager exists in apt dev repository, change variables, if not, exit 1
|
||||
if [ "$WAZUH_VERSION" -le "$WAZUH_CURRENT_VERSION" ]; then
|
||||
IMAGE_VERSION=${WAZUH_IMAGE_VERSION}
|
||||
else
|
||||
IMAGE_VERSION=${WAZUH_IMAGE_VERSION}
|
||||
fi
|
||||
# Wazuh package generator
|
||||
# Copyright (C) 2023, Wazuh Inc.
|
||||
#
|
||||
# This program is a free software; you can redistribute it
|
||||
# and/or modify it under the terms of the GNU General Public
|
||||
# License (version 2) as published by the FSF - Free Software
|
||||
# Foundation.
|
||||
|
||||
echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > .env
|
||||
echo WAZUH_IMAGE_VERSION=$IMAGE_VERSION >> .env
|
||||
echo WAZUH_TAG_REVISION=$WAZUH_TAG_REVISION >> .env
|
||||
WAZUH_IMAGE_VERSION="5.0.0"
|
||||
WAZUH_TAG_REVISION="1"
|
||||
WAZUH_DEV_STAGE=""
|
||||
FILEBEAT_MODULE_VERSION="0.4"
|
||||
|
||||
docker-compose -f build-docker-images/build-images.yml --env-file .env build --no-cache
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
trap ctrl_c INT
|
||||
|
||||
clean() {
|
||||
exit_code=$1
|
||||
|
||||
exit ${exit_code}
|
||||
}
|
||||
|
||||
ctrl_c() {
|
||||
clean 1
|
||||
}
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
build() {
|
||||
|
||||
WAZUH_VERSION="$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g')"
|
||||
FILEBEAT_TEMPLATE_BRANCH="${WAZUH_IMAGE_VERSION}"
|
||||
WAZUH_FILEBEAT_MODULE="wazuh-filebeat-${FILEBEAT_MODULE_VERSION}.tar.gz"
|
||||
WAZUH_UI_REVISION="${WAZUH_TAG_REVISION}"
|
||||
|
||||
if [ "${WAZUH_DEV_STAGE}" ];then
|
||||
FILEBEAT_TEMPLATE_BRANCH="v${FILEBEAT_TEMPLATE_BRANCH}-${WAZUH_DEV_STAGE,,}"
|
||||
if ! curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then
|
||||
echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}"
|
||||
clean 1
|
||||
fi
|
||||
else
|
||||
if curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/v${FILEBEAT_TEMPLATE_BRANCH}"; then
|
||||
FILEBEAT_TEMPLATE_BRANCH="v${FILEBEAT_TEMPLATE_BRANCH}"
|
||||
elif curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then
|
||||
FILEBEAT_TEMPLATE_BRANCH="${FILEBEAT_TEMPLATE_BRANCH}"
|
||||
else
|
||||
WAZUH_MASTER_VERSION="$(curl -s https://raw.githubusercontent.com/wazuh/wazuh/master/src/VERSION | sed -e 's/v//g')"
|
||||
if [ "${FILEBEAT_TEMPLATE_BRANCH}" == "${WAZUH_MASTER_VERSION}" ]; then
|
||||
FILEBEAT_TEMPLATE_BRANCH="master"
|
||||
else
|
||||
echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}"
|
||||
clean 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > .env
|
||||
echo WAZUH_IMAGE_VERSION=$WAZUH_IMAGE_VERSION >> .env
|
||||
echo WAZUH_TAG_REVISION=$WAZUH_TAG_REVISION >> .env
|
||||
echo FILEBEAT_TEMPLATE_BRANCH=$FILEBEAT_TEMPLATE_BRANCH >> .env
|
||||
echo WAZUH_FILEBEAT_MODULE=$WAZUH_FILEBEAT_MODULE >> .env
|
||||
echo WAZUH_UI_REVISION=$WAZUH_UI_REVISION >> .env
|
||||
|
||||
docker compose -f build-docker-images/build-images.yml --env-file .env build --no-cache
|
||||
docker build -t wazuh/wazuh-cert-tool:$WAZUH_IMAGE_VERSION build-docker-images/cert-tool-image/
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
help() {
|
||||
echo
|
||||
echo "Usage: $0 [OPTIONS]"
|
||||
echo
|
||||
echo " -d, --dev <ref> [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default."
|
||||
echo " -f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default ${FILEBEAT_MODULE_VERSION}."
|
||||
echo " -r, --revision <rev> [Optional] Package revision. By default ${WAZUH_TAG_REVISION}"
|
||||
echo " -v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, ${WAZUH_IMAGE_VERSION}."
|
||||
echo " -h, --help Show this help."
|
||||
echo
|
||||
exit $1
|
||||
}
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
main() {
|
||||
while [ -n "${1}" ]
|
||||
do
|
||||
case "${1}" in
|
||||
"-h"|"--help")
|
||||
help 0
|
||||
;;
|
||||
"-d"|"--dev")
|
||||
if [ -n "${2}" ]; then
|
||||
WAZUH_DEV_STAGE="${2}"
|
||||
shift 2
|
||||
else
|
||||
help 1
|
||||
fi
|
||||
;;
|
||||
"-f"|"--filebeat-module")
|
||||
if [ -n "${2}" ]; then
|
||||
FILEBEAT_MODULE_VERSION="${2}"
|
||||
shift 2
|
||||
else
|
||||
help 1
|
||||
fi
|
||||
;;
|
||||
"-r"|"--revision")
|
||||
if [ -n "${2}" ]; then
|
||||
WAZUH_TAG_REVISION="${2}"
|
||||
shift 2
|
||||
else
|
||||
help 1
|
||||
fi
|
||||
;;
|
||||
"-v"|"--version")
|
||||
if [ -n "$2" ]; then
|
||||
WAZUH_IMAGE_VERSION="$2"
|
||||
shift 2
|
||||
else
|
||||
help 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
help 1
|
||||
esac
|
||||
done
|
||||
|
||||
build || clean 1
|
||||
|
||||
clean 0
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
@@ -1,6 +1,4 @@
|
||||
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
wazuh.manager:
|
||||
build:
|
||||
@@ -8,6 +6,8 @@ services:
|
||||
args:
|
||||
WAZUH_VERSION: ${WAZUH_VERSION}
|
||||
WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION}
|
||||
FILEBEAT_TEMPLATE_BRANCH: ${FILEBEAT_TEMPLATE_BRANCH}
|
||||
WAZUH_FILEBEAT_MODULE: ${WAZUH_FILEBEAT_MODULE}
|
||||
image: wazuh/wazuh-manager:${WAZUH_IMAGE_VERSION}
|
||||
hostname: wazuh.manager
|
||||
restart: always
|
||||
@@ -61,6 +61,7 @@ services:
|
||||
args:
|
||||
WAZUH_VERSION: ${WAZUH_VERSION}
|
||||
WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION}
|
||||
WAZUH_UI_REVISION: ${WAZUH_UI_REVISION}
|
||||
image: wazuh/wazuh-dashboard:${WAZUH_IMAGE_VERSION}
|
||||
hostname: wazuh.dashboard
|
||||
restart: always
|
||||
|
@@ -1,7 +1,8 @@
|
||||
# Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
||||
FROM ubuntu:focal
|
||||
FROM amazonlinux:2023
|
||||
|
||||
RUN apt-get update && apt-get install openssl curl -y
|
||||
RUN yum install curl-minimal openssl -y &&\
|
||||
yum clean all
|
||||
|
||||
WORKDIR /
|
||||
|
@@ -8,8 +8,8 @@
|
||||
## Variables
|
||||
CERT_TOOL=wazuh-certs-tool.sh
|
||||
PASSWORD_TOOL=wazuh-passwords-tool.sh
|
||||
PACKAGES_URL=https://packages.wazuh.com/4.4/
|
||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.4/
|
||||
PACKAGES_URL=https://packages.wazuh.com/5.0/
|
||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/5.0/
|
||||
|
||||
## Check if the cert tool exists in S3 buckets
|
||||
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
||||
@@ -17,13 +17,13 @@ CERT_TOOL_PACKAGES_DEV=$(curl --silent -I $PACKAGES_DEV_URL$CERT_TOOL | grep -E
|
||||
|
||||
## If cert tool exists in some bucket, download it, if not exit 1
|
||||
if [ "$CERT_TOOL_PACKAGES" = "200" ]; then
|
||||
curl -o $CERT_TOOL $PACKAGES_URL$CERT_TOOL
|
||||
echo "Cert tool exists in Packages bucket"
|
||||
curl -o $CERT_TOOL $PACKAGES_URL$CERT_TOOL -s
|
||||
echo "The tool to create the certificates exists in the in Packages bucket"
|
||||
elif [ "$CERT_TOOL_PACKAGES_DEV" = "200" ]; then
|
||||
curl -o $CERT_TOOL $PACKAGES_DEV_URL$CERT_TOOL
|
||||
echo "Cert tool exists in Packages-dev bucket"
|
||||
curl -o $CERT_TOOL $PACKAGES_DEV_URL$CERT_TOOL -s
|
||||
echo "The tool to create the certificates exists in Packages-dev bucket"
|
||||
else
|
||||
echo "Cert tool does not exist in any bucket"
|
||||
echo "The tool to create the certificates does not exist in any bucket"
|
||||
echo "ERROR: certificates were not created"
|
||||
exit 1
|
||||
fi
|
||||
@@ -38,12 +38,12 @@ chmod 700 /$CERT_TOOL
|
||||
|
||||
## Execute cert tool and parsin cert.yml to set UID permissions
|
||||
source /$CERT_TOOL -A
|
||||
nodes_server=$( cert_parseYaml /config.yml | grep nodes_server__name | sed 's/nodes_server__name=//' )
|
||||
nodes_server=$( cert_parseYaml /config.yml | grep -E "nodes[_]+server[_]+[0-9]+=" | sed -e 's/nodes__server__[0-9]=//' | sed 's/"//g' )
|
||||
node_names=($nodes_server)
|
||||
|
||||
echo "Moving created certificates to destination directory"
|
||||
echo "Moving created certificates to the destination directory"
|
||||
cp /wazuh-certificates/* /certificates/
|
||||
echo "changing certificate permissions"
|
||||
echo "Changing certificate permissions"
|
||||
chmod -R 500 /certificates
|
||||
chmod -R 400 /certificates/*
|
||||
echo "Setting UID indexer and dashboard"
|
||||
@@ -51,11 +51,12 @@ chown 1000:1000 /certificates/*
|
||||
echo "Setting UID for wazuh manager and worker"
|
||||
cp /certificates/root-ca.pem /certificates/root-ca-manager.pem
|
||||
cp /certificates/root-ca.key /certificates/root-ca-manager.key
|
||||
chown 101:101 /certificates/root-ca-manager.pem
|
||||
chown 101:101 /certificates/root-ca-manager.key
|
||||
chown 999:999 /certificates/root-ca-manager.pem
|
||||
chown 999:999 /certificates/root-ca-manager.key
|
||||
|
||||
for i in ${node_names[@]};
|
||||
do
|
||||
chown 101:101 "/certificates/${i}.pem"
|
||||
chown 101:101 "/certificates/${i}-key.pem"
|
||||
chown 999:999 "/certificates/${i}.pem"
|
||||
chown 999:999 "/certificates/${i}-key.pem"
|
||||
done
|
||||
|
@@ -1,40 +1,32 @@
|
||||
# Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
||||
FROM ubuntu:focal AS builder
|
||||
FROM amazonlinux:2023 AS builder
|
||||
|
||||
ARG WAZUH_VERSION
|
||||
ARG WAZUH_TAG_REVISION
|
||||
ARG WAZUH_UI_REVISION
|
||||
ARG INSTALL_DIR=/usr/share/wazuh-dashboard
|
||||
ARG WAZUH_UI_REVISION=1
|
||||
|
||||
# Update and install dependencies
|
||||
RUN apt-get update && apt install curl libcap2-bin xz-utils -y
|
||||
RUN yum install curl-minimal libcap openssl -y
|
||||
|
||||
# Create Install dir
|
||||
RUN mkdir -p $INSTALL_DIR
|
||||
COPY config/check_repository.sh /
|
||||
RUN chmod 775 /check_repository.sh && \
|
||||
source /check_repository.sh
|
||||
|
||||
# Download and extract Wazuh dashboard base
|
||||
COPY config/dl_base.sh .
|
||||
RUN bash dl_base.sh
|
||||
RUN yum install wazuh-dashboard-${WAZUH_VERSION}-${WAZUH_TAG_REVISION} -y && \
|
||||
yum clean all
|
||||
|
||||
# Create and set permissions to data directories
|
||||
RUN mkdir -p $INSTALL_DIR/data/wazuh && chmod -R 775 $INSTALL_DIR/data/wazuh
|
||||
RUN mkdir -p $INSTALL_DIR/data/wazuh/config && chmod -R 775 $INSTALL_DIR/data/wazuh/config
|
||||
RUN mkdir -p $INSTALL_DIR/data/wazuh/logs && chmod -R 775 $INSTALL_DIR/data/wazuh/logs
|
||||
COPY config/wazuh.yml $INSTALL_DIR/data/wazuh/config/
|
||||
|
||||
# Generate certificates
|
||||
COPY config/config.sh .
|
||||
COPY config/config.yml /
|
||||
RUN bash config.sh
|
||||
|
||||
COPY config/install_wazuh_app.sh /
|
||||
RUN chmod 775 /install_wazuh_app.sh
|
||||
RUN bash /install_wazuh_app.sh
|
||||
|
||||
# Copy and set permissions to config files
|
||||
COPY config/opensearch_dashboards.yml $INSTALL_DIR/config/
|
||||
COPY config/wazuh.yml $INSTALL_DIR/data/wazuh/config/
|
||||
RUN chown 101:101 $INSTALL_DIR/config/opensearch_dashboards.yml && chmod 664 $INSTALL_DIR/config/opensearch_dashboards.yml
|
||||
|
||||
# Create and set permissions to data directories
|
||||
RUN mkdir -p $INSTALL_DIR/data/wazuh && chown -R 101:101 $INSTALL_DIR/data/wazuh && chmod -R 775 $INSTALL_DIR/data/wazuh
|
||||
RUN mkdir -p $INSTALL_DIR/data/wazuh/config && chown -R 101:101 $INSTALL_DIR/data/wazuh/config && chmod -R 775 $INSTALL_DIR/data/wazuh/config
|
||||
RUN mkdir -p $INSTALL_DIR/data/wazuh/logs && chown -R 101:101 $INSTALL_DIR/data/wazuh/logs && chmod -R 775 $INSTALL_DIR/data/wazuh/logs
|
||||
|
||||
################################################################################
|
||||
# Build stage 1 (the current Wazuh dashboard image):
|
||||
#
|
||||
@@ -42,7 +34,7 @@ RUN mkdir -p $INSTALL_DIR/data/wazuh/logs && chown -R 101:101 $INSTALL_DIR/data/
|
||||
# Add entrypoint
|
||||
# Add wazuh_app_config
|
||||
################################################################################
|
||||
FROM ubuntu:focal
|
||||
FROM amazonlinux:2023
|
||||
|
||||
# Set environment variables
|
||||
ENV USER="wazuh-dashboard" \
|
||||
@@ -56,19 +48,6 @@ ENV PATTERN="" \
|
||||
CHECKS_TEMPLATE="" \
|
||||
CHECKS_API="" \
|
||||
CHECKS_SETUP="" \
|
||||
EXTENSIONS_PCI="" \
|
||||
EXTENSIONS_GDPR="" \
|
||||
EXTENSIONS_HIPAA="" \
|
||||
EXTENSIONS_NIST="" \
|
||||
EXTENSIONS_TSC="" \
|
||||
EXTENSIONS_AUDIT="" \
|
||||
EXTENSIONS_OSCAP="" \
|
||||
EXTENSIONS_CISCAT="" \
|
||||
EXTENSIONS_AWS="" \
|
||||
EXTENSIONS_GCP="" \
|
||||
EXTENSIONS_VIRUSTOTAL="" \
|
||||
EXTENSIONS_OSQUERY="" \
|
||||
EXTENSIONS_DOCKER="" \
|
||||
APP_TIMEOUT="" \
|
||||
API_SELECTOR="" \
|
||||
IP_SELECTOR="" \
|
||||
@@ -78,8 +57,8 @@ ENV PATTERN="" \
|
||||
WAZUH_MONITORING_SHARDS="" \
|
||||
WAZUH_MONITORING_REPLICAS=""
|
||||
|
||||
# Install dependencies
|
||||
RUN apt update && apt install -y libnss3-dev fonts-liberation libfontconfig1
|
||||
# Update and install dependencies
|
||||
RUN yum install shadow-utils -y
|
||||
|
||||
# Create wazuh-dashboard user and group
|
||||
RUN getent group $GROUP || groupadd -r -g 1000 $GROUP
|
||||
@@ -102,6 +81,19 @@ RUN chown 1000:1000 /*.sh
|
||||
# Copy Install dir from builder to current image
|
||||
COPY --from=builder --chown=1000:1000 $INSTALL_DIR $INSTALL_DIR
|
||||
|
||||
# Create custom directory
|
||||
RUN mkdir -p /usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom
|
||||
RUN chown 1000:1000 /usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom
|
||||
|
||||
# Set $JAVA_HOME
|
||||
RUN echo "export JAVA_HOME=$INSTALL_DIR/jdk" >> /etc/profile.d/java_home.sh && \
|
||||
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile.d/java_home.sh
|
||||
ENV JAVA_HOME=$INSTALL_DIR/jdk
|
||||
ENV PATH=$PATH:$JAVA_HOME/bin:$INSTALL_DIR/bin
|
||||
|
||||
# Add k-NN lib directory to library loading path variable
|
||||
ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INSTALL_DIR/plugins/opensearch-knn/lib"
|
||||
|
||||
# Set workdir and user
|
||||
WORKDIR $INSTALL_DIR
|
||||
USER wazuh-dashboard
|
||||
@@ -110,3 +102,5 @@ USER wazuh-dashboard
|
||||
EXPOSE 443
|
||||
|
||||
ENTRYPOINT [ "/entrypoint.sh" ]
|
||||
|
||||
CMD ["opensearch-dashboards"]
|
||||
|
@@ -0,0 +1,15 @@
|
||||
## variables
|
||||
APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH
|
||||
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
||||
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages-dev.wazuh.com/pre-release/yum/\nprotect=1"
|
||||
WAZUH_TAG=$(curl --silent https://api.github.com/repos/wazuh/wazuh/git/refs/tags | grep '["]ref["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 11- | grep ^v${WAZUH_VERSION}$)
|
||||
|
||||
## check tag to use the correct repository
|
||||
if [[ -n "${WAZUH_TAG}" ]]; then
|
||||
APT_KEY=https://packages.wazuh.com/key/GPG-KEY-WAZUH
|
||||
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
||||
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages.wazuh.com/4.x/yum/\nprotect=1"
|
||||
fi
|
||||
|
||||
rpm --import "${APT_KEY}"
|
||||
echo -e "${REPOSITORY}" | tee /etc/yum.repos.d/wazuh.repo
|
@@ -9,8 +9,8 @@ export CONFIG_DIR=${INSTALLATION_DIR}/config
|
||||
|
||||
## Variables
|
||||
CERT_TOOL=wazuh-certs-tool.sh
|
||||
PACKAGES_URL=https://packages.wazuh.com/4.4/
|
||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.4/
|
||||
PACKAGES_URL=https://packages.wazuh.com/5.0/
|
||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/5.0/
|
||||
|
||||
## Check if the cert tool exists in S3 buckets
|
||||
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
||||
@@ -34,8 +34,8 @@ chmod 755 $CERT_TOOL && bash /$CERT_TOOL -A
|
||||
mkdir -p ${CONFIG_DIR}/certs
|
||||
|
||||
# Copy Wazuh dashboard certs to install config dir
|
||||
cp /wazuh-certificates/demo.dashboard.pem ${CONFIG_DIR}/certs/dashboard.pem
|
||||
cp /wazuh-certificates/demo.dashboard-key.pem ${CONFIG_DIR}/certs/dashboard-key.pem
|
||||
cp /wazuh-certificates/dashboard.pem ${CONFIG_DIR}/certs/dashboard.pem
|
||||
cp /wazuh-certificates/dashboard-key.pem ${CONFIG_DIR}/certs/dashboard-key.pem
|
||||
cp /wazuh-certificates/root-ca.pem ${CONFIG_DIR}/certs/root-ca.pem
|
||||
|
||||
chmod -R 500 ${CONFIG_DIR}/certs
|
||||
|
@@ -1,5 +1,5 @@
|
||||
nodes:
|
||||
# Wazuh dashboard server nodes
|
||||
dashboard:
|
||||
- name: demo.dashboard
|
||||
ip: demo.dashboard
|
||||
- name: dashboard
|
||||
ip: wazuh.dashboard
|
||||
|
@@ -1,25 +0,0 @@
|
||||
REPOSITORY="packages.wazuh.com/4.x"
|
||||
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2-)
|
||||
MAJOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f1)
|
||||
MID_BUILD=$(echo $WAZUH_VERSION | cut -d. -f2)
|
||||
MINOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f3)
|
||||
MAJOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f1)
|
||||
MID_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f2)
|
||||
MINOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f3)
|
||||
|
||||
## check version to use the correct repository
|
||||
if [ "$MAJOR_BUILD" -gt "$MAJOR_CURRENT" ]; then
|
||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
||||
elif [ "$MAJOR_BUILD" -eq "$MAJOR_CURRENT" ]; then
|
||||
if [ "$MID_BUILD" -gt "$MID_CURRENT" ]; then
|
||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
||||
elif [ "$MID_BUILD" -eq "$MID_CURRENT" ]; then
|
||||
if [ "$MINOR_BUILD" -gt "$MINOR_CURRENT" ]; then
|
||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
curl -o wazuh-dashboard-base.tar.xz https://${REPOSITORY}/stack/dashboard/wazuh-dashboard-base-${WAZUH_VERSION}-${WAZUH_TAG_REVISION}-linux-x64.tar.xz
|
||||
tar -xf wazuh-dashboard-base.tar.xz --directory $INSTALL_DIR --strip-components=1
|
@@ -2,6 +2,215 @@
|
||||
# Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
||||
|
||||
INSTALL_DIR=/usr/share/wazuh-dashboard
|
||||
export OPENSEARCH_DASHBOARDS_HOME=$INSTALL_DIR
|
||||
WAZUH_CONFIG_MOUNT=/wazuh-config-mount
|
||||
|
||||
opensearch_dashboards_vars=(
|
||||
console.enabled
|
||||
console.proxyConfig
|
||||
console.proxyFilter
|
||||
ops.cGroupOverrides.cpuPath
|
||||
ops.cGroupOverrides.cpuAcctPath
|
||||
cpu.cgroup.path.override
|
||||
cpuacct.cgroup.path.override
|
||||
server.basePath
|
||||
server.customResponseHeaders
|
||||
server.compression.enabled
|
||||
server.compression.referrerWhitelist
|
||||
server.cors
|
||||
server.cors.origin
|
||||
server.defaultRoute
|
||||
server.host
|
||||
server.keepAliveTimeout
|
||||
server.maxPayloadBytes
|
||||
server.name
|
||||
server.port
|
||||
csp.rules
|
||||
csp.strict
|
||||
csp.warnLegacyBrowsers
|
||||
data.search.usageTelemetry.enabled
|
||||
opensearch.customHeaders
|
||||
opensearch.hosts
|
||||
opensearch.logQueries
|
||||
opensearch.memoryCircuitBreaker.enabled
|
||||
opensearch.memoryCircuitBreaker.maxPercentage
|
||||
opensearch.password
|
||||
opensearch.pingTimeout
|
||||
opensearch.requestHeadersWhitelist
|
||||
opensearch.requestHeadersAllowlist
|
||||
opensearch_security.multitenancy.enabled
|
||||
opensearch_security.readonly_mode.roles
|
||||
opensearch.requestTimeout
|
||||
opensearch.shardTimeout
|
||||
opensearch.sniffInterval
|
||||
opensearch.sniffOnConnectionFault
|
||||
opensearch.sniffOnStart
|
||||
opensearch.ssl.alwaysPresentCertificate
|
||||
opensearch.ssl.certificate
|
||||
opensearch.ssl.key
|
||||
opensearch.ssl.keyPassphrase
|
||||
opensearch.ssl.keystore.path
|
||||
opensearch.ssl.keystore.password
|
||||
opensearch.ssl.truststore.path
|
||||
opensearch.ssl.truststore.password
|
||||
opensearch.ssl.verificationMode
|
||||
opensearch.username
|
||||
i18n.locale
|
||||
interpreter.enableInVisualize
|
||||
opensearchDashboards.autocompleteTerminateAfter
|
||||
opensearchDashboards.autocompleteTimeout
|
||||
opensearchDashboards.defaultAppId
|
||||
opensearchDashboards.index
|
||||
logging.dest
|
||||
logging.json
|
||||
logging.quiet
|
||||
logging.rotate.enabled
|
||||
logging.rotate.everyBytes
|
||||
logging.rotate.keepFiles
|
||||
logging.rotate.pollingInterval
|
||||
logging.rotate.usePolling
|
||||
logging.silent
|
||||
logging.useUTC
|
||||
logging.verbose
|
||||
map.includeOpenSearchMapsService
|
||||
map.proxyOpenSearchMapsServiceInMaps
|
||||
map.regionmap
|
||||
map.tilemap.options.attribution
|
||||
map.tilemap.options.maxZoom
|
||||
map.tilemap.options.minZoom
|
||||
map.tilemap.options.subdomains
|
||||
map.tilemap.url
|
||||
monitoring.cluster_alerts.email_notifications.email_address
|
||||
monitoring.enabled
|
||||
monitoring.opensearchDashboards.collection.enabled
|
||||
monitoring.opensearchDashboards.collection.interval
|
||||
monitoring.ui.container.opensearch.enabled
|
||||
monitoring.ui.container.logstash.enabled
|
||||
monitoring.ui.opensearch.password
|
||||
monitoring.ui.opensearch.pingTimeout
|
||||
monitoring.ui.opensearch.hosts
|
||||
monitoring.ui.opensearch.username
|
||||
monitoring.ui.opensearch.logFetchCount
|
||||
monitoring.ui.opensearch.ssl.certificateAuthorities
|
||||
monitoring.ui.opensearch.ssl.verificationMode
|
||||
monitoring.ui.enabled
|
||||
monitoring.ui.max_bucket_size
|
||||
monitoring.ui.min_interval_seconds
|
||||
newsfeed.enabled
|
||||
ops.interval
|
||||
path.data
|
||||
pid.file
|
||||
regionmap
|
||||
security.showInsecureClusterWarning
|
||||
server.rewriteBasePath
|
||||
server.socketTimeout
|
||||
server.customResponseHeaders
|
||||
server.ssl.enabled
|
||||
server.ssl.key
|
||||
server.ssl.keyPassphrase
|
||||
server.ssl.keystore.path
|
||||
server.ssl.keystore.password
|
||||
server.ssl.truststore.path
|
||||
server.ssl.truststore.password
|
||||
server.ssl.cert
|
||||
server.ssl.certificate
|
||||
server.ssl.certificateAuthorities
|
||||
server.ssl.cipherSuites
|
||||
server.ssl.clientAuthentication
|
||||
opensearch.ssl.certificateAuthorities
|
||||
server.ssl.redirectHttpFromPort
|
||||
server.ssl.supportedProtocols
|
||||
server.xsrf.disableProtection
|
||||
server.xsrf.whitelist
|
||||
status.allowAnonymous
|
||||
status.v6ApiFormat
|
||||
tilemap.options.attribution
|
||||
tilemap.options.maxZoom
|
||||
tilemap.options.minZoom
|
||||
tilemap.options.subdomains
|
||||
tilemap.url
|
||||
timeline.enabled
|
||||
vega.enableExternalUrls
|
||||
apm_oss.apmAgentConfigurationIndex
|
||||
apm_oss.indexPattern
|
||||
apm_oss.errorIndices
|
||||
apm_oss.onboardingIndices
|
||||
apm_oss.spanIndices
|
||||
apm_oss.sourcemapIndices
|
||||
apm_oss.transactionIndices
|
||||
apm_oss.metricsIndices
|
||||
telemetry.allowChangingOptInStatus
|
||||
telemetry.enabled
|
||||
telemetry.optIn
|
||||
telemetry.optInStatusUrl
|
||||
telemetry.sendUsageFrom
|
||||
vis_builder.enabled
|
||||
data_source.enabled
|
||||
data_source.encryption.wrappingKeyName
|
||||
data_source.encryption.wrappingKeyNamespace
|
||||
data_source.encryption.wrappingKey
|
||||
data_source.audit.enabled
|
||||
data_source.audit.appender.kind
|
||||
data_source.audit.appender.path
|
||||
data_source.audit.appender.layout.kind
|
||||
data_source.audit.appender.layout.highlight
|
||||
data_source.audit.appender.layout.pattern
|
||||
ml_commons_dashboards.enabled
|
||||
assistant.chat.enabled
|
||||
observability.query_assist.enabled
|
||||
uiSettings.overrides.defaultRoute
|
||||
)
|
||||
|
||||
print() {
|
||||
echo -e $1
|
||||
}
|
||||
|
||||
error_and_exit() {
|
||||
echo "Error executing command: '$1'."
|
||||
echo 'Exiting.'
|
||||
exit 1
|
||||
}
|
||||
|
||||
exec_cmd() {
|
||||
eval $1 > /dev/null 2>&1 || error_and_exit "$1"
|
||||
}
|
||||
|
||||
exec_cmd_stdout() {
|
||||
eval $1 2>&1 || error_and_exit "$1"
|
||||
}
|
||||
|
||||
function runOpensearchDashboards {
|
||||
touch $OPENSEARCH_DASHBOARDS_HOME/config/opensearch_dashboards.yml
|
||||
for opensearch_dashboards_var in ${opensearch_dashboards_vars[*]}; do
|
||||
env_var=$(echo ${opensearch_dashboards_var^^} | tr . _)
|
||||
value=${!env_var}
|
||||
if [[ -n $value ]]; then
|
||||
longoptfile="${opensearch_dashboards_var}: ${value}"
|
||||
if grep -q $opensearch_dashboards_var $OPENSEARCH_DASHBOARDS_HOME/config/opensearch_dashboards.yml; then
|
||||
sed -i "/${opensearch_dashboards_var}/ s|^.*$|${longoptfile}|" $OPENSEARCH_DASHBOARDS_HOME/config/opensearch_dashboards.yml
|
||||
else
|
||||
echo $longoptfile >> $OPENSEARCH_DASHBOARDS_HOME/config/opensearch_dashboards.yml
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
umask 0002
|
||||
|
||||
/usr/share/wazuh-dashboard/bin/opensearch-dashboards -c $OPENSEARCH_DASHBOARDS_HOME/config/opensearch_dashboards.yml \
|
||||
--cpu.cgroup.path.override=/ \
|
||||
--cpuacct.cgroup.path.override=/
|
||||
}
|
||||
|
||||
mount_files() {
|
||||
if [ -e $WAZUH_CONFIG_MOUNT/* ]
|
||||
then
|
||||
print "Identified Wazuh cdashboard onfiguration files to mount..."
|
||||
exec_cmd_stdout "cp --verbose -r $WAZUH_CONFIG_MOUNT/* $INSTALL_DIR"
|
||||
else
|
||||
print "No Wazuh dashboard configuration files to mount..."
|
||||
fi
|
||||
}
|
||||
|
||||
DASHBOARD_USERNAME="${DASHBOARD_USERNAME:-kibanaserver}"
|
||||
DASHBOARD_PASSWORD="${DASHBOARD_PASSWORD:-kibanaserver}"
|
||||
|
||||
@@ -17,4 +226,14 @@ echo $DASHBOARD_PASSWORD | $INSTALL_DIR/bin/opensearch-dashboards-keystore add o
|
||||
|
||||
/wazuh_app_config.sh $WAZUH_UI_REVISION
|
||||
|
||||
/usr/share/wazuh-dashboard/bin/opensearch-dashboards -c /usr/share/wazuh-dashboard/config/opensearch_dashboards.yml
|
||||
mount_files
|
||||
|
||||
if [ $# -eq 0 ] || [ "${1:0:1}" = '-' ]; then
|
||||
set -- opensearch-dashboards "$@"
|
||||
fi
|
||||
|
||||
if [ "$1" = "opensearch-dashboards" ]; then
|
||||
runOpensearchDashboards "$@"
|
||||
else
|
||||
exec "$@"
|
||||
fi
|
||||
|
@@ -1,25 +0,0 @@
|
||||
## variables
|
||||
WAZUH_APP=https://packages.wazuh.com/4.x/ui/dashboard/wazuh-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
||||
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2-)
|
||||
MAJOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f1)
|
||||
MID_BUILD=$(echo $WAZUH_VERSION | cut -d. -f2)
|
||||
MINOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f3)
|
||||
MAJOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f1)
|
||||
MID_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f2)
|
||||
MINOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f3)
|
||||
|
||||
## check version to use the correct repository
|
||||
if [ "$MAJOR_BUILD" -gt "$MAJOR_CURRENT" ]; then
|
||||
WAZUH_APP=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuh-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
||||
elif [ "$MAJOR_BUILD" -eq "$MAJOR_CURRENT" ]; then
|
||||
if [ "$MID_BUILD" -gt "$MID_CURRENT" ]; then
|
||||
WAZUH_APP=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuh-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
||||
elif [ "$MID_BUILD" -eq "$MID_CURRENT" ]; then
|
||||
if [ "$MINOR_BUILD" -gt "$MINOR_CURRENT" ]; then
|
||||
WAZUH_APP=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuh-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install Wazuh App
|
||||
$INSTALL_DIR/bin/opensearch-dashboards-plugin install $WAZUH_APP --allow-root
|
@@ -1,13 +0,0 @@
|
||||
server.host: 0.0.0.0
|
||||
server.port: 5601
|
||||
opensearch.hosts: https://wazuh.indexer:9200
|
||||
opensearch.ssl.verificationMode: none
|
||||
opensearch.requestHeadersWhitelist: [ authorization,securitytenant ]
|
||||
opensearch_security.multitenancy.enabled: false
|
||||
opensearch_security.readonly_mode.roles: ["kibana_read_only"]
|
||||
server.ssl.enabled: true
|
||||
server.ssl.key: "/usr/share/wazuh-dashboard/config/certs/dashboard-key.pem"
|
||||
server.ssl.certificate: "/usr/share/wazuh-dashboard/config/certs/dashboard.pem"
|
||||
opensearch.ssl.certificateAuthorities: ["/usr/share/wazuh-dashboard/config/certs/root-ca.pem"]
|
||||
uiSettings.overrides.defaultRoute: /app/wazuh
|
||||
|
@@ -16,7 +16,7 @@
|
||||
# https://documentation.wazuh.com/current/installation-guide/index.html
|
||||
#
|
||||
# Also, you can check our repository:
|
||||
# https://github.com/wazuh/wazuh-kibana-app
|
||||
# https://github.com/wazuh/wazuh-dashboard-plugins
|
||||
#
|
||||
# ------------------------------- Index patterns -------------------------------
|
||||
#
|
||||
|
@@ -15,19 +15,6 @@ declare -A CONFIG_MAP=(
|
||||
[checks.template]=$CHECKS_TEMPLATE
|
||||
[checks.api]=$CHECKS_API
|
||||
[checks.setup]=$CHECKS_SETUP
|
||||
[extensions.pci]=$EXTENSIONS_PCI
|
||||
[extensions.gdpr]=$EXTENSIONS_GDPR
|
||||
[extensions.hipaa]=$EXTENSIONS_HIPAA
|
||||
[extensions.nist]=$EXTENSIONS_NIST
|
||||
[extensions.tsc]=$EXTENSIONS_TSC
|
||||
[extensions.audit]=$EXTENSIONS_AUDIT
|
||||
[extensions.oscap]=$EXTENSIONS_OSCAP
|
||||
[extensions.ciscat]=$EXTENSIONS_CISCAT
|
||||
[extensions.aws]=$EXTENSIONS_AWS
|
||||
[extensions.gcp]=$EXTENSIONS_GCP
|
||||
[extensions.virustotal]=$EXTENSIONS_VIRUSTOTAL
|
||||
[extensions.osquery]=$EXTENSIONS_OSQUERY
|
||||
[extensions.docker]=$EXTENSIONS_DOCKER
|
||||
[timeout]=$APP_TIMEOUT
|
||||
[api.selector]=$API_SELECTOR
|
||||
[ip.selector]=$IP_SELECTOR
|
||||
|
@@ -1,10 +1,17 @@
|
||||
# Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
||||
FROM ubuntu:focal AS builder
|
||||
FROM amazonlinux:2023 AS builder
|
||||
|
||||
ARG WAZUH_VERSION
|
||||
ARG WAZUH_TAG_REVISION
|
||||
|
||||
RUN apt-get update -y && apt-get install curl openssl xz-utils -y
|
||||
RUN yum install curl-minimal openssl xz tar findutils shadow-utils -y
|
||||
|
||||
COPY config/check_repository.sh /
|
||||
RUN chmod 775 /check_repository.sh && \
|
||||
source /check_repository.sh
|
||||
|
||||
RUN yum install wazuh-indexer-${WAZUH_VERSION}-${WAZUH_TAG_REVISION} -y && \
|
||||
yum clean all
|
||||
|
||||
COPY config/opensearch.yml /
|
||||
|
||||
@@ -12,12 +19,6 @@ COPY config/config.sh .
|
||||
|
||||
COPY config/config.yml /
|
||||
|
||||
COPY config/internal_users.yml /
|
||||
|
||||
COPY config/roles_mapping.yml /
|
||||
|
||||
COPY config/roles.yml /
|
||||
|
||||
RUN bash config.sh
|
||||
|
||||
################################################################################
|
||||
@@ -25,14 +26,26 @@ RUN bash config.sh
|
||||
#
|
||||
# Copy wazuh-indexer from stage 0
|
||||
# Add entrypoint
|
||||
|
||||
################################################################################
|
||||
FROM ubuntu:focal
|
||||
FROM amazonlinux:2023
|
||||
|
||||
ENV USER="wazuh-indexer" \
|
||||
GROUP="wazuh-indexer" \
|
||||
NAME="wazuh-indexer" \
|
||||
INSTALL_DIR="/usr/share/wazuh-indexer"
|
||||
|
||||
# Set $JAVA_HOME
|
||||
RUN echo "export JAVA_HOME=$INSTALL_DIR/jdk" >> /etc/profile.d/java_home.sh && \
|
||||
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile.d/java_home.sh
|
||||
ENV JAVA_HOME="$INSTALL_DIR/jdk"
|
||||
ENV PATH=$PATH:$JAVA_HOME/bin:$INSTALL_DIR/bin
|
||||
|
||||
# Add k-NN lib directory to library loading path variable
|
||||
ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INSTALL_DIR/plugins/opensearch-knn/lib"
|
||||
|
||||
RUN yum install curl-minimal shadow-utils findutils hostname -y
|
||||
|
||||
RUN getent group $GROUP || groupadd -r -g 1000 $GROUP
|
||||
|
||||
RUN useradd --system \
|
||||
@@ -54,7 +67,8 @@ RUN chmod 700 /entrypoint.sh && chmod 700 /securityadmin.sh
|
||||
|
||||
RUN chown 1000:1000 /*.sh
|
||||
|
||||
COPY --from=builder --chown=1000:1000 /debian/wazuh-indexer/usr/share/wazuh-indexer /usr/share/wazuh-indexer
|
||||
COPY --from=builder --chown=1000:1000 /usr/share/wazuh-indexer /usr/share/wazuh-indexer
|
||||
COPY --from=builder --chown=1000:1000 /etc/wazuh-indexer /usr/share/wazuh-indexer
|
||||
COPY --from=builder --chown=0:0 /debian/wazuh-indexer/usr/lib/systemd /usr/lib/systemd
|
||||
COPY --from=builder --chown=0:0 /debian/wazuh-indexer/usr/lib/sysctl.d /usr/lib/sysctl.d
|
||||
COPY --from=builder --chown=0:0 /debian/wazuh-indexer/usr/lib/tmpfiles.d /usr/lib/tmpfiles.d
|
||||
|
15
build-docker-images/wazuh-indexer/config/check_repository.sh
Normal file
15
build-docker-images/wazuh-indexer/config/check_repository.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
## variables
|
||||
APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH
|
||||
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
||||
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages-dev.wazuh.com/pre-release/yum/\nprotect=1"
|
||||
WAZUH_TAG=$(curl --silent https://api.github.com/repos/wazuh/wazuh/git/refs/tags | grep '["]ref["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 11- | grep ^v${WAZUH_VERSION}$)
|
||||
|
||||
## check tag to use the correct repository
|
||||
if [[ -n "${WAZUH_TAG}" ]]; then
|
||||
APT_KEY=https://packages.wazuh.com/key/GPG-KEY-WAZUH
|
||||
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
||||
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages.wazuh.com/4.x/yum/\nprotect=1"
|
||||
fi
|
||||
|
||||
rpm --import "${APT_KEY}"
|
||||
echo -e "${REPOSITORY}" | tee /etc/yum.repos.d/wazuh.repo
|
@@ -19,42 +19,11 @@ export INDEXER_FILE=wazuh-indexer-base.tar.xz
|
||||
export BASE_FILE=wazuh-indexer-base-${VERSION}-linux-x64.tar.xz
|
||||
export REPO_DIR=/unattended_installer
|
||||
|
||||
rm -rf ${INSTALLATION_DIR}/
|
||||
|
||||
## variables
|
||||
REPOSITORY="packages.wazuh.com/4.x"
|
||||
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2-)
|
||||
MAJOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f1)
|
||||
MID_BUILD=$(echo $WAZUH_VERSION | cut -d. -f2)
|
||||
MINOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f3)
|
||||
MAJOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f1)
|
||||
MID_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f2)
|
||||
MINOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f3)
|
||||
|
||||
## check version to use the correct repository
|
||||
if [ "$MAJOR_BUILD" -gt "$MAJOR_CURRENT" ]; then
|
||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
||||
elif [ "$MAJOR_BUILD" -eq "$MAJOR_CURRENT" ]; then
|
||||
if [ "$MID_BUILD" -gt "$MID_CURRENT" ]; then
|
||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
||||
elif [ "$MID_BUILD" -eq "$MID_CURRENT" ]; then
|
||||
if [ "$MINOR_BUILD" -gt "$MINOR_CURRENT" ]; then
|
||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
curl -o ${INDEXER_FILE} https://${REPOSITORY}/stack/indexer/${BASE_FILE}
|
||||
tar -xf ${INDEXER_FILE}
|
||||
|
||||
## TOOLS
|
||||
|
||||
## Variables
|
||||
CERT_TOOL=wazuh-certs-tool.sh
|
||||
PASSWORD_TOOL=wazuh-passwords-tool.sh
|
||||
PACKAGES_URL=https://packages.wazuh.com/4.4/
|
||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.4/
|
||||
PACKAGES_URL=https://packages.wazuh.com/5.0/
|
||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/5.0/
|
||||
|
||||
## Check if the cert tool exists in S3 buckets
|
||||
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
||||
@@ -103,23 +72,10 @@ mkdir -p ${TARGET_DIR}/usr/lib/tmpfiles.d
|
||||
mkdir -p ${TARGET_DIR}/usr/lib/sysctl.d
|
||||
mkdir -p ${TARGET_DIR}/usr/lib/systemd/system
|
||||
mkdir -p ${TARGET_DIR}${CONFIG_DIR}/certs
|
||||
# Move configuration files for wazuh-indexer
|
||||
mv -f ${BASE_DIR}/etc/init.d/${NAME} ${TARGET_DIR}/etc/init.d/${NAME}
|
||||
mv -f ${BASE_DIR}/etc/wazuh-indexer/* ${TARGET_DIR}${CONFIG_DIR}
|
||||
mv -f ${BASE_DIR}/etc/sysconfig/${NAME} ${TARGET_DIR}/etc/default/
|
||||
mv -f ${BASE_DIR}/usr/lib/tmpfiles.d/* ${TARGET_DIR}/usr/lib/tmpfiles.d/
|
||||
mv -f ${BASE_DIR}/usr/lib/sysctl.d/* ${TARGET_DIR}/usr/lib/sysctl.d/
|
||||
mv -f ${BASE_DIR}/usr/lib/systemd/system/* ${TARGET_DIR}/usr/lib/systemd/system/
|
||||
rm -rf ${BASE_DIR}/etc
|
||||
rm -rf ${BASE_DIR}/usr
|
||||
# Copy installation files to final location
|
||||
cp -pr ${BASE_DIR}/* ${TARGET_DIR}${INSTALLATION_DIR}
|
||||
# Copy the security tools
|
||||
cp /$CERT_TOOL ${TARGET_DIR}${INSTALLATION_DIR}/plugins/opensearch-security/tools/
|
||||
cp /$PASSWORD_TOOL ${TARGET_DIR}${INSTALLATION_DIR}/plugins/opensearch-security/tools/
|
||||
# Copy Wazuh's config files for the security plugin
|
||||
cp -pr /roles_mapping.yml ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
|
||||
cp -pr /roles.yml ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
|
||||
cp -pr /action_groups.yml ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
|
||||
cp -pr /internal_users.yml ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
|
||||
cp -pr /opensearch.yml ${TARGET_DIR}${CONFIG_DIR}
|
||||
# Copy Wazuh indexer's certificates
|
||||
@@ -131,8 +87,16 @@ cp -pr /wazuh-certificates/admin.pem ${TARGET_DIR}${CONFIG_DIR}/certs/admin.pem
|
||||
cp -pr /wazuh-certificates/admin-key.pem ${TARGET_DIR}${CONFIG_DIR}/certs/admin-key.pem
|
||||
|
||||
# Delete xms and xmx parameters in jvm.options
|
||||
sed '/-Xms/d' -i ${TARGET_DIR}${CONFIG_DIR}/jvm.options
|
||||
sed '/-Xmx/d' -i ${TARGET_DIR}${CONFIG_DIR}/jvm.options
|
||||
sed '/-Xms/d' -i /etc/wazuh-indexer/jvm.options
|
||||
sed '/-Xmx/d' -i /etc/wazuh-indexer/jvm.options
|
||||
sed -i 's/-Djava.security.policy=file:\/\/\/etc\/wazuh-indexer\/opensearch-performance-analyzer\/opensearch_security.policy/-Djava.security.policy=file:\/\/\/usr\/share\/wazuh-indexer\/opensearch-performance-analyzer\/opensearch_security.policy/g' /etc/wazuh-indexer/jvm.options
|
||||
|
||||
|
||||
chmod -R 500 ${TARGET_DIR}${CONFIG_DIR}/certs
|
||||
chmod -R 400 ${TARGET_DIR}${CONFIG_DIR}/certs/*
|
||||
chmod -R 400 ${TARGET_DIR}${CONFIG_DIR}/certs/*
|
||||
|
||||
find ${TARGET_DIR} -type d -exec chmod 750 {} \;
|
||||
find ${TARGET_DIR} -type f -perm 644 -exec chmod 640 {} \;
|
||||
find ${TARGET_DIR} -type f -perm 664 -exec chmod 660 {} \;
|
||||
find ${TARGET_DIR} -type f -perm 755 -exec chmod 750 {} \;
|
||||
find ${TARGET_DIR} -type f -perm 744 -exec chmod 740 {} \;
|
||||
|
@@ -7,12 +7,272 @@ umask 0002
|
||||
export USER=wazuh-indexer
|
||||
export INSTALLATION_DIR=/usr/share/wazuh-indexer
|
||||
export OPENSEARCH_PATH_CONF=${INSTALLATION_DIR}
|
||||
export JAVA_HOME=${INSTALLATION_DIR}/jdk
|
||||
export DISCOVERY=$(grep -oP "(?<=discovery.type: ).*" ${OPENSEARCH_PATH_CONF}/opensearch.yml)
|
||||
export CACERT=$(grep -oP "(?<=plugins.security.ssl.transport.pemtrustedcas_filepath: ).*" ${OPENSEARCH_PATH_CONF}/opensearch.yml)
|
||||
export CERT="${OPENSEARCH_PATH_CONF}/certs/admin.pem"
|
||||
export KEY="${OPENSEARCH_PATH_CONF}/certs/admin-key.pem"
|
||||
|
||||
opensearch_vars=(
|
||||
cluster.name
|
||||
node.name
|
||||
node.roles
|
||||
path.data
|
||||
path.logs
|
||||
bootstrap.memory_lock
|
||||
network.host
|
||||
http.port
|
||||
transport.port
|
||||
network.bind_host
|
||||
network.publish_host
|
||||
transport.tcp.port
|
||||
compatibility.override_main_response_version
|
||||
http.host
|
||||
http.bind_host
|
||||
http.publish_host
|
||||
http.compression
|
||||
transport.host
|
||||
transport.bind_host
|
||||
transport.publish_host
|
||||
discovery.seed_hosts
|
||||
discovery.seed_providers
|
||||
discovery.type
|
||||
cluster.initial_cluster_manager_nodes
|
||||
cluster.initial_master_nodes
|
||||
node.max_local_storage_nodes
|
||||
gateway.recover_after_nodes
|
||||
gateway.recover_after_data_nodes
|
||||
gateway.expected_data_nodes
|
||||
gateway.recover_after_time
|
||||
plugins.security.nodes_dn
|
||||
plugins.security.nodes_dn_dynamic_config_enabled
|
||||
plugins.security.authcz.admin_dn
|
||||
plugins.security.roles_mapping_resolution
|
||||
plugins.security.dls.mode
|
||||
plugins.security.compliance.salt
|
||||
config.dynamic.http.anonymous_auth_enabled
|
||||
plugins.security.restapi.roles_enabled
|
||||
plugins.security.restapi.password_validation_regex
|
||||
plugins.security.restapi.password_validation_error_message
|
||||
plugins.security.restapi.password_min_length
|
||||
plugins.security.restapi.password_score_based_validation_strength
|
||||
plugins.security.unsupported.restapi.allow_securityconfig_modification
|
||||
plugins.security.authcz.impersonation_dn
|
||||
plugins.security.authcz.rest_impersonation_user
|
||||
plugins.security.allow_default_init_securityindex
|
||||
plugins.security.allow_unsafe_democertificates
|
||||
plugins.security.system_indices.permission.enabled
|
||||
plugins.security.config_index_name
|
||||
plugins.security.cert.oid
|
||||
plugins.security.cert.intercluster_request_evaluator_class
|
||||
plugins.security.enable_snapshot_restore_privilege
|
||||
plugins.security.check_snapshot_restore_write_privileges
|
||||
plugins.security.cache.ttl_minutes
|
||||
plugins.security.protected_indices.enabled
|
||||
plugins.security.protected_indices.roles
|
||||
plugins.security.protected_indices.indices
|
||||
plugins.security.system_indices.enabled
|
||||
plugins.security.system_indices.indices
|
||||
plugins.security.audit.enable_rest
|
||||
plugins.security.audit.enable_transport
|
||||
plugins.security.audit.resolve_bulk_requests
|
||||
plugins.security.audit.config.disabled_categories
|
||||
plugins.security.audit.ignore_requests
|
||||
plugins.security.audit.threadpool.size
|
||||
plugins.security.audit.threadpool.max_queue_len
|
||||
plugins.security.audit.ignore_users
|
||||
plugins.security.audit.type
|
||||
plugins.security.audit.config.http_endpoints
|
||||
plugins.security.audit.config.index
|
||||
plugins.security.audit.config.type
|
||||
plugins.security.audit.config.username
|
||||
plugins.security.audit.config.password
|
||||
plugins.security.audit.config.enable_ssl
|
||||
plugins.security.audit.config.verify_hostnames
|
||||
plugins.security.audit.config.enable_ssl_client_auth
|
||||
plugins.security.audit.config.cert_alias
|
||||
plugins.security.audit.config.pemkey_filepath
|
||||
plugins.security.audit.config.pemkey_content
|
||||
plugins.security.audit.config.pemkey_password
|
||||
plugins.security.audit.config.pemcert_filepath
|
||||
plugins.security.audit.config.pemcert_content
|
||||
plugins.security.audit.config.pemtrustedcas_filepath
|
||||
plugins.security.audit.config.pemtrustedcas_content
|
||||
plugins.security.audit.config.webhook.url
|
||||
plugins.security.audit.config.webhook.format
|
||||
plugins.security.audit.config.webhook.ssl.verify
|
||||
plugins.security.audit.config.webhook.ssl.pemtrustedcas_filepath
|
||||
plugins.security.audit.config.webhook.ssl.pemtrustedcas_content
|
||||
plugins.security.audit.config.log4j.logger_name
|
||||
plugins.security.audit.config.log4j.level
|
||||
opendistro_security.audit.config.disabled_rest_categories
|
||||
opendistro_security.audit.config.disabled_transport_categories
|
||||
plugins.security.ssl.transport.enforce_hostname_verification
|
||||
plugins.security.ssl.transport.resolve_hostname
|
||||
plugins.security.ssl.http.clientauth_mode
|
||||
plugins.security.ssl.http.enabled_ciphers
|
||||
plugins.security.ssl.http.enabled_protocols
|
||||
plugins.security.ssl.transport.enabled_ciphers
|
||||
plugins.security.ssl.transport.enabled_protocols
|
||||
plugins.security.ssl.transport.keystore_type
|
||||
plugins.security.ssl.transport.keystore_filepath
|
||||
plugins.security.ssl.transport.keystore_alias
|
||||
plugins.security.ssl.transport.keystore_password
|
||||
plugins.security.ssl.transport.truststore_type
|
||||
plugins.security.ssl.transport.truststore_filepath
|
||||
plugins.security.ssl.transport.truststore_alias
|
||||
plugins.security.ssl.transport.truststore_password
|
||||
plugins.security.ssl.http.enabled
|
||||
plugins.security.ssl.http.keystore_type
|
||||
plugins.security.ssl.http.keystore_filepath
|
||||
plugins.security.ssl.http.keystore_alias
|
||||
plugins.security.ssl.http.keystore_password
|
||||
plugins.security.ssl.http.truststore_type
|
||||
plugins.security.ssl.http.truststore_filepath
|
||||
plugins.security.ssl.http.truststore_alias
|
||||
plugins.security.ssl.http.truststore_password
|
||||
plugins.security.ssl.transport.enable_openssl_if_available
|
||||
plugins.security.ssl.http.enable_openssl_if_available
|
||||
plugins.security.ssl.transport.pemkey_filepath
|
||||
plugins.security.ssl.transport.pemkey_password
|
||||
plugins.security.ssl.transport.pemcert_filepath
|
||||
plugins.security.ssl.transport.pemtrustedcas_filepath
|
||||
plugins.security.ssl.http.pemkey_filepath
|
||||
plugins.security.ssl.http.pemkey_password
|
||||
plugins.security.ssl.http.pemcert_filepath
|
||||
plugins.security.ssl.http.pemtrustedcas_filepath
|
||||
plugins.security.ssl.transport.enabled
|
||||
plugins.security.ssl.transport.client.pemkey_password
|
||||
plugins.security.ssl.transport.keystore_keypassword
|
||||
plugins.security.ssl.transport.server.keystore_keypassword
|
||||
plugins.sercurity.ssl.transport.server.keystore_alias
|
||||
plugins.sercurity.ssl.transport.client.keystore_alias
|
||||
plugins.sercurity.ssl.transport.server.truststore_alias
|
||||
plugins.sercurity.ssl.transport.client.truststore_alias
|
||||
plugins.security.ssl.client.external_context_id
|
||||
plugins.secuirty.ssl.transport.principal_extractor_class
|
||||
plugins.security.ssl.http.crl.file_path
|
||||
plugins.security.ssl.http.crl.validate
|
||||
plugins.security.ssl.http.crl.prefer_crlfile_over_ocsp
|
||||
plugins.security.ssl.http.crl.check_only_end_entitites
|
||||
plugins.security.ssl.http.crl.disable_ocsp
|
||||
plugins.security.ssl.http.crl.disable_crldp
|
||||
plugins.security.ssl.allow_client_initiated_renegotiation
|
||||
indices.breaker.total.use_real_memory
|
||||
indices.breaker.total.limit
|
||||
indices.breaker.fielddata.limit
|
||||
indices.breaker.fielddata.overhead
|
||||
indices.breaker.request.limit
|
||||
indices.breaker.request.overhead
|
||||
network.breaker.inflight_requests.limit
|
||||
network.breaker.inflight_requests.overhead
|
||||
cluster.routing.allocation.enable
|
||||
cluster.routing.allocation.node_concurrent_incoming_recoveries
|
||||
cluster.routing.allocation.node_concurrent_outgoing_recoveries
|
||||
cluster.routing.allocation.node_concurrent_recoveries
|
||||
cluster.routing.allocation.node_initial_primaries_recoveries
|
||||
cluster.routing.allocation.same_shard.host
|
||||
cluster.routing.rebalance.enable
|
||||
cluster.routing.allocation.allow_rebalance
|
||||
cluster.routing.allocation.cluster_concurrent_rebalance
|
||||
cluster.routing.allocation.balance.shard
|
||||
cluster.routing.allocation.balance.index
|
||||
cluster.routing.allocation.balance.threshold
|
||||
cluster.routing.allocation.balance.prefer_primary
|
||||
cluster.routing.allocation.disk.threshold_enabled
|
||||
cluster.routing.allocation.disk.watermark.low
|
||||
cluster.routing.allocation.disk.watermark.high
|
||||
cluster.routing.allocation.disk.watermark.flood_stage
|
||||
cluster.info.update.interval
|
||||
cluster.routing.allocation.shard_movement_strategy
|
||||
cluster.blocks.read_only
|
||||
cluster.blocks.read_only_allow_delete
|
||||
cluster.max_shards_per_node
|
||||
cluster.persistent_tasks.allocation.enable
|
||||
cluster.persistent_tasks.allocation.recheck_interval
|
||||
cluster.search.request.slowlog.threshold.warn
|
||||
cluster.search.request.slowlog.threshold.info
|
||||
cluster.search.request.slowlog.threshold.debug
|
||||
cluster.search.request.slowlog.threshold.trace
|
||||
cluster.search.request.slowlog.level
|
||||
cluster.fault_detection.leader_check.timeout
|
||||
cluster.fault_detection.follower_check.timeout
|
||||
action.auto_create_index
|
||||
action.destructive_requires_name
|
||||
cluster.default.index.refresh_interval
|
||||
cluster.minimum.index.refresh_interval
|
||||
cluster.indices.close.enable
|
||||
indices.recovery.max_bytes_per_sec
|
||||
indices.recovery.max_concurrent_file_chunks
|
||||
indices.recovery.max_concurrent_operations
|
||||
indices.recovery.max_concurrent_remote_store_streams
|
||||
indices.time_series_index.default_index_merge_policy
|
||||
indices.fielddata.cache.size
|
||||
index.number_of_shards
|
||||
index.number_of_routing_shards
|
||||
index.shard.check_on_startup
|
||||
index.codec
|
||||
index.codec.compression_level
|
||||
index.routing_partition_size
|
||||
index.soft_deletes.retention_lease.period
|
||||
index.load_fixed_bitset_filters_eagerly
|
||||
index.hidden
|
||||
index.merge.policy
|
||||
index.merge_on_flush.enabled
|
||||
index.merge_on_flush.max_full_flush_merge_wait_time
|
||||
index.merge_on_flush.policy
|
||||
index.check_pending_flush.enabled
|
||||
index.number_of_replicas
|
||||
index.auto_expand_replicas
|
||||
index.search.idle.after
|
||||
index.refresh_interval
|
||||
index.max_result_window
|
||||
index.max_inner_result_window
|
||||
index.max_rescore_window
|
||||
index.max_docvalue_fields_search
|
||||
index.max_script_fields
|
||||
index.max_ngram_diff
|
||||
index.max_shingle_diff
|
||||
index.max_refresh_listeners
|
||||
index.analyze.max_token_count
|
||||
index.highlight.max_analyzed_offset
|
||||
index.max_terms_count
|
||||
index.max_regex_length
|
||||
index.query.default_field
|
||||
index.query.max_nested_depth
|
||||
index.routing.allocation.enable
|
||||
index.routing.rebalance.enable
|
||||
index.gc_deletes
|
||||
index.default_pipeline
|
||||
index.final_pipeline
|
||||
index.optimize_doc_id_lookup.fuzzy_set.enabled
|
||||
index.optimize_doc_id_lookup.fuzzy_set.false_positive_probability
|
||||
search.max_buckets
|
||||
search.phase_took_enabled
|
||||
search.allow_expensive_queries
|
||||
search.default_allow_partial_results
|
||||
search.cancel_after_time_interval
|
||||
search.default_search_timeout
|
||||
search.default_keep_alive
|
||||
search.keep_alive_interval
|
||||
search.max_keep_alive
|
||||
search.low_level_cancellation
|
||||
search.max_open_scroll_context
|
||||
search.request_stats_enabled
|
||||
search.highlight.term_vector_multi_value
|
||||
snapshot.max_concurrent_operations
|
||||
cluster.remote_store.translog.buffer_interval
|
||||
remote_store.moving_average_window_size
|
||||
opensearch.notifications.core.allowed_config_types
|
||||
opensearch.notifications.core.email.minimum_header_length
|
||||
opensearch.notifications.core.email.size_limit
|
||||
opensearch.notifications.core.http.connection_timeout
|
||||
opensearch.notifications.core.http.host_deny_list
|
||||
opensearch.notifications.core.http.max_connection_per_route
|
||||
opensearch.notifications.core.http.max_connections
|
||||
opensearch.notifications.core.http.socket_timeout
|
||||
opensearch.notifications.core.tooltip_support
|
||||
opensearch.notifications.general.filter_by_backend_roles
|
||||
)
|
||||
|
||||
run_as_other_user_if_needed() {
|
||||
if [[ "$(id -u)" == "0" ]]; then
|
||||
# If running as root, drop to specified UID and run command
|
||||
@@ -24,6 +284,37 @@ run_as_other_user_if_needed() {
|
||||
fi
|
||||
}
|
||||
|
||||
function buildOpensearchConfig {
|
||||
echo "" >> $OPENSEARCH_PATH_CONF/opensearch.yml
|
||||
for opensearch_var in ${opensearch_vars[*]}; do
|
||||
env_var=$(echo ${opensearch_var^^} | tr . _)
|
||||
value=${!env_var}
|
||||
if [[ -n $value ]]; then
|
||||
if grep -q $opensearch_var $OPENSEARCH_PATH_CONF/opensearch.yml; then
|
||||
lineNum="$(grep -n "$opensearch_var" $OPENSEARCH_PATH_CONF/opensearch.yml | head -n 1 | cut -d: -f1)"
|
||||
sed -i "${lineNum}d" $OPENSEARCH_PATH_CONF/opensearch.yml
|
||||
charline=$(awk "NR == ${lineNum}" $OPENSEARCH_PATH_CONF/opensearch.yml | head -c 1)
|
||||
fi
|
||||
while :
|
||||
do
|
||||
case "$charline" in
|
||||
"-"| "#" |" ") sed -i "${lineNum}d" $OPENSEARCH_PATH_CONF/opensearch.yml;;
|
||||
*) break;;
|
||||
esac
|
||||
charline=$(awk "NR == ${lineNum}" $OPENSEARCH_PATH_CONF/opensearch.yml | head -c 1)
|
||||
done
|
||||
longoptfile="${opensearch_var}: ${value}"
|
||||
if grep -q $opensearch_var $OPENSEARCH_PATH_CONF/opensearch.yml; then
|
||||
sed -i "/${opensearch_var}/ s|^.*$|${longoptfile}|" $OPENSEARCH_PATH_CONF/opensearch.yml
|
||||
else
|
||||
echo $longoptfile >> $OPENSEARCH_PATH_CONF/opensearch.yml
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
buildOpensearchConfig
|
||||
|
||||
# Allow user specify custom CMD, maybe bin/opensearch itself
|
||||
# for example to directly specify `-E` style parameters for opensearch on k8s
|
||||
# or simply to run /bin/bash to check the image
|
||||
@@ -84,10 +375,4 @@ if [[ "$(id -u)" == "0" ]]; then
|
||||
fi
|
||||
|
||||
|
||||
#if [[ "$DISCOVERY" == "single-node" ]] && [[ ! -f "/var/lib/wazuh-indexer/.flag" ]]; then
|
||||
# run securityadmin.sh for single node with CACERT, CERT and KEY parameter
|
||||
# nohup /securityadmin.sh &
|
||||
# touch "/var/lib/wazuh-indexer/.flag"
|
||||
#fi
|
||||
|
||||
run_as_other_user_if_needed /usr/share/wazuh-indexer/bin/opensearch <<<"$KEYSTORE_PASSWORD"
|
@@ -1,74 +0,0 @@
|
||||
---
|
||||
# This is the internal user database
|
||||
# The hash value is a bcrypt hash and can be generated with plugin/tools/hash.sh
|
||||
|
||||
_meta:
|
||||
type: "internalusers"
|
||||
config_version: 2
|
||||
|
||||
# Define your internal users here
|
||||
|
||||
## Demo users
|
||||
|
||||
admin:
|
||||
hash: "$2a$12$VcCDgh2NDk07JGN0rjGbM.Ad41qVR/YFJcgHp0UGns5JDymv..TOG"
|
||||
reserved: true
|
||||
backend_roles:
|
||||
- "admin"
|
||||
description: "Demo admin user"
|
||||
|
||||
kibanaserver:
|
||||
hash: "$2a$12$4AcgAt3xwOWadA5s5blL6ev39OXDNhmOesEoo33eZtrq2N0YrU3H."
|
||||
reserved: true
|
||||
description: "Demo kibanaserver user"
|
||||
|
||||
kibanaro:
|
||||
hash: "$2a$12$JJSXNfTowz7Uu5ttXfeYpeYE0arACvcwlPBStB1F.MI7f0U9Z4DGC"
|
||||
reserved: false
|
||||
backend_roles:
|
||||
- "kibanauser"
|
||||
- "readall"
|
||||
attributes:
|
||||
attribute1: "value1"
|
||||
attribute2: "value2"
|
||||
attribute3: "value3"
|
||||
description: "Demo kibanaro user"
|
||||
|
||||
logstash:
|
||||
hash: "$2a$12$u1ShR4l4uBS3Uv59Pa2y5.1uQuZBrZtmNfqB3iM/.jL0XoV9sghS2"
|
||||
reserved: false
|
||||
backend_roles:
|
||||
- "logstash"
|
||||
description: "Demo logstash user"
|
||||
|
||||
readall:
|
||||
hash: "$2a$12$ae4ycwzwvLtZxwZ82RmiEunBbIPiAmGZduBAjKN0TXdwQFtCwARz2"
|
||||
reserved: false
|
||||
backend_roles:
|
||||
- "readall"
|
||||
description: "Demo readall user"
|
||||
|
||||
snapshotrestore:
|
||||
hash: "$2y$12$DpwmetHKwgYnorbgdvORCenv4NAK8cPUg8AI6pxLCuWf/ALc0.v7W"
|
||||
reserved: false
|
||||
backend_roles:
|
||||
- "snapshotrestore"
|
||||
description: "Demo snapshotrestore user"
|
||||
|
||||
wazuh_admin:
|
||||
hash: "$2y$12$d2awHiOYvZjI88VfsDON.u6buoBol0gYPJEgdG1ArKVE0OMxViFfu"
|
||||
reserved: true
|
||||
hidden: false
|
||||
backend_roles: []
|
||||
attributes: {}
|
||||
opendistro_security_roles: []
|
||||
static: false
|
||||
|
||||
wazuh_user:
|
||||
hash: "$2y$12$BQixeoQdRubZdVf/7sq1suHwiVRnSst1.lPI2M0.GPZms4bq2D9vO"
|
||||
reserved: true
|
||||
hidden: false
|
||||
backend_roles: []
|
||||
attributes: {}
|
||||
opendistro_security_roles: []
|
||||
static: false
|
@@ -1,26 +0,0 @@
|
||||
network.host: "0.0.0.0"
|
||||
node.name: "wazuh.indexer"
|
||||
path.data: /var/lib/wazuh-indexer
|
||||
path.logs: /var/log/wazuh-indexer
|
||||
discovery.type: single-node
|
||||
compatibility.override_main_response_version: true
|
||||
plugins.security.ssl.http.pemcert_filepath: /usr/share/wazuh-indexer/certs/indexer.pem
|
||||
plugins.security.ssl.http.pemkey_filepath: /usr/share/wazuh-indexer/certs/indexer-key.pem
|
||||
plugins.security.ssl.http.pemtrustedcas_filepath: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
plugins.security.ssl.transport.pemcert_filepath: /usr/share/wazuh-indexer/certs/indexer.pem
|
||||
plugins.security.ssl.transport.pemkey_filepath: /usr/share/wazuh-indexer/certs/indexer-key.pem
|
||||
plugins.security.ssl.transport.pemtrustedcas_filepath: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
plugins.security.ssl.http.enabled: true
|
||||
plugins.security.ssl.transport.enforce_hostname_verification: false
|
||||
plugins.security.ssl.transport.resolve_hostname: false
|
||||
plugins.security.authcz.admin_dn:
|
||||
- "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
plugins.security.check_snapshot_restore_write_privileges: true
|
||||
plugins.security.enable_snapshot_restore_privilege: true
|
||||
plugins.security.nodes_dn:
|
||||
- "CN=demo.indexer,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
plugins.security.restapi.roles_enabled:
|
||||
- "all_access"
|
||||
- "security_rest_api_access"
|
||||
plugins.security.system_indices.enabled: true
|
||||
plugins.security.system_indices.indices: [".opendistro-alerting-config", ".opendistro-alerting-alert*", ".opendistro-anomaly-results*", ".opendistro-anomaly-detector*", ".opendistro-anomaly-checkpoints", ".opendistro-anomaly-detection-state", ".opendistro-reports-*", ".opendistro-notifications-*", ".opendistro-notebooks", ".opensearch-observability", ".opendistro-asynchronous-search-response*", ".replication-metadata-store"]
|
@@ -1,163 +0,0 @@
|
||||
_meta:
|
||||
type: "roles"
|
||||
config_version: 2
|
||||
|
||||
# Restrict users so they can only view visualization and dashboards on kibana
|
||||
kibana_read_only:
|
||||
reserved: true
|
||||
|
||||
# The security REST API access role is used to assign specific users access to change the security settings through the REST API.
|
||||
security_rest_api_access:
|
||||
reserved: true
|
||||
|
||||
# Allows users to view monitors, destinations and alerts
|
||||
alerting_read_access:
|
||||
reserved: true
|
||||
cluster_permissions:
|
||||
- 'cluster:admin/opendistro/alerting/alerts/get'
|
||||
- 'cluster:admin/opendistro/alerting/destination/get'
|
||||
- 'cluster:admin/opendistro/alerting/monitor/get'
|
||||
- 'cluster:admin/opendistro/alerting/monitor/search'
|
||||
|
||||
# Allows users to view and acknowledge alerts
|
||||
alerting_ack_alerts:
|
||||
reserved: true
|
||||
cluster_permissions:
|
||||
- 'cluster:admin/opendistro/alerting/alerts/*'
|
||||
|
||||
# Allows users to use all alerting functionality
|
||||
alerting_full_access:
|
||||
reserved: true
|
||||
cluster_permissions:
|
||||
- 'cluster_monitor'
|
||||
- 'cluster:admin/opendistro/alerting/*'
|
||||
index_permissions:
|
||||
- index_patterns:
|
||||
- '*'
|
||||
allowed_actions:
|
||||
- 'indices_monitor'
|
||||
- 'indices:admin/aliases/get'
|
||||
- 'indices:admin/mappings/get'
|
||||
|
||||
# Allow users to read Anomaly Detection detectors and results
|
||||
anomaly_read_access:
|
||||
reserved: true
|
||||
cluster_permissions:
|
||||
- 'cluster:admin/opendistro/ad/detector/info'
|
||||
- 'cluster:admin/opendistro/ad/detector/search'
|
||||
- 'cluster:admin/opendistro/ad/detectors/get'
|
||||
- 'cluster:admin/opendistro/ad/result/search'
|
||||
- 'cluster:admin/opendistro/ad/tasks/search'
|
||||
|
||||
# Allows users to use all Anomaly Detection functionality
|
||||
anomaly_full_access:
|
||||
reserved: true
|
||||
cluster_permissions:
|
||||
- 'cluster_monitor'
|
||||
- 'cluster:admin/opendistro/ad/*'
|
||||
index_permissions:
|
||||
- index_patterns:
|
||||
- '*'
|
||||
allowed_actions:
|
||||
- 'indices_monitor'
|
||||
- 'indices:admin/aliases/get'
|
||||
- 'indices:admin/mappings/get'
|
||||
|
||||
# Allows users to read Notebooks
|
||||
notebooks_read_access:
|
||||
reserved: true
|
||||
cluster_permissions:
|
||||
- 'cluster:admin/opendistro/notebooks/list'
|
||||
- 'cluster:admin/opendistro/notebooks/get'
|
||||
|
||||
# Allows users to all Notebooks functionality
|
||||
notebooks_full_access:
|
||||
reserved: true
|
||||
cluster_permissions:
|
||||
- 'cluster:admin/opendistro/notebooks/create'
|
||||
- 'cluster:admin/opendistro/notebooks/update'
|
||||
- 'cluster:admin/opendistro/notebooks/delete'
|
||||
- 'cluster:admin/opendistro/notebooks/get'
|
||||
- 'cluster:admin/opendistro/notebooks/list'
|
||||
|
||||
# Allows users to read and download Reports
|
||||
reports_instances_read_access:
|
||||
reserved: true
|
||||
cluster_permissions:
|
||||
- 'cluster:admin/opendistro/reports/instance/list'
|
||||
- 'cluster:admin/opendistro/reports/instance/get'
|
||||
- 'cluster:admin/opendistro/reports/menu/download'
|
||||
|
||||
# Allows users to read and download Reports and Report-definitions
|
||||
reports_read_access:
|
||||
reserved: true
|
||||
cluster_permissions:
|
||||
- 'cluster:admin/opendistro/reports/definition/get'
|
||||
- 'cluster:admin/opendistro/reports/definition/list'
|
||||
- 'cluster:admin/opendistro/reports/instance/list'
|
||||
- 'cluster:admin/opendistro/reports/instance/get'
|
||||
- 'cluster:admin/opendistro/reports/menu/download'
|
||||
|
||||
# Allows users to all Reports functionality
|
||||
reports_full_access:
|
||||
reserved: true
|
||||
cluster_permissions:
|
||||
- 'cluster:admin/opendistro/reports/definition/create'
|
||||
- 'cluster:admin/opendistro/reports/definition/update'
|
||||
- 'cluster:admin/opendistro/reports/definition/on_demand'
|
||||
- 'cluster:admin/opendistro/reports/definition/delete'
|
||||
- 'cluster:admin/opendistro/reports/definition/get'
|
||||
- 'cluster:admin/opendistro/reports/definition/list'
|
||||
- 'cluster:admin/opendistro/reports/instance/list'
|
||||
- 'cluster:admin/opendistro/reports/instance/get'
|
||||
- 'cluster:admin/opendistro/reports/menu/download'
|
||||
|
||||
# Allows users to use all asynchronous-search functionality
|
||||
asynchronous_search_full_access:
|
||||
reserved: true
|
||||
cluster_permissions:
|
||||
- 'cluster:admin/opendistro/asynchronous_search/*'
|
||||
index_permissions:
|
||||
- index_patterns:
|
||||
- '*'
|
||||
allowed_actions:
|
||||
- 'indices:data/read/search*'
|
||||
|
||||
# Allows users to read stored asynchronous-search results
|
||||
asynchronous_search_read_access:
|
||||
reserved: true
|
||||
cluster_permissions:
|
||||
- 'cluster:admin/opendistro/asynchronous_search/get'
|
||||
|
||||
wazuh_ui_user:
|
||||
reserved: true
|
||||
hidden: false
|
||||
cluster_permissions: []
|
||||
index_permissions:
|
||||
- index_patterns:
|
||||
- "wazuh-*"
|
||||
dls: ""
|
||||
fls: []
|
||||
masked_fields: []
|
||||
allowed_actions:
|
||||
- "read"
|
||||
tenant_permissions: []
|
||||
static: false
|
||||
|
||||
wazuh_ui_admin:
|
||||
reserved: true
|
||||
hidden: false
|
||||
cluster_permissions: []
|
||||
index_permissions:
|
||||
- index_patterns:
|
||||
- "wazuh-*"
|
||||
dls: ""
|
||||
fls: []
|
||||
masked_fields: []
|
||||
allowed_actions:
|
||||
- "read"
|
||||
- "delete"
|
||||
- "manage"
|
||||
- "index"
|
||||
tenant_permissions: []
|
||||
static: false
|
@@ -1,71 +0,0 @@
|
||||
---
|
||||
# In this file users, backendroles and hosts can be mapped to Wazuh indexer Security roles.
|
||||
# Permissions for Wazuh indexer roles are configured in roles.yml
|
||||
|
||||
_meta:
|
||||
type: "rolesmapping"
|
||||
config_version: 2
|
||||
|
||||
# Define your roles mapping here
|
||||
|
||||
## Demo roles mapping
|
||||
|
||||
all_access:
|
||||
reserved: false
|
||||
backend_roles:
|
||||
- "admin"
|
||||
description: "Maps admin to all_access"
|
||||
|
||||
own_index:
|
||||
reserved: false
|
||||
users:
|
||||
- "*"
|
||||
description: "Allow full access to an index named like the username"
|
||||
|
||||
logstash:
|
||||
reserved: false
|
||||
backend_roles:
|
||||
- "logstash"
|
||||
|
||||
kibana_user:
|
||||
reserved: false
|
||||
backend_roles:
|
||||
- "kibanauser"
|
||||
users:
|
||||
- "wazuh_user"
|
||||
- "wazuh_admin"
|
||||
description: "Maps kibanauser to kibana_user"
|
||||
|
||||
readall:
|
||||
reserved: false
|
||||
backend_roles:
|
||||
- "readall"
|
||||
|
||||
manage_snapshots:
|
||||
reserved: false
|
||||
backend_roles:
|
||||
- "snapshotrestore"
|
||||
|
||||
kibana_server:
|
||||
reserved: true
|
||||
users:
|
||||
- "kibanaserver"
|
||||
|
||||
wazuh_ui_admin:
|
||||
reserved: true
|
||||
hidden: false
|
||||
backend_roles: []
|
||||
hosts: []
|
||||
users:
|
||||
- "wazuh_admin"
|
||||
- "kibanaserver"
|
||||
and_backend_roles: []
|
||||
|
||||
wazuh_ui_user:
|
||||
reserved: true
|
||||
hidden: false
|
||||
backend_roles: []
|
||||
hosts: []
|
||||
users:
|
||||
- "wazuh_user"
|
||||
and_backend_roles: []
|
@@ -1,33 +1,32 @@
|
||||
# Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
||||
FROM ubuntu:focal
|
||||
FROM amazonlinux:2023
|
||||
|
||||
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
|
||||
|
||||
ARG WAZUH_VERSION
|
||||
ARG WAZUH_TAG_REVISION
|
||||
ARG TEMPLATE_VERSION=4.4
|
||||
ARG FILEBEAT_TEMPLATE_BRANCH
|
||||
ARG FILEBEAT_CHANNEL=filebeat-oss
|
||||
ARG FILEBEAT_VERSION=7.10.2
|
||||
ARG WAZUH_FILEBEAT_MODULE="wazuh-filebeat-0.2.tar.gz"
|
||||
ARG WAZUH_FILEBEAT_MODULE
|
||||
ARG S6_VERSION="v2.2.0.3"
|
||||
|
||||
RUN apt-get update && apt install curl apt-transport-https lsb-release gnupg -y
|
||||
RUN yum install curl-minimal xz gnupg tar gzip openssl findutils procps -y &&\
|
||||
yum clean all
|
||||
|
||||
COPY config/check_repository.sh /
|
||||
COPY config/filebeat_module.sh /
|
||||
COPY config/permanent_data.env config/permanent_data.sh /
|
||||
|
||||
RUN chmod 775 /check_repository.sh
|
||||
RUN source /check_repository.sh
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install wazuh-manager=${WAZUH_VERSION}-${WAZUH_TAG_REVISION}
|
||||
|
||||
RUN curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/${FILEBEAT_CHANNEL}-${FILEBEAT_VERSION}-amd64.deb &&\
|
||||
dpkg -i ${FILEBEAT_CHANNEL}-${FILEBEAT_VERSION}-amd64.deb && rm -f ${FILEBEAT_CHANNEL}-${FILEBEAT_VERSION}-amd64.deb && \
|
||||
curl -s https://packages.wazuh.com/4.x/filebeat/${WAZUH_FILEBEAT_MODULE} | tar -xvz -C /usr/share/filebeat/module
|
||||
|
||||
RUN curl -L https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss && chmod +rx /usr/local/bin/goss
|
||||
|
||||
ARG S6_VERSION="v2.2.0.3"
|
||||
RUN curl --fail --silent -L https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-amd64.tar.gz \
|
||||
RUN yum install wazuh-manager-${WAZUH_VERSION}-${WAZUH_TAG_REVISION} -y && \
|
||||
yum clean all && \
|
||||
chmod 775 /filebeat_module.sh && \
|
||||
source /filebeat_module.sh && \
|
||||
rm /filebeat_module.sh && \
|
||||
curl --fail --silent -L https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-amd64.tar.gz \
|
||||
-o /tmp/s6-overlay-amd64.tar.gz && \
|
||||
tar xzf /tmp/s6-overlay-amd64.tar.gz -C / --exclude="./bin" && \
|
||||
tar xzf /tmp/s6-overlay-amd64.tar.gz -C /usr ./bin && \
|
||||
@@ -40,18 +39,30 @@ COPY config/filebeat.yml /etc/filebeat/
|
||||
|
||||
RUN chmod go-w /etc/filebeat/filebeat.yml
|
||||
|
||||
ADD https://raw.githubusercontent.com/wazuh/wazuh/$TEMPLATE_VERSION/extensions/elasticsearch/7.x/wazuh-template.json /etc/filebeat
|
||||
ADD https://raw.githubusercontent.com/wazuh/wazuh/$FILEBEAT_TEMPLATE_BRANCH/extensions/elasticsearch/7.x/wazuh-template.json /etc/filebeat
|
||||
RUN chmod go-w /etc/filebeat/wazuh-template.json
|
||||
|
||||
# Prepare permanent data
|
||||
# Sync calls are due to https://github.com/docker/docker/issues/9547
|
||||
|
||||
COPY config/permanent_data.env config/permanent_data.sh /
|
||||
RUN chmod 755 /permanent_data.sh && \
|
||||
#Make mount directories for keep permissions
|
||||
|
||||
RUN mkdir -p /var/ossec/var/multigroups && \
|
||||
chown root:wazuh /var/ossec/var/multigroups && \
|
||||
chmod 770 /var/ossec/var/multigroups && \
|
||||
mkdir -p /var/ossec/agentless && \
|
||||
chown root:wazuh /var/ossec/agentless && \
|
||||
chmod 770 /var/ossec/agentless && \
|
||||
mkdir -p /var/ossec/active-response/bin && \
|
||||
chown root:wazuh /var/ossec/active-response/bin && \
|
||||
chmod 770 /var/ossec/active-response/bin && \
|
||||
chmod 755 /permanent_data.sh && \
|
||||
sync && /permanent_data.sh && \
|
||||
sync && rm /permanent_data.sh
|
||||
|
||||
RUN rm /etc/yum.repos.d/wazuh.repo
|
||||
|
||||
# Services ports
|
||||
EXPOSE 55000/tcp 1514/tcp 1515/tcp 514/udp 1516/tcp
|
||||
|
||||
ENTRYPOINT [ "/init" ]
|
||||
ENTRYPOINT [ "/init" ]
|
||||
|
@@ -1,29 +1,15 @@
|
||||
## variables
|
||||
APT_KEY=https://packages.wazuh.com/key/GPG-KEY-WAZUH
|
||||
REPOSITORY="deb https://packages.wazuh.com/4.x/apt/ stable main"
|
||||
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2-)
|
||||
MAJOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f1)
|
||||
MID_BUILD=$(echo $WAZUH_VERSION | cut -d. -f2)
|
||||
MINOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f3)
|
||||
MAJOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f1)
|
||||
MID_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f2)
|
||||
MINOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f3)
|
||||
APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH
|
||||
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
||||
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages-dev.wazuh.com/pre-release/yum/\nprotect=1"
|
||||
WAZUH_TAG=$(curl --silent https://api.github.com/repos/wazuh/wazuh/git/refs/tags | grep '["]ref["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 11- | grep ^v${WAZUH_VERSION}$)
|
||||
|
||||
## check version to use the correct repository
|
||||
if [ "$MAJOR_BUILD" -gt "$MAJOR_CURRENT" ]; then
|
||||
APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH
|
||||
REPOSITORY="deb https://packages-dev.wazuh.com/pre-release/apt/ unstable main"
|
||||
elif [ "$MAJOR_BUILD" -eq "$MAJOR_CURRENT" ]; then
|
||||
if [ "$MID_BUILD" -gt "$MID_CURRENT" ]; then
|
||||
APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH
|
||||
REPOSITORY="deb https://packages-dev.wazuh.com/pre-release/apt/ unstable main"
|
||||
elif [ "$MID_BUILD" -eq "$MID_CURRENT" ]; then
|
||||
if [ "$MINOR_BUILD" -gt "$MINOR_CURRENT" ]; then
|
||||
APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH
|
||||
REPOSITORY="deb https://packages-dev.wazuh.com/pre-release/apt/ unstable main"
|
||||
fi
|
||||
fi
|
||||
## check tag to use the correct repository
|
||||
if [[ -n "${WAZUH_TAG}" ]]; then
|
||||
APT_KEY=https://packages.wazuh.com/key/GPG-KEY-WAZUH
|
||||
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
||||
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages.wazuh.com/4.x/yum/\nprotect=1"
|
||||
fi
|
||||
|
||||
apt-key adv --fetch-keys ${APT_KEY}
|
||||
echo ${REPOSITORY} | tee -a /etc/apt/sources.list.d/wazuh.list
|
||||
rpm --import "${APT_KEY}"
|
||||
echo -e "${REPOSITORY}" | tee /etc/yum.repos.d/wazuh.repo
|
@@ -13,7 +13,7 @@ SPECIAL_CHARS = "@$!%*?&-_"
|
||||
|
||||
|
||||
try:
|
||||
from wazuh.rbac.orm import create_rbac_db
|
||||
from wazuh.rbac.orm import check_database_integrity
|
||||
from wazuh.security import (
|
||||
create_user,
|
||||
get_users,
|
||||
@@ -69,7 +69,7 @@ if __name__ == "__main__":
|
||||
username, password = read_user_file()
|
||||
|
||||
# create RBAC database
|
||||
create_rbac_db()
|
||||
check_database_integrity()
|
||||
|
||||
initial_users = db_users()
|
||||
if username not in initial_users:
|
||||
|
@@ -51,7 +51,7 @@ mount_permanent_data() {
|
||||
print "Installing ${permanent_dir}"
|
||||
exec_cmd "cp -a ${data_tmp}. ${permanent_dir}"
|
||||
else
|
||||
print "The path ${permanent_dir} is empty, skiped"
|
||||
print "The path ${permanent_dir} is empty, skipped"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
@@ -184,8 +184,9 @@ set_rids_owner() {
|
||||
##############################################################################
|
||||
|
||||
set_correct_permOwner() {
|
||||
find / -group 997 -exec chown :101 {} +;
|
||||
find / -user 999 -exec chown 101 {} +;
|
||||
find / -group 997 -exec chown :999 {} +;
|
||||
find / -group 101 -exec chown :999 {} +;
|
||||
find / -user 101 -exec chown 999 {} +;
|
||||
}
|
||||
|
||||
##############################################################################
|
||||
@@ -198,7 +199,7 @@ main() {
|
||||
|
||||
# Restore files stored in permanent data that are not permanent (i.e. internal_options.conf)
|
||||
apply_exclusion_data
|
||||
|
||||
|
||||
# Apply correct permission and ownership
|
||||
set_correct_permOwner
|
||||
|
||||
|
@@ -4,7 +4,7 @@
|
||||
set -e
|
||||
|
||||
if [ "$INDEXER_URL" != "" ]; then
|
||||
>&2 echo "Customize Elasticsearch ouput IP"
|
||||
>&2 echo "Customize Elasticsearch output IP"
|
||||
sed -i "s|hosts:.*|hosts: ['$INDEXER_URL']|g" /etc/filebeat/filebeat.yml
|
||||
fi
|
||||
|
||||
|
@@ -112,6 +112,13 @@ function_entrypoint_scripts() {
|
||||
fi
|
||||
}
|
||||
|
||||
function_configure_vulnerability_detection() {
|
||||
if [ "$INDEXER_PASSWORD" != "" ]; then
|
||||
>&2 echo "Configuring password."
|
||||
/var/ossec/bin/wazuh-keystore -f indexer -k username -v $INDEXER_USERNAME
|
||||
/var/ossec/bin/wazuh-keystore -f indexer -k password -v $INDEXER_PASSWORD
|
||||
fi
|
||||
}
|
||||
|
||||
# Migrate data from /wazuh-migration volume
|
||||
function_wazuh_migration
|
||||
@@ -119,6 +126,9 @@ function_wazuh_migration
|
||||
# create API custom user
|
||||
function_create_custom_user
|
||||
|
||||
# configure Vulnerabilty detection
|
||||
function_configure_vulnerability_detection
|
||||
|
||||
# run entrypoint scripts
|
||||
function_entrypoint_scripts
|
||||
|
||||
|
@@ -8,9 +8,9 @@ filebeat.modules:
|
||||
enabled: false
|
||||
|
||||
setup.template.json.enabled: true
|
||||
setup.template.overwrite: true
|
||||
setup.template.json.path: '/etc/filebeat/wazuh-template.json'
|
||||
setup.template.json.name: 'wazuh'
|
||||
setup.template.overwrite: true
|
||||
setup.ilm.enabled: false
|
||||
output.elasticsearch:
|
||||
hosts: ['https://wazuh.indexer:9200']
|
||||
|
12
build-docker-images/wazuh-manager/config/filebeat_module.sh
Normal file
12
build-docker-images/wazuh-manager/config/filebeat_module.sh
Normal file
@@ -0,0 +1,12 @@
|
||||
## variables
|
||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
||||
WAZUH_TAG=$(curl --silent https://api.github.com/repos/wazuh/wazuh/git/refs/tags | grep '["]ref["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 11- | grep ^v${WAZUH_VERSION}$)
|
||||
|
||||
## check tag to use the correct repository
|
||||
if [[ -n "${WAZUH_TAG}" ]]; then
|
||||
REPOSITORY="packages.wazuh.com/4.x"
|
||||
fi
|
||||
|
||||
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/${FILEBEAT_CHANNEL}-${FILEBEAT_VERSION}-x86_64.rpm &&\
|
||||
yum install -y ${FILEBEAT_CHANNEL}-${FILEBEAT_VERSION}-x86_64.rpm && rm -f ${FILEBEAT_CHANNEL}-${FILEBEAT_VERSION}-x86_64.rpm && \
|
||||
curl -s https://${REPOSITORY}/filebeat/${WAZUH_FILEBEAT_MODULE} | tar -xvz -C /usr/share/filebeat/module
|
@@ -16,11 +16,16 @@ export PERMANENT_DATA
|
||||
# Files mounted in a volume that should not be permanent
|
||||
i=0
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/etc/internal_options.conf"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/integrations/pagerduty"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/integrations/slack"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/integrations/slack.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/integrations/virustotal"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/integrations/virustotal.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/integrations/shuffle"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/integrations/shuffle.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/integrations/pagerduty"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/integrations/pagerduty.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/integrations/maltiverse"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/integrations/maltiverse.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/active-response/bin/default-firewall-drop"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/active-response/bin/disable-account"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/active-response/bin/firewalld-drop"
|
||||
@@ -51,14 +56,39 @@ PERMANENT_DATA_EXCP[((i++))]="/var/ossec/agentless/ssh.exp"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/utils.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/aws-s3"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/aws-s3.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/__init__.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/aws_tools.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/wazuh_integration.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/buckets_s3/__init__.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/buckets_s3/aws_bucket.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/buckets_s3/cloudtrail.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/buckets_s3/config.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/buckets_s3/guardduty.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/buckets_s3/load_balancers.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/buckets_s3/server_access.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/buckets_s3/umbrella.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/buckets_s3/vpcflow.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/buckets_s3/waf.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/services/__init__.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/services/aws_service.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/services/cloudwatchlogs.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/services/inspector.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/subscribers/__init__.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/subscribers/s3_log_handler.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/subscribers/sqs_message_processor.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/subscribers/sqs_queue.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/azure-logs"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/azure-logs.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/db/orm.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/db/utils.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/db/__init__.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/docker/DockerListener"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/docker/DockerListener.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/gcloud"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/gcloud.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/integration.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/tools.py"
|
||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/exceptions.py"
|
||||
export PERMANENT_DATA_EXCP
|
||||
|
||||
# Files mounted in a volume that should be deleted
|
||||
|
@@ -1,9 +0,0 @@
|
||||
# Certificate creation image build
|
||||
|
||||
The dockerfile hosted in this directory is used to build the image used to boot Wazuh's single node and multi node stacks.
|
||||
|
||||
To create the image, the following command must be executed:
|
||||
|
||||
```
|
||||
$ docker build -t wazuh/wazuh-certs-generator:0.0.1 .
|
||||
```
|
@@ -354,7 +354,7 @@ docker container run --rm -it \
|
||||
```
|
||||
git checkout 4.4
|
||||
cd multi-node
|
||||
docker-compose -f generate-indexer-certs.yml run --rm generator
|
||||
docker-compose -f generate-certs.yml run --rm generator
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# Deploy Wazuh Docker in multi node configuration
|
||||
|
||||
This deployment is defined in the `docker-compose.yml` file with two Wazuh manager containers, three Wazuh indexer containers, and one Wazuh dashboard container. It can be deployed by following these steps:
|
||||
This deployment is defined in the `docker-compose.yml` file with two Wazuh manager containers, three Wazuh indexer containers, and one Wazuh dashboard container. It can be deployed by following these steps:
|
||||
|
||||
1) Increase max_map_count on your host (Linux). This command must be run with root permissions:
|
||||
```
|
||||
@@ -8,18 +8,18 @@ $ sysctl -w vm.max_map_count=262144
|
||||
```
|
||||
2) Run the certificate creation script:
|
||||
```
|
||||
$ docker-compose -f generate-indexer-certs.yml run --rm generator
|
||||
$ docker compose -f generate-certs.yml run --rm generator
|
||||
```
|
||||
3) Start the environment with docker-compose:
|
||||
3) Start the environment with docker compose:
|
||||
|
||||
- In the foregroud:
|
||||
```
|
||||
$ docker-compose up
|
||||
$ docker compose up
|
||||
```
|
||||
|
||||
- In the background:
|
||||
```
|
||||
$ docker-compose up -d
|
||||
$ docker compose up -d
|
||||
```
|
||||
|
||||
|
||||
|
@@ -95,69 +95,27 @@
|
||||
<skip_nfs>yes</skip_nfs>
|
||||
</sca>
|
||||
|
||||
<vulnerability-detector>
|
||||
<enabled>no</enabled>
|
||||
<interval>5m</interval>
|
||||
<min_full_scan_interval>6h</min_full_scan_interval>
|
||||
<run_on_start>yes</run_on_start>
|
||||
<vulnerability-detection>
|
||||
<enabled>yes</enabled>
|
||||
<index-status>yes</index-status>
|
||||
<feed-update-interval>60m</feed-update-interval>
|
||||
</vulnerability-detection>
|
||||
|
||||
<!-- Ubuntu OS vulnerabilities -->
|
||||
<provider name="canonical">
|
||||
<enabled>no</enabled>
|
||||
<os>trusty</os>
|
||||
<os>xenial</os>
|
||||
<os>bionic</os>
|
||||
<os>focal</os>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Debian OS vulnerabilities -->
|
||||
<provider name="debian">
|
||||
<enabled>no</enabled>
|
||||
<os>stretch</os>
|
||||
<os>buster</os>
|
||||
<os>bullseye</os>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- RedHat OS vulnerabilities -->
|
||||
<provider name="redhat">
|
||||
<enabled>no</enabled>
|
||||
<os>5</os>
|
||||
<os>6</os>
|
||||
<os>7</os>
|
||||
<os>8</os>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Amazon Linux OS vulnerabilities -->
|
||||
<provider name="alas">
|
||||
<enabled>no</enabled>
|
||||
<os>amazon-linux</os>
|
||||
<os>amazon-linux-2</os>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Arch OS vulnerabilities -->
|
||||
<provider name="arch">
|
||||
<enabled>no</enabled>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Windows OS vulnerabilities -->
|
||||
<provider name="msu">
|
||||
<enabled>yes</enabled>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Aggregate vulnerabilities -->
|
||||
<provider name="nvd">
|
||||
<enabled>yes</enabled>
|
||||
<update_from_year>2010</update_from_year>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
</vulnerability-detector>
|
||||
<indexer>
|
||||
<enabled>yes</enabled>
|
||||
<hosts>
|
||||
<host>https://wazuh1.indexer:9200</host>
|
||||
<host>https://wazuh2.indexer:9200</host>
|
||||
<host>https://wazuh3.indexer:9200</host>
|
||||
</hosts>
|
||||
<ssl>
|
||||
<certificate_authorities>
|
||||
<ca>/etc/ssl/root-ca.pem</ca>
|
||||
</certificate_authorities>
|
||||
<certificate>/etc/ssl/filebeat.pem</certificate>
|
||||
<key>/etc/ssl/filebeat.key</key>
|
||||
</ssl>
|
||||
</indexer>
|
||||
|
||||
<!-- File integrity monitoring -->
|
||||
<syscheck>
|
||||
@@ -349,9 +307,4 @@
|
||||
<location>/var/ossec/logs/active-responses.log</location>
|
||||
</localfile>
|
||||
|
||||
<localfile>
|
||||
<log_format>syslog</log_format>
|
||||
<location>/var/log/dpkg.log</location>
|
||||
</localfile>
|
||||
|
||||
</ossec_config>
|
||||
</ossec_config>
|
||||
|
@@ -95,69 +95,27 @@
|
||||
<skip_nfs>yes</skip_nfs>
|
||||
</sca>
|
||||
|
||||
<vulnerability-detector>
|
||||
<enabled>no</enabled>
|
||||
<interval>5m</interval>
|
||||
<min_full_scan_interval>6h</min_full_scan_interval>
|
||||
<run_on_start>yes</run_on_start>
|
||||
<vulnerability-detection>
|
||||
<enabled>yes</enabled>
|
||||
<index-status>yes</index-status>
|
||||
<feed-update-interval>60m</feed-update-interval>
|
||||
</vulnerability-detection>
|
||||
|
||||
<!-- Ubuntu OS vulnerabilities -->
|
||||
<provider name="canonical">
|
||||
<enabled>no</enabled>
|
||||
<os>trusty</os>
|
||||
<os>xenial</os>
|
||||
<os>bionic</os>
|
||||
<os>focal</os>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Debian OS vulnerabilities -->
|
||||
<provider name="debian">
|
||||
<enabled>no</enabled>
|
||||
<os>stretch</os>
|
||||
<os>buster</os>
|
||||
<os>bullseye</os>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- RedHat OS vulnerabilities -->
|
||||
<provider name="redhat">
|
||||
<enabled>no</enabled>
|
||||
<os>5</os>
|
||||
<os>6</os>
|
||||
<os>7</os>
|
||||
<os>8</os>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Amazon Linux OS vulnerabilities -->
|
||||
<provider name="alas">
|
||||
<enabled>no</enabled>
|
||||
<os>amazon-linux</os>
|
||||
<os>amazon-linux-2</os>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Arch OS vulnerabilities -->
|
||||
<provider name="arch">
|
||||
<enabled>no</enabled>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Windows OS vulnerabilities -->
|
||||
<provider name="msu">
|
||||
<enabled>yes</enabled>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Aggregate vulnerabilities -->
|
||||
<provider name="nvd">
|
||||
<enabled>yes</enabled>
|
||||
<update_from_year>2010</update_from_year>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
</vulnerability-detector>
|
||||
<indexer>
|
||||
<enabled>yes</enabled>
|
||||
<hosts>
|
||||
<host>https://wazuh1.indexer:9200</host>
|
||||
<host>https://wazuh2.indexer:9200</host>
|
||||
<host>https://wazuh3.indexer:9200</host>
|
||||
</hosts>
|
||||
<ssl>
|
||||
<certificate_authorities>
|
||||
<ca>/etc/ssl/root-ca.pem</ca>
|
||||
</certificate_authorities>
|
||||
<certificate>/etc/ssl/filebeat.pem</certificate>
|
||||
<key>/etc/ssl/filebeat.key</key>
|
||||
</ssl>
|
||||
</indexer>
|
||||
|
||||
<!-- File integrity monitoring -->
|
||||
<syscheck>
|
||||
@@ -349,9 +307,4 @@
|
||||
<location>/var/ossec/logs/active-responses.log</location>
|
||||
</localfile>
|
||||
|
||||
<localfile>
|
||||
<log_format>syslog</log_format>
|
||||
<location>/var/log/dpkg.log</location>
|
||||
</localfile>
|
||||
|
||||
</ossec_config>
|
||||
</ossec_config>
|
||||
|
@@ -1,12 +0,0 @@
|
||||
server.host: 0.0.0.0
|
||||
server.port: 5601
|
||||
opensearch.hosts: https://wazuh1.indexer:9200
|
||||
opensearch.ssl.verificationMode: certificate
|
||||
opensearch.requestHeadersWhitelist: ["securitytenant","Authorization"]
|
||||
opensearch_security.multitenancy.enabled: false
|
||||
opensearch_security.readonly_mode.roles: ["kibana_read_only"]
|
||||
server.ssl.enabled: true
|
||||
server.ssl.key: "/usr/share/wazuh-dashboard/certs/wazuh-dashboard-key.pem"
|
||||
server.ssl.certificate: "/usr/share/wazuh-dashboard/certs/wazuh-dashboard.pem"
|
||||
opensearch.ssl.certificateAuthorities: ["/usr/share/wazuh-dashboard/certs/root-ca.pem"]
|
||||
uiSettings.overrides.defaultRoute: /app/wazuh
|
@@ -1,38 +0,0 @@
|
||||
network.host: wazuh1.indexer
|
||||
node.name: wazuh1.indexer
|
||||
cluster.initial_master_nodes:
|
||||
- wazuh1.indexer
|
||||
- wazuh2.indexer
|
||||
- wazuh3.indexer
|
||||
cluster.name: "wazuh-cluster"
|
||||
discovery.seed_hosts:
|
||||
- wazuh1.indexer
|
||||
- wazuh2.indexer
|
||||
- wazuh3.indexer
|
||||
node.max_local_storage_nodes: "3"
|
||||
path.data: /var/lib/wazuh-indexer
|
||||
path.logs: /var/log/wazuh-indexer
|
||||
plugins.security.ssl.http.pemcert_filepath: ${OPENSEARCH_PATH_CONF}/certs/wazuh1.indexer.pem
|
||||
plugins.security.ssl.http.pemkey_filepath: ${OPENSEARCH_PATH_CONF}/certs/wazuh1.indexer.key
|
||||
plugins.security.ssl.http.pemtrustedcas_filepath: ${OPENSEARCH_PATH_CONF}/certs/root-ca.pem
|
||||
plugins.security.ssl.transport.pemcert_filepath: ${OPENSEARCH_PATH_CONF}/certs/wazuh1.indexer.pem
|
||||
plugins.security.ssl.transport.pemkey_filepath: ${OPENSEARCH_PATH_CONF}/certs/wazuh1.indexer.key
|
||||
plugins.security.ssl.transport.pemtrustedcas_filepath: ${OPENSEARCH_PATH_CONF}/certs/root-ca.pem
|
||||
plugins.security.ssl.http.enabled: true
|
||||
plugins.security.ssl.transport.enforce_hostname_verification: false
|
||||
plugins.security.ssl.transport.resolve_hostname: false
|
||||
plugins.security.authcz.admin_dn:
|
||||
- "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
plugins.security.check_snapshot_restore_write_privileges: true
|
||||
plugins.security.enable_snapshot_restore_privilege: true
|
||||
plugins.security.nodes_dn:
|
||||
- "CN=wazuh1.indexer,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
- "CN=wazuh2.indexer,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
- "CN=wazuh3.indexer,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
- "CN=filebeat,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
plugins.security.restapi.roles_enabled:
|
||||
- "all_access"
|
||||
- "security_rest_api_access"
|
||||
plugins.security.allow_default_init_securityindex: true
|
||||
cluster.routing.allocation.disk.threshold_enabled: false
|
||||
compatibility.override_main_response_version: true
|
@@ -1,38 +0,0 @@
|
||||
network.host: wazuh2.indexer
|
||||
node.name: wazuh2.indexer
|
||||
cluster.initial_master_nodes:
|
||||
- wazuh1.indexer
|
||||
- wazuh2.indexer
|
||||
- wazuh3.indexer
|
||||
cluster.name: "wazuh-cluster"
|
||||
discovery.seed_hosts:
|
||||
- wazuh1.indexer
|
||||
- wazuh2.indexer
|
||||
- wazuh3.indexer
|
||||
node.max_local_storage_nodes: "3"
|
||||
path.data: /var/lib/wazuh-indexer
|
||||
path.logs: /var/log/wazuh-indexer
|
||||
plugins.security.ssl.http.pemcert_filepath: ${OPENSEARCH_PATH_CONF}/certs/wazuh2.indexer.pem
|
||||
plugins.security.ssl.http.pemkey_filepath: ${OPENSEARCH_PATH_CONF}/certs/wazuh2.indexer.key
|
||||
plugins.security.ssl.http.pemtrustedcas_filepath: ${OPENSEARCH_PATH_CONF}/certs/root-ca.pem
|
||||
plugins.security.ssl.transport.pemcert_filepath: ${OPENSEARCH_PATH_CONF}/certs/wazuh2.indexer.pem
|
||||
plugins.security.ssl.transport.pemkey_filepath: ${OPENSEARCH_PATH_CONF}/certs/wazuh2.indexer.key
|
||||
plugins.security.ssl.transport.pemtrustedcas_filepath: ${OPENSEARCH_PATH_CONF}/certs/root-ca.pem
|
||||
plugins.security.ssl.http.enabled: true
|
||||
plugins.security.ssl.transport.enforce_hostname_verification: false
|
||||
plugins.security.ssl.transport.resolve_hostname: false
|
||||
plugins.security.authcz.admin_dn:
|
||||
- "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
plugins.security.check_snapshot_restore_write_privileges: true
|
||||
plugins.security.enable_snapshot_restore_privilege: true
|
||||
plugins.security.nodes_dn:
|
||||
- "CN=wazuh1.indexer,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
- "CN=wazuh2.indexer,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
- "CN=wazuh3.indexer,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
- "CN=filebeat,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
plugins.security.restapi.roles_enabled:
|
||||
- "all_access"
|
||||
- "security_rest_api_access"
|
||||
plugins.security.allow_default_init_securityindex: true
|
||||
cluster.routing.allocation.disk.threshold_enabled: false
|
||||
compatibility.override_main_response_version: true
|
@@ -1,38 +0,0 @@
|
||||
network.host: wazuh3.indexer
|
||||
node.name: wazuh3.indexer
|
||||
cluster.initial_master_nodes:
|
||||
- wazuh1.indexer
|
||||
- wazuh2.indexer
|
||||
- wazuh3.indexer
|
||||
cluster.name: "wazuh-cluster"
|
||||
discovery.seed_hosts:
|
||||
- wazuh1.indexer
|
||||
- wazuh2.indexer
|
||||
- wazuh3.indexer
|
||||
node.max_local_storage_nodes: "3"
|
||||
path.data: /var/lib/wazuh-indexer
|
||||
path.logs: /var/log/wazuh-indexer
|
||||
plugins.security.ssl.http.pemcert_filepath: ${OPENSEARCH_PATH_CONF}/certs/wazuh3.indexer.pem
|
||||
plugins.security.ssl.http.pemkey_filepath: ${OPENSEARCH_PATH_CONF}/certs/wazuh3.indexer.key
|
||||
plugins.security.ssl.http.pemtrustedcas_filepath: ${OPENSEARCH_PATH_CONF}/certs/root-ca.pem
|
||||
plugins.security.ssl.transport.pemcert_filepath: ${OPENSEARCH_PATH_CONF}/certs/wazuh3.indexer.pem
|
||||
plugins.security.ssl.transport.pemkey_filepath: ${OPENSEARCH_PATH_CONF}/certs/wazuh3.indexer.key
|
||||
plugins.security.ssl.transport.pemtrustedcas_filepath: ${OPENSEARCH_PATH_CONF}/certs/root-ca.pem
|
||||
plugins.security.ssl.http.enabled: true
|
||||
plugins.security.ssl.transport.enforce_hostname_verification: false
|
||||
plugins.security.ssl.transport.resolve_hostname: false
|
||||
plugins.security.authcz.admin_dn:
|
||||
- "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
plugins.security.check_snapshot_restore_write_privileges: true
|
||||
plugins.security.enable_snapshot_restore_privilege: true
|
||||
plugins.security.nodes_dn:
|
||||
- "CN=wazuh1.indexer,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
- "CN=wazuh2.indexer,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
- "CN=wazuh3.indexer,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
- "CN=filebeat,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
plugins.security.restapi.roles_enabled:
|
||||
- "all_access"
|
||||
- "security_rest_api_access"
|
||||
plugins.security.allow_default_init_securityindex: true
|
||||
cluster.routing.allocation.disk.threshold_enabled: false
|
||||
compatibility.override_main_response_version: true
|
@@ -3,23 +3,30 @@ version: '3.7'
|
||||
|
||||
services:
|
||||
wazuh.master:
|
||||
image: wazuh/wazuh-manager:4.4.1
|
||||
image: wazuh/wazuh-manager:5.0.0
|
||||
hostname: wazuh.master
|
||||
restart: always
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 655360
|
||||
hard: 655360
|
||||
ports:
|
||||
- "1515:1515"
|
||||
- "514:514/udp"
|
||||
- "55000:55000"
|
||||
environment:
|
||||
- INDEXER_URL=https://wazuh1.indexer:9200
|
||||
- INDEXER_USERNAME=admin
|
||||
- INDEXER_PASSWORD=SecretPassword
|
||||
- FILEBEAT_SSL_VERIFICATION_MODE=full
|
||||
- SSL_CERTIFICATE_AUTHORITIES=/etc/ssl/root-ca.pem
|
||||
- SSL_CERTIFICATE=/etc/ssl/filebeat.pem
|
||||
- SSL_KEY=/etc/ssl/filebeat.key
|
||||
- API_USERNAME=wazuh-wui
|
||||
- API_PASSWORD=MyS3cr37P450r.*-
|
||||
INDEXER_URL: https://wazuh1.indexer:9200
|
||||
INDEXER_USERNAME: admin
|
||||
INDEXER_PASSWORD: admin
|
||||
FILEBEAT_SSL_VERIFICATION_MODE: full
|
||||
SSL_CERTIFICATE_AUTHORITIES: /etc/ssl/root-ca.pem
|
||||
SSL_CERTIFICATE: /etc/ssl/filebeat.pem
|
||||
SSL_KEY: /etc/ssl/filebeat.key
|
||||
API_USERNAME: wazuh-wui
|
||||
API_PASSWORD: MyS3cr37P450r.*-
|
||||
volumes:
|
||||
- master-wazuh-api-configuration:/var/ossec/api/configuration
|
||||
- master-wazuh-etc:/var/ossec/etc
|
||||
@@ -38,17 +45,24 @@ services:
|
||||
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
|
||||
|
||||
wazuh.worker:
|
||||
image: wazuh/wazuh-manager:4.4.1
|
||||
image: wazuh/wazuh-manager:5.0.0
|
||||
hostname: wazuh.worker
|
||||
restart: always
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 655360
|
||||
hard: 655360
|
||||
environment:
|
||||
- INDEXER_URL=https://wazuh1.indexer:9200
|
||||
- INDEXER_USERNAME=admin
|
||||
- INDEXER_PASSWORD=SecretPassword
|
||||
- FILEBEAT_SSL_VERIFICATION_MODE=full
|
||||
- SSL_CERTIFICATE_AUTHORITIES=/etc/ssl/root-ca.pem
|
||||
- SSL_CERTIFICATE=/etc/ssl/filebeat.pem
|
||||
- SSL_KEY=/etc/ssl/filebeat.key
|
||||
INDEXER_URL: https://wazuh1.indexer:9200
|
||||
INDEXER_USERNAME: admin
|
||||
INDEXER_PASSWORD: admin
|
||||
FILEBEAT_SSL_VERIFICATION_MODE: full
|
||||
SSL_CERTIFICATE_AUTHORITIES: /etc/ssl/root-ca.pem
|
||||
SSL_CERTIFICATE: /etc/ssl/filebeat.pem
|
||||
SSL_KEY: /etc/ssl/filebeat.key
|
||||
volumes:
|
||||
- worker-wazuh-api-configuration:/var/ossec/api/configuration
|
||||
- worker-wazuh-etc:/var/ossec/etc
|
||||
@@ -67,14 +81,9 @@ services:
|
||||
- ./config/wazuh_cluster/wazuh_worker.conf:/wazuh-config-mount/etc/ossec.conf
|
||||
|
||||
wazuh1.indexer:
|
||||
image: wazuh/wazuh-indexer:4.4.1
|
||||
image: wazuh/wazuh-indexer:5.0.0
|
||||
hostname: wazuh1.indexer
|
||||
restart: always
|
||||
ports:
|
||||
- "9200:9200"
|
||||
environment:
|
||||
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
|
||||
- "bootstrap.memory_lock=true"
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
@@ -82,6 +91,38 @@ services:
|
||||
nofile:
|
||||
soft: 65536
|
||||
hard: 65536
|
||||
ports:
|
||||
- "9200:9200"
|
||||
environment:
|
||||
OPENSEARCH_JAVA_OPTS: "-Xms1g -Xmx1g"
|
||||
bootstrap.memory_lock: "true"
|
||||
NETWORK_HOST: wazuh1.indexer
|
||||
NODE_NAME: wazuh1.indexer
|
||||
CLUSTER_INITIAL_MASTER_NODES: '["wazuh1.indexer", "wazuh2.indexer", "wazuh3.indexer"]'
|
||||
CLUSTER_NAME: "wazuh-cluster"
|
||||
DISCOVERY_SEED_HOSTS: '["wazuh1.indexer", "wazuh2.indexer", "wazuh3.indexer"]'
|
||||
NODE_MAX_LOCAL_STORAGE_NODES: "3"
|
||||
PATH_DATA: /var/lib/wazuh-indexer
|
||||
PATH_LOGS: /var/log/wazuh-indexer
|
||||
PLUGINS_SECURITY_SSL_HTTP_PEMCERT_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh1.indexer.pem
|
||||
PLUGINS_SECURITY_SSL_HTTP_PEMKEY_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh1.indexer.key
|
||||
PLUGINS_SECURITY_SSL_HTTP_PEMTRUSTEDCAS_FILEPATH: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_PEMCERT_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh1.indexer.pem
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_PEMKEY_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh1.indexer.key
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_PEMTRUSTEDCAS_FILEPATH: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
PLUGINS_SECURITY_SSL_HTTP_ENABLED: "true"
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_ENFORCE_HOSTNAME_VERIFICATION: "false"
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_RESOLVE_HOSTNAME: "false"
|
||||
PLUGINS_SECURITY_AUTHCZ_ADMIN_DN: "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
PLUGINS_SECURITY_CHECK_SNAPSHOT_RESTORE_WRITE_PRIVILEGES: "true"
|
||||
PLUGINS_SECURITY_ENABLE_SNAPSHOT_RESTORE_PRIVILEGE: "true"
|
||||
PLUGINS_SECURITY_NODES_DN: '["CN=wazuh1.indexer,OU=Wazuh,O=Wazuh,L=California,C=US", "CN=wazuh2.indexer,OU=Wazuh,O=Wazuh,L=California,C=US", "CN=wazuh3.indexer,OU=Wazuh,O=Wazuh,L=California,C=US", "CN=filebeat,OU=Wazuh,O=Wazuh,L=California,C=US"]'
|
||||
PLUGINS_SECURITY_RESTAPI_ROLES_ENABLED: '["all_access", "security_rest_api_access"]'
|
||||
PLUGINS_SECURITY_SYSTEM_INDICES_ENABLED: "true"
|
||||
PLUGINS_SECURITY_SYSTEM_INDICES_INDICES: '[".opendistro-alerting-config", ".opendistro-alerting-alert*", ".opendistro-anomaly-results*", ".opendistro-anomaly-detector*", ".opendistro-anomaly-checkpoints", ".opendistro-anomaly-detection-state", ".opendistro-reports-*", ".opendistro-notifications-*", ".opendistro-notebooks", ".opensearch-observability", ".opendistro-asynchronous-search-response*", ".replication-metadata-store"]'
|
||||
PLUGINS_SECURITY_ALLOW_DEFAULT_INIT_SECURITYINDEX: "true"
|
||||
CLUSTER_ROUTING_ALLOCATION_DISK_THRESHOLD_ENABLED: "false"
|
||||
COMPATIBILITY_OVERRIDE_MAIN_RESPONSE_VERSION: "true"
|
||||
volumes:
|
||||
- wazuh-indexer-data-1:/var/lib/wazuh-indexer
|
||||
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
@@ -89,16 +130,13 @@ services:
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh1.indexer.pem:/usr/share/wazuh-indexer/certs/wazuh1.indexer.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/admin.pem:/usr/share/wazuh-indexer/certs/admin.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/admin-key.pem:/usr/share/wazuh-indexer/certs/admin-key.pem
|
||||
- ./config/wazuh_indexer/wazuh1.indexer.yml:/usr/share/wazuh-indexer/opensearch.yml
|
||||
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
||||
# if you need mount a custom opensearch.yml, uncomment the next line and delete the environment variables
|
||||
# - ./config/wazuh_indexer/wazuh1.indexer.yml:/usr/share/wazuh-indexer/opensearch.yml
|
||||
|
||||
wazuh2.indexer:
|
||||
image: wazuh/wazuh-indexer:4.4.1
|
||||
image: wazuh/wazuh-indexer:5.0.0
|
||||
hostname: wazuh2.indexer
|
||||
restart: always
|
||||
environment:
|
||||
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
|
||||
- "bootstrap.memory_lock=true"
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
@@ -106,21 +144,48 @@ services:
|
||||
nofile:
|
||||
soft: 65536
|
||||
hard: 65536
|
||||
environment:
|
||||
OPENSEARCH_JAVA_OPTS: "-Xms1g -Xmx1g"
|
||||
bootstrap.memory_lock: "true"
|
||||
NETWORK_HOST: wazuh2.indexer
|
||||
NODE_NAME: wazuh2.indexer
|
||||
CLUSTER_INITIAL_MASTER_NODES: '["wazuh1.indexer", "wazuh2.indexer", "wazuh3.indexer"]'
|
||||
CLUSTER_NAME: "wazuh-cluster"
|
||||
DISCOVERY_SEED_HOSTS: '["wazuh1.indexer", "wazuh2.indexer", "wazuh3.indexer"]'
|
||||
NODE_MAX_LOCAL_STORAGE_NODES: "3"
|
||||
PATH_DATA: /var/lib/wazuh-indexer
|
||||
PATH_LOGS: /var/log/wazuh-indexer
|
||||
PLUGINS_SECURITY_SSL_HTTP_PEMCERT_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh2.indexer.pem
|
||||
PLUGINS_SECURITY_SSL_HTTP_PEMKEY_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh2.indexer.key
|
||||
PLUGINS_SECURITY_SSL_HTTP_PEMTRUSTEDCAS_FILEPATH: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_PEMCERT_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh2.indexer.pem
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_PEMKEY_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh2.indexer.key
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_PEMTRUSTEDCAS_FILEPATH: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
PLUGINS_SECURITY_SSL_HTTP_ENABLED: "true"
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_ENFORCE_HOSTNAME_VERIFICATION: "false"
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_RESOLVE_HOSTNAME: "false"
|
||||
PLUGINS_SECURITY_AUTHCZ_ADMIN_DN: "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
PLUGINS_SECURITY_CHECK_SNAPSHOT_RESTORE_WRITE_PRIVILEGES: "true"
|
||||
PLUGINS_SECURITY_ENABLE_SNAPSHOT_RESTORE_PRIVILEGE: "true"
|
||||
PLUGINS_SECURITY_NODES_DN: '["CN=wazuh1.indexer,OU=Wazuh,O=Wazuh,L=California,C=US", "CN=wazuh2.indexer,OU=Wazuh,O=Wazuh,L=California,C=US", "CN=wazuh3.indexer,OU=Wazuh,O=Wazuh,L=California,C=US", "CN=filebeat,OU=Wazuh,O=Wazuh,L=California,C=US"]'
|
||||
PLUGINS_SECURITY_RESTAPI_ROLES_ENABLED: '["all_access", "security_rest_api_access"]'
|
||||
PLUGINS_SECURITY_SYSTEM_INDICES_ENABLED: "true"
|
||||
PLUGINS_SECURITY_SYSTEM_INDICES_INDICES: '[".opendistro-alerting-config", ".opendistro-alerting-alert*", ".opendistro-anomaly-results*", ".opendistro-anomaly-detector*", ".opendistro-anomaly-checkpoints", ".opendistro-anomaly-detection-state", ".opendistro-reports-*", ".opendistro-notifications-*", ".opendistro-notebooks", ".opensearch-observability", ".opendistro-asynchronous-search-response*", ".replication-metadata-store"]'
|
||||
PLUGINS_SECURITY_ALLOW_DEFAULT_INIT_SECURITYINDEX: "true"
|
||||
CLUSTER_ROUTING_ALLOCATION_DISK_THRESHOLD_ENABLED: "false"
|
||||
COMPATIBILITY_OVERRIDE_MAIN_RESPONSE_VERSION: "true"
|
||||
volumes:
|
||||
- wazuh-indexer-data-2:/var/lib/wazuh-indexer
|
||||
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh2.indexer-key.pem:/usr/share/wazuh-indexer/certs/wazuh2.indexer.key
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh2.indexer.pem:/usr/share/wazuh-indexer/certs/wazuh2.indexer.pem
|
||||
- ./config/wazuh_indexer/wazuh2.indexer.yml:/usr/share/wazuh-indexer/opensearch.yml
|
||||
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
||||
# if you need mount a custom opensearch.yml, uncomment the next line and delete the environment variables
|
||||
# - ./config/wazuh_indexer/wazuh2.indexer.yml:/usr/share/wazuh-indexer/opensearch.yml
|
||||
|
||||
wazuh3.indexer:
|
||||
image: wazuh/wazuh-indexer:4.4.1
|
||||
image: wazuh/wazuh-indexer:5.0.0
|
||||
hostname: wazuh3.indexer
|
||||
restart: always
|
||||
environment:
|
||||
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
|
||||
- "bootstrap.memory_lock=true"
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
@@ -128,31 +193,84 @@ services:
|
||||
nofile:
|
||||
soft: 65536
|
||||
hard: 65536
|
||||
environment:
|
||||
OPENSEARCH_JAVA_OPTS: "-Xms1g -Xmx1g"
|
||||
bootstrap.memory_lock: "true"
|
||||
NETWORK_HOST: wazuh3.indexer
|
||||
NODE_NAME: wazuh3.indexer
|
||||
CLUSTER_INITIAL_MASTER_NODES: '["wazuh1.indexer", "wazuh2.indexer", "wazuh3.indexer"]'
|
||||
CLUSTER_NAME: "wazuh-cluster"
|
||||
DISCOVERY_SEED_HOSTS: '["wazuh1.indexer", "wazuh2.indexer", "wazuh3.indexer"]'
|
||||
NODE_MAX_LOCAL_STORAGE_NODES: "3"
|
||||
PATH_DATA: /var/lib/wazuh-indexer
|
||||
PATH_LOGS: /var/log/wazuh-indexer
|
||||
PLUGINS_SECURITY_SSL_HTTP_PEMCERT_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh3.indexer.pem
|
||||
PLUGINS_SECURITY_SSL_HTTP_PEMKEY_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh3.indexer.key
|
||||
PLUGINS_SECURITY_SSL_HTTP_PEMTRUSTEDCAS_FILEPATH: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_PEMCERT_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh3.indexer.pem
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_PEMKEY_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh3.indexer.key
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_PEMTRUSTEDCAS_FILEPATH: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
PLUGINS_SECURITY_SSL_HTTP_ENABLED: "true"
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_ENFORCE_HOSTNAME_VERIFICATION: "false"
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_RESOLVE_HOSTNAME: "false"
|
||||
PLUGINS_SECURITY_AUTHCZ_ADMIN_DN: "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
PLUGINS_SECURITY_CHECK_SNAPSHOT_RESTORE_WRITE_PRIVILEGES: "true"
|
||||
PLUGINS_SECURITY_ENABLE_SNAPSHOT_RESTORE_PRIVILEGE: "true"
|
||||
PLUGINS_SECURITY_NODES_DN: '["CN=wazuh1.indexer,OU=Wazuh,O=Wazuh,L=California,C=US", "CN=wazuh2.indexer,OU=Wazuh,O=Wazuh,L=California,C=US", "CN=wazuh3.indexer,OU=Wazuh,O=Wazuh,L=California,C=US", "CN=filebeat,OU=Wazuh,O=Wazuh,L=California,C=US"]'
|
||||
PLUGINS_SECURITY_RESTAPI_ROLES_ENABLED: '["all_access", "security_rest_api_access"]'
|
||||
PLUGINS_SECURITY_SYSTEM_INDICES_ENABLED: "true"
|
||||
PLUGINS_SECURITY_SYSTEM_INDICES_INDICES: '[".opendistro-alerting-config", ".opendistro-alerting-alert*", ".opendistro-anomaly-results*", ".opendistro-anomaly-detector*", ".opendistro-anomaly-checkpoints", ".opendistro-anomaly-detection-state", ".opendistro-reports-*", ".opendistro-notifications-*", ".opendistro-notebooks", ".opensearch-observability", ".opendistro-asynchronous-search-response*", ".replication-metadata-store"]'
|
||||
PLUGINS_SECURITY_ALLOW_DEFAULT_INIT_SECURITYINDEX: "true"
|
||||
CLUSTER_ROUTING_ALLOCATION_DISK_THRESHOLD_ENABLED: "false"
|
||||
COMPATIBILITY_OVERRIDE_MAIN_RESPONSE_VERSION: "true"
|
||||
volumes:
|
||||
- wazuh-indexer-data-3:/var/lib/wazuh-indexer
|
||||
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh3.indexer-key.pem:/usr/share/wazuh-indexer/certs/wazuh3.indexer.key
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh3.indexer.pem:/usr/share/wazuh-indexer/certs/wazuh3.indexer.pem
|
||||
- ./config/wazuh_indexer/wazuh3.indexer.yml:/usr/share/wazuh-indexer/opensearch.yml
|
||||
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
||||
# if you need mount a custom opensearch.yml, uncomment the next line and delete the environment variables
|
||||
# - ./config/wazuh_indexer/wazuh3.indexer.yml:/usr/share/wazuh-indexer/opensearch.yml
|
||||
|
||||
wazuh.dashboard:
|
||||
image: wazuh/wazuh-dashboard:4.4.1
|
||||
image: wazuh/wazuh-dashboard:5.0.0
|
||||
hostname: wazuh.dashboard
|
||||
restart: always
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 65536
|
||||
hard: 65536
|
||||
ports:
|
||||
- 443:5601
|
||||
environment:
|
||||
- OPENSEARCH_HOSTS="https://wazuh1.indexer:9200"
|
||||
- WAZUH_API_URL="https://wazuh.master"
|
||||
- API_USERNAME=wazuh-wui
|
||||
- API_PASSWORD=MyS3cr37P450r.*-
|
||||
OPENSEARCH_HOSTS: "https://wazuh1.indexer:9200"
|
||||
WAZUH_API_URL: "https://wazuh.master"
|
||||
API_USERNAME: wazuh-wui
|
||||
API_PASSWORD: MyS3cr37P450r.*-
|
||||
DASHBOARD_USERNAME: kibanaserver
|
||||
DASHBOARD_PASSWORD: kibanaserver
|
||||
SERVER_HOST: "0.0.0.0"
|
||||
SERVER_PORT: "5601"
|
||||
OPENSEARCH_SSL_VERIFICATIONMODE: certificate
|
||||
OPENSEARCH_REQUESTHEADERSALLOWLIST: '["securitytenant","Authorization"]'
|
||||
OPENSEARCH_SECURITY_MULTITENANCY_ENABLED: "false"
|
||||
SERVER_SSL_ENABLED: "true"
|
||||
OPENSEARCH_SECURITY_READONLY_MODE_ROLES: '["kibana_read_only"]'
|
||||
SERVER_SSL_KEY: "/usr/share/wazuh-dashboard/certs/wazuh-dashboard-key.pem"
|
||||
SERVER_SSL_CERTIFICATE: "/usr/share/wazuh-dashboard/certs/wazuh-dashboard.pem"
|
||||
OPENSEARCH_SSL_CERTIFICATEAUTHORITIES: '["/usr/share/wazuh-dashboard/certs/root-ca.pem"]'
|
||||
UISETTINGS_OVERRIDES_DEFAULTROUTE: /app/wz-home
|
||||
volumes:
|
||||
- wazuh-dashboard-config:/usr/share/wazuh-dashboard/data/wazuh/config
|
||||
- wazuh-dashboard-custom:/usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard-key.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard-key.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-dashboard/certs/root-ca.pem
|
||||
- ./config/wazuh_dashboard/opensearch_dashboards.yml:/usr/share/wazuh-dashboard/config/opensearch_dashboards.yml
|
||||
- ./config/wazuh_dashboard/wazuh.yml:/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml
|
||||
# if you need mount a custom opensearch-dashboards.yml, uncomment the next line and delete the environment variables
|
||||
# - ./config/wazuh_dashboard/opensearch_dashboards.yml:/usr/share/wazuh-dashboard/config/opensearch_dashboards.yml
|
||||
depends_on:
|
||||
- wazuh1.indexer
|
||||
links:
|
||||
@@ -202,3 +320,5 @@ volumes:
|
||||
wazuh-indexer-data-1:
|
||||
wazuh-indexer-data-2:
|
||||
wazuh-indexer-data-3:
|
||||
wazuh-dashboard-config:
|
||||
wazuh-dashboard-custom:
|
||||
|
@@ -1,10 +1,9 @@
|
||||
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
generator:
|
||||
image: wazuh/wazuh-certs-generator:0.0.1
|
||||
hostname: wazuh-certs-generator
|
||||
image: wazuh/wazuh-cert-tool:5.0.0
|
||||
hostname: wazuh-cert-tool
|
||||
container_name: wazuh-cert-tool
|
||||
volumes:
|
||||
- ./config/wazuh_indexer_ssl_certs/:/certificates/
|
||||
- ./config/certs.yml:/config/certs.yml
|
||||
- ./config/certs.yml:/config/certs.yml
|
@@ -8,17 +8,17 @@ $ sysctl -w vm.max_map_count=262144
|
||||
```
|
||||
2) Run the certificate creation script:
|
||||
```
|
||||
$ docker-compose -f generate-indexer-certs.yml run --rm generator
|
||||
$ docker compose -f generate-certs.yml run --rm generator
|
||||
```
|
||||
3) Start the environment with docker-compose:
|
||||
3) Start the environment with docker compose:
|
||||
|
||||
- In the foregroud:
|
||||
```
|
||||
$ docker-compose up
|
||||
$ docker compose up
|
||||
```
|
||||
- In the background:
|
||||
```
|
||||
$ docker-compose up -d
|
||||
$ docker compose up -d
|
||||
```
|
||||
|
||||
The environment takes about 1 minute to get up (depending on your Docker host) for the first time since Wazuh Indexer must be started for the first time and the indexes and index patterns must be generated.
|
||||
|
@@ -95,69 +95,25 @@
|
||||
<skip_nfs>yes</skip_nfs>
|
||||
</sca>
|
||||
|
||||
<vulnerability-detector>
|
||||
<enabled>no</enabled>
|
||||
<interval>5m</interval>
|
||||
<min_full_scan_interval>6h</min_full_scan_interval>
|
||||
<run_on_start>yes</run_on_start>
|
||||
<vulnerability-detection>
|
||||
<enabled>yes</enabled>
|
||||
<index-status>yes</index-status>
|
||||
<feed-update-interval>60m</feed-update-interval>
|
||||
</vulnerability-detection>
|
||||
|
||||
<!-- Ubuntu OS vulnerabilities -->
|
||||
<provider name="canonical">
|
||||
<enabled>no</enabled>
|
||||
<os>trusty</os>
|
||||
<os>xenial</os>
|
||||
<os>bionic</os>
|
||||
<os>focal</os>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Debian OS vulnerabilities -->
|
||||
<provider name="debian">
|
||||
<enabled>no</enabled>
|
||||
<os>stretch</os>
|
||||
<os>buster</os>
|
||||
<os>bullseye</os>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- RedHat OS vulnerabilities -->
|
||||
<provider name="redhat">
|
||||
<enabled>no</enabled>
|
||||
<os>5</os>
|
||||
<os>6</os>
|
||||
<os>7</os>
|
||||
<os>8</os>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Amazon Linux OS vulnerabilities -->
|
||||
<provider name="alas">
|
||||
<enabled>no</enabled>
|
||||
<os>amazon-linux</os>
|
||||
<os>amazon-linux-2</os>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Arch OS vulnerabilities -->
|
||||
<provider name="arch">
|
||||
<enabled>no</enabled>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Windows OS vulnerabilities -->
|
||||
<provider name="msu">
|
||||
<enabled>yes</enabled>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
<!-- Aggregate vulnerabilities -->
|
||||
<provider name="nvd">
|
||||
<enabled>yes</enabled>
|
||||
<update_from_year>2010</update_from_year>
|
||||
<update_interval>1h</update_interval>
|
||||
</provider>
|
||||
|
||||
</vulnerability-detector>
|
||||
<indexer>
|
||||
<enabled>yes</enabled>
|
||||
<hosts>
|
||||
<host>https://wazuh.indexer:9200</host>
|
||||
</hosts>
|
||||
<ssl>
|
||||
<certificate_authorities>
|
||||
<ca>/etc/ssl/root-ca.pem</ca>
|
||||
</certificate_authorities>
|
||||
<certificate>/etc/ssl/filebeat.pem</certificate>
|
||||
<key>/etc/ssl/filebeat.key</key>
|
||||
</ssl>
|
||||
</indexer>
|
||||
|
||||
<!-- File integrity monitoring -->
|
||||
<syscheck>
|
||||
|
@@ -9,4 +9,4 @@ server.ssl.enabled: true
|
||||
server.ssl.key: "/usr/share/wazuh-dashboard/certs/wazuh-dashboard-key.pem"
|
||||
server.ssl.certificate: "/usr/share/wazuh-dashboard/certs/wazuh-dashboard.pem"
|
||||
opensearch.ssl.certificateAuthorities: ["/usr/share/wazuh-dashboard/certs/root-ca.pem"]
|
||||
uiSettings.overrides.defaultRoute: /app/wazuh
|
||||
uiSettings.overrides.defaultRoute: /app/wz-home
|
||||
|
@@ -3,24 +3,31 @@ version: '3.7'
|
||||
|
||||
services:
|
||||
wazuh.manager:
|
||||
image: wazuh/wazuh-manager:4.4.1
|
||||
image: wazuh/wazuh-manager:5.0.0
|
||||
hostname: wazuh.manager
|
||||
restart: always
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 655360
|
||||
hard: 655360
|
||||
ports:
|
||||
- "1514:1514"
|
||||
- "1515:1515"
|
||||
- "514:514/udp"
|
||||
- "55000:55000"
|
||||
environment:
|
||||
- INDEXER_URL=https://wazuh.indexer:9200
|
||||
- INDEXER_USERNAME=admin
|
||||
- INDEXER_PASSWORD=SecretPassword
|
||||
- FILEBEAT_SSL_VERIFICATION_MODE=full
|
||||
- SSL_CERTIFICATE_AUTHORITIES=/etc/ssl/root-ca.pem
|
||||
- SSL_CERTIFICATE=/etc/ssl/filebeat.pem
|
||||
- SSL_KEY=/etc/ssl/filebeat.key
|
||||
- API_USERNAME=wazuh-wui
|
||||
- API_PASSWORD=MyS3cr37P450r.*-
|
||||
INDEXER_URL: https://wazuh.indexer:9200
|
||||
INDEXER_USERNAME: admin
|
||||
INDEXER_PASSWORD: admin
|
||||
FILEBEAT_SSL_VERIFICATION_MODE: full
|
||||
SSL_CERTIFICATE_AUTHORITIES: /etc/ssl/root-ca.pem
|
||||
SSL_CERTIFICATE: /etc/ssl/filebeat.pem
|
||||
SSL_KEY: /etc/ssl/filebeat.key
|
||||
API_USERNAME: wazuh-wui
|
||||
API_PASSWORD: MyS3cr37P450r.*-
|
||||
volumes:
|
||||
- wazuh_api_configuration:/var/ossec/api/configuration
|
||||
- wazuh_etc:/var/ossec/etc
|
||||
@@ -39,13 +46,9 @@ services:
|
||||
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
|
||||
|
||||
wazuh.indexer:
|
||||
image: wazuh/wazuh-indexer:4.4.1
|
||||
image: wazuh/wazuh-indexer:5.0.0
|
||||
hostname: wazuh.indexer
|
||||
restart: always
|
||||
ports:
|
||||
- "9200:9200"
|
||||
environment:
|
||||
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
@@ -53,6 +56,37 @@ services:
|
||||
nofile:
|
||||
soft: 65536
|
||||
hard: 65536
|
||||
ports:
|
||||
- "9200:9200"
|
||||
environment:
|
||||
OPENSEARCH_JAVA_OPTS: "-Xms1g -Xmx1g"
|
||||
bootstrap.memory_lock: "true"
|
||||
NODE_NAME: "wazuh.indexer"
|
||||
CLUSTER_INITIAL_MASTER_NODES: "wazuh.indexer"
|
||||
CLUSTER_NAME: "wazuh-cluster"
|
||||
PATH_DATA: /var/lib/wazuh-indexer
|
||||
PATH_LOGS: /var/log/wazuh-indexer
|
||||
HTTP_PORT: 9200-9299
|
||||
TRANSPORT_TCP_PORT: 9300-9399
|
||||
COMPATIBILITY_OVERRIDE_MAIN_RESPONSE_VERSION: "true"
|
||||
PLUGINS_SECURITY_SSL_HTTP_PEMCERT_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh.indexer.pem
|
||||
PLUGINS_SECURITY_SSL_HTTP_PEMKEY_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh.indexer.key
|
||||
PLUGINS_SECURITY_SSL_HTTP_PEMTRUSTEDCAS_FILEPATH: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_PEMCERT_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh.indexer.pem
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_PEMKEY_FILEPATH: /usr/share/wazuh-indexer/certs/wazuh.indexer.key
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_PEMTRUSTEDCAS_FILEPATH: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
PLUGINS_SECURITY_SSL_HTTP_ENABLED: "true"
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_ENFORCE_HOSTNAME_VERIFICATION: "false"
|
||||
PLUGINS_SECURITY_SSL_TRANSPORT_RESOLVE_HOSTNAME: "false"
|
||||
PLUGINS_SECURITY_AUTHCZ_ADMIN_DN: "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
PLUGINS_SECURITY_CHECK_SNAPSHOT_RESTORE_WRITE_PRIVILEGES: "true"
|
||||
PLUGINS_SECURITY_ENABLE_SNAPSHOT_RESTORE_PRIVILEGE: "true"
|
||||
PLUGINS_SECURITY_NODES_DN: "CN=wazuh.indexer,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
PLUGINS_SECURITY_RESTAPI_ROLES_ENABLED: '["all_access", "security_rest_api_access"]'
|
||||
PLUGINS_SECURITY_SYSTEM_INDICES_ENABLED: "true"
|
||||
PLUGINS_SECURITY_SYSTEM_INDICES_INDICES: '[".opendistro-alerting-config", ".opendistro-alerting-alert*", ".opendistro-anomaly-results*", ".opendistro-anomaly-detector*", ".opendistro-anomaly-checkpoints", ".opendistro-anomaly-detection-state", ".opendistro-reports-*", ".opendistro-notifications-*", ".opendistro-notebooks", ".opensearch-observability", ".opendistro-asynchronous-search-response*", ".replication-metadata-store"]'
|
||||
PLUGINS_SECURITY_ALLOW_DEFAULT_INIT_SECURITYINDEX: "true"
|
||||
CLUSTER_ROUTING_ALLOCATION_DISK_THRESHOLD_ENABLED: "false"
|
||||
volumes:
|
||||
- wazuh-indexer-data:/var/lib/wazuh-indexer
|
||||
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
@@ -60,27 +94,49 @@ services:
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.indexer.pem:/usr/share/wazuh-indexer/certs/wazuh.indexer.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/admin.pem:/usr/share/wazuh-indexer/certs/admin.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/admin-key.pem:/usr/share/wazuh-indexer/certs/admin-key.pem
|
||||
- ./config/wazuh_indexer/wazuh.indexer.yml:/usr/share/wazuh-indexer/opensearch.yml
|
||||
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
||||
# if you need mount a custom opensearch.yml, uncomment the next line and delete the environment variables
|
||||
# - ./config/wazuh_indexer/wazuh.indexer.yml:/usr/share/wazuh-indexer/opensearch.yml
|
||||
|
||||
wazuh.dashboard:
|
||||
image: wazuh/wazuh-dashboard:4.4.1
|
||||
image: wazuh/wazuh-dashboard:5.0.0
|
||||
hostname: wazuh.dashboard
|
||||
restart: always
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 65536
|
||||
hard: 65536
|
||||
ports:
|
||||
- 443:5601
|
||||
environment:
|
||||
- INDEXER_USERNAME=admin
|
||||
- INDEXER_PASSWORD=SecretPassword
|
||||
- WAZUH_API_URL=https://wazuh.manager
|
||||
- API_USERNAME=wazuh-wui
|
||||
- API_PASSWORD=MyS3cr37P450r.*-
|
||||
WAZUH_API_URL: https://wazuh.manager
|
||||
DASHBOARD_USERNAME: kibanaserver
|
||||
DASHBOARD_PASSWORD: kibanaserver
|
||||
API_USERNAME: wazuh-wui
|
||||
API_PASSWORD: MyS3cr37P450r.*-
|
||||
SERVER_HOST: 0.0.0.0
|
||||
SERVER_PORT: 5601
|
||||
OPENSEARCH_HOSTS: https://wazuh.indexer:9200
|
||||
OPENSEARCH_SSL_VERIFICATIONMODE: certificate
|
||||
OPENSEARCH_REQUESTHEADERSALLOWLIST: '["securitytenant","Authorization"]'
|
||||
OPENSEARCH_SECURITY_MULTITENANCY_ENABLED: "false"
|
||||
SERVER_SSL_ENABLED: "true"
|
||||
OPENSEARCH_SECURITY_READONLY_MODE_ROLES: '["kibana_read_only"]'
|
||||
SERVER_SSL_KEY: "/usr/share/wazuh-dashboard/certs/wazuh-dashboard-key.pem"
|
||||
SERVER_SSL_CERTIFICATE: "/usr/share/wazuh-dashboard/certs/wazuh-dashboard.pem"
|
||||
OPENSEARCH_SSL_CERTIFICATEAUTHORITIES: '["/usr/share/wazuh-dashboard/certs/root-ca.pem"]'
|
||||
UISETTINGS_OVERRIDES_DEFAULTROUTE: /app/wz-home
|
||||
volumes:
|
||||
- wazuh-dashboard-config:/usr/share/wazuh-dashboard/data/wazuh/config
|
||||
- wazuh-dashboard-custom:/usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard-key.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard-key.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-dashboard/certs/root-ca.pem
|
||||
- ./config/wazuh_dashboard/opensearch_dashboards.yml:/usr/share/wazuh-dashboard/config/opensearch_dashboards.yml
|
||||
- ./config/wazuh_dashboard/wazuh.yml:/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml
|
||||
- ./config/wazuh_dashboard/wazuh.yml:/wazuh-config-mount/data/wazuh/config/wazuh.yml
|
||||
# if you need mount a custom opensearch-dashboards.yml, uncomment the next line and delete the environment variables
|
||||
# - ./config/wazuh_dashboard/opensearch_dashboards.yml:/wazuh-config-mount/config/opensearch_dashboards.yml
|
||||
depends_on:
|
||||
- wazuh.indexer
|
||||
links:
|
||||
@@ -100,3 +156,5 @@ volumes:
|
||||
filebeat_etc:
|
||||
filebeat_var:
|
||||
wazuh-indexer-data:
|
||||
wazuh-dashboard-config:
|
||||
wazuh-dashboard-custom:
|
||||
|
@@ -1,10 +1,10 @@
|
||||
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
generator:
|
||||
image: wazuh/wazuh-certs-generator:0.0.1
|
||||
hostname: wazuh-certs-generator
|
||||
image: wazuh/wazuh-cert-tool:5.0.0
|
||||
hostname: wazuh-cert-tool
|
||||
container_name: wazuh-cert-tool
|
||||
volumes:
|
||||
- ./config/wazuh_indexer_ssl_certs/:/certificates/
|
||||
- ./config/certs.yml:/config/certs.yml
|
||||
|
Reference in New Issue
Block a user