Compare commits

...

210 Commits

Author SHA1 Message Date
manuasir
9d38fd7d64 Demo certificates and open distro security plugin 2019-08-06 16:40:03 +02:00
Manuel J. Bernal
c811d01a64 Bump version 2019-08-01 20:30:07 +02:00
Manuel J. Bernal
2f2ce0c809 Removed unused settings 2019-08-01 20:29:41 +02:00
Manuel J. Bernal
50b6e7ff0f Uninstall open distro kibana security plugin 2019-08-01 20:29:31 +02:00
Manuel J. Bernal
335c103b2d Disabling opendistro security plugin 2019-08-01 20:28:56 +02:00
Manuel J. Bernal
95c473e7d4 Merge pull request #220 from wazuh/3.9.4_7.2.0_oss
Added OSS images and deleting every XPACK occurrence
2019-07-29 18:31:35 +02:00
manuasir
4a0ff2895f Updated CHANGELOG 2019-07-29 18:25:59 +02:00
manuasir
611e113d52 Added OSS images to docker-compose 2019-07-29 18:25:06 +02:00
manuasir
3cd812ad8e Added OSS images and deleting every XPACK occurrence 2019-07-29 16:24:13 +02:00
Manuel J. Bernal
b0782505e1 Merge pull request #218 from wazuh/issue-217
Adapt Kibana image to v7.2.0
2019-07-22 16:35:47 +02:00
manuasir
507d27a448 Updated Kibana RESTful API version to v2 2019-07-22 16:30:26 +02:00
manuasir
40bb635036 Allowing install Wazuh plugin as root 2019-07-22 16:19:41 +02:00
Manuel J. Bernal
61b1f45bc4 Updated docker-compose 2019-07-20 18:33:04 +02:00
Manuel J. Bernal
881a0abfa5 Bump version 2019-07-20 18:32:33 +02:00
manuasir
d8c14e108c Merge branch '3.9.3_7.2.0' of https://github.com/wazuh/wazuh-docker into 3.9.3_7.2.0 2019-07-20 18:24:29 +02:00
Manuel J. Bernal
60b32d0d21 Improve cluster configuration 2019-07-20 18:23:33 +02:00
Manuel J. Bernal
a481d9c376 Merge pull request #213 from wazuh/3.9.3_fix_cluster_config
Fixed duplicated cluster configuration
2019-07-20 00:00:31 +02:00
Manuel J. Bernal
9740ddcf3e Added more fixes to configuration files 2019-07-19 23:03:11 +02:00
manuasir
5db7509b52 Fixed cluster configuration 2019-07-19 18:06:27 +02:00
Jose M
e00cd1081a Fix Bash syntax error with multiple conditions on ES and Kibana 2019-07-17 15:20:06 +02:00
Manuel J. Bernal
3aff6de0d0 Merge pull request #192 from wazuh/issue-191
Changing Filebeat configuration if environment variable is set
2019-06-18 19:11:46 +02:00
manuasir
8a6225856d Change Elasticsearch output in Filebeat if env var was set 2019-06-18 18:56:41 +02:00
manuasir
e6cddf8e1d Removed Logstash occurrences 2019-06-18 18:56:21 +02:00
Manuel J. Bernal
ad4084a8da Updated docker-compose 2019-06-12 19:57:28 +02:00
Manuel J. Bernal
11b926ffa3 Updated changelog 2019-06-12 19:53:34 +02:00
Manuel J. Bernal
d81ab1e304 Bump version 2019-06-12 17:04:42 +02:00
Manuel J. Bernal
a6b453b9df Bump version 2019-06-12 17:03:30 +02:00
manuasir
4a01fcc01f Bump version 2019-06-04 15:21:14 +02:00
manuasir
e6da7606b9 Fixed conflicts 2019-06-03 19:00:40 +02:00
manuasir
5d1432b729 Fixed conflicts 2019-06-03 18:59:13 +02:00
manuasir
22ad4360f5 Add XPACK_SECURITY_ENABLED and KIBANA_INDEX options to Kibana container. 2019-06-03 17:20:11 +02:00
Jose M
6a82b98fcf Bump version. 2019-05-24 16:39:24 +02:00
Jose M
1922ae145a Added 'cluster.initial_master_nodes' and related env variable. 2019-05-24 16:35:29 +02:00
manuasir
7944897a0d Fixed template URL 2019-05-22 12:21:55 +02:00
Manuel J. Bernal
771396ae9e Fixed conflicts 2019-05-21 23:53:30 +02:00
Manuel J. Bernal
09164c4285 Bump version 2019-05-21 23:47:05 +02:00
Manuel J. Bernal
948aaf289c Fixed sed command in kibana_settings 2019-05-21 23:46:12 +02:00
Manuel J. Bernal
d96e94f4fa Changed entrypoint copy location 2019-05-21 23:45:58 +02:00
Manuel J. Bernal
8077b9b084 Bump version 2019-05-21 23:45:55 +02:00
Manuel J. Bernal
f66f986abb Fixed sed command in kibana_settings 2019-05-21 23:18:51 +02:00
Manuel J. Bernal
569d3ee931 Changed entrypoint copy location 2019-05-21 23:18:35 +02:00
manuasir
2e4f1ffe45 Updating to 3.9.1-6.8.0 2019-05-21 19:13:15 +02:00
Javier Castro
2c67ad822e Allow port change for elasticsearch url in kibana 2019-05-18 11:56:30 +02:00
Manuel J. Bernal
01e8e18f61 Merge pull request #178 from wazuh/kibana-elastic-port
Allow port change for elasticsearch url in kibana
2019-05-18 11:52:08 +02:00
Javier Castro
447c15c823 Allow port change for elasticsearch url in kibana 2019-05-17 12:56:45 -07:00
Jesús Ángel
780dfe1a51 Updated Filebeat config for Elastic 7 2019-05-14 15:06:12 +02:00
Jesús Ángel
eadc765860 Remove Logstash output 2019-05-14 15:06:00 +02:00
Jesús Ángel
ae3734db18 Adding template. Using "elastic-7-2" branch 2019-05-14 15:05:49 +02:00
Jesús Ángel
91d4ec5c4b Uncomment "elasticsearch.hosts" setting 2019-05-14 15:05:06 +02:00
Jesús Ángel
d6074f5f7e Temporary using staging Wazuh app (testing) 2019-05-14 15:04:44 +02:00
Jesús Ángel
6ff836e9fc Removed template. Fix _type. Fix if condition. 2019-05-14 15:04:20 +02:00
Jesús Ángel
5799998308 Temporary fix for Elastic 7 cluster 2019-05-14 15:03:20 +02:00
Jesús Ángel
4adb9741e4 Do not add template in Elasticsearch Dockerfile 2019-05-14 15:02:50 +02:00
Jesús Ángel
1d4161cc02 Temporary using "build" instead of "image" 2019-05-14 15:02:21 +02:00
Jesús Ángel
f462dd5846 Update README 2019-05-14 15:01:28 +02:00
Jesús Ángel
20d2891e23 Correct copyright header 2019-05-14 15:01:19 +02:00
Jesús Ángel
e954a6486a Removed Logstash 2019-05-14 14:56:50 +02:00
Manuel J. Bernal
f63d9fa387 Include protocol and port in LOGSTASH_OUTPUT environment variable (#164)
* Including protocol and port in the LOGSTASH_OUTPUT env var.
2019-05-10 22:26:49 +02:00
Manuel J. Bernal
0cef2a5974 Include protocol and port in LOGSTASH_OUTPUT environment variable (#164)
* Including protocol and port in the LOGSTASH_OUTPUT env var.
2019-05-10 22:24:41 +02:00
manuasir
72725daa75 Bump version. 2019-05-09 16:43:49 +02:00
Manuel J. Bernal
eab0541d0a Bump version 2019-05-07 20:02:44 +02:00
manuasir
25cb3a82ea Merge branch '3.9.0_6.7.1' into stable 2019-05-03 17:57:04 +02:00
Manuel J. Bernal
7bf7f532e0 Bump version 2019-05-03 17:48:22 +02:00
manuasir
dc70fb864d Bump version. 2019-04-30 17:01:02 +02:00
manuasir
efab5fe0bd Updated CHANGELOG. 2019-04-29 18:34:50 +02:00
Mayte Ariza
9db7bbd160 Removing logs from Wazuh image (#153) 2019-04-29 18:01:11 +02:00
Manuel J. Bernal
baa0ac6c22 Merge pull request #119 from wazuh/3.8.2_6.5.4-allow-xpac-req
Added support for secure HTTPS xPack requests
2019-04-29 17:06:52 +02:00
manuasir
99008b5e69 Added a conditional flag for enabling XPACK auth requests. 2019-04-29 17:04:38 +02:00
manuasir
2eeb44f902 Fixed conflict. 2019-04-29 12:17:42 +02:00
manuasir
66adf7fd6f Merging k8s changes into 3.9. 2019-04-25 16:06:02 +02:00
AlfonsoRBJ
3f75dbdd39 Add Elasticsearch cluster configuration (#146) 2019-04-25 15:52:05 +02:00
Manuel J. Bernal
3d8d612298 Merge pull request #151 from wazuh/k8s-cloud
Changing the original Wazuh docker image to allow adding code in entrypoint.sh
2019-04-17 16:04:57 +02:00
Mayte Ariza
49ace342a0 Entrypoint.sh: ! style history substitution removed 2019-04-17 15:54:38 +02:00
Mayte Ariza
5f2859d95e Entrypoint-scripts folder configured 2019-04-17 13:04:58 +02:00
Manuel J. Bernal
bf52145e7a Merge pull request #124 from wazuh/fix-elastic-run-loop
Fixing docker run loop at the elasticsearch container
2019-04-04 12:46:29 +02:00
manuasir
f44ba2a745 Merge branch 'stable' of https://github.com/wazuh/wazuh-docker into stable 2019-04-03 14:46:08 +02:00
manuasir
61d3f460be Updated CHANGELOG. 2019-04-03 14:44:02 +02:00
manuasir
97b018b86a Updated CHANGELOG. 2019-04-03 14:43:46 +02:00
Manuel J. Bernal
9ed503b6e8 Merge pull request #144 from wazuh/update-3.8.2_6.7.0
Update to 3.8.2_6.7.0
2019-04-03 13:32:48 +02:00
manuasir
274d6248d3 Bump version. 2019-04-02 18:21:04 +02:00
Manuel J. Bernal
b47f723285 Merge pull request #130 from wazuh/update-3.8.2_6.6.2
Upgrade Elastic stack version to 6.6.2
2019-03-29 19:05:17 +01:00
manuasir
b99d54eb25 Bump version 2019-03-29 19:03:28 +01:00
Manuel J. Bernal
2b0f2955d0 Merge pull request #129 from wazuh/update-3.8.2_6.6.1
Upgrade Elastic stack version to 6.6.1
2019-03-29 18:52:41 +01:00
Manuel J. Bernal
38644d380c Update CHANGELOG.md 2019-03-29 18:51:52 +01:00
manuasir
86bc43a494 Bump version 2019-03-29 18:44:36 +01:00
manuasir
8e5ad87619 Added vm.max_map_count to README 2019-03-29 18:27:17 +01:00
manuasir
2bd0138d6f Merge branch '3.8.2_6.5.4' into update-3.8.2_6.6.1 2019-03-29 16:20:10 +01:00
Manuel J. Bernal
92b2814fb1 Merge pull request #140 from wazuh/3.8.2_6.5.4-s3_repository
New features for Elasticsearch image: S3 repository plugin and configure_s3.sh
2019-03-27 12:50:59 +01:00
Mayte Ariza
91e70da2b8 Configure_s3.sh: comments added 2019-03-27 12:48:12 +01:00
Manuel J. Bernal
260762968d Merge pull request #137 from wazuh/remove-build-time-alerts
Remove alerts created in build time
2019-03-27 11:29:55 +01:00
Manuel J. Bernal
beb9bee27b Merge pull request #141 from wazuh/dev-duplicate-alerts-fix
Fixing duplicate alerts with kubernetes
2019-03-27 11:28:49 +01:00
Manuel J. Bernal
49f6f673c6 Merge pull request #136 from wazuh/dev-nginx-credentials
Setting Nginx docker to support several user/passwords in Kibana
2019-03-27 11:26:02 +01:00
Mayte Ariza
1bc6ecca67 Elasticsearch major version checked and repository base path changed 2019-03-27 10:04:24 +01:00
l
ebca6b3696 Fixing duplicate alerts with kubernetes 2019-03-26 16:30:50 +01:00
Mayte Ariza
b15d61cda7 Added script configure_s3.sh to Elasticsearch Dockerfile 2019-03-26 14:20:38 +01:00
Mayte Ariza
7aeb6b2050 Merge branch '3.8.2_6.5.4' into 3.8.2_6.5.4-s3_repository 2019-03-26 14:08:08 +01:00
toniMR
11108631c0 Adding comments 2019-03-26 13:26:09 +01:00
AlfonsoRBJ
62af977067 Update CHANGELOG.md 2019-03-25 17:46:12 +01:00
AlfonsoRBJ
be9c278a18 Update CHANGELOG.md 2019-03-25 17:45:24 +01:00
AlfonsoRBJ
92d957730c remove alerts on build time 2019-03-25 17:36:27 +01:00
AlfonsoRBJ
8823405dd9 remove alerts content 2019-03-22 14:47:22 +01:00
Manuel J. Bernal
73e5b99983 Merge pull request #135 from wazuh/dev-logstash-entrypoint
New Logstash entrypoint added
2019-03-22 10:58:11 +01:00
Manuel J. Bernal
e563df4093 Merge branch '3.8.2_6.5.4' into dev-logstash-entrypoint 2019-03-22 10:57:15 +01:00
toniMR
f3674ff9d9 Changing comment 2019-03-22 09:57:02 +01:00
toniMR
12b40b48ee Adding NGINX_CREDENTIALS in docker-compose.yml 2019-03-22 09:54:32 +01:00
toniMR
715fb4fdec Adding NGINX_CREDENTIALS in nginx/config/entrypoint.sh 2019-03-22 09:52:37 +01:00
AlfonsoRBJ
fdca63f592 Update CHANGELOG.md 2019-03-21 19:38:54 +01:00
AlfonsoRBJ
6a82a36711 fix typo in elasticsearch url 2019-03-21 19:27:42 +01:00
Manuel J. Bernal
18e955090a Merge pull request #133 from wazuh/dev-welcome-screen
Welcome screen management
2019-03-21 19:20:58 +01:00
AlfonsoRBJ
fc97c3623b Update CHANGELOG.md 2019-03-21 19:18:17 +01:00
AlfonsoRBJ
283ca42d57 reduce sleep times after pass check 2019-03-21 19:13:22 +01:00
AlfonsoRBJ
c6793657e7 improve template check 2019-03-21 18:38:28 +01:00
AlfonsoRBJ
b3114e7293 add race condition for wazuh alerts template 2019-03-21 18:25:56 +01:00
AlfonsoRBJ
727858f74c remove run.sh exe 2019-03-21 16:56:52 +01:00
AlfonsoRBJ
48e0c75a26 remove run.sh execution 2019-03-21 16:56:22 +01:00
l
ee7a16eb1a Fixing if whitespace error 2019-03-21 16:43:40 +01:00
AlfonsoRBJ
580251104c add entrypoint to Dockerfile 2019-03-21 16:34:24 +01:00
AlfonsoRBJ
3fdba44bfa cond. race for logstash and improve it for kibana 2019-03-21 16:29:48 +01:00
AlfonsoRBJ
6ce25e00c9 merge run.sh in new entrypoint.sh 2019-03-21 16:13:53 +01:00
AlfonsoRBJ
699f2bb82e fix visible path 2019-03-20 16:30:44 +01:00
AlfonsoRBJ
b7537453e3 Hide undesired links 2019-03-20 15:47:14 +01:00
AlfonsoRBJ
9b0602766f fix typo 2019-03-19 17:43:14 +01:00
AlfonsoRBJ
e6062f28f3 removing optimize bundles 2019-03-19 17:07:01 +01:00
AlfonsoRBJ
e182e0d4f8 change redirect to wazuh app 2019-03-19 16:51:51 +01:00
AlfonsoRBJ
666708c47f kibana yml is in other path 2019-03-19 16:26:14 +01:00
AlfonsoRBJ
d0df9a06e1 fix typo 2019-03-19 14:50:12 +01:00
AlfonsoRBJ
c1a33b7185 kibana welcome 2019-03-19 14:35:44 +01:00
l
b06e4c4a5e Upgrade Elastic stack version to 6.6.1 2019-03-19 10:48:07 +01:00
Manuel J. Bernal
7e2549a85a Merge pull request #121 from wazuh/3.8.2_6.5.4-refactor
Refactor of Wazuh Dockerfile
2019-03-15 15:44:47 +01:00
Manuel J. Bernal
f8dada12b1 Merge pull request #128 from wazuh/fix-copyright-year
Changing copyright year to 2019
2019-03-15 15:27:34 +01:00
l
532b691172 Changing copyright year to 2019 2019-03-15 15:11:49 +01:00
Manuel J. Bernal
3b7705e868 Merge pull request #126 from wazuh/3.8.2_6.5.4-refractor-fix
Fixing missing packets, env vars and config file of filebeat
2019-03-13 17:52:51 +01:00
l
3dce66e869 Fixing missing packets, env vars and config file of filebeat 2019-03-13 17:25:48 +01:00
l
90738fb148 Fixing docker run loop at the elasticsearch container 2019-03-12 12:38:11 +01:00
Mayte Ariza
3ef08ccf66 Elasticsearch dockerfile: added repository-s3 plugin 2019-03-10 16:38:51 +01:00
Manuel J. Bernal
10ae694a92 Merge pull request #120 from wazuh/3.8.2_6.5.4-update-compose
Updating docker-compose file
2019-02-13 12:23:38 +01:00
manuasir
bc18ef46e6 Deleted unused file 2019-02-12 18:06:23 +01:00
migruiz4
d149327275 Resolved conflicts refactoring Dockerfile 2019-02-12 18:05:52 +01:00
manuasir
fdd2c9d2bf Updating docker-compose file 2019-02-12 17:38:49 +01:00
manuasir
89e6af0d9a Added authorization to every Elastic request 2019-02-12 17:10:46 +01:00
manuasir
9a841fdbd3 Added support for secure HTTPS xPac requests 2019-02-11 15:28:43 +01:00
AlfonsoRBJ
db93ca7b05 Update CHANGELOG.md 2019-02-11 11:07:41 +01:00
Manuel J. Bernal
649489297b Merge pull request #118 from wazuh/3.8.2_6.5.4-env-data-flow
Adding env variables for alerts data flow
2019-02-08 21:46:27 +01:00
Manuel J. Bernal
22eeee3592 Merge pull request #117 from wazuh/kibana-optimized
Wazuh-Kibana customizable at plugin level
2019-02-08 17:17:33 +01:00
havidarou
15f35ca6a8 Adding env variables for alerts data flow 2019-02-08 15:32:36 +00:00
AlfonsoRBJ
159b3c02f0 remove xpack settings script from entrypoint 2019-02-08 15:06:05 +01:00
AlfonsoRBJ
cb10fd20ba ARGs added to set kibana.yml 2019-02-08 14:52:13 +01:00
AlfonsoRBJ
c79a81f601 First approach 2019-02-07 17:49:43 +01:00
Manuel J. Bernal
4687360677 Merge pull request #111 from wazuh/disable-xpack
Adding the option to disable some xpack features
2019-02-07 16:57:53 +01:00
l
a6b7d6ea02 Enabling xpack plugins by default. Fixing a bug that can cause that the desabilitation of plugins wasnt applied at kibana 2019-02-07 12:58:59 +01:00
l
2e3b49dcad Disabling xpack monitoring in Kibana 2019-02-06 10:23:37 +01:00
l
02895ec707 Fixing bug that wont allow to display devtools 2019-02-05 13:32:32 +01:00
l
302286a29e Fixing indentation at the .yml files 2019-02-05 13:18:03 +01:00
l
024d25236a Fixing bug that prevented the xpack config script be called 2019-02-05 13:12:33 +01:00
l
a334450470 Ordening code, disable xpack ml feature at elastic. Also the features disabled at kibana are modified 2019-02-05 12:30:01 +01:00
l
a10fa157aa Editing kibana config script so disabling xpack features is possible 2019-02-04 18:32:55 +01:00
AlfonsoRBJ
ffe3dde43a Improvements to Kibana settings added (#91) 2019-02-01 19:00:22 +01:00
AlfonsoRBJ
f3cc91fdf6 Filebeat registry (#109)
* Add filebeat registry

* Remove registry enrty
2019-02-01 18:50:25 +01:00
AlfonsoRBJ
cb2e49eb54 Add Wazuh-Elasticsearch (#106) 2019-02-01 18:43:51 +01:00
AlfonsoRBJ
046b2f049b Merge pull request #105 from wazuh/update-3.8.2
Update to Wazuh version 3.8.2
2019-01-30 18:25:05 +01:00
AlfonsoRBJ
a654c97b47 Update CHANGELOG.md 2019-01-30 17:54:49 +01:00
AlfonsoRBJ
d1c8d72bc3 Update to Wazuh version 3.8.2 2019-01-30 17:52:13 +01:00
AlfonsoRBJ
c195f38458 Undo update 3.8.2 2019-01-30 17:50:05 +01:00
AlfonsoRBJ
01296a6c9e Update to Wazuh version 3.8.2 2019-01-30 17:46:18 +01:00
AlfonsoRBJ
596788ff09 Bump version 3.8.2 2019-01-30 17:43:14 +01:00
AlfonsoRBJ
dcf644e37a Update to Wazuh version 3.8.1 (#102) 2019-01-24 17:15:57 +01:00
AlfonsoRBJ
4db1c4e073 Bump version 3.8.1 2019-01-24 12:26:21 +01:00
Jesus Linares
2f74ec6fdb Merge branch '3.8.0_6.5.4' 2019-01-18 15:34:34 -05:00
AlfonsoRBJ
e85c9419b7 Remove cluster.py work around (#99) 2019-01-18 16:38:41 +01:00
AlfonsoRBJ
e184e7c692 Update Slack link 2019-01-14 17:34:54 +01:00
AlfonsoRBJ
72acec2ddc Update Slack link 2019-01-14 17:33:35 +01:00
AlfonsoRBJ
eed4b0b9dc Upgrade version 3.8.0_6.5.4 (#97) 2019-01-14 17:17:00 +01:00
AlfonsoRBJ
986635c366 Bump version 3.8.0 2019-01-10 13:16:39 +01:00
AlfonsoRBJ
0ab0db67ba Update CHANGELOG.md 2019-01-10 13:15:38 +01:00
AlfonsoRBJ
8913df6284 Bump version 3732 2019-01-04 11:53:19 +01:00
AlfonsoRBJ
b8294dba69 Update CHANGELOG.md 2019-01-04 11:52:43 +01:00
Jesus Linares
a2c0053ce8 Merge branch '3.7.2_6.5.4' 2019-01-03 10:12:12 -05:00
AlfonsoRBJ
5123f92551 Kibana env variables (#89) 2019-01-03 16:10:32 +01:00
Jesus Linares
ed913c1e71 Merge branch '3.7.2_6.5.4' 2019-01-03 09:43:37 -05:00
Jesús Linares
81035c39db Update Filebeat configuration (#88) 2019-01-03 15:37:48 +01:00
AlfonsoRBJ
70e491fa6f Bump version 3731 2018-12-28 12:25:15 +01:00
AlfonsoRBJ
57fd4d8859 Update CHANGELOG.md 2018-12-28 12:24:41 +01:00
AlfonsoRBJ
7c9ee9b256 Bump version 3730 2018-12-28 12:24:00 +01:00
AlfonsoRBJ
f3655b1360 Update CHANGELOG.md 2018-12-28 12:23:38 +01:00
AlfonsoRBJ
0cc8be2142 Merge pull request #86 from wazuh/nginx-credentials-env
Add env credentials for nginx
2018-12-28 11:50:46 +01:00
AlfonsoRBJ
dff13dfc7a fix indent 2018-12-28 11:48:27 +01:00
AlfonsoRBJ
ab90a9a95b add env credentials for nginx 2018-12-28 11:43:31 +01:00
AlfonsoRBJ
7a9b32fbd9 Merge pull request #84 from wazuh/cluster-hostname-k8s
Temporary fix for Wazuh cluster master node in Kubernetes
2018-12-27 12:49:55 +01:00
AlfonsoRBJ
ef5fbe15a5 Temporary fix for Wazuh cluster master node in K8S 2018-12-27 12:46:57 +01:00
AlfonsoRBJ
a8e1661aa6 Bump version 3729 2018-12-21 11:46:06 +01:00
AlfonsoRBJ
c7abb4239f Update CHANGELOG.md 2018-12-21 11:45:12 +01:00
AlfonsoRBJ
68b4703f7a Update Elastic Stack to version 6.5.4 2018-12-21 11:43:39 +01:00
AlfonsoRBJ
2e66d5f3ee Merge pull request #82 from wazuh/Update-to-Elastic-6.5.4
Update Elastic Stack version to 6.5.4
2018-12-21 11:42:21 +01:00
AlfonsoRBJ
020047aa8f Update Elastic Stack version to 6.5.4 2018-12-21 11:40:19 +01:00
Jesus Linares
e275dc9446 Merge branch '3.7.2_6.5.3'
Conflicts:
	README.md
	VERSION
	docker-compose.yml
	kibana/Dockerfile
	wazuh/Dockerfile
2018-12-20 11:50:30 -05:00
Jesus Linares
2a03d08a5b Update changelog 2018-12-20 11:39:23 -05:00
AlfonsoRBJ
40a74df00d Bump version 3728 2018-12-20 13:26:02 +01:00
AlfonsoRBJ
05fa996ffd Update CHANGELOG.md 2018-12-20 13:25:36 +01:00
AlfonsoRBJ
edd2e250e8 Update CHANGELOG.md 2018-12-20 13:24:48 +01:00
AlfonsoRBJ
5e3b25aa95 Merge pull request #81 from wazuh/Issue_68-AWS_error
Erasing temporary fix for AWS integration
2018-12-20 13:23:46 +01:00
AlfonsoRBJ
49663b71bb Update VERSION 2018-12-20 13:22:08 +01:00
AlfonsoRBJ
77f123460e Update CHANGELOG.md 2018-12-20 13:21:33 +01:00
AlfonsoRBJ
458bfcde09 Update CHANGELOG.md 2018-12-20 13:21:16 +01:00
AlfonsoRBJ
12bb0cba4a Merge pull request #80 from LuisGi93/3.7.2_6.5.3
entrypoint.sh updated so docker upgrade is posible
2018-12-20 13:19:09 +01:00
cadoming
608b25df4c erasing temporary fix for AWS integration 2018-12-20 12:02:14 +00:00
LuisGi93
7cce0d9c9e entrypoint.sh updated so docker upgrade is posible 2018-12-19 20:05:33 +01:00
AlfonsoRBJ
cd0d180c93 Update Wazuh version 3.7.2 2018-12-18 18:28:02 +01:00
AlfonsoRBJ
7e83951672 Merge pull request #77 from wazuh/3.7.1_6.5.3
Using etc folder as a mounting point (#73)
2018-12-17 10:55:42 +01:00
José Luis Ruiz
31b43aa2f1 Upgrade to Elastic 6.5.3 and Wazuh 3.7.1 (#75) 2018-12-14 18:56:01 +01:00
AlfonsoRBJ
6b3018a56b Update README.md 2018-12-13 12:19:07 +01:00
39 changed files with 1144 additions and 586 deletions

View File

@@ -1,6 +1,159 @@
# Change Log
All notable changes to this project will be documented in this file.
## Wazuh Docker v3.9.3_7.2.0-oss
### Added
- Support for OSS Elastic Docker images.
## Wazuh Docker v3.9.3_7.2.0
### Fixed
- Wazuh-docker reinserts cluster settings after resuming containers ([@manuasir](https://github.com/manuasir)) [#213](https://github.com/wazuh/wazuh-docker/pull/213)
## Wazuh Docker v3.9.3_7.1.1-opendistro
### Added
- Support for Amazon Open Distro Docker images.
## Wazuh Docker v3.9.2_7.1.1
### Added
- Update to Wazuh version 3.9.2_7.1.1
## Wazuh Docker v3.9.2_6.8.0
### Added
- Update to Wazuh version 3.9.2_6.8.0
## Wazuh Docker v3.9.1_7.1.0
### Added
- Support for Elastic v7.1.0
- New environment variables for Kibana ([@manuasir](https://github.com/manuasir)) [#22ad43](https://github.com/wazuh/wazuh-docker/commit/22ad4360f548e54bb0c5e929f8c84a186ad2ab88)
## Wazuh Docker v3.9.1_6.8.0
### Added
- Update to Wazuh version 3.9.1_6.8.0 ([#181](https://github.com/wazuh/wazuh-docker/pull/181))
### Fixed
- Fixed `ELASTICSEARCH_KIBANA_IP` environment variable ([@manuasir](https://github.com/manuasir)) ([#181](https://github.com/wazuh/wazuh-docker/pull/181))
## Wazuh Docker v3.9.0_6.7.2
### Changed
- Update Elastic Stack version to 6.7.2.
## Wazuh Docker v3.9.0_6.7.1
### Added
- Support for xPACK authorized requests ([@manuasir](https://github.com/manuasir)) ([#119](https://github.com/wazuh/wazuh-docker/pull/119))
- Add Elasticsearch cluster configuration ([@SitoRBJ](https://github.com/SitoRBJ)). ([#146](https://github.com/wazuh/wazuh-docker/pull/146))
- Add Elasticsearch cluster configuration ([@Phandora](https://github.com/Phandora)) ([#140](https://github.com/wazuh/wazuh-docker/pull/140))
- Setting Nginx to support several user/passwords in Kibana ([@toniMR](https://github.com/toniMR)) ([#136](https://github.com/wazuh/wazuh-docker/pull/136))
### Changed
- Use LS_JAVA_OPTS instead of old LS_HEAP_SIZE ([@ruffy91](https://github.com/ruffy91)) ([#139](https://github.com/wazuh/wazuh-docker/pull/139))
- Changing the original Wazuh docker image to allow adding code in the entrypoint ([@Phandora](https://github.com/phandora)) ([#151](https://github.com/wazuh/wazuh-docker/pull/151))
### Removed
- Removing files from Wazuh image ([@Phandora](https://github.com/phandora)) ([#153](https://github.com/wazuh/wazuh-docker/pull/153))
## Wazuh Docker v3.8.2_6.7.0
### Changed
- Update Elastic Stack version to 6.7.0. ([#144](https://github.com/wazuh/wazuh-docker/pull/144))
## Wazuh Docker v3.8.2_6.6.2
### Changed
- Update Elastic Stack version to 6.6.2. ([#130](https://github.com/wazuh/wazuh-docker/pull/130))
## Wazuh Docker v3.8.2_6.6.1
### Changed
- Update Elastic Stack version to 6.6.1. ([#129](https://github.com/wazuh/wazuh-docker/pull/129))
## Wazuh Docker v3.8.2_6.5.4
### Added
- Add Wazuh-Elasticsearch. ([#106](https://github.com/wazuh/wazuh-docker/pull/106))
- Store Filebeat _/var/lib/filebeat/registry._ ([#109](https://github.com/wazuh/wazuh-docker/pull/109))
- Adding the option to disable some xpack features. ([#111](https://github.com/wazuh/wazuh-docker/pull/111))
- Wazuh-Kibana customizable at plugin level. ([#117](https://github.com/wazuh/wazuh-docker/pull/117))
- Adding env variables for alerts data flow. ([#118](https://github.com/wazuh/wazuh-docker/pull/118))
- New Logstash entrypoint added. ([#135](https://github.com/wazuh/wazuh-docker/pull/135/files))
- Welcome screen management. ([#133](https://github.com/wazuh/wazuh-docker/pull/133))
### Changed
- Update to Wazuh version 3.8.2. ([#105](https://github.com/wazuh/wazuh-docker/pull/105))
### Removed
- Remove alerts created in build time. ([#137](https://github.com/wazuh/wazuh-docker/pull/137))
## Wazuh Docker v3.8.1_6.5.4
### Changed
- Update to Wazuh version 3.8.1. ([#102](https://github.com/wazuh/wazuh-docker/pull/102))
## Wazuh Docker v3.8.0_6.5.4
### Changed
- Upgrade version 3.8.0_6.5.4. ([#97](https://github.com/wazuh/wazuh-docker/pull/97))
### Removed
- Remove cluster.py work around. ([#99](https://github.com/wazuh/wazuh-docker/pull/99))
## Wazuh Docker v3.7.2_6.5.4
### Added
- Improvements to Kibana settings added. ([#91](https://github.com/wazuh/wazuh-docker/pull/91))
- Add Kibana environmental variables for Wazuh APP config.yml. ([#89](https://github.com/wazuh/wazuh-docker/pull/89))
### Changed
- Update Elastic Stack version to 6.5.4. ([#82](https://github.com/wazuh/wazuh-docker/pull/82))
- Add env credentials for nginx. ([#86](https://github.com/wazuh/wazuh-docker/pull/86))
- Improve filebeat configuration ([#88](https://github.com/wazuh/wazuh-docker/pull/88))
### Fixed
- Temporary fix for Wazuh cluster master node in Kubernetes. ([#84](https://github.com/wazuh/wazuh-docker/pull/84))
## Wazuh Docker v3.7.2_6.5.3
### Changed
- Erasing temporary fix for AWS integration. ([#81](https://github.com/wazuh/wazuh-docker/pull/81))
### Fixed
- Upgrading errors due to wrong files. ([#80](https://github.com/wazuh/wazuh-docker/pull/80))
## Wazuh Docker v3.7.0_6.5.0
### Changed

View File

@@ -1,5 +1,5 @@
Portions Copyright (C) 2018 Wazuh, Inc.
Portions Copyright (C) 2019 Wazuh, Inc.
Based on work Copyright (C) 2003 - 2013 Trend Micro, Inc.
This program is a free software; you can redistribute it and/or modify

View File

@@ -1,6 +1,6 @@
# Wazuh containers for Docker
[![Slack](https://img.shields.io/badge/slack-join-blue.svg)](https://goo.gl/forms/M2AoZC4b2R9A9Zy12)
[![Slack](https://img.shields.io/badge/slack-join-blue.svg)](https://wazuh.com/community/join-us-on-slack/)
[![Email](https://img.shields.io/badge/email-join-blue.svg)](https://groups.google.com/forum/#!forum/wazuh)
[![Documentation](https://img.shields.io/badge/docs-view-green.svg)](https://documentation.wazuh.com)
[![Documentation](https://img.shields.io/badge/web-view-green.svg)](https://wazuh.com)
@@ -8,11 +8,13 @@
In this repository you will find the containers to run:
* wazuh: It runs the Wazuh manager, Wazuh API and Filebeat (for integration with Elastic Stack)
* wazuh-logstash: It is used to receive alerts generated by the manager and feed Elasticsearch using an alerts template
* wazuh-kibana: Provides a web user interface to browse through alerts data. It includes Wazuh plugin for Kibana, that allows you to visualize agents configuration and status.
* wazuh-nginx: Proxies the Kibana container, adding HTTPS (via self-signed SSL certificate) and [Basic authentication](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#Basic_authentication_scheme).
* wazuh-elasticsearch: An Elasticsearch container (working as a single-node cluster) using Elastic Stack Docker images. **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).**
In addition, a docker-compose file is provided to launch the containers mentioned above. It also launches an Elasticsearch container (working as a single-node cluster) using Elastic Stack Docker images.
In addition, a docker-compose file is provided to launch the containers mentioned above.
* Elasticsearch cluster. In the Elasticsearch Dockerfile we can visualize variables to configure an Elasticsearch Cluster. These variables are used in the file *config_cluster.sh* to set them in the *elasticsearch.yml* configuration file. You can see the meaning of the node variables [here](https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html) and other cluster settings [here](https://github.com/elastic/elasticsearch/blob/master/distribution/src/config/elasticsearch.yml).
## Documentation
@@ -20,10 +22,6 @@ In addition, a docker-compose file is provided to launch the containers mentione
* [Wazuh documentation for Docker](https://documentation.wazuh.com/current/docker/index.html)
* [Docker hub](https://hub.docker.com/u/wazuh)
## Current release
Containers are currently tested on Wazuh version 3.7.1 and Elastic Stack version 6.5.3. We will do our best to keep this repository updated to latest versions of both Wazuh and Elastic Stack.
## Directory structure
wazuh-docker
@@ -34,11 +32,6 @@ Containers are currently tested on Wazuh version 3.7.1 and Elastic Stack version
│   │   └── kibana.yml
│   └── Dockerfile
├── LICENSE
├── logstash
│   ├── config
│   │   ├── 01-wazuh.conf
│   │   └── run.sh
│   └── Dockerfile
├── nginx
│   ├── config
│   │   └── entrypoint.sh
@@ -62,9 +55,9 @@ Containers are currently tested on Wazuh version 3.7.1 and Elastic Stack version
## Branches
* `stable` branch on correspond to the last Wazuh-Docker stable version.
* `stable` branch on correspond to the latest Wazuh-Docker stable version.
* `master` branch contains the latest code, be aware of possible bugs on this branch.
* `Wazuh.Version_ElsaticStack.Version` (for example 3.7.0_6.4.3) branch. This branch contains the current release referenced in Docker Hub. The container images are installed under the current version of this branch.
* `Wazuh.Version_ElasticStack.Version` (for example 3.9.3_7.1.1-opendistro) branch. This branch contains the current release referenced in Docker Hub. The container images are installed under the current version of this branch.
## Credits and Thank you
@@ -77,7 +70,7 @@ We thank you them and everyone else who has contributed to this project.
## License and copyright
Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
## Web references

View File

@@ -1,2 +1,2 @@
WAZUH-DOCKER_VERSION="3.7.1_6.5.3"
REVISION="3726"
WAZUH-DOCKER_VERSION="3.9.3_7.1.1"
REVISION="3930"

28
admin-key.pem Normal file
View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDGREC7Nwg9esab
VrKmRL8nlVjrDL38YOfUt+G1sZ+ebmHmLynUMqQ3PHYDUqJoZQW5Jpmlh+V7GSfW
erKC1C75J1991U/3DsM6aZ+QZXoTwM4XwwRUOU3K/kaanCr8sOEY+NQILxNmeCdc
XOOCD9nsItkzgK01cTuWpObABVRSwu3hKEIwuGyCkPnfCDM3f/gDSvQtP9+Z6Kf0
OEF3Le1vO47RrISSOKB3163j3zVFWC0XAmlpEBFfPB8UIi733hPOr+kRl4M/mE2k
CL1MkJYjj258sjZhuvkCAupImtuWGMuo5ieNkuUFHWACg4gImoaRy4JOP8ye2VDZ
KKxbTevzAgMBAAECggEBAIV0EaIyk8BWMPMEc3HJWmW5eEWWqRcE32dmcm4LZmaM
5Ca9Xklv4OsxLjpkV98vCKAs5ETwaT3nm9IZeqjnS8r3fqZDe/TPIgfiar4WIArF
v7Ns2DAc9kkJyNpu/dxi7tERRB9SGJvjipL4D0dPhh8VAeBR38TWOAbZblyX+b9O
OOdMNCoCUyBqQ3PTlmK43Np2AeegSkVIUzQmiJfqBGGlchnZbfqJ7ZgkKPtTBGbA
2RMMLON6OtNQ8pFuOn6qVROTsZgai0a4JfZrzVCFjdAO1ywPk2x4HUuRFKxFF4xv
zZ7xqLRfVCV/rgpJBPKZr86GUODnUmCjrQNAwL9sB5ECgYEA4ckbqjemdYpEss8k
3YupgXcZkwgp7WXT3BOmiDyzfhgQ0sBysQhkudHnvWTwXjcd0lDAmdeZ8k553WxJ
imTsLnTkp8MBWj9YziJQhWAVSSsiqp0DtbcxHbwhtkcfG6enoNs03dhmWkZ5GHRA
Tx/2n5ljxiiKGDeMkJWomalK1ukCgYEA4MxonRElJ8bo6KjcuTaL11gsUR/HyEh1
eec1r18ypwfcPyxY6lzkvEonb3r4Jm2n1ZzvsGInA94+GtpNF4UoRixVGXCL6kiN
7mR3dhG13weRUBZbFV59PdfvNfuQvz5Z5U4NuX2CPeSUKSKYEhfD1dZ7/eoh1eZ3
e4qq0G09GnsCgYEAsdQ0Xtdf2pmhS/fMQFW8loRYdy5p31lhCKfNdOXiNQD9VxBO
BNLoilYhoFC85GeirD//wetGi8p1PwkHzuF4B4r3gI4dJZhY+Fmcc7/eY/d+YUQz
ZM6494NyRd80SBK++vlLZSMIUjfJLpJ5CBjTpJYqOCs7wKEXq9TDqurkT+kCgYEA
n2u3IPSAwhXJJP5kEiGByMUqIJoGJ55jWYFDzEwZ8uSbKF397K7WNEXuc5vkkfQg
G1iBjzf8bTzWFFsOYwi2yBU2gKUVRKARr6emJKBot3N5dS91htEMxqf1Z/Yw7797
JyhUiWBd1iDdhdKXv/UEmAjUw/yf5D7eK0nq24cs1zMCgYEA3GCRpCIyZaG1CXPn
F9hrYctTQKXm4GUVFSQuyq+cWbM1yyR3Q3dFmekT3HcSzBpLZpye7YNDCTzSLv+y
refufQFAWK0JaHVRbE8D5/ggCDlo1f4xnJf6C4dM/FZkVyAzYcBfHQe4zYSMzB9D
Mq1NaY1E8hefYIqKZnNhjI6iWDE=
-----END PRIVATE KEY-----

19
admin.pem Normal file
View File

@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDETCCAfkCFA5ijfMasAZU95n3dLpkNLnqVfVMMA0GCSqGSIb3DQEBCwUAMEUx
CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
cm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTkwODA2MTQxMzEzWhcNMTkwOTA1MTQx
MzEzWjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UE
CgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAxkRAuzcIPXrGm1aypkS/J5VY6wy9/GDn1LfhtbGfnm5h5i8p
1DKkNzx2A1KiaGUFuSaZpYflexkn1nqygtQu+SdffdVP9w7DOmmfkGV6E8DOF8ME
VDlNyv5Gmpwq/LDhGPjUCC8TZngnXFzjgg/Z7CLZM4CtNXE7lqTmwAVUUsLt4ShC
MLhsgpD53wgzN3/4A0r0LT/fmein9DhBdy3tbzuO0ayEkjigd9et4981RVgtFwJp
aRARXzwfFCIu994Tzq/pEZeDP5hNpAi9TJCWI49ufLI2Ybr5AgLqSJrblhjLqOYn
jZLlBR1gAoOICJqGkcuCTj/MntlQ2SisW03r8wIDAQABMA0GCSqGSIb3DQEBCwUA
A4IBAQCOEDExFNDWXU3uLUuAFEy1GBA93KCl4pqPg16DA7mWN6++ovpwfH0eQSRB
yQAPwjWApJc0KvvZv3m4FJlPGS7JAmL9TnTaPNRALa6i+t60mdM9myetKHrwfyj2
HFRNoOE5xAAiBlKD4FE8Vu0WVbaThCquGIVp5ecysNhi5pbMwt7WgXDwr9hvwj9b
f0FxZVKvTsh31Vu6E/H7MTkKPFxDi2W8FXjk9XipE2FE5fhbq6hjzI501gYytTA6
JNYbG/XwnKxNMtokJEQDCaUQ1Lsixug+iKKQLJ5w1pHXvyV8qjSG1PUMxGIX68of
bIlC8XXPq48Fp4RKHapLNoSE6gNN
-----END CERTIFICATE-----

23
custom-elasticsearch.yml Normal file
View File

@@ -0,0 +1,23 @@
network.host: 0.0.0.0
opendistro_security.ssl.transport.pemcert_filepath: node.pem
opendistro_security.ssl.transport.pemkey_filepath: node-key.pem
opendistro_security.ssl.transport.pemtrustedcas_filepath: root-ca.pem
opendistro_security.ssl.transport.enforce_hostname_verification: false
opendistro_security.ssl.http.enabled: true
opendistro_security.ssl.http.pemcert_filepath: node.pem
opendistro_security.ssl.http.pemkey_filepath: node-key.pem
opendistro_security.ssl.http.pemtrustedcas_filepath: root-ca.pem
opendistro_security.allow_default_init_securityindex: true
opendistro_security.authcz.admin_dn:
- CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA
opendistro_security.nodes_dn:
- 'CN=N,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
opendistro_security.audit.type: internal_elasticsearch
opendistro_security.enable_snapshot_restore_privilege: true
opendistro_security.check_snapshot_restore_write_privileges: true
opendistro_security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]
cluster.routing.allocation.disk.threshold_enabled: false
node.max_local_storage_nodes: 3
opendistro_security.audit.config.disabled_rest_categories: NONE
opendistro_security.audit.config.disabled_transport_categories: NONE
discovery.type: single-node

View File

@@ -1,9 +1,34 @@
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
version: '2'
version: '3'
services:
elasticsearch:
build: elasticsearch
container_name: elasticsearch
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536 # maximum number of open files for the Elasticsearch user, set to at least 65536 on modern systems
hard: 65536
volumes:
- odfe-data1:/usr/share/elasticsearch/data
- ./root-ca.pem:/usr/share/elasticsearch/config/root-ca.pem
- ./node.pem:/usr/share/elasticsearch/config/node.pem
- ./node-key.pem:/usr/share/elasticsearch/config/node-key.pem
- ./admin.pem:/usr/share/elasticsearch/config/admin.pem
- ./admin-key.pem:/usr/share/elasticsearch/config/admin-key.pem
- ./custom-elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
ports:
- 9200:9200
- 9600:9600 # required for Performance Analyzer
networks:
- odfe-net
wazuh:
image: wazuh/wazuh:3.7.1_6.5.3
image: wazuh/wazuh:3.9.3_7.1.1-opendistro
hostname: wazuh-manager
restart: always
ports:
@@ -11,91 +36,23 @@ services:
- "1515:1515"
- "514:514/udp"
- "55000:55000"
# - "1516:1516"
networks:
- docker_elk
# volumes:
# - my-path:/var/ossec/data:Z
# - my-path:/etc/postfix:Z
# - my-path:/etc/filebeat
# - my-custom-config-path/ossec.conf:/wazuh-config-mount/etc/ossec.conf
# command: ["echo 'hello world'"]
depends_on:
- logstash
logstash:
image: wazuh/wazuh-logstash:3.7.1_6.5.3
hostname: logstash
restart: always
# volumes:
# - my-path:/etc/logstash/conf.d:Z
links:
- elasticsearch:elasticsearch
ports:
- "5000:5000"
networks:
- docker_elk
depends_on:
- elasticsearch
environment:
- LS_HEAP_SIZE=2048m
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.5.3
hostname: elasticsearch
restart: always
ports:
- "9200:9200"
# - "9300:9300"
environment:
- node.name=node-1
- cluster.name=wazuh
- network.host=0.0.0.0
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 2g
# volumes:
# - my-path:/usr/share/elasticsearch/data:Z
networks:
- docker_elk
- odfe-net
kibana:
image: wazuh/wazuh-kibana:3.7.1_6.5.3
build: kibana
hostname: kibana
restart: always
# ports:
# - "5601:5601"
# environment:
# - ELASTICSEARCH_URL=http://elasticsearch:9200
networks:
- docker_elk
depends_on:
- elasticsearch
links:
- elasticsearch:elasticsearch
- wazuh:wazuh
nginx:
image: wazuh/wazuh-nginx:3.7.1_6.5.3
hostname: nginx
restart: always
environment:
- NGINX_PORT=443
ports:
- "80:80"
- "443:443"
# volumes:
# - my-path:/etc/nginx/conf.d:Z
networks:
- docker_elk
depends_on:
- kibana
links:
- kibana:kibana
- odfe-net
volumes:
odfe-data1:
networks:
docker_elk:
driver: bridge
ipam:
config:
- subnet: 172.25.0.0/24
odfe-net:

45
elasticsearch/Dockerfile Normal file
View File

@@ -0,0 +1,45 @@
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
ARG ELASTIC_VERSION=7.1.1
FROM amazon/opendistro-for-elasticsearch:1.1.0
ARG S3_PLUGIN_URL="https://artifacts.elastic.co/downloads/elasticsearch-plugins/repository-s3/repository-s3-${ELASTIC_VERSION}.zip"
ENV ELASTICSEARCH_URL="http://elasticsearch:9200"
ENV API_USER="foo" \
API_PASS="bar"
ENV ENABLE_CONFIGURE_S3="false"
# Elasticearch cluster configuration environment variables
# If ELASTIC_CLUSTER is set to "true" the following variables will be added to the Elasticsearch configuration
# CLUSTER_INITIAL_MASTER_NODES set to own node by default.
ENV ELASTIC_CLUSTER="false" \
CLUSTER_NAME="wazuh" \
CLUSTER_NODE_MASTER="false" \
CLUSTER_NODE_DATA="true" \
CLUSTER_NODE_INGEST="true" \
CLUSTER_NODE_NAME="wazuh-elasticsearch" \
CLUSTER_MASTER_NODE_NAME="master-node" \
CLUSTER_MEMORY_LOCK="true" \
CLUSTER_DISCOVERY_SERVICE="wazuh-elasticsearch" \
CLUSTER_NUMBER_OF_MASTERS="2" \
CLUSTER_MAX_NODES="1" \
CLUSTER_DELAYED_TIMEOUT="1m" \
CLUSTER_INITIAL_MASTER_NODES="wazuh-elasticsearch"
COPY config/entrypoint.sh /entrypoint.sh
RUN chmod 755 /entrypoint.sh
COPY --chown=elasticsearch:elasticsearch ./config/load_settings.sh ./
RUN chmod +x ./load_settings.sh
RUN ${bin/elasticsearch-plugin install --batch S3_PLUGIN_URL}
COPY config/configure_s3.sh ./config/configure_s3.sh
RUN chmod 755 ./config/configure_s3.sh
ENTRYPOINT ["/entrypoint.sh"]
CMD ["elasticsearch"]

View File

@@ -0,0 +1,59 @@
#!/bin/bash
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
elastic_config_file="/usr/share/elasticsearch/config/elasticsearch.yml"
# Disable the Open distro security plugin
remove_single_node_conf(){
if grep -Fq "discovery.type" $1; then
sed -i '/discovery.type\: /d' $1
fi
}
remove_cluster_config(){
sed -i '/# cluster node/,/# end cluster config/d' $1
}
# If Elasticsearch cluster is enable, then set up the elasticsearch.yml
if [[ $ELASTIC_CLUSTER == "true" && $CLUSTER_NODE_MASTER != "" && $CLUSTER_NODE_DATA != "" && $CLUSTER_NODE_INGEST != "" && $CLUSTER_MASTER_NODE_NAME != "" ]]; then
# Remove the old configuration
remove_single_node_conf $elastic_config_file
remove_cluster_config $elastic_config_file
if [[ $CLUSTER_NODE_MASTER == "true" ]]; then
# Add the master configuration
# cluster.initial_master_nodes for bootstrap the cluster
cat > $elastic_config_file << EOF
# cluster node
network.host: 0.0.0.0
node.name: $CLUSTER_MASTER_NODE_NAME
node.master: $CLUSTER_NODE_MASTER
cluster.initial_master_nodes:
- $CLUSTER_MASTER_NODE_NAME
# end cluster config"
EOF
elif [[ $CLUSTER_NODE_NAME != "" ]];then
# Remove the old configuration
remove_single_node_conf $elastic_config_file
remove_cluster_config $elastic_config_file
cat > $elastic_config_file << EOF
# cluster node
network.host: 0.0.0.0
node.name: $CLUSTER_NODE_NAME
node.master: false
discovery.seed_hosts:
- $CLUSTER_MASTER_NODE_NAME
- $CLUSTER_NODE_NAME
# end cluster config"
EOF
fi
# If the cluster is disabled, then set a single-node configuration
else
# Remove the old configuration
remove_single_node_conf $elastic_config_file
remove_cluster_config $elastic_config_file
echo "discovery.type: single-node" >> $elastic_config_file
fi

View File

@@ -0,0 +1,77 @@
#!/bin/bash
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
set -e
# Check number of arguments passed to configure_s3.sh. If it is different from 4 or 5, the process will finish with error.
# param 1: number of arguments passed to configure_s3.sh
function CheckArgs()
{
if [ $1 != 4 ] && [ $1 != 5 ];then
echo "Use: configure_s3.sh <Elastic_Server_IP:Port> <Bucket> <Path> <RepositoryName> (By default <current_elasticsearch_major_version> is added to the path and the repository name)"
echo "or use: configure_s3.sh <Elastic_Server_IP:Port> <Bucket> <Path> <RepositoryName> <Elasticsearch major version>"
exit 1
fi
}
# Create S3 repository from base_path <path>/<elasticsearch_major_version> (if there is no <Elasticsearch major version> argument, current version is added)
# Repository name would be <RepositoryName>-<elasticsearch_major_version> (if there is no <Elasticsearch major version> argument, current version is added)
# param 1: <Elastic_Server_IP:Port>
# param 2: <Bucket>
# param 3: <Path>
# param 4: <RepositoryName>
# param 5: Optional <Elasticsearch major version>
# output: It will show "acknowledged" if the repository has been successfully created
function CreateRepo()
{
elastic_ip_port="$2"
bucket_name="$3"
path="$4"
repository_name="$5"
if [ $1 == 5 ];then
version="$6"
else
version=`curl -s $elastic_ip_port | grep number | cut -d"\"" -f4 | cut -c1`
fi
if ! [[ "$version" =~ ^[0-9]+$ ]];then
echo "Elasticsearch major version must be an integer"
exit 1
fi
repository="$repository_name-$version"
s3_path="$path/$version"
curl -X PUT "$elastic_ip_port/_snapshot/$repository" -H 'Content-Type: application/json' -d'
{
"type": "s3",
"settings": {
"bucket": "'$bucket_name'",
"base_path": "'$s3_path'"
}
}
'
}
# Run functions CheckArgs and CreateRepo
# param 1: number of arguments passed to configure_s3.sh
# param 2: <Elastic_Server_IP:Port>
# param 3: <Bucket>
# param 4: <Path>
# param 5: <RepositoryName>
# param 6: Optional <Elasticsearch major version>
function Main()
{
CheckArgs $1
CreateRepo $1 $2 $3 $4 $5 $6
}
Main $# $1 $2 $3 $4 $5

View File

@@ -0,0 +1,28 @@
#!/bin/bash
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
# For more information https://github.com/elastic/elasticsearch-docker/blob/6.8.0/build/elasticsearch/bin/docker-entrypoint.sh
set -e
# Files created by Elasticsearch should always be group writable too
umask 0002
run_as_other_user_if_needed() {
if [[ "$(id -u)" == "0" ]]; then
# If running as root, drop to specified UID and run command
exec chroot --userspec=1000 / "${@}"
else
# Either we are running in Openshift with random uid and are a member of the root group
# or with a custom --user
exec "${@}"
fi
}
# Run load settings script.
./load_settings.sh &
# Execute elasticsearch
run_as_other_user_if_needed /usr/share/elasticsearch/bin/elasticsearch

View File

@@ -0,0 +1,90 @@
#!/bin/bash
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
set -e
el_url=${ELASTICSEARCH_URL}
if [ "x${WAZUH_API_URL}" = "x" ]; then
wazuh_url="https://wazuh"
else
wazuh_url="${WAZUH_API_URL}"
fi
until curl -XGET $el_url; do
>&2 echo "Elastic is unavailable - sleeping"
sleep 5
done
>&2 echo "Elastic is up - executing command"
if [ $ENABLE_CONFIGURE_S3 ]; then
#Wait for Elasticsearch to be ready to create the repository
sleep 10
IP_PORT="${ELASTICSEARCH_IP}:${ELASTICSEARCH_PORT}"
if [ "x$S3_PATH" != "x" ]; then
if [ "x$S3_ELASTIC_MAJOR" != "x" ]; then
./config/configure_s3.sh $IP_PORT $S3_BUCKET_NAME $S3_PATH $S3_REPOSITORY_NAME $S3_ELASTIC_MAJOR
else
./config/configure_s3.sh $IP_PORT $S3_BUCKET_NAME $S3_PATH $S3_REPOSITORY_NAME
fi
fi
fi
#Insert default templates
API_PASS_Q=`echo "$API_PASS" | tr -d '"'`
API_USER_Q=`echo "$API_USER" | tr -d '"'`
API_PASSWORD=`echo -n $API_PASS_Q | base64`
echo "Setting API credentials into Wazuh APP"
CONFIG_CODE=$(curl -s -o /dev/null -w "%{http_code}" -XGET $el_url/.wazuh/_doc/1513629884013)
if [ "x$CONFIG_CODE" != "x200" ]; then
curl -s -XPOST $el_url/.wazuh/_doc/1513629884013 -H 'Content-Type: application/json' -d'
{
"api_user": "'"$API_USER_Q"'",
"api_password": "'"$API_PASSWORD"'",
"url": "'"$wazuh_url"'",
"api_port": "55000",
"insecure": "true",
"component": "API",
"cluster_info": {
"manager": "wazuh-manager",
"cluster": "Disabled",
"status": "disabled"
},
"extensions": {
"oscap": true,
"audit": true,
"pci": true,
"aws": true,
"virustotal": true,
"gdpr": true,
"ciscat": true
}
}
' > /dev/null
else
echo "Wazuh APP already configured"
fi
sleep 5
# Set cluster delayed timeout when node falls
curl -X PUT "$el_url/_all/_settings" -H 'Content-Type: application/json' -d'
{
"settings": {
"index.unassigned.node_left.delayed_timeout": "'"$CLUSTER_DELAYED_TIMEOUT"'"
}
}
'
echo "Elasticsearch is ready."

View File

@@ -1,19 +1,63 @@
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
FROM docker.elastic.co/kibana/kibana:6.5.3
ARG WAZUH_APP_VERSION=3.7.1_6.5.3
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
FROM amazon/opendistro-for-elasticsearch-kibana:1.1.0
ARG ELASTIC_VERSION=7.1.1
ARG WAZUH_VERSION=3.9.3
ARG WAZUH_APP_VERSION="${WAZUH_VERSION}_${ELASTIC_VERSION}"
USER root
ADD https://packages.wazuh.com/wazuhapp/wazuhapp-${WAZUH_APP_VERSION}.zip /tmp
ADD https://packages.wazuh.com/wazuhapp/wazuhapp-${WAZUH_APP_VERSION}.zip /tmp
ADD https://raw.githubusercontent.com/wazuh/wazuh/3.7/extensions/elasticsearch/wazuh-elastic6-template-alerts.json /usr/share/kibana/config
RUN /usr/share/kibana/bin/kibana-plugin install file:///tmp/wazuhapp-${WAZUH_APP_VERSION}.zip
RUN rm -rf /tmp/wazuhapp-${WAZUH_APP_VERSION}.zip
RUN NODE_OPTIONS="--max-old-space-size=3072" /usr/share/kibana/bin/kibana-plugin install file:///tmp/wazuhapp-${WAZUH_APP_VERSION}.zip &&\
chown -R kibana:kibana /usr/share/kibana &&\
rm -rf /tmp/*
COPY config/entrypoint.sh /entrypoint.sh
RUN chmod 755 /entrypoint.sh
COPY config/entrypoint.sh ./entrypoint.sh
RUN chmod 755 ./entrypoint.sh
USER kibana
ENTRYPOINT /entrypoint.sh
ENV PATTERN="" \
CHECKS_PATTERN="" \
CHECKS_TEMPLATE="" \
CHECKS_API="" \
CHECKS_SETUP="" \
EXTENSIONS_PCI="" \
EXTENSIONS_GDPR="" \
EXTENSIONS_AUDIT="" \
EXTENSIONS_OSCAP="" \
EXTENSIONS_CISCAT="" \
EXTENSIONS_AWS="" \
EXTENSIONS_VIRUSTOTAL="" \
EXTENSIONS_OSQUERY="" \
APP_TIMEOUT="" \
WAZUH_SHARDS="" \
WAZUH_REPLICAS="" \
WAZUH_VERSION_SHARDS="" \
WAZUH_VERSION_REPLICAS="" \
IP_SELECTOR="" \
IP_IGNORE="" \
WAZUH_MONITORING_ENABLED="" \
WAZUH_MONITORING_FREQUENCY="" \
WAZUH_MONITORING_SHARDS="" \
WAZUH_MONITORING_REPLICAS="" \
ADMIN_PRIVILEGES=""
ARG CHANGE_WELCOME="false"
COPY --chown=kibana:kibana ./config/wazuh_app_config.sh ./
RUN chmod +x ./wazuh_app_config.sh
COPY --chown=kibana:kibana ./config/kibana_settings.sh ./
RUN chmod +x ./kibana_settings.sh
COPY --chown=kibana:kibana ./config/welcome_wazuh.sh ./
RUN chmod +x ./welcome_wazuh.sh
RUN ./welcome_wazuh.sh
RUN /usr/local/bin/kibana-docker --optimize
ENTRYPOINT ./entrypoint.sh

View File

@@ -1,8 +1,12 @@
#!/bin/bash
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
set -e
##############################################################################
# Waiting for elasticsearch
##############################################################################
if [ "x${ELASTICSEARCH_URL}" = "x" ]; then
el_url="http://elasticsearch:9200"
else
@@ -14,43 +18,34 @@ until curl -XGET $el_url; do
sleep 5
done
>&2 echo "Elastic is up - executing command"
sleep 2
#Insert default templates
cat /usr/share/kibana/config/wazuh-elastic6-template-alerts.json | curl -XPUT "$el_url/_template/wazuh" -H 'Content-Type: application/json' -d @-
sleep 5
>&2 echo "Elasticsearch is up."
echo "Setting API credentials into Wazuh APP"
CONFIG_CODE=$(curl -s -o /dev/null -w "%{http_code}" -XGET $el_url/.wazuh/wazuh-configuration/1513629884013)
if [ "x$CONFIG_CODE" = "x404" ]; then
curl -s -XPOST $el_url/.wazuh/wazuh-configuration/1513629884013 -H 'Content-Type: application/json' -d'
{
"api_user": "foo",
"api_password": "YmFy",
"url": "https://wazuh",
"api_port": "55000",
"insecure": "true",
"component": "API",
"cluster_info": {
"manager": "wazuh-manager",
"cluster": "Disabled",
"status": "disabled"
},
"extensions": {
"oscap": true,
"audit": true,
"pci": true,
"aws": true,
"virustotal": true,
"gdpr": true,
"ciscat": true
}
}
' > /dev/null
else
echo "Wazuh APP already configured"
fi
##############################################################################
# Waiting for wazuh alerts template
##############################################################################
strlen=0
while [[ $strlen -eq 0 ]]
do
template=$(curl $el_url/_cat/templates/wazuh -s)
strlen=${#template}
>&2 echo "Wazuh alerts template not loaded - sleeping."
sleep 2
done
sleep 2
>&2 echo "Wazuh alerts template is loaded."
./wazuh_app_config.sh
sleep 5
./kibana_settings.sh &
/usr/local/bin/kibana-docker

View File

@@ -1,92 +0,0 @@
# Kibana is served by a back end server. This setting specifies the port to use.
server.port: 5601
# This setting specifies the IP address of the back end server.
server.host: "0.0.0.0"
# Enables you to specify a path to mount Kibana at if you are running behind a proxy. This setting
# cannot end in a slash.
# server.basePath: ""
# The maximum payload size in bytes for incoming server requests.
# server.maxPayloadBytes: 1048576
# The Kibana server's name. This is used for display purposes.
# server.name: "your-hostname"
# The URL of the Elasticsearch instance to use for all your queries.
elasticsearch.url: "http://elasticsearch:9200"
# When this settings value is true Kibana uses the hostname specified in the server.host
# setting. When the value of this setting is false, Kibana uses the hostname of the host
# that connects to this Kibana instance.
# elasticsearch.preserveHost: true
# Kibana uses an index in Elasticsearch to store saved searches, visualizations and
# dashboards. Kibana creates a new index if the index doesnt already exist.
# kibana.index: ".kibana"
# The default application to load.
# kibana.defaultAppId: "discover"
# If your Elasticsearch is protected with basic authentication, these settings provide
# the username and password that the Kibana server uses to perform maintenance on the Kibana
# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which
# is proxied through the Kibana server.
# elasticsearch.username: "user"
# elasticsearch.password: "pass"
# Paths to the PEM-format SSL certificate and SSL key files, respectively. These
# files enable SSL for outgoing requests from the Kibana server to the browser.
# server.ssl.cert: /path/to/your/server.crt
# server.ssl.key: /path/to/your/server.key
# Optional settings that provide the paths to the PEM-format SSL certificate and key files.
# These files validate that your Elasticsearch backend uses the same key files.
# elasticsearch.ssl.cert: /path/to/your/client.crt
# elasticsearch.ssl.key: /path/to/your/client.key
# Optional setting that enables you to specify a path to the PEM file for the certificate
# authority for your Elasticsearch instance.
# elasticsearch.ssl.ca: /path/to/your/CA.pem
# To disregard the validity of SSL certificates, change this settings value to false.
# elasticsearch.ssl.verify: true
# Time in milliseconds to wait for Elasticsearch to respond to pings. Defaults to the value of
# the elasticsearch.requestTimeout setting.
# elasticsearch.pingTimeout: 1500
# Time in milliseconds to wait for responses from the back end or Elasticsearch. This value
# must be a positive integer.
# elasticsearch.requestTimeout: 30000
# List of Kibana client-side headers to send to Elasticsearch. To send *no* client-side
# headers, set this value to [] (an empty list).
# elasticsearch.requestHeadersWhitelist: [ authorization ]
# Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable.
# elasticsearch.shardTimeout: 0
# Time in milliseconds to wait for Elasticsearch at Kibana startup before retrying.
# elasticsearch.startupTimeout: 5000
# Specifies the path where Kibana creates the process ID file.
# pid.file: /var/run/kibana.pid
# Enables you specify a file where Kibana stores log output.
# logging.dest: stdout
# Set the value of this setting to true to suppress all logging output.
# logging.silent: false
# Set the value of this setting to true to suppress all logging output other than error messages.
logging.quiet: true
# Set the value of this setting to true to log all events, including system usage information
# and all requests.
# logging.verbose: false
# Set the interval in milliseconds to sample system and process performance
# metrics. Minimum is 100ms. Defaults to 10000.
# ops.interval: 10000

View File

@@ -0,0 +1,74 @@
#!/bin/bash
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
WAZUH_MAJOR=3
##############################################################################
# Wait for the Kibana API to start. It is necessary to do it in this container
# because the others are running Elastic Stack and we can not interrupt them.
#
# The following actions are performed:
#
# Add the wazuh alerts index as default.
# Set the Discover time interval to 24 hours instead of 15 minutes.
# Do not ask user to help providing usage statistics to Elastic.
##############################################################################
##############################################################################
# Customize elasticsearch ip
##############################################################################
sed -i 's|https://localhost:9200|http://elasticsearch:9200|g' /usr/share/kibana/config/kibana.yml
if [ "$ELASTICSEARCH_KIBANA_IP" != "" ]; then
sed -i '/elasticsearch.hosts/d' /usr/share/kibana/config/kibana.yml
echo "elasticsearch.hosts: $ELASTICSEARCH_KIBANA_IP" >> /usr/share/kibana/config/kibana.yml
sed -i 's|https://elasticsearch:9200|'$ELASTICSEARCH_KIBANA_IP'|g' /usr/share/kibana/config/kibana.yml
fi
# If KIBANA_INDEX was set, then change the default index in kibana.yml configuration file. If there was an index, then delete it and recreate.
if [ "$KIBANA_INDEX" != "" ]; then
if grep -q 'kibana.index' /usr/share/kibana/config/kibana.yml; then
sed -i '/kibana.index/d' /usr/share/kibana/config/kibana.yml
fi
echo "kibana.index: $KIBANA_INDEX" >> /usr/share/kibana/config/kibana.yml
fi
if [ "$KIBANA_IP" != "" ]; then
kibana_ip="$KIBANA_IP"
else
kibana_ip="kibana"
fi
while [[ "$(curl -XGET -I -s -o /dev/null -w ''%{http_code}'' $kibana_ip:5601/status)" != "200" ]]; do
echo "Waiting for Kibana API. Sleeping 5 seconds"
sleep 5
done
# Prepare index selection.
echo "Kibana API is running"
default_index="/tmp/default_index.json"
cat > ${default_index} << EOF
{
"changes": {
"defaultIndex": "wazuh-alerts-${WAZUH_MAJOR}.x-*"
}
}
EOF
sleep 5
# Add the wazuh alerts index as default.
curl -POST "http://$kibana_ip:5601/api/kibana/settings" -H "Content-Type: application/json" -H "kbn-xsrf: true" -d@${default_index}
rm -f ${default_index}
sleep 5
# Configuring Kibana TimePicker.
curl -POST "http://$kibana_ip:5601/api/kibana/settings" -H "Content-Type: application/json" -H "kbn-xsrf: true" -d \
'{"changes":{"timepicker:timeDefaults":"{\n \"from\": \"now-24h\",\n \"to\": \"now\",\n \"mode\": \"quick\"}"}}'
sleep 5
# Do not ask user to help providing usage statistics to Elastic
curl -POST "http://$kibana_ip:5601/api/telemetry/v2/optIn" -H "Content-Type: application/json" -H "kbn-xsrf: true" -d '{"enabled":false}'
echo "End settings"

View File

@@ -0,0 +1,39 @@
#!/bin/bash
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
kibana_config_file="/usr/share/kibana/plugins/wazuh/config.yml"
declare -A CONFIG_MAP=(
[pattern]=$PATTERN
[checks.pattern]=$CHECKS_PATTERN
[checks.template]=$CHECKS_TEMPLATE
[checks.api]=$CHECKS_API
[checks.setup]=$CHECKS_SETUP
[extensions.pci]=$EXTENSIONS_PCI
[extensions.gdpr]=$EXTENSIONS_GDPR
[extensions.audit]=$EXTENSIONS_AUDIT
[extensions.oscap]=$EXTENSIONS_OSCAP
[extensions.ciscat]=$EXTENSIONS_CISCAT
[extensions.aws]=$EXTENSIONS_AWS
[extensions.virustotal]=$EXTENSIONS_VIRUSTOTAL
[extensions.osquery]=$EXTENSIONS_OSQUERY
[timeout]=$APP_TIMEOUT
[wazuh.shards]=$WAZUH_SHARDS
[wazuh.replicas]=$WAZUH_REPLICAS
[wazuh-version.shards]=$WAZUH_VERSION_SHARDS
[wazuh-version.replicas]=$WAZUH_VERSION_REPLICAS
[ip.selector]=$IP_SELECTOR
[ip.ignore]=$IP_IGNORE
[wazuh.monitoring.enabled]=$WAZUH_MONITORING_ENABLED
[wazuh.monitoring.frequency]=$WAZUH_MONITORING_FREQUENCY
[wazuh.monitoring.shards]=$WAZUH_MONITORING_SHARDS
[wazuh.monitoring.replicas]=$WAZUH_MONITORING_REPLICAS
[admin]=$ADMIN_PRIVILEGES
)
for i in "${!CONFIG_MAP[@]}"
do
if [ "${CONFIG_MAP[$i]}" != "" ]; then
sed -i 's/.*#'"$i"'.*/'"$i"': '"${CONFIG_MAP[$i]}"'/' $kibana_config_file
fi
done

View File

@@ -0,0 +1,24 @@
#!/bin/bash
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
if [[ $CHANGE_WELCOME == "true" ]]
then
rm -rf ./optimize/bundles
kibana_path="/usr/share/kibana"
# Set Wazuh app as the default landing page
echo "Set Wazuh app as the default landing page"
echo "server.defaultRoute: /app/wazuh" >> /usr/share/kibana/config/kibana.yml
# Redirect Kibana welcome screen to Discover
echo "Redirect Kibana welcome screen to Discover"
sed -i "s:'/app/kibana#/home':'/app/wazuh':g" $kibana_path/src/ui/public/chrome/directives/global_nav/global_nav.html
sed -i "s:'/app/kibana#/home':'/app/wazuh':g" $kibana_path/src/ui/public/chrome/directives/header_global_nav/header_global_nav.js
# Redirect Kibana welcome screen to Discover
echo "Hide undesired links"
sed -i 's#visible: true#visible: false#g' $kibana_path/node_modules/x-pack/plugins/rollup/public/crud_app/index.js
sed -i 's#visible: true#visible: false#g' $kibana_path/node_modules/x-pack/plugins/license_management/public/management_section.js
fi

View File

@@ -1,6 +0,0 @@
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
FROM docker.elastic.co/logstash/logstash:6.5.3
RUN rm -f /usr/share/logstash/pipeline/logstash.conf
COPY config/01-wazuh.conf /usr/share/logstash/pipeline/01-wazuh.conf

View File

@@ -1,45 +0,0 @@
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
# Wazuh - Logstash configuration file
## Remote Wazuh Manager - Filebeat input
input {
beats {
port => 5000
codec => "json_lines"
# ssl => true
# ssl_certificate => "/etc/logstash/logstash.crt"
# ssl_key => "/etc/logstash/logstash.key"
}
}
filter {
if [data][srcip] {
mutate {
add_field => [ "@src_ip", "%{[data][srcip]}" ]
}
}
if [data][aws][sourceIPAddress] {
mutate {
add_field => [ "@src_ip", "%{[data][aws][sourceIPAddress]}" ]
}
}
}
filter {
geoip {
source => "@src_ip"
target => "GeoLocation"
fields => ["city_name", "country_name", "region_name", "location"]
}
date {
match => ["timestamp", "ISO8601"]
target => "@timestamp"
}
mutate {
remove_field => [ "timestamp", "beat", "input_type", "tags", "count", "@version", "log", "offset", "type", "@src_ip", "host"]
}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "wazuh-alerts-3.x-%{+YYYY.MM.dd}"
document_type => "wazuh"
}
}

View File

@@ -1,31 +0,0 @@
#!/bin/bash
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
#
# OSSEC container bootstrap. See the README for information of the environment
# variables expected by this script.
#
#
#
# Apply Templates
#
set -e
host="elasticsearch"
until curl -XGET $host:9200; do
>&2 echo "Elastic is unavailable - sleeping"
sleep 1
done
# Add logstash as command if needed
if [ "${1:0:1}" = '-' ]; then
set -- logstash "$@"
fi
# Run as user "logstash" if the command is "logstash"
if [ "$1" = 'logstash' ]; then
set -- gosu logstash "$@"
fi
exec "$@"

View File

@@ -1,16 +0,0 @@
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
FROM nginx:latest
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y openssl apache2-utils
COPY config/entrypoint.sh /entrypoint.sh
RUN chmod 755 /entrypoint.sh
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
VOLUME ["/etc/nginx/conf.d"]
ENTRYPOINT /entrypoint.sh

View File

@@ -1,57 +0,0 @@
#!/bin/sh
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
set -e
# Generating certificates.
if [ ! -d /etc/nginx/conf.d/ssl ]; then
echo "Generating SSL certificates"
mkdir -p /etc/nginx/conf.d/ssl/certs /etc/nginx/conf.d/ssl/private
openssl req -x509 -batch -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/conf.d/ssl/private/kibana-access.key -out /etc/nginx/conf.d/ssl/certs/kibana-access.pem >/dev/null
else
echo "SSL certificates already present"
fi
# Configuring default credentiales.
if [ ! -f /etc/nginx/conf.d/kibana.htpasswd ]; then
echo "Setting Nginx credentials"
echo bar|htpasswd -i -c /etc/nginx/conf.d/kibana.htpasswd foo >/dev/null
else
echo "Kibana credentials already configured"
fi
if [ "x${NGINX_PORT}" = "x" ]; then
NGINX_PORT=443
fi
if [ "x${KIBANA_HOST}" = "x" ]; then
KIBANA_HOST="kibana:5601"
fi
echo "Configuring NGINX"
cat > /etc/nginx/conf.d/default.conf <<EOF
server {
listen 80;
listen [::]:80;
return 301 https://\$host:${NGINX_PORT}\$request_uri;
}
server {
listen ${NGINX_PORT} default_server;
listen [::]:${NGINX_PORT};
ssl on;
ssl_certificate /etc/nginx/conf.d/ssl/certs/kibana-access.pem;
ssl_certificate_key /etc/nginx/conf.d/ssl/private/kibana-access.key;
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/conf.d/kibana.htpasswd;
proxy_pass http://${KIBANA_HOST}/;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}
}
EOF
nginx -g 'daemon off;'

28
node-key.pem Normal file
View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDex0W7QYjrJzc+
lYGO3ypsAngCFHgCjfnEhh+yNw8DdxayTyBqlvPlBk09JeVU8xF6EjqHy4broAYW
vZ15YRdeE7aDXJ05IiqCC7XFVz/pdpxZKeovEjlZi4gXtbB+lrcmChL4tQ5I5E1f
27KsC98fJZ6gRJz+Eede83eDi14Wt4uQJgG6JUosMGM0lBzzY/l37vRSFxeTP8cK
ex4vwWmgsFmR6AUf/corGm+OGK6ony9SGraZU3EoVUF7zWDhSxsS/pVheFizjpiT
2NLgbXCWVHozp4AjD3Ghzi3D5DV3Mw85ZTHTbgsxWx6fxygWH40OBOWj6o5454Ef
GKazJjz7AgMBAAECggEAQt+8vfZxPG28Nqw4hQPWvy+KiM1OLS4jUOwWLbA7cIXa
KVJ5X6XKtvBKVVW/3t1MXMGGEmd1K9wQl9j5oYsUsafnPM2bYKAx9HHBcei8BcAW
NOnRI6orzwaEpuFihs2FUwTpJwFqtVTbKTBRFTZHFxl64Y9XNSl4s9cQBEvcxaJp
/vPBhlYpkupKLSYFmey3fyuX190xYmD5hEbf+fYRCmEv9faLgyAmJCWlo6EjfZGZ
nQd/WtnzOhshFltkzFAj2EWu+8pIwL+qGdRyc5U5vr0BTvsTOyhlidnaZuNELaPv
DuVDH0GMGm6/5NyNQs+rWTTERJ3lC0aWsyyfA31l4QKBgQDxkNDMmtOVxqeg+n4h
nXYAhXdLlgxu7Hg7cxO1juwJS3e/5nAvgQm8Q00PcNrAQwMlY/jcdvf1wSosbbM0
I1Z2aQ5rriDuyYAxpdUn0PMKFwNEA7F7My2kGl/7HlIFH2twkb3nf9umnb/81VpY
OigNwv4uLylwcE7S9YHrx/orawKBgQDsFxJDgA9hOydHaCKsJ1pPqmbOsydInCFf
q4rneo/6rzbgzv/Wbpbd0cmUGLq41xe1rWsYjUd6/GGGbc4I/JzlaPIPNqL/bjIF
Gz1S9rS+zWj47Ggjb5gW6vJqzNkOMtkc4YEIWFNoDR78bFLw5NenJxwJ0mRd5eIV
6pBWpBCosQKBgDryE4FZ5neN2im19kFNoxXNe6a+HpqSqWQYWJ7dGUvLVpVFLerp
me6Onac+6qIvt/zPwFJL1YXqdNgSjMAUP2z1hcdQ3khmcxmqVbE5k5TKuMlH/W8K
tgBtTy5/35PQbu8xIR30XSzzIX4YscsFpfB1vICYkYwWW6Wust1OFwWxAoGBAIcA
2mzG+gR7swZeQhV3m2ka5Bcm0zvuLBdtHM0phNOxBgyf0iRosNS/dim9ymiQdvpo
5GjxwQJO9+XLPJpe+cklreWNNMAj326UGQksEkdZZsGRTiuVUL8qMt1nrmc0JHsj
aInBGFDTz/hAaV1fPwJSlvH24XXgUtx9eXRR9UTBAoGBAJoCY11pJ9C1NLSflWY5
0ig/aOCUx4vz0NX203KwmN2P7YXX4iq+qPIpnlsKRMR57hgajRm8Hs7OxvlNIUCt
6VYr2gRGH3rN7wL60dE8fGmHF0/BjWfFvRfkFmujO+ytmlf/SwjcJKmYDIMW7ZsF
Xvk6V/ziLkKUNL5P0xR0X6I8
-----END PRIVATE KEY-----

19
node.pem Normal file
View File

@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDETCCAfkCFA5ijfMasAZU95n3dLpkNLnqVfVNMA0GCSqGSIb3DQEBCwUAMEUx
CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
cm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTkwODA2MTQxMzI4WhcNMTkwOTA1MTQx
MzI4WjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UE
CgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEA3sdFu0GI6yc3PpWBjt8qbAJ4AhR4Ao35xIYfsjcPA3cWsk8g
apbz5QZNPSXlVPMRehI6h8uG66AGFr2deWEXXhO2g1ydOSIqggu1xVc/6XacWSnq
LxI5WYuIF7Wwfpa3JgoS+LUOSORNX9uyrAvfHyWeoESc/hHnXvN3g4teFreLkCYB
uiVKLDBjNJQc82P5d+70UhcXkz/HCnseL8FpoLBZkegFH/3KKxpvjhiuqJ8vUhq2
mVNxKFVBe81g4UsbEv6VYXhYs46Yk9jS4G1wllR6M6eAIw9xoc4tw+Q1dzMPOWUx
024LMVsen8coFh+NDgTlo+qOeOeBHximsyY8+wIDAQABMA0GCSqGSIb3DQEBCwUA
A4IBAQCm7P73s4azGocdSG3qHYDqEpUUxRyzkz9NuGoqYkXBbnKe2z4dCIZx1URm
muY2EKK+IHG9QCMgOIPCu8cMnwYqAcxT/Ob2EYOzOglvUhz6GR7MerfxU69hdGL7
gVSQSsVnRnMKzgO+8n6Nawx26GNxDO/6CNu5GS+jDPhR5ABV8su4+OmKa070wfB+
rFVfGWzYkxpgIteUKF/F59eH//DHllerHnoNvX03rpuIt6ofZoTzMJoBxAJIRiaP
Q3+0B0v/t+kxzSpkLNHs1X4xcDulpDU64oeSGYkB2ebK/rGOCBd4C+pNMY1zNaHQ
/7Xn7ZabuVcPtbqEcpszTfL5a/t9
-----END CERTIFICATE-----

27
root-ca-key.pem Normal file
View File

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA1vp+v6lcQ+UCMfCfvoSvffZA72Az+i0l7rmk46iZfmqhiXaV
x9Q44C2G6V5Jey2EWUAERaNoj+IvXlOE39fzrSKRVZP3CJ3FcbXTmrhxIcNq6c64
BG0oMExMlYzfSZbobeTkm+f4B6SNRpswz1MSnGwh5fwN6mwHq5sYJs7PcGHL1u81
tzHjIwvOxXXufAPaw9RI6IG96bKT8/hs/5IAtH8uN8im62+7Jzd1HdM/TNgrajpn
P7AgDwrEOo6EAZ4GxuOPsZYi33MZ+/GmhjRp3oheCx2MTyX2PWXAFDBJYdov2g/j
rmJgQKqXBtFozOc/wGuXgcN1NrGabhfsq6bv3QIDAQABAoIBADCQdBOuGcbItD89
4YhzhwWInNC2xectTdVpIMPBMbOqOQXJwTpcSeDyx/huMWFfPfe/i3eD27otWZAQ
hALhUQ36siRIAdVzdsgiUEQyiHQdJkjdRxrQ4fRPODnMkiCYs7cnrzE9LP3lAXlC
07ryRFEL6HiBAU/EydLNfZ4+uAPl2cHnJ5sddimQy/smg4wGSyz/xsbglF5wFMMy
IT2h9xtYqRDfz8SKjBx4CCXzM6bPwjlp04fkc2s6n1slDp6FfyCGFMlxs8IbJRK2
6nDXg9q4+t3BZkVDVsA0GMRWDO1bv/yP3Xh4c2FN8hT4/vGvDnFeIxHVUkQapFa/
plL53cECgYEA9Wk4aqWzbAB7KCa8Ygac8X2cp5XV938acHNaOlEqeskhKf427GBR
Jv0PnyvcSZ6HvkqfsX6/zcaDBjl6d93vqTt7Caa6+AlyLXh5wBYWfHfoWw6Cd9a9
EHz6l8RXtjO1BDrEmp0eeaVwIi9J0gC9klIQeAyIGEckpK5rCIFrVo0CgYEA4EEe
8rry+Gw6M5BHIub5m8TX7QN8vPC7zre13MgLRxgasZjY6BDULf063On4ULhe5gol
D1QJmJz7IqCRSyOyR4PQUZ93vOrgRkajIEg1gDfw5BL+XfcB24F2iSdjHAj5Yel6
HDC4QfGuE+Pf2JjXfS46rTJOpCtPvZRO/1YZEpECgYBwffffYu84zYumnwLxSCi+
xZ5+bz9yQLAE5ctxOe1n9TQfhKj2dzwbzBpSEw/aKzH790b2XKxdDebXfpd1xKTs
BRjkFqpTsjjFQRlGBJnwGiLHQoJpnmRx32gbE2RFX7RVKP8gBG+IwV4CPXzwJ2i+
XqGv9caYolvYpR7o+jISrQKBgFYkzdWiOOly8ZyTJLBkl6fdorB6MXWG6C4NZf/s
nGBwAvkL5O6oYElWSEFKY0fmuxWU+g18U79bNiFkGswJZ1ePa/uezWk1tHdqdQlW
k66wTonePfYsh3shrT4ccjb3v4x8Gpsvn+g9BYjAdWGHvOdqVcHoXEs2FAiYKwxs
r27xAoGBAOCRicRMDmzZEn6+H2TPLcF8I1z5Zmbfe2wxpbJTyRrlsPYRDWVD5AQq
ot1997UYoOU3/dVh1Hboilw/FhWgWefElqZ0ZbR/c0SQ9mVIk1pdjBiIVb9wIMPb
JUFzTOZpJLFm+3XprcolynJ5eEwNVo4qznQ6/wKIiHl3218oMlLO
-----END RSA PRIVATE KEY-----

21
root-ca.pem Normal file
View File

@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDazCCAlOgAwIBAgIUKv3kyQj4hZXfq9c8n2eaVyfbxgIwDQYJKoZIhvcNAQEL
BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xOTA4MDYxNDEzMDBaFw0xOTA5
MDUxNDEzMDBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQDW+n6/qVxD5QIx8J++hK999kDvYDP6LSXuuaTjqJl+
aqGJdpXH1DjgLYbpXkl7LYRZQARFo2iP4i9eU4Tf1/OtIpFVk/cIncVxtdOauHEh
w2rpzrgEbSgwTEyVjN9Jluht5OSb5/gHpI1GmzDPUxKcbCHl/A3qbAermxgmzs9w
YcvW7zW3MeMjC87Fde58A9rD1Ejogb3pspPz+Gz/kgC0fy43yKbrb7snN3Ud0z9M
2CtqOmc/sCAPCsQ6joQBngbG44+xliLfcxn78aaGNGneiF4LHYxPJfY9ZcAUMElh
2i/aD+OuYmBAqpcG0WjM5z/Aa5eBw3U2sZpuF+yrpu/dAgMBAAGjUzBRMB0GA1Ud
DgQWBBSB8K9j6PWB7xsXY6FhQ5yiwyuBADAfBgNVHSMEGDAWgBSB8K9j6PWB7xsX
Y6FhQ5yiwyuBADAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBT
19LIJpNg/03mvmGlnI7pfKIKpJSA1GZDZ+QJ/K8uOlo6aX0r511Sc7CWHTNDwdH/
K8lvnMTGDXNHY2iblGjJU067Z1ahwqVewix0cy36dy/k2g5BnxaH4yuHRvn5DeWx
1GQLP6sVDpw5aTVq8KtuSvzv6Qc9I8Ra2708SxZY2KnQPKHlgVhs5tbYaFRic4xl
Ir9unaTWyHlZ0UAE0HlJSL6Fe1OTwyyjZi9msriuIQozKuaiobzOU2P1I+2rgHic
yzS1R9zI3YxPZsUaJiuiC6NWZ7gnrnf0qp1MGJ+qDKMeVISJFILa8PpSAuDxyr5r
XW5PH/MBrI0VpiUi4Pi7
-----END CERTIFICATE-----

1
root-ca.srl Normal file
View File

@@ -0,0 +1 @@
0E628DF31AB00654F799F774BA6434B9EA55F54D

View File

@@ -1,86 +1,80 @@
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
FROM phusion/baseimage:latest
ARG FILEBEAT_VERSION=6.5.3
ARG WAZUH_VERSION=3.7.1-1
# Updating image
RUN apt-get update && apt-get upgrade -y -o Dpkg::Options::="--force-confold"
ARG FILEBEAT_VERSION=7.1.1
# Set Wazuh repository.
RUN echo "deb https://packages.wazuh.com/3.x/apt/ stable main" | tee /etc/apt/sources.list.d/wazuh.list
RUN curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add -
ARG WAZUH_VERSION=3.9.3-1
# Set nodejs repository.
RUN curl --silent --location https://deb.nodesource.com/setup_8.x | bash -
ENV API_USER="foo" \
API_PASS="bar"
# Creating ossec user as uid:gid 1000:1000
RUN groupadd -g 1000 ossec
RUN useradd -u 1000 -g 1000 -d /var/ossec ossec
ARG TEMPLATE_VERSION="v3.9.3"
# Configure postfix
RUN echo "postfix postfix/mailname string wazuh-manager" | debconf-set-selections
RUN echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections
# Set repositories.
RUN set -x && echo "deb https://packages.wazuh.com/3.x/apt/ stable main" | tee /etc/apt/sources.list.d/wazuh.list && \
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add - && \
curl --silent --location https://deb.nodesource.com/setup_8.x | bash - && \
echo "postfix postfix/mailname string wazuh-manager" | debconf-set-selections && \
echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections && \
groupadd -g 1000 ossec && useradd -u 1000 -g 1000 -d /var/ossec ossec
# Add universe repository
RUN add-apt-repository universe
RUN add-apt-repository universe && apt-get update && apt-get upgrade -y -o Dpkg::Options::="--force-confold" && \
apt-get --no-install-recommends --no-install-suggests -y install openssl postfix bsd-mailx python-boto python-pip \
apt-transport-https vim expect nodejs python-cryptography mailutils libsasl2-modules wazuh-manager=${WAZUH_VERSION} \
wazuh-api=${WAZUH_VERSION} && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && rm -f \
/var/ossec/logs/alerts/*/*/*.log && rm -f /var/ossec/logs/alerts/*/*/*.json && rm -f \
/var/ossec/logs/archives/*/*/*.log && rm -f /var/ossec/logs/archives/*/*/*.json && rm -f \
/var/ossec/logs/firewall/*/*/*.log && rm -f /var/ossec/logs/firewall/*/*/*.json
# Install packages
RUN apt-get update && apt-get -y install openssl postfix bsd-mailx python-boto python-pip \
apt-transport-https vim expect nodejs python-cryptography wazuh-manager=${WAZUH_VERSION} \
wazuh-api=${WAZUH_VERSION} mailutils libsasl2-modules
# Adding first run script.
ADD config/data_dirs.env /data_dirs.env
ADD config/init.bash /init.bash
# Adding first run script and entrypoint
COPY config/data_dirs.env /data_dirs.env
COPY config/init.bash /init.bash
RUN mkdir /entrypoint-scripts
COPY config/entrypoint.sh /entrypoint.sh
COPY config/00-wazuh.sh /entrypoint-scripts/00-wazuh.sh
COPY config/01-config_filebeat.sh /entrypoint-scripts/01-config_filebeat.sh
# Sync calls are due to https://github.com/docker/docker/issues/9547
RUN chmod 755 /init.bash &&\
sync && /init.bash &&\
sync && rm /init.bash
RUN chmod 755 /init.bash && \
sync && /init.bash && \
sync && rm /init.bash && \
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-${FILEBEAT_VERSION}-amd64.deb &&\
dpkg -i filebeat-oss-${FILEBEAT_VERSION}-amd64.deb && rm -f filebeat-oss-${FILEBEAT_VERSION}-amd64.deb && \
chmod 755 /entrypoint.sh && \
chmod 755 /entrypoint-scripts/00-wazuh.sh && \
chmod 755 /entrypoint-scripts/01-config_filebeat.sh
# Installing and configuring fiebeat
RUN curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${FILEBEAT_VERSION}-amd64.deb &&\
dpkg -i filebeat-${FILEBEAT_VERSION}-amd64.deb && rm -f filebeat-${FILEBEAT_VERSION}-amd64.deb
COPY config/filebeat.yml /etc/filebeat/
RUN chmod go-w /etc/filebeat/filebeat.yml
# Adding entrypoint
ADD config/entrypoint.sh /entrypoint.sh
RUN chmod 755 /entrypoint.sh
# Setting volumes
VOLUME ["/var/ossec/data"]
VOLUME ["/etc/filebeat"]
VOLUME ["/etc/postfix"]
VOLUME ["/var/lib/filebeat"]
# Services ports
EXPOSE 55000/tcp 1514/udp 1515/tcp 514/udp 1516/tcp
# Clean up
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Adding services
RUN mkdir /etc/service/wazuh
RUN mkdir /etc/service/wazuh && \
mkdir /etc/service/wazuh-api && \
mkdir /etc/service/postfix && \
mkdir /etc/service/filebeat
COPY config/wazuh.runit.service /etc/service/wazuh/run
RUN chmod +x /etc/service/wazuh/run
RUN mkdir /etc/service/wazuh-api
COPY config/wazuh-api.runit.service /etc/service/wazuh-api/run
RUN chmod +x /etc/service/wazuh-api/run
RUN mkdir /etc/service/postfix
COPY config/postfix.runit.service /etc/service/postfix/run
RUN chmod +x /etc/service/postfix/run
RUN mkdir /etc/service/filebeat
COPY config/filebeat.runit.service /etc/service/filebeat/run
RUN chmod +x /etc/service/filebeat/run
# Temporary fix for AWS integration
RUN sed -i 's/.*with open*/#wiht open/' /var/ossec/wodles/aws/aws-s3
RUN sed -i 's/.*max_queue_buffer = int(kernel_param.read().strip())*/#max_queue_buffer/' /var/ossec/wodles/aws/aws-s3
RUN sed -i '784imax_queue_buffer = 0' /var/ossec/wodles/aws/aws-s3
RUN sed -i '784s/^/ /' /var/ossec/wodles/aws/aws-s3
RUN chmod +x /etc/service/wazuh-api/run && \
chmod +x /etc/service/wazuh/run && \
chmod +x /etc/service/postfix/run && \
chmod +x /etc/service/filebeat/run
ADD https://raw.githubusercontent.com/wazuh/wazuh/$TEMPLATE_VERSION/extensions/elasticsearch/7.x/wazuh-template.json /etc/filebeat
RUN chmod go-w /etc/filebeat/wazuh-template.json
# Run all services
ENTRYPOINT ["/entrypoint.sh"]
ENTRYPOINT ["/entrypoint.sh"]

135
wazuh/config/00-wazuh.sh Normal file
View File

@@ -0,0 +1,135 @@
#!/bin/bash
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
# Wazuh container bootstrap. See the README for information of the environment
# variables expected by this script.
# Startup the services
source /data_dirs.env
FIRST_TIME_INSTALLATION=false
WAZUH_INSTALL_PATH=/var/ossec
DATA_PATH=${WAZUH_INSTALL_PATH}/data
WAZUH_CONFIG_MOUNT=/wazuh-config-mount
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"
}
edit_configuration() { # $1 -> setting, $2 -> value
sed -i "s/^config.$1\s=.*/config.$1 = \"$2\";/g" "${DATA_PATH}/api/configuration/config.js" || error_and_exit "sed (editing configuration)"
}
for ossecdir in "${DATA_DIRS[@]}"; do
if [ ! -e "${DATA_PATH}/${ossecdir}" ]
then
print "Installing ${ossecdir}"
exec_cmd "mkdir -p $(dirname ${DATA_PATH}/${ossecdir})"
exec_cmd "cp -pr /var/ossec/${ossecdir}-template ${DATA_PATH}/${ossecdir}"
FIRST_TIME_INSTALLATION=true
fi
done
if [ -e ${WAZUH_INSTALL_PATH}/etc-template ]
then
cp -p /var/ossec/etc-template/internal_options.conf /var/ossec/etc/internal_options.conf
fi
rm /var/ossec/queue/db/.template.db
touch ${DATA_PATH}/process_list
chgrp ossec ${DATA_PATH}/process_list
chmod g+rw ${DATA_PATH}/process_list
AUTO_ENROLLMENT_ENABLED=${AUTO_ENROLLMENT_ENABLED:-true}
API_GENERATE_CERTS=${API_GENERATE_CERTS:-true}
if [ $FIRST_TIME_INSTALLATION == true ]
then
if [ $AUTO_ENROLLMENT_ENABLED == true ]
then
if [ ! -e ${DATA_PATH}/etc/sslmanager.key ]
then
print "Creating ossec-authd key and cert"
exec_cmd "openssl genrsa -out ${DATA_PATH}/etc/sslmanager.key 4096"
exec_cmd "openssl req -new -x509 -key ${DATA_PATH}/etc/sslmanager.key -out ${DATA_PATH}/etc/sslmanager.cert -days 3650 -subj /CN=${HOSTNAME}/"
fi
fi
if [ $API_GENERATE_CERTS == true ]
then
if [ ! -e ${DATA_PATH}/api/configuration/ssl/server.crt ]
then
print "Enabling Wazuh API HTTPS"
edit_configuration "https" "yes"
print "Create Wazuh API key and cert"
exec_cmd "openssl genrsa -out ${DATA_PATH}/api/configuration/ssl/server.key 4096"
exec_cmd "openssl req -new -x509 -key ${DATA_PATH}/api/configuration/ssl/server.key -out ${DATA_PATH}/api/configuration/ssl/server.crt -days 3650 -subj /CN=${HOSTNAME}/"
fi
fi
fi
##############################################################################
# Copy all files from $WAZUH_CONFIG_MOUNT to $DATA_PATH and respect
# destination files permissions
#
# For example, to mount the file /var/ossec/data/etc/ossec.conf, mount it at
# $WAZUH_CONFIG_MOUNT/etc/ossec.conf in your container and this code will
# replace the ossec.conf file in /var/ossec/data/etc with yours.
##############################################################################
if [ -e "$WAZUH_CONFIG_MOUNT" ]
then
print "Identified Wazuh configuration files to mount..."
exec_cmd_stdout "cp --verbose -r $WAZUH_CONFIG_MOUNT/* $DATA_PATH"
else
print "No Wazuh configuration files to mount..."
fi
function ossec_shutdown(){
${WAZUH_INSTALL_PATH}/bin/ossec-control stop;
}
# Trap exit signals and do a proper shutdown
trap "ossec_shutdown; exit" SIGINT SIGTERM
chmod -R g+rw ${DATA_PATH}
##############################################################################
# Interpret any passed arguments (via docker command to this entrypoint) as
# paths or commands, and execute them.
#
# This can be useful for actions that need to be run before the services are
# started, such as "/var/ossec/bin/ossec-control enable agentless".
##############################################################################
for CUSTOM_COMMAND in "$@"
do
echo "Executing command \`${CUSTOM_COMMAND}\`"
exec_cmd_stdout "${CUSTOM_COMMAND}"
done
##############################################################################
# Change Wazuh API user credentials.
##############################################################################
pushd /var/ossec/api/configuration/auth/
echo "Change Wazuh API user credentials"
change_user="node htpasswd -b -c user $API_USER $API_PASS"
eval $change_user
popd

View File

@@ -0,0 +1,10 @@
#!/bin/bash
# Wazuh App Copyright (C) 2019 Wazuh Inc. (License GPLv2)
set -e
# Modify the output to Elasticsearch if th ELASTICSEARCH_URL is set
if [ "$ELASTICSEARCH_URL" != "" ]; then
>&2 echo "Customize Elasticsearch ouput IP."
sed -i 's|http://elasticsearch:9200|'$ELASTICSEARCH_URL'|g' /etc/filebeat/filebeat.yml
fi

View File

@@ -1,129 +1,14 @@
#!/bin/bash
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
#
# OSSEC container bootstrap. See the README for information of the environment
# variables expected by this script.
#
# It will run every .sh script located in entrypoint-scripts folder in lexicographical order
for script in `ls /entrypoint-scripts/*.sh | sort -n`; do
bash "$script"
#
#
# Startup the services
#
source /data_dirs.env
FIRST_TIME_INSTALLATION=false
WAZUH_INSTALL_PATH=/var/ossec
DATA_PATH=${WAZUH_INSTALL_PATH}/data
WAZUH_CONFIG_MOUNT=/wazuh-config-mount
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"
}
edit_configuration() { # $1 -> setting, $2 -> value
sed -i "s/^config.$1\s=.*/config.$1 = \"$2\";/g" "${DATA_PATH}/api/configuration/config.js" || error_and_exit "sed (editing configuration)"
}
for ossecdir in "${DATA_DIRS[@]}"; do
if [ ! -e "${DATA_PATH}/${ossecdir}" ]
then
print "Installing ${ossecdir}"
exec_cmd "mkdir -p $(dirname ${DATA_PATH}/${ossecdir})"
exec_cmd "cp -pr /var/ossec/${ossecdir}-template ${DATA_PATH}/${ossecdir}"
FIRST_TIME_INSTALLATION=true
fi
done
touch ${DATA_PATH}/process_list
chgrp ossec ${DATA_PATH}/process_list
chmod g+rw ${DATA_PATH}/process_list
AUTO_ENROLLMENT_ENABLED=${AUTO_ENROLLMENT_ENABLED:-true}
API_GENERATE_CERTS=${API_GENERATE_CERTS:-true}
if [ $FIRST_TIME_INSTALLATION == true ]
then
if [ $AUTO_ENROLLMENT_ENABLED == true ]
then
if [ ! -e ${DATA_PATH}/etc/sslmanager.key ]
then
print "Creating ossec-authd key and cert"
exec_cmd "openssl genrsa -out ${DATA_PATH}/etc/sslmanager.key 4096"
exec_cmd "openssl req -new -x509 -key ${DATA_PATH}/etc/sslmanager.key -out ${DATA_PATH}/etc/sslmanager.cert -days 3650 -subj /CN=${HOSTNAME}/"
fi
fi
if [ $API_GENERATE_CERTS == true ]
then
if [ ! -e ${DATA_PATH}/api/configuration/ssl/server.crt ]
then
print "Enabling Wazuh API HTTPS"
edit_configuration "https" "yes"
print "Create Wazuh API key and cert"
exec_cmd "openssl genrsa -out ${DATA_PATH}/api/configuration/ssl/server.key 4096"
exec_cmd "openssl req -new -x509 -key ${DATA_PATH}/api/configuration/ssl/server.key -out ${DATA_PATH}/api/configuration/ssl/server.crt -days 3650 -subj /CN=${HOSTNAME}/"
fi
fi
fi
##############################################################################
# Copy all files from $WAZUH_CONFIG_MOUNT to $DATA_PATH and respect
# destination files permissions
#
# For example, to mount the file /var/ossec/data/etc/ossec.conf, mount it at
# $WAZUH_CONFIG_MOUNT/etc/ossec.conf in your container and this code will
# replace the ossec.conf file in /var/ossec/data/etc with yours.
# Start Wazuh Server.
##############################################################################
if [ -e "$WAZUH_CONFIG_MOUNT" ]
then
print "Identified Wazuh configuration files to mount..."
exec_cmd_stdout "cp --verbose -r $WAZUH_CONFIG_MOUNT/* $DATA_PATH"
else
print "No Wazuh configuration files to mount..."
fi
# Enabling ossec-authd.
exec_cmd "/var/ossec/bin/ossec-control enable auth"
function ossec_shutdown(){
${WAZUH_INSTALL_PATH}/bin/ossec-control stop;
}
# Trap exit signals and do a proper shutdown
trap "ossec_shutdown; exit" SIGINT SIGTERM
chmod -R g+rw ${DATA_PATH}
##############################################################################
# Interpret any passed arguments (via docker command to this entrypoint) as
# paths or commands, and execute them.
#
# This can be useful for actions that need to be run before the services are
# started, such as "/var/ossec/bin/ossec-control enable agentless".
##############################################################################
for CUSTOM_COMMAND in "$@"
do
echo "Executing command \`${CUSTOM_COMMAND}\`"
exec_cmd_stdout "${CUSTOM_COMMAND}"
done
/sbin/my_init

View File

@@ -1,3 +1,4 @@
#!/bin/sh
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
service filebeat start
tail -f /var/log/filebeat/filebeat

View File

@@ -1,18 +1,53 @@
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
filebeat:
inputs:
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
filebeat.inputs:
- type: log
paths:
- "/var/ossec/data/logs/alerts/alerts.json"
fields:
document_type: wazuh-alerts
json.message_key: log
json.keys_under_root: true
json.overwrite_keys: true
- '/var/ossec/logs/alerts/alerts.json'
output:
logstash:
# The Logstash hosts
hosts: ["logstash:5000"]
# ssl:
# certificate_authorities: ["/etc/filebeat/logstash.crt"]
setup.template.json.enabled: true
setup.template.json.path: "/etc/filebeat/wazuh-template.json"
setup.template.json.name: "wazuh"
setup.template.overwrite: true
processors:
- decode_json_fields:
fields: ['message']
process_array: true
max_depth: 200
target: ''
overwrite_keys: true
- drop_fields:
fields: ['message', 'ecs', 'beat', 'input_type', 'tags', 'count', '@version', 'log', 'offset', 'type', 'host']
- rename:
fields:
- from: "data.aws.sourceIPAddress"
to: "@src_ip"
ignore_missing: true
fail_on_error: false
when:
regexp:
data.aws.sourceIPAddress: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
- rename:
fields:
- from: "data.srcip"
to: "@src_ip"
ignore_missing: true
fail_on_error: false
when:
regexp:
data.srcip: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
- rename:
fields:
- from: "data.win.eventdata.ipAddress"
to: "@src_ip"
ignore_missing: true
fail_on_error: false
when:
regexp:
data.win.eventdata.ipAddress: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
output.elasticsearch:
hosts: ['http://elasticsearch:9200']
#pipeline: geoip
indices:
- index: 'wazuh-alerts-3.x-%{+yyyy.MM.dd}'

View File

@@ -1,9 +1,7 @@
#!/bin/bash
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
#
# Initialize the custom data directory layout
#
source /data_dirs.env
cd /var/ossec

View File

@@ -1,3 +1,4 @@
#!/bin/sh
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
service postfix start
tail -f /var/log/mail.log

View File

@@ -1,4 +1,5 @@
#!/bin/sh
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
service wazuh-api start
tail -f /var/ossec/data/logs/api.log

View File

@@ -1,4 +1,5 @@
#!/bin/sh
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
service wazuh-manager start
tail -f /var/ossec/data/logs/ossec.log