Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign uptemplates update over clearnet even when UpdateVM set to sys-whonix #3527
Comments
mirrorway
changed the title from
template updates ignore UpdateVM setting
to
templates update over clearnet even when UpdateVM set to sys-whonix
Feb 3, 2018
andrewdavidwong
added
bug
C: core
C: templates
labels
Feb 3, 2018
andrewdavidwong
added this to the Release 4.0 milestone
Feb 3, 2018
andrewdavidwong
added
privacy
C: Whonix
labels
Feb 3, 2018
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Feb 5, 2018
Member
"updatevm" property is currently only about dom0 updates. Updates for templates can be configured in /etc/qubes-rpc/policy/qubes.UpdatesProxy (target= option for appropriate template).
But yes, this is something we need to improve.
|
"updatevm" property is currently only about dom0 updates. Updates for templates can be configured in |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
adrelanos
Feb 5, 2018
Member
I suggest dom0 should also use config file /etc/qubes-rpc/policy/qubes.UpdatesProxy. No special mechanism. (At least not user facing.) Otherwise too difficult for users, and way too easy to mess up.
|
I suggest dom0 should also use config file |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
mirrorway
Feb 5, 2018
IMHO UpdateVM should be used for both. Why would anyone want to get just their dom0 updates over tor but their template updates over clearnet? The latter also contacts qubes-os.org, identifying you as a qubes user, and provides eavesdroppers with the specific version of each of your installed packages.
mirrorway
commented
Feb 5, 2018
|
IMHO UpdateVM should be used for both. Why would anyone want to get just their dom0 updates over tor but their template updates over clearnet? The latter also contacts qubes-os.org, identifying you as a qubes user, and provides eavesdroppers with the specific version of each of your installed packages. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
TimFW
Feb 13, 2018
Maybe I a am misunderstanding but with qubes.UpdatesProxy do all templates have to use that single target for updates? If so then I would much rather than both the qubes.UpdatesProxy and UpdateVM so we can have a choice. I can see scenarios where I what to ensure all dom0 updates are tor and templates are thru clear or vpn etc. To me its as simple as having the documentation. You could even have a warning popup if need be.
TimFW
commented
Feb 13, 2018
|
Maybe I a am misunderstanding but with qubes.UpdatesProxy do all templates have to use that single target for updates? If so then I would much rather than both the qubes.UpdatesProxy and UpdateVM so we can have a choice. I can see scenarios where I what to ensure all dom0 updates are tor and templates are thru clear or vpn etc. To me its as simple as having the documentation. You could even have a warning popup if need be. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Feb 13, 2018
Member
Maybe I a am misunderstanding but with qubes.UpdatesProxy do all templates have to use that single target for updates?
No, each template can have different one. For example whonix-* templates use sys-whonix.
No, each template can have different one. For example whonix-* templates use sys-whonix. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
adrelanos
Feb 23, 2018
Member
Qubes VM Settings -> Global Settings
Global Settings implies "global", "default", "for everything". Currently UpdateVM should be replaced by dom0 UpdateVM. But that's not perfect either.
Proposal for Qubes VM Settings -> Global Settings:
dom0 UpdateVM (please rename UpdateVM to dom0 UpdateVM)
ClockVM
Default netVM
Default UpdateVM (please add)
Default template
(#3412)
When setting, Qubes VM Settings -> Global Settings -> Default UpdateVM to let's says sys-firewall
- should work similar to
Default netVMsetting - dom0 should use
sys-firewallas UpdateVM (Ifdom0 UpdateVMis set todefault.) - all TemplateVMs except those with explicitly configured UpdateVM settings (i.e. except Whonix VMs!) should use
sys-firewallas their UpdateVM
When setting, Qubes VM Settings -> Global Settings -> Default UpdateVM to let's says sys-whonix
- should work similar to
Default netVMsetting - dom0 should use
sys-whonixas UpdateVM (Ifdom0 UpdateVMis set todefault.) - all TemplateVMs should use
sys-whonixas their UpdateVM
Does that sound good?
Proposal for dom0 UpdateVM (please rename (#3412) When setting, Qubes VM Settings -> Global Settings ->
When setting, Qubes VM Settings -> Global Settings ->
Does that sound good? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
adrelanos
Feb 23, 2018
Member
I suggest dom0 should also use config file
/etc/qubes-rpc/policy/qubes.UpdatesProxy. No special mechanism. (At least not user facing.) Otherwise too difficult for users, and way too easy to mess up.
/etc/qubes-rpc/policy/qubes.UpdatesProxy
default=sys-firewall
$type:TemplateVM $default allow,target=default
dom0 $default allow,target=default
$anyvm $anyvm deny
Or so.
Default UpdateVM setting could change default=sys-firewall to default=sys-whonix or so.
Doest that make sense?
Would it even be acceptable for Qubes VM Manager to modify /etc/qubes-rpc/policy/qubes.UpdatesProxy or how could this be implemented?
Or so.
Doest that make sense? Would it even be acceptable for Qubes VM Manager to modify |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Feb 23, 2018
Member
The thing is dom0 updates works totally differently than template updates:
- template updates: package manager run in template, process metadata on its own, access the network through proxy
- dom0 updates: dom0 have no network at all, use selected VM to run package manger there, process metadata, resolve dependencies and download packages, then transfer them to dom0 (where signatures are checked)
This means totally different mechanisms are needed for providing "UpdateVM" function for those. UpdatesProxy (which is basically http proxy) will not work for dom0 updates.
While the same VM could provide both features, configuration (at low level) needs to be different. But it doesn't mean we couldn't provide consistent GUI for both settings (maybe even merged into one).
|
The thing is dom0 updates works totally differently than template updates:
This means totally different mechanisms are needed for providing "UpdateVM" function for those. UpdatesProxy (which is basically http proxy) will not work for dom0 updates. While the same VM could provide both features, configuration (at low level) needs to be different. But it doesn't mean we couldn't provide consistent GUI for both settings (maybe even merged into one). |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
sorandom
Mar 27, 2018
I have found the reverse is also true. Selecting "updates run over tor" in the 4.0-RC4 installer, then later wanting speed and changing UpdateVM back to clearnet, caused templates to continue updating over the tor connection. That was frustrating, until I found this post.
I agree with @adrelanos' proposal to make them both visible. Would it also make sense to make them visible in the Qubes Setting screen, perhaps advanced tab, near Default DispVM?
sorandom
commented
Mar 27, 2018
•
|
I have found the reverse is also true. Selecting "updates run over tor" in the 4.0-RC4 installer, then later wanting speed and changing UpdateVM back to clearnet, caused templates to continue updating over the tor connection. That was frustrating, until I found this post. I agree with @adrelanos' proposal to make them both visible. Would it also make sense to make them visible in the Qubes Setting screen, perhaps advanced tab, near Default DispVM? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
mirrorway
Mar 27, 2018
What about the "Check for updates" option, does it use UpdateVM or the AppVM's NetVM?
mirrorway
commented
Mar 27, 2018
|
What about the "Check for updates" option, does it use UpdateVM or the AppVM's NetVM? |
andrewdavidwong
added
the
UX
label
Mar 28, 2018
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
sorandom
Mar 28, 2018
In my experience, neither, however I was using dnf/apt from the template command line. All templates would still use sys-whonix to update even when Global Settings -> UpdateVM was set to clearnet. It did not matter if the template's NetVM was set to none or clearnet.
(dom0 was indeed using clearnet which supports the above posts.)
I was only able to resolve the issue by manually editing the file as mentioned above to change the default from sys-whonix to clearnet.
sorandom
commented
Mar 28, 2018
|
In my experience, neither, however I was using dnf/apt from the template command line. All templates would still use sys-whonix to update even when Global Settings -> UpdateVM was set to clearnet. It did not matter if the template's NetVM was set to none or clearnet. (dom0 was indeed using clearnet which supports the above posts.) I was only able to resolve the issue by manually editing the file as mentioned above to change the default from sys-whonix to clearnet. |
andrewdavidwong
modified the milestones:
Release 4.0,
Release 4.0 updates
Mar 31, 2018
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
awokd
May 6, 2018
How about a single qubes-prefs updatevm setting that controls both dom0 and template updates, with the following logic:
- Update parsing of
/etc/qubes-rpc/policy/qubes.UpdatesProxyto include dom0 per #3527 (comment) - Changing the
qubes-prefs updatevmsetting to a different VM will result in a fresh/etc/qubes-rpc/policy/qubes.UpdatesProxywith the appropriate ruleset - Changing the setting to
noneresults in fresh ruleset denying all updates - Further customizations can be made to
/etc/qubes-rpc/policy/qubes.UpdatesProxy, for those who want granular control over it
awokd
commented
May 6, 2018
•
|
How about a single
|
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
awokd
May 6, 2018
Or a variation, if a file about "Qubes UpdatesProxy RPC Policy" is not the correct place to store dom0 related settings (like #3527 (comment) seems to suggest):
- Leave current usage of
qubes-prefs updatevmunchanged, but hook into the code so if it gets modified: - Changing the
qubes-prefs updatevmsetting to a different VM will result in a fresh/etc/qubes-rpc/policy/qubes.UpdatesProxywith the appropriate ruleset - Changing the setting to
noneresults in fresh ruleset denying all updates - Further customizations can be made to
/etc/qubes-rpc/policy/qubes.UpdatesProxy, for those who want granular control over it
This approach would be easier to code too. I might even be able to manage it, if it looks reasonable?
awokd
commented
May 6, 2018
•
|
Or a variation, if a file about "Qubes UpdatesProxy RPC Policy" is not the correct place to store dom0 related settings (like #3527 (comment) seems to suggest):
This approach would be easier to code too. I might even be able to manage it, if it looks reasonable? |
mirrorway commentedFeb 3, 2018
•
edited
Edited 3 times
-
mirrorway
edited Feb 3, 2018 (most recent)
-
mirrorway
edited Feb 3, 2018
-
mirrorway
edited Feb 3, 2018
Qubes OS version:
R4.0 rc4, rc3
Affected TemplateVMs:
debian-9 at least
Steps to reproduce the behavior:
Expected behavior:
Downloads updates over tor.
Actual behavior:
Downloads updates over clearnet.
There is little traffic on sys-whonix's eth0, as can be seen by repeatedly running
cat /sys/class/net/eth0/statistics/rx_bytesGeneral notes:
dom0 updates go through sys-whonix, as expected.
Related issues:
R3.2 also exhibited this behavior but you can work around it by setting netvm to sys-whonix.
In R4.0 netvm of templates is set to None by default, so you expect all update-related traffic to go out through the user's choice of UpdateVM.