2023-04-15 16:18:34 -07:00
|
|
|
{{- if (eq .host.distro.id "qubes") -}}
|
Update .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_12-update-dom0, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_11-update-timezone, .local/share/chezmoi/system/etc/yum.repos.d/qubes-dom0.repo, .local/share/chezmoi/system/etc/qubes/repo-templates/qubes-templates.repo, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_13-install-official-templates, .local/share/chezmoi/home/.chezmoidata.yaml, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_14-ensure-minimal-vms-passwordless, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_15-install-unofficial-templates, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_16-update-template-vms, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_17-install-mirage-firewall, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_18-configure-sys-usb, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_19-setup-sys-gui, .local/share/chezmoi/system/etc/grub.d/31-hold-shift, .local/share/chezmoi/system/etc/default/modify_grub, .local/share/chezmoi/system/.chezmoidata.yaml, .local/share/chezmoi/system/.chezmoiexternal.toml, .local/share/chezmoi/system/usr/share/run_onchange_after_setup-share-folder, .local/share/chezmoi/system/boot/efi/EFI/qubes/modify_grubenv, .local/share/chezmoi/system/etc/sddm.conf, .local/share/chezmoi/system/etc/modify_environment
2022-12-06 00:59:10 -08:00
|
|
|
#!/usr/bin/env bash
|
2023-04-12 18:44:59 -07:00
|
|
|
# @file Qubes `sys-usb`
|
|
|
|
# @brief Enables `sys-usb` and configures it with ideal security settings
|
|
|
|
# @description
|
|
|
|
# This script ensures that Qubes uses `sys-usb` for USB connections. It also optimizes the configuration
|
|
|
|
# by applying security configurations that the Qubes documentation recommends.
|
Update .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_12-update-dom0, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_11-update-timezone, .local/share/chezmoi/system/etc/yum.repos.d/qubes-dom0.repo, .local/share/chezmoi/system/etc/qubes/repo-templates/qubes-templates.repo, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_13-install-official-templates, .local/share/chezmoi/home/.chezmoidata.yaml, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_14-ensure-minimal-vms-passwordless, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_15-install-unofficial-templates, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_16-update-template-vms, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_17-install-mirage-firewall, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_18-configure-sys-usb, .local/share/chezmoi/home/.chezmoiscripts/qubes/run_onchange_before_19-setup-sys-gui, .local/share/chezmoi/system/etc/grub.d/31-hold-shift, .local/share/chezmoi/system/etc/default/modify_grub, .local/share/chezmoi/system/.chezmoidata.yaml, .local/share/chezmoi/system/.chezmoiexternal.toml, .local/share/chezmoi/system/usr/share/run_onchange_after_setup-share-folder, .local/share/chezmoi/system/boot/efi/EFI/qubes/modify_grubenv, .local/share/chezmoi/system/etc/sddm.conf, .local/share/chezmoi/system/etc/modify_environment
2022-12-06 00:59:10 -08:00
|
|
|
|
|
|
|
### Enable sys-usb
|
|
|
|
logg info 'Modifying Salt configuration to be able to enable sys-usb'
|
|
|
|
qubesctl top.enabled pillar=True || EXIT_CODE=$?
|
|
|
|
qubesctl state.highstate || EXIT_CODE=$?
|
|
|
|
logg info 'Ensuring sys-net-as-usbvm is removed'
|
|
|
|
qubesctl top.disable qvm.sys-net-as-usbvm pillar=True || EXIT_CODE=$?
|
|
|
|
logg info 'Ensuring sys-usb is setup and that it is properly configured with the keyboard'
|
|
|
|
qubesctl state.sls qvm.usb-keyboard
|
|
|
|
|
|
|
|
### Configure USB keyboard settings
|
|
|
|
if [ "{{ .qubes.promptKeyboards }}" = 'true' ]; then
|
|
|
|
logg info 'Ensure USB keyboards are only allows to connect after prompt is answered'
|
|
|
|
logg warn 'This can potentially lock you out if all you have are USB keyboards'
|
|
|
|
echo "sys-usb dom0 ask,user=root,default_target=dom0" | sudo tee /etc/qubes-rpc/policy/qubes.InputKeyboard
|
|
|
|
else
|
|
|
|
logg info 'Ensuring USB keyboards can connect without a prompt'
|
|
|
|
echo "sys-usb dom0 allow,user=root" | sudo tee /etc/qubes-rpc/policy/qubes.InputKeyboard
|
|
|
|
fi
|
|
|
|
|
|
|
|
### Configure USB mouse settings
|
|
|
|
logg info 'Ensuring newly connected USB mouse devices are only allowed to connect after a prompt is accepted'
|
|
|
|
echo "sys-usb dom0 ask,default_target=dom0" | sudo tee /etc/qubes-rpc/policy/qubes.InputMouse
|
2023-04-15 16:18:34 -07:00
|
|
|
{{ end -}}
|