Hi everyone,

Is there any way to restrict network access for a Windows VM using KVM other than a couple of applications (Windows explorer and Firefox)? I don’t want to get into configuring the Windows firewall and would like to do this using KVM/other linux utilities on the host machine if possible As I thought, it is unlikely that I will be able to do this from the KVM side of things. Would anyone have an idea of how I could script this for subsequent Windows VMs?

Thanks!

  • HybridSarcasm@lemmy.hybridsarcasm.xyzM
    link
    fedilink
    English
    arrow-up
    13
    ·
    1 year ago

    You’ll have to accomplish that with a firewall on the OS. A network firewall could restrict traffic based on ports, but your apps aren’t that predictable.

    • MigratingtoLemmy@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      I see, I don’t have a choice then. I will only really access the internet using Firefox, whilst the file explorer will be allowed to map a network drive on my LAN.

      This is an issue that I’ve been thinking of but can’t come up with anything!

      • e0qdk@kbin.social
        link
        fedilink
        arrow-up
        8
        ·
        1 year ago

        You could try configuring Firefox to access the internet through a proxy and then block the VM off from everything except the proxy and your network mount with a firewall (outside the VM).

        • MigratingtoLemmy@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          Thank you, I will need to read up more on this. Could you describe how the networking with the proxy will work with respect to the firewall on the side of the host, involving the proxy?

          • e0qdk@kbin.social
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            If I understood your question correctly, you’d run the proxy application (which might be Squid or Apache or some other program) either on the host computer outside the VM or elsewhere on your network. (I’m not well versed on all the ins and outs of setting Firefox up to communicate through a proxy; I just know it can be done.) The proxy would listen for incoming traffic on a specific port you configure. You then tell Firefox (in its network settings) to communicate with the specific IP and port of the proxy instead of talking to web servers directly.

            To prevent other programs from communicating, you’d firewall off the VM with iptables (or maybe ufw or something else depending on what you use on your system). You’d set it to drop all traffic going to/from the VM’s network except packets going to or coming from the specific IP/port combinations you want to allow.

            This isn’t a bulletproof way to block other apps from talking to the internet – anything that knows about the proxy (or which can hijack/manipulate a program like Firefox that you’ve told about the proxy) could communicate with web servers via the proxy, but depending on your specific concerns it may be good enough.