Compare commits

...

219 Commits

Author SHA1 Message Date
havidarou
c74ac89592 Fixing ELASTICSEARCH_URL sed for filebeat 2019-08-14 21:17:38 +02:00
Jose M
d47009f8dc Bump image version 2019-08-14 12:29:53 +02:00
Jose M
4c8dd65f1b Bump version 2019-08-14 11:54:52 +02:00
Jose M
69671b7c78 Update docker-compose.yml 2019-08-14 11:53:38 +02:00
Jose M
5da96004dd Add sed blocks to modify Filebeat.yml 2019-08-14 11:52:52 +02:00
Jose M
95124980b1 Include filebeat SSL settings in filebeat.yml 2019-08-14 11:52:35 +02:00
Jose M
386ad3200b Add Filebeat module installation 2019-08-12 15:21:49 +02:00
manuasir
029cbfecfe Updated docker compose 2019-08-07 17:13:55 +02:00
manuasir
95b4f9a69e Removed demo files 2019-08-07 17:12:29 +02:00
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
31 changed files with 999 additions and 595 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.4_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.4_7.1.1"
REVISION="3940"

View File

@@ -1,101 +1,26 @@
# Wazuh App Copyright (C) 2018 Wazuh Inc. (License GPLv2)
version: '2'
version: '3'
services:
wazuh:
image: wazuh/wazuh:3.7.1_6.5.3
image: wazuh/wazuh:3.9.4_7.1.1-opendistro-security
hostname: wazuh-manager
container_name: wazuh
restart: always
environment:
- SSL_CERTIFICATE_AUTHORITIES=/etc/filebeat/CA.PEM
- SSL_CERTIFICATE=/etc/filebeat/node.pem
- SSL_KEY=/etc/filebeat/key.pem
- USERNAME=usertest
- PASSWORD=passwordtest
ports:
- "1514:1514/udp"
- "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
kibana:
image: wazuh/wazuh-kibana:3.7.1_6.5.3
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,65 @@
# 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.4
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
ENV ELASTICSEARCH_URL "--cacert /usr/share/elasticsearch/config/root-ca.pem -u admin:admin -k https://elasticsearch:9200"
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;'

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.4-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.4"
# 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,47 @@
#!/bin/bash
# Wazuh App Copyright (C) 2019 Wazuh Inc. (License GPLv2)
set -e
WAZUH_FILEBEAT_MODULE=wazuh-filebeat-0.1.tar.gz
if [ "$ELASTICSEARCH_URL" != "" ]; then
>&2 echo "Customize Elasticsearch ouput IP."
sed -i 's|http://elasticsearch:9200|'$ELASTICSEARCH_URL'|g' /etc/filebeat/filebeat.yml
fi
# Install Wazuh Filebeat Module
curl -s "https://packages.wazuh.com/3.x/filebeat/${WAZUH_FILEBEAT_MODULE}" | tar -xvz -C /usr/share/filebeat/module
mkdir -p /usr/share/filebeat/module/wazuh
chmod 755 -R /usr/share/filebeat/module/wazuh
chown root: /etc/filebeat/filebeat.yml
chmod go-w /etc/filebeat/filebeat.yml
# Configure filebeat.yml security settings
if [ "$SSL_CERTIFICATE_AUTHORITIES" != "" ]; then
>&2 echo "Customize Elasticsearch ouput IP."
sed -i 's|#ssl.certificate_authorities:|'ssl.certificate_authorities:\ [\"$SSL_CERTIFICATE\"]'|g' /etc/filebeat/filebeat.yml
fi
if [ "$SSL_CERTIFICATE" != "" ]; then
>&2 echo "Customize Elasticsearch ouput IP."
sed -i 's|#ssl.certificate:|'ssl.certificate:\ \"$SSL_CERTIFICATE\"'|g' /etc/filebeat/filebeat.yml
fi
if [ "$SSL_KEY" != "" ]; then
>&2 echo "Customize Elasticsearch ouput IP."
sed -i 's|#ssl.key:|'ssl.key:\ \"$SSL_KEY\"'|g' /etc/filebeat/filebeat.yml
fi
if [ "$USERNAME" != "" ]; then
>&2 echo "Customize Elasticsearch ouput IP."
sed -i 's|#username:|'username:\ \"$USERNAME\"'|g' /etc/filebeat/filebeat.yml
fi
if [ "$PASSWORD" != "" ]; then
>&2 echo "Customize Elasticsearch ouput IP."
sed -i 's|#password:|'password:\ \"$PASSWORD\"'|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,58 @@
# 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}'
#ssl.certificate_authorities:
#ssl.certificate:
#ssl.key:
#username:
#password:

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