12
12
:toc:
13
13
:toclevels: 5
14
14
15
+ ifdef::env-github[]
16
+ :tip-caption: :bulb:
17
+ :note-caption: :information_source:
18
+ :important-caption: :heavy_exclamation_mark:
19
+ :caution-caption: :fire:
20
+ :warning-caption: :warning:
21
+ endif::[]
22
+
15
23
== ChangeLog
16
24
17
25
IMPORTANT: Until this package has stabilised and until it has reached a 1.0.0
@@ -25,6 +33,10 @@ WARNING: Read the warning above.
25
33
|===
26
34
|Version | Note
27
35
36
+ | *0.4.10*
37
+ a|
38
+ * Improved documentation. No functional changes.
39
+
28
40
| *0.4.1*
29
41
a|
30
42
* Remove unnecessary license headers and simply copy UNLICENSED to appropriate place
@@ -106,9 +118,71 @@ Please refer to your favourite package manager's documentation in learn how to
106
118
install it for you 😄
107
119
108
120
NOTE: Obviously, you must also install Wireguard! Choose either manual
109
- installation (using git and compiling it yourself), or using `wireguard-arch`
110
- or `wireguard-dkms`. Life is short, so personally I just roll with
111
- `wireguard-arch`. Seems to work OOTB for me, but YMMV...
121
+ installation (using git and compiling it yourself), or using
122
+ `wireguard-tools`. Life is short, so personally I just roll with
123
+ `wireguard-tools`.
124
+
125
+ == Additional Requirements
126
+
127
+ This software requires a few necessary additions:
128
+
129
+ * `mkinitcpio-utils`
130
+ * `mkinitcpio-netconf`
131
+
132
+ These packages provide the means to configure the network interface
133
+ via passed in kernel parameters and the ability to ssh to the machine
134
+ remotely. Basic instructions follow:
135
+
136
+ You will need to choose been `mkinitcpio-tinyssh` or
137
+ `mkinitcpio-dropbear` and install one or the other. This documentation
138
+ describes only `mkinitcpio-tinyssh` as it supports ed25519 and I quite
139
+ like it.
140
+
141
+ * `mkinitcpio-tinyssh`
142
+ * `mkinitcpio-dropbear`
143
+
144
+ === mkinitcpio-utils
145
+
146
+ This package configures `encryptssh` to perform remote unlocking. It
147
+ works with both `mkinitcpio-tinyssh` and `mkinitcpio-dropbear`. See
148
+ below on `Hook Installation` for the module ordering for
149
+ `mkinitcpio.conf`
150
+
151
+ === mkinitcpio-netconf
152
+
153
+ This package sets up the interfaces just immediately after booting the
154
+ kernel based upon the IP parameters passed into the kernel via GRUB.
155
+ This is very important as this sets thing up in order for tinyssh (or
156
+ dropbear) and wireguard to function. For example, in your
157
+ `/etc/default/grub` file, the `GRUB_CMDLINE_LINUX` line may look like
158
+ this:
159
+
160
+ ```
161
+ GRUB_CMDLINE_LINUX="cryptdevice=UUID=35fbb65a-eeb9-4a6a-7b13-a05d9b0fcf6f:cryptroot root=/dev/mapper/cryptroot ip=192.168.1.10:192.168.1.1:255.255.255.0::eth0::"
162
+ ```
163
+
164
+ This says to use the cryptdevice defined by the UUID, which will map
165
+ itself to `cryptoroot` after successful unlocking and also set the IP
166
+ parameters on the kernel, i.e., host = 192.168.1.10, gateway =
167
+ 192.168.1.1, netmask = 255.255.255.0, and kernel network interface
168
+ eth0.
169
+
170
+ Further information on the ip kernel parameter can be found
171
+ https://github.com/torvalds/linux/blob/master/Documentation/admin-guide/nfs/nfsroot.rst[here].
172
+
173
+ IMPORTANT: Use the **kernel** device name, i.e., **eth0**, and not the
174
+ well known predictable name, such as **enp0s31f6**.
175
+
176
+ === mkinitcpio-tinyssh (or mkinitcpio-dropbear)
177
+
178
+ This package installs `tinyssh` to allow SSH connections. It's small
179
+ enough to fit into the daemon into the early userspace and allows for
180
+ the use of ed25519 keys (which are great!)
181
+
182
+ The steps here are:
183
+
184
+ . Create an ed25519 keypair using openssh, i.e., `ssh-keygen -t ed25519`
185
+ . Copy the public key to `/etc/tinyssh/root_key`
112
186
113
187
== Configuration
114
188
0 commit comments