Homework 4 Due Date: 2025-08-06 23:59:59 Submission: via GitLab repo
Introduction
Let’s add some useful services to our lab environment! For this assignment, we will be adding a VPN server to our Ubuntu system. Right behind the firewall is a typical location for a VPN server. This will allow us to access our lab environment from anywhere in the world (kinda sorta).
Except, there’s a twist! We will be moving our VMs from local machines to a Proxmox server. Each of you will receive (or have received) an assigned server living in FAB 140 (the Systems and Security Lab, next to the fishbowl). We will be using Terraform to deploy VMs to this server, and we will be using Ansible to configure the VMs. This will allow us to easily deploy and manage our lab environment.
Tasks
These are high-level requirements, not guidance on the steps to use.
- Create templates for both FreeBSD and Ubuntu in Proxmox. You can do this from the command line or the Proxmox web interface. Document the process in your
hw4.md
file. - Write a terraform script that will deploy a FreeBSD VM and two Ubuntu VMs to your Proxmox server. You should be able to run this script to create the VMs. Document the process in your
hw4.md
file. - Write Ansible playbooks that will configure the FreeBSD VM as a bastion host, and the two Ubuntu VMs, splitting services between them. You should be able to run these playbooks to configure the VMs. These should include the below services as well. Document the process in your
hw4.md
file. - Install a containerized Wireguard server on one of the Ubuntu systems. Document the installation and configuration in your
hw4.md
file. - Add to your docker-compose.yml file that will start your VPN.
- Verify that you can connect to this VPN endpoint. Document the configuration in your
hw4.md
file. -
Install a containerized Wazuh to provide security monitoring. You want the “all-in-one” version, but you’ll also want to install an agent on the FreeBSD system to monitor logs. Document the installation and configuration in your
hw4.md
file.Keep in mind, this might require additional firewall rules to be added to your bastion host. Document these in your
hw4.md
file. -
Static application security testing (SAST) is a method of testing an application for security vulnerabilities by examining the source code. Some of the most popular tools for this are SonarQube, Snyk, and SemGrep. Install one of the SAST tools on your Ubuntu system and run it against a project of your choosing. Document your process and progress in
your hw4.md
file. - Dynamic application security testing (DAST) is a method of testing an application for security vulnerabilities by examining the application in its running state. GVM is a popular open source tool for this. Install GVM on your Ubuntu system and run it against all of your systems. Document your progress in your
hw4.md
file.
Submission
Once you have completed the above, you should have a markdown file in your repo called hw4/hw4.md
that contains all the above requested information. Commit and push this to your repo. Also commit and include the requested screenshots. Once you have done this, you can consider the assignment submitted.