cli_wallet_daemon_isolation_qubes_whonix.md 4.79 KB
Newer Older
1
2
3
4
{% assign version = '1.1.0' | split: '.' %}
{% include disclaimer.html translated="true" version=page.version %}
# Portemonnee isoleren van node met Qubes en Whonix

5
Met [Qubes](https://qubes-os.org) en [Whonix](https://whonix.org) kun je een Monero-portemonnee zonder netwerkverbinding uitvoeren op een virtueel systeem, geïsoleerd van de Monero-node, waarvan al het verkeer verplicht via [Tor](https://torproject.org) loopt.
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151

Qubes biedt de flexibiliteit om eenvoudig afzonderlijke virtual machines voor verschillende doeleinden te maken. Eerst maak je een Whonix-werkstation voor de portemonnee, zonder netwerkverbinding. Vervolgens maak je een ander Whonix-werkstation dat je Whonix-gateway gebruikt als NetVM. Voor communicatie tussen de portemonnee en de node kun je gebruik maken van Qubes [qrexec](https://www.qubes-os.org/doc/qrexec3/).

Dit is veiliger dan andere benaderingen, waarbij de RPC van de portemonnee via een verborgen Tor-service wordt geleid, of fysieke isolatie wordt gebruikt, maar er nog steeds een netwerkverbinding nodig is voor communicatie met de node. Met deze methode is er helemaal geen netwerkverbinding nodig voor de portemonnee, ga je zuiniger om met het Tor-netwerk en is er minder vertraging.


## 1. [Maak Whonix AppVM's](https://www.whonix.org/wiki/Qubes/Install):

+ Met een sjabloon voor Whonix-werkstations maak je op de volgende manier twee werkstations:

  - Het eerste werkstation wordt gebruikt voor je portemonnee. We noemen het `monero-wallet-ws`. Hier stel je `NetVM` in op `none`.

  - Het tweede werkstation wordt gebruikt voor `monerod`, de daemon voor de node. We noemen het `monerod-ws`. Hier stel je `NetVM` in op de Whonix-gateway `sys-whonix`.

## 2. In de AppVM `monerod-ws`:

+ Download, verifieer en installeer de Monero-software.

```
[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"
[email protected]:~$ gpg --recv-keys BDA6BD7042B721C467A9759D7455C5E3C0CDCEB9
[email protected]:~$ gpg --verify hashes.txt
gpg: Signature made Wed 01 Nov 2017 10:01:41 AM UTC
gpg:                using RSA key 0x55432DF31CCD4FCD
gpg: Good signature from "Riccardo Spagni <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: BDA6 BD70 42B7 21C4 67A9  759D 7455 C5E3 C0CD CEB9
     Subkey fingerprint: 94B7 38DD 3501 32F5 ACBE  EA1D 5543 2DF3 1CCD 4FCD
[email protected]:~$ echo '6581506f8a030d8d50b38744ba7144f2765c9028d18d990beb316e13655ab248  monero-linux-x64-v0.11.1.0.tar.bz2' | shasum -c
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/
```
+ Maak een `systemd`-bestand.

```
[email protected]:~$ sudo gedit /home/user/monerod.service
```

Plak de volgende gegevens:

```
[Unit]
Description=Monero Full Node
After=network.target

[Service]
User=user
Group=user

Type=forking
PIDFile=/home/user/.bitmonero/monerod.pid

ExecStart=/usr/local/bin/monerod --detach --data-dir=/home/user/.bitmonero \
    --no-igd --pidfile=/home/user/.bitmonero/monerod.pid \
    --log-file=/home/user/.bitmonero/bitmonero.log --p2p-bind-ip=127.0.0.1

Restart=always
PrivateTmp=true

[Install]
WantedBy=multi-user.target
```

+ Kopieer het uitvoerbare bestand `monero-wallet-cli` naar de VM `monero-wallet-ws`.

```
[email protected]:~$ qvm-copy-to-vm monero-wallet-ws monero-v0.11.1.0/monero-wallet-cli
```

+ Zorg dat de daemon `monerod` wordt uitgevoerd bij het opstarten door het bestand `/rw/config/rc.local` te bewerken.

```
[email protected]:~$ sudo gedit /rw/config/rc.local
```

Voeg onderaan deze regels toe:

```
cp /home/user/monerod.service /lib/systemd/system/
systemctl start monerod.service
```

Maak het bestand uitvoerbaar.

```
[email protected]:~$ sudo chmod +x /rw/config/rc.local
```

+ Maak het RPC-actiebestand.

```
[email protected]:~$ sudo mkdir /rw/usrlocal/etc/qubes-rpc
[email protected]:~$ sudo gedit /rw/usrlocal/etc/qubes-rpc/user.monerod
```

Voeg deze regel toe:

```
socat STDIO TCP:localhost:18081
```

+ Sluit `monerod-ws` af.

## 3. In de AppVM `monero-wallet-ws`:

+ Verplaats het uitvoerbare bestand `monero-wallet-cli`.

```
[email protected]:~$ sudo mv QubesIncoming/monerod-ws/monero-wallet-cli /usr/local/bin/
```

+ Bewerk het bestand `/rw/config/rc.local`.

```
[email protected]:~$ sudo gedit /rw/config/rc.local
```

Voeg onderaan deze regel toe:

```
socat TCP-LISTEN:18081,fork,bind=127.0.0.1 EXEC:"qrexec-client-vm monerod-ws user.monerod"
```

Maak het bestand uitvoerbaar.

```
[email protected]:~$ sudo chmod +x /rw/config/rc.local
```

+ Sluit `monero-wallet-ws` af.

## 4. In `dom0`:

+ Maak het bestand `/etc/qubes-rpc/policy/user.monerod`:

```
[[email protected] ~]$ sudo nano /etc/qubes-rpc/policy/user.monerod
```

Voeg deze regel toe:

```
monero-wallet-ws monerod-ws allow
```