H 110: Private Cloud with Proxmox (15 pts + 30 extra)

What You Need for this Project

Purpose

To set up a private cloud using Proxmox, a free alternative to VMware ESXi.

I am following this tutorial: Lab Setup for Proxmox VE 8.1.

Download the ISO

If you have an Intel-compatible processor, go to this page and download the latest version of the Proxmox VE ISO Installer:

Downloads

If you are using a Mac M1 or later, on an ARM processor, download the latest version of the arm64 ISO from this page:

Index of /proxmox/isos/

When I did it, I used the proxmox-ve_8.2-4_arm64.iso file.

Make a Bootable USB

The process is explained here.

Installing Proxmox

Boot your target machine from the USB.

You will need to connect your physical machine to the Internet using an Ethernet cable, not Wi-Fi, during installation.

It is normal for the Proxmox installation to appear to hang at 3% "Create LVs" for 5-10 minutes or even over an hour. Give it more time, it's not a bug.

When the installation is done, the machine reboots. A console appears, showing a URL to connect to, as shown below.

Wireless Drivers for Dell Inspirion 15 5000

This is specific to that hardware.

Adding non-free to sources

In an SSH window, as root:
nano /etc/apt/sources.list
Add non-free AND non-free-firmware to the respective URLs you wish to use, i.e.:
deb http://ftp.us.debian.org/debian bookworm main contrib non-free non-free-firmware

deb http://ftp.us.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
Save the file. Execute
apt update

Identifying the wireless card

lspci
It was
Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 20)
For Intel wireless adapters, install firmware-iwlwifi:
apt install firmware-iwlwifi
ip link 
shows wi-fi NIC name wlp0s20f3 DOWN
nano /etc/network/interfaces
Add this section and remove the section configuring the hard-wired interface.
auto wlp0s20f3

iface wlp0s20f3 inet static
        address 192.168.0.5/24
        gateway 192.168.0.1
        dns-nameserver 192.168.0.1
reboot
ip link 
Now wi-fi NIC wlp0s20f3 is UP

Installing wpa_supplicant

This reference was helpful:

https://forum.proxmox.com/threads/howto-proxmox-ve-8-1-2-wifi-w-snat.142831/

Execute these commands, using the correct name and password for your Wi-Fi network in the last one:
apt install wpasupplicant
systemctl disable wpa_supplicant
  
wpa_passphrase SSIDNAME PASSWORD >> /etc/wpa_supplicant/wpa_supplicant.conf

Find wireless device name

dmesg | grep -i wlp
On my system, it was wlp0s20f3

touch /etc/systemd/system/wpa_supplicant.service
nano /etc/systemd/system/wpa_supplicant.service
Insert these contents, adjusting the device name as needed at the end of the longest line:
[Unit]
Description=WPA supplicant
Before=network.target
After=dbus.service
Wants=network.target
IgnoreOnIsolate=true
 
[Service]
Type=dbus
BusName=fi.w1.wpa_supplicant1
ExecStart=/sbin/wpa_supplicant -u -s -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlp0s20f3  
Restart=always
 
[Install]
WantedBy=multi-user.target
Alias=dbus-fi.w1.wpa_supplicant1.service
Execute these commands: systemctl restart wpa_supplicant && systemctl restart networking
systemctl enable wpa_supplicant

nano /etc/network/interfaces

Creating a Private Network for the VMs

Log into proxmox web interface: https://:8006

Create SDN config (Datacenter --> SDN):

  • Zones: Add, Simple, ID = Zone1
  • Vnet: Create, Name = vnet1 , Zone = Zone1 (must match Zone ID)
  • In the VNets section, click vnet1.
  • In the Subnets section, click Create, Subnet = 192.168.3.0/24, Gateway = 192.168.3.1, SNAT (check)
Apply config: SDN --> Apply

Edit /etc/network/intefaces and add these lines:

iface vnet1 inet static
       address 192.168.3.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up iptables -t nat -A POSTROUTING -s '192.168.3.0/24' -o wlp0s20f3 -j MASQUERADE
        post-up iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone zone1
        post-down iptables -t nat -D POSTROUTING -s '192.168.3.0/24' -o wlp0s20f3 -j MASQUERADE
        post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone zone1
