Homelab Project
Project Pages
Homelab Project: Active Directory Setup Homelab Project: Integrating pfSense, Suricata and Splunk
Project Goals:
This project will consist of creating a virtualized homelab in Proxmox.I have already created several homelabs with Proxmox, but have not documented the process before. My primary goal is to gain hands-on experience with networking, firewalls, and Active Directory. After completing this initial setup I will be looking to experiment with other technologies, namely Snort and Splunk, but I shall walk before I run.
To start, this lab will be comprised of:
- Proxmox v 8.0.3
- pfSense v2.7.0
- Windows Server 2019
- Windows 10 Enterprise
Here is a basic diagram of what I will be setting up:
Hardware:
This homelab will be constructed using what I have available:
Dell Precision T3610:
This computer was dropped off at a previous job to be recycled. After disposing of the drives, I put in some new HDDs, stuffed it full of RAM and took it home for homelab purposes.
Specs:
- Xeon E5-1620 v2
- 32GB RAM
- 1TB HDD x 2
- One on-board NIC
- Intel 4-port 10Gb NIC
Linksys MR3700 Series Smart Wi-Fi Router
Again, nothing crazy here. This is the router that was in place when I moved in.
Hypervisor (Proxmox):
For every homelab project I’ve created so far, I’ve used Proxmox. It is pretty straight forward to get up and running, very flexible, and just like the rest of my lab (minus a monitor, keyboard, and cables) is free.
Proxmox System Info: There’s plenty of resources online regarding the installation of Proxmox. The relevant specifications of my environment are as follows:
- Proxmox VE v 8.0.3
- Network:
Bridge | Interface | Description |
---|---|---|
vmbr0 | enp0s25 | Proxmox interface |
vmbr1 | enp3s0f3 | pfSense WAN interface |
vmbr2 | N/A | pfSense LAN interface |
vmbr3 | N/A | pfSense OPT1 interface |
vmbr0
and vmbr1
are the only two linux bridges that are assigned a physical port for the time being.
VM Setup:
This section will serve as reference to VM creation, OS installations, and some initial configuration.
Proxmox VM Creation:
This section contains the specs used for each VM, as well as any helpful resources which aided me or influenced my decisions.
pfSense VM:
Resource: https://docs.netgate.com/pfsense/en/latest/recipes/virtualize-proxmox-ve.html
Defaults used, unless stated otherwise.
- General:
- VM ID: 100
- Name: pfSense
- OS:
- ISO image: pfSense-CE-2.7.0
- Guest OS:
- Type: Linux
- Version: 6.x - 2.6 Kernel
- System:
- Graphic card: SPICE
- Machine: Default (i440fx)
- BIOS: Default (SeaBIOS)
- SCSI Controller: VirtIO SCSI
- Qemu Agent: disabled
- Add TPM: disabled
- Disks:
- Bus/Device: VirtIO Block
- Storage: local-lvm
- Disk size: 32 GB
- Cache: Default (No cache)
- Discard: disabled
- IO thread: enabled
- CPU:
- Sockets: 1
- Cores: 1
- Type: host
- Memory:
- Memory: 2048 MB
- Network:
- Bridge: vmbr1
- Model: VirtIO (paravirtualized)
- Confirm:
- Start after created: disabled
Before Starting the VM
After creating the VM we will need to add several network adapters.
- Click the newly created VM
- Click Hardware
- Add > Network Device
- vmbr2 (ManagementNetwork)
- vmbr3 (VictimNetwork)
Windows Server 2019 VM
Resource used: https://pve.proxmox.com/wiki/Windows_2019_guest_best_practices
Defaults used, unless stated otherwise.
- General:
- VM ID: 101
- Name: DOMCON
- OS:
- ISO image: Windows Server 2019
- Guest OS:
- Type: Microsoft Windows
- Version: 10/2016/2019
- System:
- Graphic card: Default
- Machine: Default (i440fx)
- BIOS: Default (SeaBIOS)
- SCSI Controller: VirtIO SCSI
- Qemu Agent: enabled
- Add TPM: disabled
- Disks:
- Bus/Device: SCSI
- Storage: local-lvm
- Disk size: 64 GB
- Cache: Write back
- Discard: enabled
- IO thread: enabled
- CPU:
- Sockets: 1
- Cores: 1
- Type: kvm64
- Memory:
- Memory: 4096 MB
- Network:
- Bridge: vmbr2
- Model: VirtIO (paravirtualized)
- Confirm:
- Start after created: disabled
Before starting the VM
Before we start the VM and install Windows Server, we will need to add a second disk drive in order to install VirtIO drivers before installing Windows. These drivers are necessary for better RAM utilization, network connectivity via the virtual NIC, and most crucially, to interact with the virtual storage device.
- Click newly created VM
- Click Hardware tab
- Add > CD/DVD Drive
- ISO image: virtio-win.iso
Windows 10 Client VMs
Resource: https://pve.proxmox.com/wiki/Windows_10_guest_best_practices
Defaults used, unless stated otherwise.
- General:
- VM ID: 201
- Name: WinUser1
- OS:
- ISO image: Windows 10 Enterprise
- Guest OS:
- Type: Microsoft Windows
- Version: 10/2016/2019
- System:
- Graphic card: Default
- Machine: Default (i440fx)
- BIOS: Default (SeaBIOS)
- SCSI Controller: VirtIO SCSI
- Qemu Agent: enabled
- Add TPM: disabled
- Disks:
- Bus/Device: SCSI
- Storage: Clients
- Disk size: 64 GB
- Cache: Write back
- Discard: enabled
- IO thread: enabled
- CPU:
- Sockets: 1
- Cores: 1
- Type: kvm64
- Memory:
- Memory: 2048 MB
- Network:
- Bridge: vmbr3
- Model: VirtIO (paravirtualized)
- Confirm:
- Start after created: disabled
Before starting the VM
Before we start the VM and install Windows 10, we will need to add a second disk drive for virtIO drivers.
- Click newly created VM
- Click Hardware tab
- Add > CD/DVD Drive
- ISO image: virtio-win.iso
Installing pfSense
- Start the VM
- Welcome Screen:
- Install
- Partitioning:
- Auto (ZFS)
- ZFS Configuration:
- Leave defaults selected
- Install
- stripe
- Complete:
- Reboot
pfSense Initial Setup
Do VLANs need to be set up first?
n
Enter the WAN interface
vtnet0
Enter the LAN interface
vtnet1
Enter the Optional 1 interface
vtnet2
- Type 2, to set interface(s) IP address
- 1 - WAN
Configure IPv4 address WAN interface via DHCP?
- n
Enter the new WAN IPv4 address
192.168.1.3
Enter the WAN IPv4 subnet bit count
- 24
For a WAN, enter the new WAN IPv4 upstream gateway address
- 192.168.1.1
- Set as default gateway
- Do not configure IPv6 address
- Do not enable DHCP server on WAN
- Revert to HTTP as the webConfigurator protocol
- 2 - LAN
Configure IPv4 address WAN interface via DHCP?
- n
Enter the new LAN IPv4 address
10.0.0.1
Enter the new LAN IPv4 subnet bit count
- 26
- Press enter for no upstream gateway address
- Do not configure IPv6 address
- Enabled DHCP server
- DHCP range:
- 10.0.0.10 - 10.0.0.62
- 3 - OPT
Configure IPv4 address WAN interface via DHCP?
- n
Enter the new LAN IPv4 address
10.0.0.65
Enter the new LAN IPv4 subnet bit count
- 26
- Press enter for no upstream gateway address
- Do not configure IPv6 address
- Enabled DHCP server
- DHCP range:
- 10.0.0.74 - 10.0.0.126
- 1 - WAN
Installing Windows Server
- Start VM and let the Windows installer load
- Select Windows Server 2019 Standard Evaluation (Desktop Experience)
- Accept license terms
- Custom: Install Windows only
- Load drivers:
- Browse
- CD Drive: virtio-win-0.1.240 > vioscsi > 2k19 > amd64
- CD Drive: virtio-win-0.1.240 > Balloon > 2k19 > amd64
- CD Drive: virtio-win-0.1.240 > NetKVM > 2k19 > amd64
- Browse
- Select Drive 0 Unallocated Space > Next
After installation create a password for Administrator
and sign in.
Installing Windows 10
- Start VM and let the Windows installer load
- Accept license terms
- Custom: Install Windows only
- Load drivers:
- Browse
- CD Drive: virtio-win-0.1.240 > vioscsi > w10 > amd64
- CD Drive: virtio-win-0.1.240 > Balloon >w10 > amd64
- CD Drive: virtio-win-0.1.240 > NetKVM > w10 > amd64
- Browse
- Select Drive 0 Unallocated Space > Next
That’s it for now, I’ll cover the Windows 10 setup and domain joining in this post.
pfSense Setup via webConfigurator
Now that the VMs have been created, and their operating systems are installed, access pfSense webConfigurator via browser from the Windows Server VM, and run through the setup wizard.
To do this, open a browser and navigate to “http://< pfSense LAN IP >”. In my case the LAN IP is 10.0.0.1.
General Information
- Hostname: pfSense
- Domain: home.arpa
- Primary DNS Server: 8.8.8.8
- Secondary DNS Server: 8.8.4.4
- Allow DNS to be overridden: disable
Set time zone.
Configure WAN Interface
- Block RFC1918 Private Networks
- Block bogon networks
When setting up pfSense, the LAN interface will automatically generate firewall rules for accessing the internet and the rest of the network via IPv4 and IPv6. I will need to create the same rule for the OPT1 interface. For the purposes of this lab, I will be removing the IPv6 rule.
Navigate to Firewall > Rules > OPT1
- Create:
- Action: Pass
- Interface: OPT1
- Address Family: IPv4
- Protocol: Any
- Source: OPT1 net
- Destination: Any
Now I will delete the IPv6 allow any rule for LAN.
- Select LAN
- Check box on IPv6 allow any rule
- Click “Delete” button
Conclusion
Now I have the VMs created and a basic functional configuration for pfSense. Next, I will setup Active Directory!