this post was submitted on 05 Oct 2023
21 points (92.0% liked)

Selfhosted

40800 readers
1799 users here now

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:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

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!

top 18 comments
sorted by: hot top controversial new old
[–] [email protected] 13 points 1 year ago (1 children)

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.

[–] [email protected] 1 points 1 year ago (1 children)

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!

[–] [email protected] 9 points 1 year ago (1 children)

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).

[–] [email protected] 2 points 1 year ago (1 children)

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?

[–] [email protected] 1 points 1 year ago (1 children)

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.

[–] [email protected] 2 points 1 year ago (1 children)

I see, it's simply disallowing everything except a specific port on that IP.

Considering that it will likely be a base Windows install, I don't think other applications will be able to hijack that specific port so swiftly. With that said, can I possibly only allow traffic to and fro from the proxy through my firewall? Assuming that I'll be running an HTTP proxy, I should be able to (in theory) inspect traffic too, although I don't know how far that will take me.

[–] [email protected] 1 points 1 year ago (1 children)

With that said, can I possibly only allow traffic to and fro from the proxy through my firewall?

Yes. That is what I suggested. If you configure the firewall to only allow traffic to/from the specific IP and port combination of your proxy, other traffic will be blocked.

I should be able to (in theory) inspect traffic too, although I don’t know how far that will take me.

You can do content filtering via a proxy like that, yes. A similar sort of configuration is used on school computers to do things like block adult content, with varying degrees of success. Some ad-blocking techniques work on similar principles.

[–] [email protected] 1 points 1 year ago (1 children)

I was wondering if I could label the traffic to and from the proxy, and not have to rely on ports for filtering

[–] [email protected] 2 points 1 year ago (1 children)

You can whitelist both the proxy and the ip, blacklist everything else.

[–] [email protected] 1 points 1 year ago

I see. Thanks!

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)
[–] [email protected] 3 points 1 year ago

There might be Windows-specific software that might not run with WINE, which is why I'm considering this option

[–] [email protected] 2 points 1 year ago (1 children)

That's... What firewall is for

[–] [email protected] 1 points 1 year ago (1 children)

Yes, well, I was hoping I could do this from the linux side instead of configuring the Windows firewall, but apparently not

[–] [email protected] 1 points 1 year ago (1 children)

If you are finding using windows FW hard, you could try https://github.com/pylorak/TinyWall

[–] [email protected] 1 points 1 year ago

Thank you, I'll bookmark this! Another commenter pointed out SimpleWall, need to check that out too!

[–] [email protected] 1 points 1 year ago (1 children)

Simplewall firewall in windows vm?

[–] [email protected] 2 points 1 year ago

Thank you, this is very interesting. I'll take a look!