Fixed translation by guides versioning
{% assign version = '1.1.0' | split: '.' %} | ||
{% include disclaimer.html translated="false" version=page.version %} | ||
# CLI Wallet/Daemon Isolation with Qubes + Whonix | ||
{% include disclaimer.html translated="true" version=page.version %} | ||
# Aislamiento de Monedero CLI/Daemon con Qubes + Whonix | ||
With [Qubes](https://qubes-os.org) + [Whonix](https://whonix.org) you can have a Monero wallet that is without networking and running on a virtually isolated system from the Monero daemon which has all of its traffic forced over [Tor](https://torproject.org). | ||
Con [Qubes](https://qubes-os.org) más [Whonix](https://whonix.org) puedes tener un monedero de Monero sin conexión a la red y en ejecución en un sistema virtualmente aislado del daemon de Monero que tiene todo su tráfico sobre [Tor](https://torproject.org). | ||
Qubes gives the flexibility to easily create separate VMs for different purposes. First you will create a Whonix workstation for the wallet with no networking. Next, another Whonix workstation for the daemon which will use your Whonix gateway as it's NetVM. For communication between the wallet and daemon you can make use of Qubes [qrexec](https://www.qubes-os.org/doc/qrexec3/). | ||
Qubes brinda la flexibilidad de crear VMs separadas fácilmente para diferentes propósitos. Primero crearás una estación de trabajo Whonix para el monedero sin conexión a la red. Después, otra estación de trabajo Whonix para el daemon que usará la puerta Whonix como su NetVM. Para comunicación entre el monedero y el daemon puedes usar Qubes [qrexec](https://www.qubes-os.org/doc/qrexec3/). | ||
This is safer than other approaches which route the wallets rpc over a Tor hidden service, or that use physical isolation but still have networking to connect to the daemon. In this way you don't need any network connection on the wallet, you preserve resources of the Tor network, and there is less latency. | ||
Esto es más seguro que otros enfoques que trazan el rpc del monedero a un servicio de Tor oculto, o que utilizan aislamiento físico pero aun así tienen conexión a la red para conectarse al daemon. En este enfoque no necesitas ninguna conexión al monedero, conservas los recursos de la red de Tor y se tiene menos latencia. | ||
## 1. [Create Whonix AppVMs](https://www.whonix.org/wiki/Qubes/Install): | ||
## 1. [Crear AppVMs Whonix](https://www.whonix.org/wiki/Qubes/Install): | ||
+ Using a Whonix workstation template, create two workstations as follows: | ||
+ Utilizando una estación de trabajo Whonix, crea dos estaciones de trabajo como sigue: | ||
- The first workstation will be used for your wallet, it will referred to as `monero-wallet-ws`. You will have `NetVM` set to `none`. | ||
- La primera estación de trabajo se usará para tu monedero, se referirá a ella como `monero-wallet-ws`. Tendrás `NetVM` ajustado como `none`. | ||
- The second workstation will be for the `monerod` daemon, it will be referred to as `monerod-ws`. You will have `NetVM` set to the Whonix gateway `sys-whonix`. | ||
- La segunda estación de trabajo será para el daemon `monerod`, se referirá a ella como `monerod-ws`. Tendrás `NetVM` ajustado como la puerta Whonix `sys-whonix`. | ||
## 2. In the AppVM `monerod-ws`: | ||
## 2. En la AppVM `monerod-ws`: | ||
+ Download, verify, and install Monero software. | ||
+ Descarga, verifica e instala el software de Monero. | ||
``` | ||
[email protected]:~$ curl -O "https://downloads.getmonero.org/cli/monero-linux-x64-v0.11.1.0.tar.bz2" -O "https://getmonero.org/downloads/hashes.txt" | ||
... | ... | @@ -37,13 +37,13 @@ monero-linux-x64-v0.11.1.0.tar.bz2: OK |
[email protected]:~$ tar xf monero-linux-x64-v0.11.1.0.tar.bz2 | ||
[email protected]:~$ sudo cp monero-v0.11.1.0/monerod /usr/local/bin/ | ||
``` | ||
+ Create a `systemd` file. | ||
+ Crea un archivo `systemd`. | ||
``` | ||
[email protected]:~$ sudo gedit /home/user/monerod.service | ||
``` | ||
Paste the following contents: | ||
Pega el siguiente contenido: | ||
``` | ||
[Unit] | ||
... | ... | @@ -68,83 +68,83 @@ PrivateTmp=true |
WantedBy=multi-user.target | ||
``` | ||
+ Copy `monero-wallet-cli` executable to the `monero-wallet-ws` VM. | ||
+ Copia el ejecutable `monero-wallet-cli` al VM `monero-wallet-ws`. | ||
``` | ||
[email protected]:~$ qvm-copy-to-vm monero-wallet-ws monero-v0.11.1.0/monero-wallet-cli | ||
``` | ||
+ Make `monerod` daemon run on startup by editing the file `/rw/config/rc.local`. | ||
+ Hacer ejecutable a `monerod` en arranque editando el archivo `/rw/config/rc.local`. | ||
``` | ||
[email protected]:~$ sudo gedit /rw/config/rc.local | ||
``` | ||
Add these lines to the bottom: | ||
Agrega estas líneas al final: | ||
``` | ||
cp /home/user/monerod.service /lib/systemd/system/ | ||
systemctl start monerod.service | ||
``` | ||
Make file executable. | ||
Hacer ejecutable el archivo. | ||
``` | ||
[email protected]:~$ sudo chmod +x /rw/config/rc.local | ||
``` | ||
+ Create rpc action file. | ||
+ Crear archivo de acción rpc. | ||
``` | ||
[email protected]:~$ sudo mkdir /rw/usrlocal/etc/qubes-rpc | ||
[email protected]:~$ sudo gedit /rw/usrlocal/etc/qubes-rpc/user.monerod | ||
``` | ||
Add this line: | ||
Agrega esta línea: | ||
``` | ||
socat STDIO TCP:localhost:18081 | ||
``` | ||
+ Shutdown `monerod-ws`. | ||
+ Apaga `monerod-ws`. | ||
## 3. In the AppVM `monero-wallet-ws`: | ||
## 3. En la AppVM `monero-wallet-ws`: | ||
+ Move the `monero-wallet-cli` executable. | ||
+ Mueve el ejecutable `monero-wallet-cli`. | ||
``` | ||
[email protected]:~$ sudo mv QubesIncoming/monerod-ws/monero-wallet-cli /usr/local/bin/ | ||
``` | ||
+ Edit the file `/rw/config/rc.local`. | ||
+ Edita el archivo `/rw/config/rc.local`. | ||
``` | ||
[email protected]:~$ sudo gedit /rw/config/rc.local | ||
``` | ||
Add the following line to the bottom: | ||
Agrega la siguiente línea al final: | ||
``` | ||
socat TCP-LISTEN:18081,fork,bind=127.0.0.1 EXEC:"qrexec-client-vm monerod-ws user.monerod" | ||
``` | ||
Make file executable. | ||
Hacer ejecutable el archivo. | ||
``` | ||
[email protected]:~$ sudo chmod +x /rw/config/rc.local | ||
``` | ||
+ Shutdown `monero-wallet-ws`. | ||
+ Apaga `monero-wallet-ws`. | ||
## 4. In `dom0`: | ||
## 4. En `dom0`: | ||
+ Create the file `/etc/qubes-rpc/policy/user.monerod`: | ||
+ Crea el archivo `/etc/qubes-rpc/policy/user.monerod`: | ||
``` | ||
[[email protected] ~]$ sudo nano /etc/qubes-rpc/policy/user.monerod | ||
``` | ||
Add the following line: | ||
Agrega la siguiente línea: | ||
``` | ||
monero-wallet-ws monerod-ws allow | ||
... | ... |