= How-to: Use more than One {{project_name_workstation_long}} - Easy = {{Tab |type=controller |content= {{Tab |title= =={{non_q_project_name_long}}== |type=section |image= |addToClass=info-box |active=true |content= {{Anchor|qubes}} {{mbox | type = notice | image = [[File:Ambox_notice.png|40px|alt=info]] | text ='''Note:''' The following instructions only apply to Download/Default-{{project_name_workstation_short}} or {{project_name_long}} VMs built from source code. To use another operating system like Windows, other GNU/Linux, BSD etc. please see the [[Other Operating Systems]] chapter instead. }} {{mbox | image = [[File:Ambox_warning_pn.svg.png|40px|alt=warning]] | text = Each additional {{project_name_workstation_short}} VM <u>must</u> have its own MAC address and internal LAN IP address. }} '''1.''' Clone a fresh {{project_name_workstation_short}} VM. * <u>VirtualBox</u>: In VirtualBox Manager, [https://dirkstrauss.com/clone-virtualbox-vm/ clone] a clean {{project_name_workstation_short}}. * <u>KVM</u>: In Virtual Machine Manager, clone a clean {{project_name_workstation_short}}: <code>Highlight {{project_name_workstation_short}}</code> → <code>Open</code> → <code>Virtual Machine</code> → <code>Clone</code> '''2.''' Assign a new MAC address to the cloned VM. {{mbox | type = notice | image = [[File:Ambox_notice.png|40px|alt=info]] | text = '''Note:''' A new MAC address is necessary if an additional [[VirtualBox]] VM is imported. }} * <u>VirtualBox</u>: In VirtualBox Manager, assign a new MAC address: <code>VirtualBox</code> → <code>Settings</code> → <code>Network</code> → <code>Adapter 1</code> → <code>Advanced</code> → <code>Mac Address</code> → <code>Create a new MAC address (press the green round arrow icon)</code> → <code>OK</code> * <u>KVM</u>: To change the internal network in KVM, see: [[KVM#Creating_Multiple_Internal_Networks|Creating Multiple Internal Networks]]. '''3.''' Edit the network interfaces file in {{project_name_workstation_short}}. {{CodeSelect|code= sudoedit /etc/network/interfaces.d/30_non-qubes-whonix }} Ignore all lines starting with a hashtag ("<code>#</code>"). That is because comments are only for documentation and notes. However, comments are ignored by the system. Look for line <code>address 10.152.152.11</code>. Change the last octet. For example, change <code>10.152.152.1'''1'''</code> to <code>10.152.152.1'''2'''</code> Save and exit. '''4.''' Review your changes. The following command is optional but handy to show all file contents without comments. {{CodeSelect|code= cat /etc/network/interfaces.d/30_non-qubes-whonix {{!}} grep --invert-match \# }} That should show for example: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.152.152.12 netmask 255.255.192.0 gateway 10.152.152.10 </pre> It would even be possible to replace the contents of that config file will above contents. When using more than 1 additional Whonix-Workstation however <code>10.152.152.12</code> should be changed to <code>10.152.152.13</code> and so forth. '''5.''' Reboot. Reboot the {{project_name_workstation_short}} or alternately restart the network. {{CodeSelect|code= sudo service networking restart }} '''6.''' Done. }} {{Tab |title= =={{q_project_name_long}}== |content= '''1.''' Create an additional App Qube based on the {{project_name_workstation_short}} Template (<code>{{project_name_workstation_template}}</code>) and give it a distinctive name such as for example <code>{{project_name_workstation_vm}}2</code>. (A more distinctive name is desirable.) '''2.''' Confirm the new {{project_name_workstation_short}} App Qube is using a {{project_name_gateway_long}} (such as for example the default <code>{{project_name_gateway_vm}}</code>) as its [https://www.qubes-os.org/doc/glossary/#net-qube <code>net qube</code>]. If creating a new App Qube is unfamiliar, follow this step-by-step instructions: {{box|text= [[File:Create_Qubes-Whonix-Workstation_AppVM.png]] '''A.)''' Create Qubes-{{project_name_workstation_short}} App Qube '''B.)''' Name and label: Name the App Qube. Don't include any personal information (if the App Qube is compromised, the attacker could run <code>qubesdb-read /name</code> to reveal the VM name). Name the App Qube something generic, for example: <code>{{project_name_workstation_vm}}</code>. '''C.)''' Color: Choose a color label for the {{project_name_workstation_short}} App Qube. '''D.)''' Use this template: Choose the {{project_name_workstation_short}} Template. For example: <code>{{project_name_workstation_template}}</code>. '''E.)''' Standalone: Leave the Standalone field unchecked, unless a persistent root filesystem is desired. '''F.)''' Type: Choose the type <code>App Qube</code>. '''G.)''' Allow networking: Choose the desired {{project_name_gateway_short}} ProxyVM from the list. For example: <code>{{project_name_gateway_vm}}</code>. '''H.)''' Press: <code>OK</code>. }} '''3.''' Depending on the <code>net qube</code> setting. {{Tab |type=controller |content= {{Tab |title= =='''A)'''== |type=section |addToClass=info-box |active=true |content= If the {{project_name_workstation_short}} App Qube <u>is connected to <code>{{project_name_gateway_vm}}</code></u></u>: No special instructions required. }} <!-- close tab: A --> {{Tab |title= =='''B)'''== |content= * If the {{project_name_workstation_short}} App Qube <u>is connected to any {{project_name_gateway_short}} other than <code>{{project_name_gateway_vm}}</code></u>, apply the following instructions: <ref> This is non-ideal usability wise. Sparing users from needing to change this setting requires upstream Qubes feature request [https://github.com/QubesOS/qubes-issues/issues/4117 way to find out the name of gateway from inside the VM - qubesdb-read /qubes-gateway-name] or [https://github.com/QubesOS/qubes-issues/issues/5253 qrexec feature request: send this over qrexec to the net qube I am connected to / {{project_name_gateway_vm}} hardcoded / {{project_name_gateway_vm}} unexpected autostart] to get implemented. Technical improvement proposals: * https://phabricator.whonix.org/T930 https://forums.whonix.org/t/sys-whonix-starting-spontaneously-after-update/8123 </ref> {{box|text= <u>Note:</u> Inside the {{project_name_workstation_short}} App Qube. '''A.)''' Create folder <code>/usr/local/etc/sdwdate-gui.d</code>. {{CodeSelect|code= sudo mkdir -p /usr/local/etc/sdwdate-gui.d }} '''B.)''' Open with root rights. <!-- WIKI EDITORS NOTE: Template:Open_with_root_rights should not be used. --> {{CodeSelect|code= sudoedit /usr/local/etc/sdwdate-gui.d/50_user.conf }} '''C.)''' Add the following text. Note: The following example uses <code>{{project_name_gateway_vm}}2</code> as an example. Replace <code>{{project_name_gateway_vm}}2</code> with the name of the VM of {{project_name_gateway_short}} which this {{project_name_workstation_short}} App Qube uses as its <code>net qube</code>. For example, <code>{{project_name_gateway_vm}}3</code>. {{CodeSelect|code= gateway={{project_name_gateway_vm}}2 }} '''D.)''' Save the file. '''E.)''' In case of issues. sdwdate-gui qrexec denied messages? See [[Qubes/Troubleshooting#sdwdate-gui_qrexec_settings|{{q_project_name_short}} troubleshooting, sdwdate-gui qrexec]]. }} <!-- close box --> '''4.''' Done. The process of setting up an additional {{project_name_workstation_short}} App Qube has been completed. }} <!-- close tab: B --> }} <!-- close ? --> }} <!-- close tab controller: Qubes A B --> }} <!-- close tab controller: platform selection -->