Skip to content

Commit 259fceb

Browse files
committed
update FAQ with ssh hardening options
1 parent e15c71b commit 259fceb

1 file changed

Lines changed: 68 additions & 51 deletions

File tree

FAQ.md

Lines changed: 68 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,44 @@
11
<!-- omit in toc -->
2-
# [Frequently Asked Questions and Notes](#frequently-asked-questions-and-notes)
3-
- [Public JoinMarket Order Book links](#public-joinmarket-order-book-links)
4-
- [Signet links](#signet-links)
2+
# Frequently Asked Questions and Notes
3+
4+
- [Public JoinMarket Order Book links](#public-joinmarket-order-book-links)
5+
- [Signet links](#signet-links)
6+
- [SSH hardening options](#ssh-hardening-options)
7+
- [SSH key authentication](#ssh-key-authentication)
8+
- [Two factor authenetication (2FA) for SSH](#two-factor-authenetication-2fa-for-ssh)
59
- [Log in through SSH using a hardware wallet](#log-in-through-ssh-using-a-hardware-wallet)
6-
- [SSH through Tor from Linux](#ssh-through-tor-from-linux)
7-
- [Allow Tor to connect to localhost](#allow-tor-to-connect-to-localhost)
8-
- [Set up Armbian on the Hardkernel Odroid XU4](#set-up-armbian-on-the-hardkernel-odroid-xu4)
9-
- [Download and verify Raspbian SDcard image for a Raspberry Pi](#download-and-verify-raspbian-sdcard-image-for-a-raspberry-pi)
10-
- [Error when connecting to a full node remotely through Tor](#error-when-connecting-to-a-full-node-remotely-through-tor)
11-
- [Nuke the joinmarket user and the /home/joinmarket folder](#nuke-the-joinmarket-user-and-the-homejoinmarket-folder)
12-
- [Sample bitcoin.conf for a remote node accepting RPC connections through LAN](#sample-bitcoinconf-for-a-remote-node-accepting-rpc-connections-through-lan)
13-
- [Using the 2.13" WaveShare e-ink display](#using-the-213-waveshare-e-ink-display)
14-
- [Compile Tor for the RPi Zero (armv6l)](#compile-tor-for-the-rpi-zero-armv6l)
15-
- [Build the SDcard image](#build-the-sdcard-image)
16-
- [Boot Ubuntu Live from USB: https://releases.ubuntu.com/focal/ubuntu-20.04.2-desktop-amd64.iso](#boot-ubuntu-live-from-usb-httpsreleasesubuntucomfocalubuntu-20042-desktop-amd64iso)
17-
- [Download and verify the base image](#download-and-verify-the-base-image)
18-
- [Flash the base image to the SDcard](#flash-the-base-image-to-the-sdcard)
19-
- [Prepare the base image](#prepare-the-base-image)
20-
- [Install Joininbox](#install-joininbox)
21-
- [Prepare the SDcard release](#prepare-the-sdcard-release)
22-
- [Sign the image on an airgapped computer](#sign-the-image-on-an-airgapped-computer)
23-
- [Verify the downloaded the image](#verify-the-downloaded-the-image)
24-
- [Linux instructions](#linux-instructions)
25-
- [Windows instructions](#windows-instructions)
26-
- [Wallet recovery](#wallet-recovery)
27-
- [on JoininBox](#on-joininbox)
28-
- [on the remote node](#on-the-remote-node)
29-
- [USB SSD recommendation](#usb-ssd-recommendation)
30-
- [Pruned node notes](#pruned-node-notes)
31-
- [External drive](#external-drive)
32-
### Public JoinMarket Order Book links
10+
- [SSH through Tor from Linux](#ssh-through-tor-from-linux)
11+
- [Allow Tor to connect to localhost](#allow-tor-to-connect-to-localhost)
12+
- [Set up Armbian on the Hardkernel Odroid HC1 / XU4](#set-up-armbian-on-the-hardkernel-odroid-hc1--xu4)
13+
- [Download and verify Raspbian SDcard image for a Raspberry Pi](#download-and-verify-raspbian-sdcard-image-for-a-raspberry-pi)
14+
- [Error when connecting to a full node remotely through Tor](#error-when-connecting-to-a-full-node-remotely-through-tor)
15+
- [Erase the joinmarket user and the /home/joinmarket folder](#erase-the-joinmarket-user-and-the-homejoinmarket-folder)
16+
- [Sample bitcoin.conf for a remote node accepting RPC connections through LAN](#sample-bitcoinconf-for-a-remote-node-accepting-rpc-connections-through-lan)
17+
- [Using the 2.13" WaveShare e-ink display](#using-the-213-waveshare-e-ink-display)
18+
- [Compile Tor for the RPi Zero (armv6l)](#compile-tor-for-the-rpi-zero-armv6l)
19+
- [Build the SDcard image](#build-the-sdcard-image)
20+
- [Boot Ubuntu Live from USB: https://releases.ubuntu.com/focal/ubuntu-20.04.2-desktop-amd64.iso](#boot-ubuntu-live-from-usb-httpsreleasesubuntucomfocalubuntu-20042-desktop-amd64iso)
21+
- [Download and verify the base image](#download-and-verify-the-base-image)
22+
- [Flash the base image to the SDcard](#flash-the-base-image-to-the-sdcard)
23+
- [Prepare the base image](#prepare-the-base-image)
24+
- [Install Joininbox](#install-joininbox)
25+
- [Prepare the SDcard release](#prepare-the-sdcard-release)
26+
- [Sign the image on an airgapped computer](#sign-the-image-on-an-airgapped-computer)
27+
- [Verify the downloaded the image](#verify-the-downloaded-the-image)
28+
- [Linux instructions](#linux-instructions)
29+
- [Windows instructions](#windows-instructions)
30+
- [Wallet recovery](#wallet-recovery)
31+
- [on JoininBox](#on-joininbox)
32+
- [on the remote node](#on-the-remote-node)
33+
- [USB SSD recommendation](#usb-ssd-recommendation)
34+
- [Pruned node notes](#pruned-node-notes)
35+
- [External drive](#external-drive)
36+
37+
## Public JoinMarket Order Book links
3338
* <https://nixbitcoin.org/obwatcher/>
3439
* <https://ttbit.mine.bz/orderbook>
3540

36-
### Signet links
41+
## Signet links
3742
* Faucet (free signet coins): https://signet.bc-2.jp
3843
* Block Explorer:
3944
* esplora: <https://explorer.bc-2.jp>
@@ -42,6 +47,14 @@
4247
* [Concise instructions on setting up Joinmarket for testing on signet](https://gist.github.com/AdamISZ/325716a66c7be7dd3fc4acdfce449fb1)
4348
* <https://en.bitcoin.it/wiki/Signet>
4449

50+
## SSH hardening options
51+
52+
### SSH key authentication
53+
* <https://stadicus.github.io/RaspiBolt/raspibolt_21_security.html#login-with-ssh-keys>
54+
55+
### Two factor authenetication (2FA) for SSH
56+
* <https://pimylifeup.com/setup-2fa-ssh/>
57+
4558
### Log in through SSH using a hardware wallet
4659
* See the official pages for:
4760
* [Trezor](https://wiki.trezor.io/Apps:SSH_agent)
@@ -53,7 +66,7 @@
5366
* paste the generated SSH pubkey to:
5467
`$ nano /home/joinmarket/.ssh/authorized_keys`
5568

56-
### SSH through Tor from Linux
69+
## SSH through Tor from Linux
5770
On a RaspiBlitz
5871
* since v1.4 there is a script to create a hidden service on your blitz:
5972
`./config.scripts/internet.hiddenservice.sh ssh 22 22`
@@ -83,7 +96,7 @@ On a Debian based Linux Desktop (Ubuntu, Debian, MX Linux etc.)
8396
Use `ssh` with `torify` on the desktop (needs Tor installed):
8497
`torify ssh admin@HiddenServiceAddress.onion`
8598
86-
### Allow Tor to connect to localhost
99+
## Allow Tor to connect to localhost
87100
* To solve the error when running `$ torify python yg-privacyenhanced.py wallet.jmdat`
88101
```
89102
[INFO] starting yield generator
@@ -107,7 +120,7 @@ Use `ssh` with `torify` on the desktop (needs Tor installed):
107120
* Restart Tor:
108121
`sudo systemctl restart tor`
109122
110-
### Set up Armbian on the Hardkernel Odroid HC1 / XU4
123+
## Set up Armbian on the Hardkernel Odroid HC1 / XU4
111124
* Download the base image (`.img.gz`), the `.sha` and `.asc` file
112125
https://www.armbian.com/odroid-xu4/
113126
* Verify: https://docs.armbian.com/User-Guide_Getting-Started/#how-to-check-download-authenticity
@@ -138,7 +151,8 @@ https://www.armbian.com/odroid-xu4/
138151
* Create a new user called `joinmarket` and set the password (the password will be changed to `joininbox`).
139152
Keep pressing [ENTER] to use the default user information.
140153
* Continue to [install JoininBox](README.md#install-joininbox)
141-
### Download and verify Raspbian SDcard image for a Raspberry Pi
154+
155+
## Download and verify Raspbian SDcard image for a Raspberry Pi
142156
To be able to open the JoinMarket-QT GUI on the dekstop from the RPI
143157
need to use the Raspberry Pi OS (32-bit) with desktop inage
144158
* Download image:
@@ -157,18 +171,19 @@ Read more on [how to gain ssh access here](https://www.raspberrypi.org/documenta
157171
The default password is: `raspberry`
158172
* Continue to [install JoininBox](README.md#install-joininbox)
159173
160-
### Error when connecting to a full node remotely through Tor
174+
## Error when connecting to a full node remotely through Tor
161175
* Getting the error:
162176
```
163177
socket.gaierror: [Errno -2] Name or service not known
164178
```
165179
* Remember to use `torify` with the python scripts when connecting remotely through Tor. Example:
166180
`torify wallet-tool.py wallet.jmdat`
167181
168-
### Nuke the joinmarket user and the /home/joinmarket folder
182+
## Erase the joinmarket user and the /home/joinmarket folder
183+
`sudo srm -rf /home/joinmarket/`
169184
`sudo userdel -rf joinmarket`
170185
171-
### Sample bitcoin.conf for a remote node accepting RPC connections through LAN
186+
## Sample bitcoin.conf for a remote node accepting RPC connections through LAN
172187
```
173188
# bitcoind configuration
174189

@@ -220,7 +235,7 @@ dns=0
220235
peerbloomfilters=1
221236
```
222237
223-
### Using the 2.13" WaveShare e-ink display
238+
## Using the 2.13" WaveShare e-ink display
224239
https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT
225240
https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/README.md
226241
SPI0 is disabled by default. To enable it, use raspi-config, or ensure the line dtparam=spi=on isn't commented out in /boot/config.txt
@@ -267,14 +282,16 @@ Code examples:
267282
https://github.com/waveshare/e-Paper/blob/master/RaspberryPi%26JetsonNano/python/examples/epd_2in13_V2_test.py
268283
https://github.com/21isenough/LightningATM/blob/master/displays/waveshare2in13.py
269284
270-
### Compile Tor for the RPi Zero (armv6l)
285+
## Compile Tor for the RPi Zero (armv6l)
271286
https://2019.www.torproject.org/docs/debian#source
272287
273-
### Build the SDcard image
288+
## Build the SDcard image
274289
* Partially based on: https://github.com/rootzoll/raspiblitz/blob/v1.6/FAQ.md#what-is-the-process-of-creating-a-new-sd-card-image-release
275-
#### Boot Ubuntu Live from USB: https://releases.ubuntu.com/focal/ubuntu-20.04.2-desktop-amd64.iso
290+
291+
### Boot Ubuntu Live from USB: https://releases.ubuntu.com/focal/ubuntu-20.04.2-desktop-amd64.iso
276292
* Connect to a secure WiFi (hardware switch on) or LAN
277-
#### Download and verify the base image
293+
294+
### Download and verify the base image
278295
* Open a terminal
279296
* Paste the following commands (see the comments for the explanations and an example output)
280297
```bash
@@ -305,12 +322,12 @@ https://2019.www.torproject.org/docs/debian#source
305322
# 20201112_raspi_4.img.xz: OK
306323
# sha256sum: WARNING: 10 lines are improperly formatted
307324
```
308-
#### Flash the base image to the SDcard
325+
### Flash the base image to the SDcard
309326
* Connect an SDcard reader with a 8GB SDcard.
310327
* In the file manager open the context menu (right click) on the `.img.xz` file.
311328
* Select the option `Open With Disk Image Writer`.
312329
* Write the image to the SDcard.
313-
#### Prepare the base image
330+
### Prepare the base image
314331
315332
* Before the first boot edit the `sysconf.txt` on the `RASPIFIRM` partition to be able to ssh remotely - needs an authorized ssh pubkey.
316333
* Generate ssh keys on Ubuntu with (keep selecting the defaults with ENTER):
@@ -334,7 +351,7 @@ https://2019.www.torproject.org/docs/debian#source
334351
apt update
335352
apt install sudo wget
336353
```
337-
#### Install Joininbox
354+
### Install Joininbox
338355
* Download and run the build script
339356
```bash
340357
# download
@@ -345,14 +362,14 @@ https://2019.www.torproject.org/docs/debian#source
345362
sudo bash build_joininbox.sh
346363
```
347364
* Monitor/Check outputs for warnings/errors
348-
#### Prepare the SDcard release
365+
### Prepare the SDcard release
349366
* Make the SDcard image safe to share by removing unique infos like ssh pubkeys and network identifiers:
350367
```bash
351368
/home/joinmarket/standalone/prepare.release.sh
352369
```
353370
* Disconnect WiFi/LAN on build laptop (hardware switch off) and shutdown
354371
* Remove Ubuntu LIVE USB stick and cut power from the RaspberryPi
355-
#### Sign the image on an airgapped computer
372+
### Sign the image on an airgapped computer
356373
* Connect USB stick with [Tails](https://tails.boum.org/) (stay offline)
357374
* Power on the Build Laptop (press F12 for boot menu)
358375
* Connect USB stick with GPG signing keys - decrypt drive if needed
@@ -382,8 +399,8 @@ https://2019.www.torproject.org/docs/debian#source
382399
* Upload the new image to server - put the .sig file and sha256sum.txt next to it
383400
* Copy the sha256sum to GitHub README and update the download link
384401

385-
### Verify the downloaded the image
386-
#### Linux instructions
402+
## Verify the downloaded the image
403+
### Linux instructions
387404
* Open a terminal in the directory with the downloaded files
388405
```
389406
joininbox-vX.X.X-YEAR-MONTH-DAY.img.gz
@@ -412,7 +429,7 @@ https://2019.www.torproject.org/docs/debian#source
412429
# joininbox-v0.2.0-2021-02-15.img.gz: OK
413430
```
414431

415-
#### Windows instructions
432+
### Windows instructions
416433
* Download and open the PGP verification software for Windows from <https://www.gpg4win.org>
417434
* Verify the `joininbox-vX.X.X-YEAR-MONTH-DAY.img.gz.sha256` file
418435
* The signature is in the file:

0 commit comments

Comments
 (0)