Getting our project off the ground meant setting up a
solid testbed with pfSense and Kali Linux working in
tandem. We turned to VMware Workstation to bring
this to life, crafting a virtual network where pfSense
could stand guard and Kali could play the
troublemaker. Below, we break it down into two
parts: how we got pfSense up and running as our
firewall, and how we prepped Kali Linux to throw
attacks its way.
pfSense Configuration: Our adventure started
with pfSense taking center stage on a VMware
Workstation VM. We wanted it to feel like a real
network gatekeeper, so we gave it 2 CPU cores and
4GB of RAM to handle whatever we’d throw at it. It
got two network interfaces: WAN, hooked up via a
NAT adapter bridged to our host’s network for an
internet lifeline, and LAN, ruling over a private
192.168.1.0/24 subnet where our tests would unfold.
Figure 1 shows the flowchart for the proposed system.
First up, we snagged the pfSense Community
Edition ISO from their official sit. We picked this
version because it’s steady as a rock perfect for our
student-sized project. In VMware, we fired up the
“New Virtual Machine Wizard,” went with the
“Typical” setup, and plugged in the ISO. We
christened the VM “pfSense Lab” it just felt right for
what we were cooking up. For the guts, we handed it
30GB of disk space on a single SCSI virtual disk,
figuring that’d cover the OS, logs, and extras like
Suricata. Before hitting go, we tweaked the settings:
bumped the memory to 1GB so it wouldn’t sweat
under pressure, gave it 2 CPU cores for some oomph,
and sorted the network adapters. WAN (Network
Adapter 1) got NAT mode with bridging on, tying it
to the host’s network, while LAN (Network Adapter
2) went hostonly to keep our test zone private.
Figure 2: Kali Linux set.
Figure 2 shows the Kali Linux set. Powering it on,
the pfSense installer greeted us from the ISO. It was a
breeze accept the license, pick “Install pfSense,” and
let it roll. When it asked for a disk, we pointed to our
20GB virtual drive and chose the Guided ZFS
Installation. ZFS’s data integrity perks sounded cool,
so we went for it. About 10 minutes later, after a
reboot and the ISO popping out, we landed at the
pfSense console a simple text screen with a menu. We
hit option 1 to assign interfaces. It spotted our virtual
adapters: em0 became WAN, and em1 took LAN.
WAN grabbed an IP via DHCP from the host network
easy internet access while we set LAN to a static
192.168.1.1 with a 255.255.255.0 mask, making it the
boss of our little domain. We didn’t want to mess with
IP assignments manually, so we turned on the DHCP
server for LAN. Back in the console, we picked option
2, chose em1, locked in the static IP, and said “yes” to
DHCP. We set a range from 192.168.1.100 to
192.168.1.200 room for our Kali VM and maybe more
if we got creative. To wrap it up, we hopped to the
Kali VM, opened a browser, and punched in
https://192.168.1.1. The pfSense web GUI popped up,
asking for “admin” and “pfsense.” No way we’d leave
that as-is we jumped into the setup wizard right off the
bat. We named it “pfSenseLab,” set the domain to
“local,” kept DHCP on WAN, and confirmed LAN at
192.168.1.1/24. The admin password got a beefy
upgrade, we unchecked “Block RFC1918 Private
Networks” on WAN for testing freedom, and hit apply
to reload the rules. To make sure it all clicked, we
pinged 8.8.8.8 from pfSense’s diagnostics
(Diagnostics ¿ Ping) and got a reply—WAN was live.
The GUI at https://192.168.1.1 became our control
hub for the rest of the ride.
Kali Linux Configuration: Now for the
troublemaker: Kali Linux. We set it up on its own
VMware Workstation VM to keep things separate and
manageable. It didn’t need much just 2 CPU cores and
2GB of RAM, since it’d mostly be slinging packets,
not juggling heavy loads. The key was its Once
powered on, the Kali installer walked us through a
familiar Linux setup. We picked the graphical install,
set the hostname to “KaliAttack,” and left the domain
blank simple stuff. For the disk, we went with
“Guided - use entire disk” and LVM, letting it carve
out the 20GB however it liked. We set a root
password, added a standard user (“kaliuser” with
something tough to crack), and let it finish up. After a
reboot, we logged into the shiny Kali desktop and got
to work on the network. Since pfSense’s LAN DHCP
was already humming, we didn’t fuss with static IPs
Kali pulled 192.168.1.100 right out of the gate. To
double-check, we opened a terminal and ran ping
192.168.1.1. The replies came back fast Kali and
pfSense were talking.