From e788000d856124e84dfa952126868174decb56aa Mon Sep 17 00:00:00 2001 From: Eli Date: Mon, 7 Mar 2022 16:48:29 -0500 Subject: [PATCH] finished draft 1 of README --- Ansible/install-elk.yml | 2 +- {Diagrams => Images}/ELKStack-Azure-Cloud.png | Bin Images/docker_ps_output.png | Bin 0 -> 51952 bytes README.md | 72 +++++++++++------- 4 files changed, 47 insertions(+), 27 deletions(-) rename {Diagrams => Images}/ELKStack-Azure-Cloud.png (100%) create mode 100644 Images/docker_ps_output.png diff --git a/Ansible/install-elk.yml b/Ansible/install-elk.yml index 33a90c4..26126b8 100644 --- a/Ansible/install-elk.yml +++ b/Ansible/install-elk.yml @@ -26,7 +26,7 @@ pip: name: docker - - name: Install cyberxsecurity-dvwa + - name: Install ELK stack container docker_container: name: ELK-stack image: sebp/elk:761 diff --git a/Diagrams/ELKStack-Azure-Cloud.png b/Images/ELKStack-Azure-Cloud.png similarity index 100% rename from Diagrams/ELKStack-Azure-Cloud.png rename to Images/ELKStack-Azure-Cloud.png diff --git a/Images/docker_ps_output.png b/Images/docker_ps_output.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6964d2cc4c8676bee4ccca9f710b79389b6ebe GIT binary patch literal 51952 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 z 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 QE@EKtboFxqPT({F0K@il&Hw-a literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 32315fe..aedb5c0 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ These files have been tested and used to generate a live ELK deployment on Azure - [metricbeat-playbook.yml](Ansible/beats/metricbeat-playbook.yml) This document contains the following details: +- How to Use This Repository - Description of the Topology - Access Policies - ELK Configuration @@ -19,6 +20,23 @@ This document contains the following details: - Machines Being Monitored - How to Use the Ansible Build +### How to Use This Repository + +All commands assume you're using a Debian flavor of Linux, and are meant as an example of one possible setup. Adjust as needed. + +##### Download your first copy +1. Install git +```sudo apt install git``` +2. Move to the desired directory to copy these files +```cd ~/repositories``` +3. Clone the repo +```git clone https://github.com/elisspace/cybersecurity_bootcamp.git``` + +##### Update +1. Move to the `cybersecurity_bootcamp` directory +```cd ~/repositories/cybersecurity_bootcamp``` +2. Pull the changes down +```git pull``` ### Description of the Topology @@ -44,54 +62,56 @@ The configuration details of each machine may be found below. The machines on the internal network are not exposed to the public Internet. Only the `Jump-Box-Provisioner` and the `RedTeam-ELKServer` machines can accept connections from the Internet. Access to these machines is only allowed from the following IP addresses: -- \*\*.\*\*.\*\*\*.102 +- \*\*.\*\*.\*\*\*.102 -Machines within the network can only be accessed by _____. -- _TODO: Which machine did you allow to access your ELK VM? What was its IP address?_ +Note that the `RedTeam-ELKServer` is only internet-accessible on port 80 for Kibana. Otherwise, machines within the network can only be accessed by `Jump-Box-Provisioner`. A summary of the access policies in place can be found in the table below. -| Name | Publicly Accessible | Allowed IP Addresses | -|----------|---------------------|----------------------| -| Jump Box | Yes/No | 10.0.0.1 10.0.0.2 | -| | | | -| | | | +| Name | Publicly Accessible | Allowed IP Addresses | +|-----------------------|---------------------|----------------------| +| Jump-Box-Provisioner | Yes (port 22) | \*\*.\*\*.\*\*\*.102 | +| RedTeam-ELKServer | Yes (port 80) | \*\*.\*\*.\*\*\*.102 | +| Web-* | No | Internal Subnet Only | +| RedTeam2.LoadBalancer | Yes (port 80) | \*\*.\*\*.\*\*\*.102 | ### Elk Configuration -Ansible was used to automate configuration of the ELK machine. No configuration was performed manually, which is advantageous because... -- _TODO: What is the main advantage of automating configuration with Ansible?_ +Ansible was used to automate configuration of the ELK machine. No configuration was performed manually, which is advantageous because we can quickly bring a drop-in replacement up in case of accessibility issues with the current ELK machine. The playbook implements the following tasks: -- _TODO: In 3-5 bullets, explain the steps of the ELK installation play. E.g., install Docker; download image; etc._ -- ... -- ... +- Increase available system memory +- Install `docker`, `python-3`, `pip`, and finally `docker for python` +- Install ELK-stack docker container +- Enable docker service to restart automatically upon reboot The following screenshot displays the result of running `docker ps` after successfully configuring the ELK instance. -![TODO: Update the path with the name of your screenshot of docker ps output](Images/docker_ps_output.png) +![Docker Output](Images/docker_ps_output.png) ### Target Machines & Beats This ELK server is configured to monitor the following machines: -- _TODO: List the IP addresses of the machines you are monitoring_ +- Web-1 | 10.0.0.6 +- Web-2 | 10.0.0.8 +- Web-3 | 10.0.0.9 We have installed the following Beats on these machines: -- _TODO: Specify which Beats you successfully installed_ +- [MetricBeat](https://www.elastic.co/beats/metricbeat) +- [FileBeat](https://www.elastic.co/beats/filebeat) These Beats allow us to collect the following information from each machine: -- _TODO: In 1-2 sentences, explain what kind of data each beat collects, and provide 1 example of what you expect to see. E.g., `Winlogbeat` collects Windows logs, which we use to track user logon events, etc._ +- MetricBeat collects "system-level CPU usage, memory, file system, disk IO, and network IO statistics, as well as top-like statistics for every process running on your systems"[^1] +- FileBeat simplifies "the collection, parsing, and visualization of common log formats"[^2] ### Using the Playbook -In order to use the playbook, you will need to have an Ansible control node already configured. Assuming you have such a control node provisioned: +In order to use the ELK playbook, you will need to have an Ansible control node already configured. Assuming you have such a control node provisioned: SSH into the control node and follow the steps below: -- Copy the _____ file to _____. -- Update the _____ file to include... -- Run the playbook, and navigate to ____ to check that the installation worked as expected. +- Copy the [ELK install](Ansible/install-elk.yml) file to `/etc/ansible`. +- Update the hosts file to include the IP of your ELK machine as well as the IPs of the machines you plan to monitor (eg. \[elk\] and \[webservers\] in my \[hosts\](Ansible/hosts) file). +- Run the playbook, and navigate to http://\[ELK-server-IP\]/app/kibana to check that the installation worked as expected. -_TODO: Answer the following questions to fill in the blanks:_ -- _Which file is the playbook? Where do you copy it?_ -- _Which file do you update to make Ansible run the playbook on a specific machine? How do I specify which machine to install the ELK server on versus which to install Filebeat on?_ -- _Which URL do you navigate to in order to check that the ELK server is running? +_As a **Bonus**, provide the specific commands the user will need to run to download the playbook, update the files, etc._ -_As a **Bonus**, provide the specific commands the user will need to run to download the playbook, update the files, etc._ \ No newline at end of file +[^1]: https://www.elastic.co/beats/metricbeat +[^2]: https://www.elastic.co/beats/filebeat \ No newline at end of file