I use VLANs for this as others have mentioned. You can create VLANs for the logical grouping of devices (ex. Home, Work, IoT, etc), then you create firewall rules to block specific traffic sourced from the IoT VLAN to the other VLANs or out the WAN interface. This still allows traffic originating from the Home/Work VLANs to talk to the printer but doesn't let devices from that VLAN scan the network.
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil.
-
No spam.
-
Posts are to be related to self-hosting.
-
Don't duplicate the full text of your blog or readme if you're providing a link.
-
Submission headline should match the article title.
-
No trolling.
-
Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.
-
AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
For myself, I use a static IP on all peripheral devices, like printers and scanners, in combination with a whitelist on the router because my devices don't change very often and I can add new ones individually as they are acquired. We never print or scan from phones so it works well, and freely allows home network use while blocking external network access.
Beware any built-in home router solution like "parental block" for isolating devices because on mine at least, it only blocks IPv4 and anything using IPv6 sails right past it.
Also, you probably already do this, but always test, and keep a backup of your router/whitelist/exception settings.
Do your policy enforcement at the port level, connect the printer with a physical cable, that way even if the printer gets compromised and changes it's Mac your rules still apply.
Also setup your network alert system to notify you when a a new driver is available and the printer is behind so you can manually apply security updates.
1 is fine from the port level
2 is great, but more brittle
2.5 only allow incoming connections to the vlan on printer ports, and outgoing mdns
Depending on your threat model, you might need 3, if the printer is malicious, and printer drivers are also malicious, they can proxy information from the printer through a client device to the internet.
I use a vlan for certain isolated devices that only certain personal devices have access to via their IP static addresses set in my firewall. That VLAN has no WAN access either. Sure the devices could technically talk to each other, but that doesn't seem like a big deal since they can't go external and only my phone and laptop and a few other trusted devices can even connect into the VLAN.
You're overthinking this with 2 & 3. All you need is to block all Brother Internet traffic.
Set up a static DHCP IP for the printer in Openwrt and create firewall rules to drop all WAN packets to/from that IP.
If you want to see evidence those packets are being dropped in real time use tcpdump. When watching LAN traffic you will see the printer sending packets to the WAN interface but will never see a response directed back to the printer.
I have a Brother printer (plus cameras & TVs) and an Openwrt router set up that way and have had zero issues.
1 is enough if the hardware manufacturer is currently trustworthy at the time you put the firewall rules in place. Brother is AFAIK trustworthy. I have a Brother printer which is on my main network with no special firewall rules, but my printer is old enough to drink. It never connected to any cloud services and could never update itself to introduce new anti-features.
For both 2 and 3 you probably want a Raspberry Pi or other server to make the printer accessible to devices on your main network. Unless it's a Facebook or Amazon or LG printer or something you should be fine with just 1.
I'd just shove it on the IoT network and then set up a device based rule to block WAN. That feels the easiest for me but I'm an amateur, someone in here knows more for sure.
FWIW, I have a networked Brother laser printer hard-wired to my LAN. To prevent it from calling home or pulling unfriendly firmware "upgrades", I just configured it with a static LAN IP & subnet, but no gateway address. Been running that way for years now. So far so good...
Put it on its own VLAN or guest SSID in OpenWRT, then add a firewall rule that only lets your client subnet reach it on 631 and 9100. Block WAN for that zone completely. AirPrint discovery needs mDNS across zones, so you'll want umdns or avahi as a reflector, and that's the part that usually breaks. I'm building a home box that does this by default for IoT stuff. Would you want it to just work, or would you rather see the rules?
I wouldn't recommend isolating it as it will make it a pain to print.
You don't need their proprietary app. Brother printers support driverless printing so it will work on all major platforms
If the point of connecting it to WiFi is to make it easier to print then why would you isolate it only to make it harder to print?
If you want 100% no sneaky stuff connect it to some PC and set up a cups server on it.
DMZ.
A DMZ is the opposite of what is needed here
No
I do 1.
I have DHCP but everything static gets a static IP. I need my home assistant to be able to reach both the internet and my IoT device, no idea how I'd put it in both VLANs.
In a similar situation, my theory is that I can eventually configure ACLs specifically to accept connections sourced to my IOT static IP assigned devices with an implicit deny all that prevents everything else.
Though, I may be planning this all wrong, since all connections occur after my firewall, I might need to eventually set up ACLs on my smart switch.
It's a printer, it already hellishly refuses to print or to even install correctly anywhere, it should be safe.
Exactly; it’s a printer. You better put it in a metal cage and keep a shotgun close by.
Bother tends to be a lot better than other companies in this regard. I've owned the same printer for years and never had an issue.
Shit that's dangerous, you mean to say Brother printers are functional????
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:
| Fewer Letters | More Letters |
|---|---|
| AP | WiFi Access Point |
| DHCP | Dynamic Host Configuration Protocol, automates assignment of IPs when connecting to a network |
| IoT | Internet of Things for device controllers |
| Unifi | Ubiquiti WiFi hardware brand |
| VPN | Virtual Private Network |
5 acronyms in this thread; the most compressed thread commented on today has 11 acronyms.
[Thread #163 for this comm, first seen 9th Nov 2026, 20:10] [FAQ] [Full list] [Contact] [Source code]
HP WiFi network printer owner here. It sits on my main network, but I've assigned it a fixed network IP (based on its MAC) and cut off internet access in my router. That seemed enough for me. I'm open to comments why that isn't true. ;)
Long term, 2 is best, but 1 is a great immediate fix. Also, you should be able to assign a static IP based on the printers MAC address, which will keep the IP stable.
This is just my story and how I have done/am considering looking at doing it. I to have a OpenWRT firewall, I to have lived in the Apple ecosystem my whole life, but I am slowly climbing out of it.
I have a Samsung laser printer of some sort, before I got into the whole home labbing and privacy thing I just had a raspberry pi of some sort (it rotated a few times because I was attempting the adblocking with pihole off and on). When I decided privacy was the better option and I had my pihole figured out I installed CUPS on a pi zero 2, I so rarely used the thing that it was not a thought for me to look up and install SANE I just used the app and the wifi from the printer. A day came a long when I had to do the wifi suffle to do the scanning when I thought there must be a better way and installed SANE. Fun side note; I have a perimant disability and see a physio, the insurance I have wants some paper work (that so rarely changes) every three months so I just have a script that looks at my calendar so the day of my physio treatments and counts the number of times I have seen them and prints out the documents if it is time to send them! So number 2 is my suggestion for sure if you are just beginning.
I have a vLAN (10.0.69.0/24) that my homelab sits on so my printer is attached to it that way with the pi I am using for CUPS and SANE, my HAOS pi is also on that vLAN and I see HA has something it can do with the printer I have considered looking at that once or twice. Now that you have mentioned this I may just read up on it because I have issues with SANE, not sure if it is configured correctly or my printer just really does not like it but if HA can do the things I may set it up and attach it to my IoT wifi vLAN (10.66.6.0/24) which does not access the outside world but HA and my 2 personal vLANs (10.42.0.0/24 for wifi and 10.4.20.0/24 for my VPN) can do things in it. I got into numbering my vLANs with fun combos when one day I was out and about when I could not connect to my VPN because it used the same IP range or something like that.
I use static IPs for everything within their own vLAN but I do not think it would be worth my time to set up firewall rules just for it when I have other options. If it does not need to phone home for anything other than data harvasting it is either not attached to the internet like my “smartTV” or it goes onto my IoT wifi that HA can do the stuff with.
It basically depends on whether you want to rely on mdns, like printing from your phone.
The standard lock down by making a vlan and subnet and then adding filtering works fine if you can reach the printer reliably by IPP or jetdirect.
Once you need to connect two disparate broadcast domains, things get weird. It was the same story for Chromecast devices for me, their functionality and convenience are based on a relatively flat network and a single broadcast domain.
CUPS and USB. Dead simple, no messing with network stuff or trying to get proprietary apps working with vlans or firewalls.
I have option #1 set up for my hp printer using its mac address on opnsense. it's worked for several years to prevent phoning home, updates breaking 3rd party ink, etc. I also have its various smart features turned off. We only use it for printing and scanning on the local network anyway.
i'd do a vlan but I only have a dumb switch. that may be a future network upgrade as part of maybe upgrading faster than 1gig ethernet.
If it's a networked printer it needs to be able to broadcast to the LAN if you want IPP to work – which you probably do, since it's well supported by all OS and lets you autodiscover the printer and print directly from most of your devices.
This means you can't isolate it fully from the LAN, so solution 2 is out.
Solution 1 is good if you can trust the thing not to change or disguise its MAC address. I've heard of devices that have a 3rd dynamic MAC in addition to the wifi and ethernet MACs, that they use to bypass such restrictions. 🤪
In order to do (1) properly you should create a firewall zone specifically for the printer, and allow that zone access to LAN but deny access to WAN. Then associate that zone with either a wifi access point created specifically for the printer, or with a specific switch plug if connected via Ethernet. This way the printer can't bypass the restriction because it comes packaged with the only way it has of getting any connectivity.
However OpenWRT firewall zones also have issues with cross-zone broadcast, but can be bypassed I think by installing and using Avahi on the router. Don't quote me on that.
Solution 3 seems best if you want to fully isolate it as well as retain IPP capability. That's what I did with my printer, I connected it with USB to the server and I run CUPS + Avahi in a docker container that uses an ipvlan network to broadcast.
Your comment about #2 is not true. VLANs can be fully isolated from other subnets on the LAN - sure. But they can also NOT be isolated. I have one fully isolated VLAN, and the rest are not isolated.
With a savvy user, you can also tehnically isolate VLANs form only specific other VLANs. I've never needed to do this, but know it's possible.
Edit: for reference, I looked up details and found a helpful link and example:
config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT' <-- This line allows intra-zone (inter-subnet) routing
list network 'lan'
list network 'your_new_vlan' <-- Adding your new VLAN here stops it from being isolated
Damn, I didn't know devices do these dynamic MACs, but yeah it's not a trusted field to begin with.
By IPP autodiscovery, do you mean mDNS? If so, does the router needs to install avahi as well for single-network discovery to work? Or just the client?
Avahi on the router for multi VLAN discovery seem to be a nice idea, I'll look into it and maybe try to hook it up to solution 2. I've thought users could just manually input the IP addresses (and the non-tech users will just simply be onboarded by me anyways), but having it advertised by default may just be less of a hassle for them.
IPP is a universal printer protocol aka "print anywhere". Some printers support it natively, some need some help from a PC. If that PC runs Linux the most likely method is to run CUPS and connect it to the printer over USB.
By IPP autodiscovery, do you mean mDNS? If so, does the router needs to install avahi as well for single-network discovery to work? Or just the client?
Yes the autodiscovery is done with mDNS, which on Linux is done with Avahi.
Typically Avahi is needed if you consume services over mDNS or provide them.
So the Linux clients need Avahi. But the router only needs Avahi if the printer is connected to it, or to propagate broadcasts across zones.
I've thought users could just manually input the IP addresses
You can, but it's really nice to have the printer available automagically (on any OS).
BTW one extra potential benefit of solution 3 might be that the "printer" would always appear to be present on the network and accept print jobs, even if the actual printer is off, because the Pi running the print server would actually be on. Otherwise if the printer itself is providing the connectivity and announcement it will not appear in the list when it's off. Whether you consider this a plus or not depends on how you handle your printers, I turn mine off when not in use, but some people let it go into powersaving mode so it's always ready to print.
- will block the printer but the app could still phone home
- may work but client devices should reach the printer in the vlan. also see point 1. best for other kind of iot devices
- best approach security wise but may take some work to it get running smoothly
What I would do:
- (easiest) block the printer and look what the client does. block any suspicious client behavior. you can use pihole to easily monitor/ block, later you can add firewall rules on your router
- (bit harder) your option number 3 if: you have a raspberry pi, your printer works well with sane and cups, you can set up clients to your desired workflow (having many non tech family members wanting to print will quickly become a nightmare)
Your 1. seems good enough as a starter, yeah. I'll probably tell my users to ditch the app altogether otoh, so I'm looking forward to the Pi as a long-term solution
Though, what kind of non-tech nightmares are you referring to? I'd think that if being done properly and with autodiscovery enabled, it would be as seamless as "connect to printer/scanner X on the network" which is the Pi itself. But I probably haven't understood enough
I did #2 and it works perfectly. I have an IoT VLAN and my Brother printer/scanner is on it. I pivoted to the Ubiquiti/Unifi network infrastructure several years ago due to mostly seemless integration with the routers/switches/APs. But have used OpenWRT in the past (but didn't set up VLANs then). Not sure the steps and if it requires manual firewall rules for the VLAN in OpenWRT.
In case there identical/similar options to Unifi, however, I'll just mention it's pretty simple. Create the VLAN (new subnet vs the default network, e.g. 10.0.0.0/24 vs 10.1.0.0/24), deselect the "allow internet access" option, and make sure to select "network isolation" option (which blocks it from speaking to other VLANs/subnets). That's it. (For conveniences, I also created another Wifi network call "XYZ_IOT" and then connected the printer to it. The network is fixed to that new IoT VLAN).
Technically, those options are effectively convenient shortcuts for firewall rules that will get removed or created, accordingly, for that specific VLAN.
Takes longer when you're uncomfortable or struggling through it, but the complete setup time took maybe 15-20mins. If OpenWRT doesn't have those convenience shortcuts, might take a bit longer to search for example firewall rule configs online and then make them.