rabbit-slide-kenhys-osc2021-online-nagoya-lt-20210529 2021.05.29.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 231b8842424f86c49f8d8214789115fda59b5ff0b17c24b2f84e1ebd3e379f21
4
+ data.tar.gz: 8c99cbf71c09f22f652f64da6afb9b5f604162c9a54f774f623c126e6390bd0c
5
+ SHA512:
6
+ metadata.gz: 27e165e900ab3c1c3080b6e002abb882568c95d817bdd553f78edd35d0d0b67109237fd00ceaa2b555d8d2c57cedd81bbf5eecbf033131f551762682f6c34ba8
7
+ data.tar.gz: aeb6445026c6ee12610c3d5d3f51ac1cc9d00d931e45f7a182b43288e60a3025496639e52e1ef78c4c731f2eaf312b9dd72995367c740694e914237af32c79a8
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ --size=1024,768 osc2021-online-nagoya-lt.md
data/README.md ADDED
@@ -0,0 +1,14 @@
1
+ # OSC 2021 Online/Nagoya LT
2
+
3
+ ## How to show
4
+
5
+ % rabbit
6
+
7
+ ## How to install
8
+
9
+ % gem install rabbit-slide-kenhys-osc2021-online-nagoya-lt-20210529
10
+
11
+ ## How to create PDF
12
+
13
+ % rake pdf
14
+
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("rabbit-theme-YOUR-THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
data/config.yaml ADDED
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: osc2021-online-nagoya-lt-20210529
3
+ base_name: osc2021-online-nagoya-lt
4
+ tags:
5
+ - rabbit
6
+ - dropbear
7
+ presentation_date: 2021-05-29
8
+ presentation_start_time:
9
+ presentation_end_time:
10
+ slideshare_id:
11
+ version: 2021.05.29.1
12
+ licenses:
13
+ - CC-BY-SA-4.0
14
+ slideshare_id: kenhys
15
+ speaker_deck_id:
16
+ vimeo_id:
17
+ youtube_id:
18
+ author:
19
+ markup_language: :md
20
+ name: Kentaro Hayashi
21
+ email: kenhys@gmail.com
22
+ rubygems_user: kenhys
23
+ slideshare_user:
24
+ speaker_deck_user:
Binary file
@@ -0,0 +1,202 @@
1
+ # DebianでWOLとDropbearを組み合わせて起動する方法
2
+
3
+ subtitle
4
+ : 暗号化LVMだがパスフレーズ省略までは頑張らない
5
+
6
+ author
7
+ : Kentaro Hayashi
8
+
9
+ institution
10
+ : ClearCode Inc.
11
+
12
+ content-source
13
+ : OSC 2021 Online/Nagoya Lightning Talks
14
+
15
+ allotted-time
16
+ : 5m
17
+
18
+ theme
19
+ : .
20
+
21
+ # スライドは公開済みです
22
+
23
+ * DebianでWOLとDropbearを組み合わせて起動する方法
24
+ * <https://slide.rabbit-shocker.org/authors/kenhys/osc2021-online-nagoya-lt-20210529/>
25
+
26
+ # プロフィール
27
+
28
+ ![](images/profile.png){:relative-height="60" align="right"}
29
+
30
+ * ひよこDebian Developer @kenhys
31
+ * トラックポイント(ソフトドーム派)
32
+ * わさビーフ(わさっち派)
33
+
34
+ # 本日の内容
35
+
36
+ * リモートから比較的簡単に\\nDebianマシン(Bullseye)を起動する事例紹介
37
+ {::comment}
38
+ まだリリースされていない
39
+ {:/comment}
40
+
41
+ # なぜリモートから起動したいか
42
+
43
+ * COVID-19前
44
+ * たまに在宅勤務するときは社内チャット(Zulip)で\\n電源を入れてもらうようお願いする\\nのどかな光景😊
45
+ * COVID-19後
46
+ * 在宅勤務のためオフィスにお願いできる人がいるとは限らない🤔
47
+
48
+ # 前提条件
49
+
50
+ * 社内ネットワークにSSH Gatewayを経由して入れる環境あり
51
+ * リモート起動したいマシンには**社内の固定IP**がふられている
52
+ * 対象マシンのディスクの**暗号化LVMは有効**にしておきたい
53
+ * パスフレーズの入力の省略までは頑張らなくていい
54
+
55
+ # 解決策
56
+
57
+ * 電源投入はWake on LANで実施
58
+ * 暗号化LVMパスフレーズはSSH経由で入力する
59
+ * Dropbearを設定しておく
60
+ * ホスト鍵のfingerprint不一致への対策
61
+ * DropbearとOpenSSHのホストの鍵を揃える
62
+
63
+ # Wake on LANで電源投入
64
+
65
+ * 対象のマシンにマジックパケットを投げつける
66
+ * 社内の他のマシンにwakeonlanがインストールされている必要あり
67
+
68
+ ```sh
69
+ $ sudo apt install -y wakeonlan
70
+ $ wakeonlan (対象のMACアドレス)
71
+ ```
72
+
73
+ # 暗号化LVMのパスフレーズ入力
74
+
75
+ * Dropbearのインストール
76
+ * SSHの公開鍵を設定
77
+ * GRUBの設定
78
+ * ホスト鍵を揃える
79
+ * initramfsの更新
80
+
81
+ # Dropbearのインストール
82
+
83
+ * Dropbearとは
84
+ * <https://matt.ucc.asn.au/dropbear/dropbear.html>
85
+ * リソースの制約のきびしい組み込み機器向けSSHサーバー
86
+
87
+ ```sh
88
+ $ sudo apt install -y dropbear busybox
89
+ ```
90
+
91
+
92
+ # SSHの公開鍵を設定
93
+
94
+ * /etc/dropbear-initramfs/authorized_keys
95
+
96
+ * sshで~/.ssh/authorized_keysを置くのと一緒
97
+
98
+ # GRUBの設定
99
+
100
+ ```sh
101
+ GRUB_CMDLINE_LINUX="ip=(固定IP)::192.168.10.1:255.255.255.0::eno1:none"
102
+ ```
103
+
104
+ * /etc/default/grub を書き換える
105
+ * インタフェース名(eno1)等は適宜読み替えて設定する
106
+ * sudo update-grubで更新する
107
+
108
+ # DropbearとOpenSSHのホストの鍵を揃える
109
+
110
+ * 初期設定ではDropbearとOpenSSHそれぞれでホストの鍵を生成する
111
+ * 同一IPでホスト鍵が変わるとssh接続時にエラーになるので面倒
112
+
113
+ ```sh
114
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
115
+ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
116
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
117
+ ```
118
+
119
+ * dropbearconvertで鍵を変換できる
120
+
121
+ # 変換対象の鍵
122
+
123
+ * /etc/ssh/ssh_host_ecdsa_key
124
+ * /etc/dropbear-initramfs/dropbear_ecdsa_host_key
125
+ * /etc/ssh/ssh_host_ed25519_key
126
+ * /etc/dropbear-initramfs/dropbear_ed25519_host_key
127
+ * /etc/ssh/ssh_host_rsa_key
128
+ * /etc/dropbear-initramfs/dropbear_rsa_host_key
129
+
130
+
131
+ # dropbearconvertの注意(Bullseye)
132
+
133
+ * dropbear 2020.81-3 で openssh 8.4p1-5の場合
134
+
135
+ ```sh
136
+ $ sudo dropbearconvert openssh dropbear \
137
+ /etc/ssh/ssh_host_ecdsa_key \
138
+ /etc/dropbear-initramfs/dropbear_ecdsa_host_key
139
+ Error: Unsupported OpenSSH key type
140
+ Error reading key from '/etc/ssh/ssh_host_ecdsa_key'
141
+ ```
142
+
143
+ # あつかえる形式に前処理する
144
+
145
+ * ssh-keygen -mを指定してPEM形式に変換する
146
+
147
+ ```sh
148
+ $ cp /etc/ssh/ssh_host_ecdsa_key /tmp
149
+ $ ssh-keygen -p -m PEM -f /tmp/ssh_host_ecdsa_key
150
+ ```
151
+
152
+
153
+ # 前処理した鍵を変換する
154
+
155
+ ```sh
156
+ $ sudo dropbearconvert openssh dropbear \
157
+ /tmp/ssh_host_ecdsa_key \
158
+ /etc/dropbear-initramfs/dropbear_ecdsa_host_key
159
+ $ sudo dropbearconvert openssh dropbear \
160
+ /tmp/ssh_host_ed25519_key \
161
+ /etc/dropbear-initramfs/dropbear_ed25519_host_key
162
+ $ sudo dropbearconvert openssh dropbear \
163
+ /tmp/ssh_host_rsa_key \
164
+ /etc/dropbear-initramfs/dropbear_rsa_host_key
165
+ ```
166
+
167
+ # initramfsを更新する
168
+
169
+ ```sh
170
+ $ sudo update-initramfs -u
171
+ ```
172
+
173
+ # Wake on LANで起動する
174
+
175
+ ```sh
176
+ $ wakeonlan (MACアドレス)
177
+ Sending magic packet to 255.255.255.255:9 with (MACアドレス)
178
+ ```
179
+
180
+ # SSHで暗号化LVMのパスワードを解除
181
+
182
+ * 暗号化LVMのパスフレーズを入力するとsshが切れて通常起動する
183
+
184
+ ```ssh
185
+ % ssh radiant-rboot
186
+ To unlock root partition, and maybe others like swap, run `cryptroot-unlock`.
187
+
188
+
189
+ BusyBox v1.30.1 (Debian 1:1.30.1-6+b1) built-in shell (ash)
190
+ Enter 'help' for a list of built-in commands.
191
+ ~ # cryptroot-unlock
192
+ Please unlock disk nvme0n1p3_crypt:
193
+ cryptsetup: nvme0n1p3_crypt set up successfully
194
+ ~ # Connection to 192.168.10.109 closed by remote host.
195
+ Connection to 192.168.10.109 closed.
196
+ ```
197
+
198
+ # まとめ
199
+
200
+ * Wake on LANとDropbearでリモートからの起動を実現できる
201
+ * 起動時のパスフレーズ入力は許容できるならお手軽
202
+ * OpenSSHとDropbearの鍵は統一しておくと便利
data/theme.rb ADDED
@@ -0,0 +1,5 @@
1
+ @default_font = "Ubuntu"
2
+ @monospace_font = "Ubuntu"
3
+ include_theme("debian")
4
+ @slide_show_span = 1300
5
+ @slide_show_loop = true
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-kenhys-osc2021-online-nagoya-lt-20210529
3
+ version: !ruby/object:Gem::Version
4
+ version: 2021.05.29.1
5
+ platform: ruby
6
+ authors:
7
+ - Kentaro Hayashi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-05-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: ''
28
+ email:
29
+ - kenhys@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.md
36
+ - Rakefile
37
+ - config.yaml
38
+ - images/profile.png
39
+ - osc2021-online-nagoya-lt.md
40
+ - pdf/osc2021-online-nagoya-lt-20210529-osc2021-online-nagoya-lt.pdf
41
+ - theme.rb
42
+ homepage: https://slide.rabbit-shocker.org/authors/kenhys/osc2021-online-nagoya-lt-20210529/
43
+ licenses:
44
+ - CC-BY-SA-4.0
45
+ metadata: {}
46
+ post_install_message:
47
+ rdoc_options: []
48
+ require_paths:
49
+ - lib
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ requirements: []
61
+ rubygems_version: 3.1.6
62
+ signing_key:
63
+ specification_version: 4
64
+ summary: OSC 2021 Online/Nagoya LT
65
+ test_files: []