Reboot. I had to force power off with the power button and restart.

I then had to boot to "Advanced Options", remove the the "quiet" parameter, and press Ctrl+x.

Networking the VMs

In the Proxmox console, on the left side, expand Datacenter and Proxmox. Click the VM you are configuring.

In the next column, click Hardware.

Double-click "Network Device (net0)".
Set Bridge to vnet1 and click OK.

Configure each VM with these IP settings, putting the VM's ID number in as the last octet in the IP address.

  • IP: 192.168.3.108
  • Subnet mask: 255.255.255.0
  • Gateway: 192.168.3.1
  • DNS: 192.168.0.1

First Login

In a Web browser, open that URL. Your browser will warn you that the HTTPS certificate is self-signed. Bypass that warning.

Log in, as shown below.

A box says you don't have a valid subscription. That's normal. Close it.

You see the main Proxmox console, as shown below.

Creating a Linux Guest

Download a Linux Installer ISO

On your host system, download a Linux installer ISO

Installing Debian via the Internet

In the "Small CDs or USB sticks" section, click your processor type, which is either amd64 or arm64.

On my ARM system, I used the debian-12.10.0-arm64-netinst.iso file.

Uploading the ISO into Proxmox

In the Proxmox console, on the left side, expand the second item and click the local line.

In the next column, click "ISO Images"

Click the Upload button and upload your Debian installation ISO image.

The filename appears in the right pane, as shown below.

Create the Guest Virtual Machine

In the Proxmox console, at the top, click the "Create VM" button.

In the "Create Virtual Machine" box, on the General tab, give your machine a name, such as debian1

On the OS tab, select the installer ISO, as shown below.

You can adjust the other settings, but the defaults are fine.

On the Confirm tab, at the lower left, check the "Start after created" box, as shown below.

At the lower right, click the Finish button.

Apple Silicon

If you are running on Apple Silicon, you'll see the error shown at the bottom right of the screen below:

On the left side, click the guest VM name, which should be debian1.

In the next column, click Options.

On the right side, double-click "KVM Hardware Virtualization" and disable it, as shown below.

In the second column, click Hardware. On the right side, double-click Processors and set the Type to cortex-a57.

Using the Console

In the Proxmox console, on the left side, click the guest VM name, which should be debian1.

At the top right, in the second row, find the Console button, outlined in yellow in the image below.

Click the down-arrow next to that button. Click noVNC.

In the next column, click Console.

You should see the console, as shown below.

Follow the on-screen prompts to install the OS. Usually the default options are fine.

Preparing sudo

When your Debian machine starts up, log in with the normal username and password you chose during installation.

Then execute these commands to make "sudo" work, assuming your regular account is named "student".

su - 
Enter the root password you chose during installation.

Then execute these commands:

apt install sudo -y
usermod -aG sudo student
reboot

Flag H 110.1: Disk Type (15 pts)

In your Linux virtual machine, in a Terminal, execute this command:
sudo apt install hwinfo -y
Enter your password when you are prompted to.
sudo hwinfo --short --block
The flag is covered by a green rectangle in the image below.

Android Guest

Download the Android ISO

Get the Android-x86 ISO from this page:

Android-x86

When I did this in Aug, 2025, the file was android-x86_64-9.0-r2.iso.

In the Proxmox console, on the left side, expand the second item and click the local line.

In the next column, click "ISO Images"

Upload the ISO, or download it from the source.

Creating the Android VM

Click the "Create VM" button.

Use these settings:

Open the Console to see your Android devices's screen.

Make these choices to install Android:

You now see a graphical Android desktop.

Skip connecting to Wi-Fi.

Select a Home app of Quickstep always.

Swipe the circle at the bottom center up to open Settings.

In Settings, make these changes:

Shutting Down the Android VM

In the left center, there's a tiny arrow. Click that to see a menu including a power button.

Flag H 110.3: uname (15 pts)

In your Android device, open Google Play. Sign in with a Google account.

Install the Qute app.

In Qute, execute this command:

uname -a
The flag is covered by a green rectangle in the image below.

Posted 8-4-25
Wireless and Android stuff added 8-29-25