Hi all, I’ve gotten a Brother machine (DCP series) that can do wifi printing/scanning over their proprietary app. However, I’d like to lock it down from my network, because having it on the same LAN as my other devices and the ability to phone out to the internet seem like room for mischievious activities.

For context, I have OpenWRT on my router, and my clients can access the Brother using their iPrint&Scan app and AirPrint on wifi, as well as the traditional USB port. But I’m not good in networking. In my research, I drafted out the following solutions:

  1. Create a firewall rule to block the printer itself from making outbound requests. Seems simple, but I’m not sure if this can persist after IP changes or not.
  2. Create a VLAN for “IoT devices” that cannot send outbound requests to my normal VLAN nor the internet. Inspiration from this video, I’d need to manage a new SSID but it may come in handy for more IoT devices later.
  3. Hook the Brother up to a Raspberry Pi via USB, and install CUPS + SANE on the Pi. Assuming the Pi cannot “phone home” on behalf of the printer, this makes it a local-only “print+scan service” on my normal network and doesn’t require an extra VLAN.

I’d like to ask: which solution above is best for “neutering” the Brother? Or are there any alternatives/details I might’ve missed? I’m not sure if blocking outbound requests this way is enough of a security hardening for an untrusted device, and if there are any usability issues I’ve overlooked so far.

Thanks for any advice, and please share any printer/scanner setup you have in your networks as well. So hopefully I can get more inspiration!

  • Theoriginalthon@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    Static ipv4, don’t set a default gateway, or set the wrong gateway if it doesn’t accept blank fields… Quick and easy

    • njordomir@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      3 days ago

      Too true. I’ve spent more late nights arguing with CUPS than everyone I’ve dated in my whole life.

      • robojeb@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        At this point when I start mumbling expletives at the computer my wife just asks “Printer?”

        • njordomir@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 days ago

          Does she also ask you anytime she wants something printed? Mine does!

          I saw a DIY open-hardware printer somewhere recently that uses a long butcher paper style paper roll and ink tanks. I’m intrigued. I don’t really use all the smart printer functions anyway.

  • fonix232@fedia.io
    link
    fedilink
    arrow-up
    4
    ·
    2 days ago

    VLANs. You create an IoT VLAN, set it to be accessible the specific way you want, and you’re done.

    If you want to be extra secure you can fire up a Docker container that sits on this VLAN + your regular network, and proxies printer requests between the two, so you have perfect control over what happens and when.

    Fair note, none of the apps (e.g. AirPrint) will work this way. They use Brother’s cloud to connect to the printer.

  • DetachablePianist@lemmy.ml
    link
    fedilink
    English
    arrow-up
    21
    ·
    3 days ago

    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…

  • rmuk@feddit.uk
    link
    fedilink
    English
    arrow-up
    4
    ·
    3 days ago

    FWIW, I use the VLAN approach. I have a VLAN (101) specifically for IoT shit. The firewall allows devices on other VLANs - general purpose (104), infrastructure (102) and servers (103) to connect in to 101, but nothing can reach out. Works seamlessly. The only issue you might bump into is that some devices use UPnP/mDNS for discovery, but OpenWRT has a proxy module you can install to facilitate that.

    You may be wondering why the tags I use for my VLANs are so odd. I also wonder that sometimes.

    • Appoxo@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 days ago

      Are those also the aame subnet or in different network (e.g. 192.168.101.0/24 and 192.168.104.0/24)?

      • rmuk@feddit.uk
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 days ago

        Different subnets, similar to how you describe. It would be really tricky to have them on the same subnet, especially if you want a firewall between them.

  • Taasz/Woof@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    8
    ·
    3 days ago

    If you just want to stop it from having internet access then a firewall rule set to block from the printer IP, and dest !=LAN would do it.

    For IP changes you just need to make that lease static in OpenWRT and it will be fixed to that IP going forward.

  • spaghettiwestern@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    2 days ago

    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 (they won’t get there) 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.

  • ChunkMcHorkle@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    3 days ago

    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.

  • Possibly linux@lemmy.zip
    link
    fedilink
    English
    arrow-up
    6
    ·
    3 days ago

    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

    • fuckwit_mcbumcrumble@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      3
      ·
      3 days ago

      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.

  • TheButtonJustSpins@infosec.pub
    link
    fedilink
    English
    arrow-up
    7
    ·
    4 days ago

    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.

  • non_burglar@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    4 days ago

    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.