my home server needs to be reconstructed and i’m seeking ideas on how to future proof it. here’s some ascii art in a screenshot to help describe how it’s currently setup:
description (left to right):
- laptops, smartphones, tables, etc connect to an access point configured on a windows 10 virtual machine (vm). the windows10 vm uses pci passthrough on the wireless adapter and this is done to get gigabit wifi speeds since intel’s drivers won’t allow linux to do this in ap mode; but will allow it just fine if you’re using windows.
- requests from the wifi clients are passed via dns & ip masquerade to another virtual machine based on pfsense
- pfsense serves as the router, firewall, vpn, ad blocking & web hosting and it’s also configured to use pci passthrough on the primary network interface to gap internet traffic from the server
- the center of the drawing shows how i perform data backups using a 3 gig wired connection with a hardware switch and i setup the host ubuntu server to manage dhcp on the secondary network interface & the devices that are connect to the switch. the data is stored using rsync and harddrives are setup to use an extremely large lvm made of several different types of hard drives.
i’ve rebuilt this server multiple times each time i encountered a “gotcha” or a surprise that i had not anticipated and it made some needful component stop working; so i’m seeking advice from Lemmy on how to redesign this to mitigate future surprises.
some of the surprises i’ve encountered so far are:
- the pfsense logs overfilled the root volume of the bsd based vm because logrotate was configured for linux. the image is hardcoded with a single volume so i will need to find a way to borrow some space from the backup volume using nfs and configure the logs to write there instead of locally.
- i have no key for the windows10 vm; so i’m forced to clone it’s qcow image and manually configure the hotspot each time the 30 day free trial from microsoft expires. I intend to improve upon this creating an ansible job to rotate this virtual machine every 30 days automatically and include powershell based tasks to configure the hotspot in windows automatically
- intel limits the speed for linux native internet connection sharing to 100 megabits (already mentioned & fixed above)
- the local users home volume overfills when trying to take my google backups (already fixed)
- my cats & dogs LOVE the taste of cat6 capables and cat6 is required for 3 gigabit speeds (also fixed)
constraints:
- don’t spend anymore $$$
- gigabit wifi speed is A MUST
- 3 gigabit backups speeds are a must too
not a concept; an actual, physical server that i’ve been using for almost five years now.
i have automatic updating enabled to incorporate cve fixes/updates asap on all of the instances and the host server.
now that you’ve made me aware, i intend to create automated jobs to destroy & create both vm’s from an immutable golden image that are also pre-staged to capture all updates before they replace their older live and possibly compromised predecessors.
the host server is also gaped from internet access via pci passthrough dedicated to the pfsense vm; so the only entry vector, afaik, is through the pfsense firewall.
i was also wondering if an immutable distro for the host server would help with security as well and now i think i’ll do that too.
i’m limited to sub-100 megabit wifi speeds without the windows vm since intel will not allow the linux driver to have gigabit speeds in ap mode. i feel like this is the weakest part of the entire design and i was hoping someone had a better idea that didn’t require AP purchase. all of the AP’s i’ve purchased in the past eventually lost support from their manufacturers and they became compromise-able anyways so it’s less future proof imo; whereas i plan on keeping this server running for atleast another decade and support is virtually guaranteed to be never ending.
also: i haven’t yet encountered an AP that is capable of providing all of the features that i currently use. ie ad blocking; personal vpn; web hosting; and cloud-like internet accessible storage via ssh tunnel (in addition to others). purchasing a dedicated AP would effectively deny myself these capabilties and i would have pay $$$ for the privilege.
it feels silly to to me to purchase hardware to duplicate the same capability that i already have and that cloud like internet accessible storage is reason why offline backups don’t work for me, but i can see the wisdom of having gapped backup duplicates nonetheless; so i’ll figure out a way to incorporate it somehow.
these 3 very valid points are exactly why i asked this question and thanks for giving me this awareness.
Pfsense does both of these. pfblocker NG in particular is a very powerful network adblocker with lots of lists. Pfsense can also run VPNs, it supports openvpn and wireguard in both client and server mode and you can set up multiple so one client, one server.
If you just need personal services it would be best to run something local, setup a wireguard tunnel on pfsense that gives access to your network and VPN in to access things remotely. If you need to share with others I suppose this can become a problem.
Yes, I use a pfsense based virtual machine as my firewall and I have availed myself to some of these capabilities like I’ve mentioned earlier.
I’ve grown accustomed to have this broad range of capabilities and the idea of getting a home router without this functionality feels foolish because I would literally be paying for the privilege of denying myself these utilities.
Regrading AP. Why can’t you just use the wifi functionlity and let your server do the rest? APs are really just glorified WiFi cards with a bridge.
Im stuck at sub-100-megabit Wi-Fi speeds if I use Intel Linux driver; but their Windows driver doesn’t have any such restriction, so I give the Windows virtual machine full control of the wireless adapter via PCI passthrough to workaround this annoying and pointless restriction.
Connect the AP to a Gigabit ethernet port. No way that should be limited to 100MBit.
My point is use ethernet not a WiFi connection. Also use an AP with a Gigabit port.