Rabbit Slide Show

OSC 2021 Online/Nagoya LT

2021-05-29

Description

Text

Page: 1

DebianでWOLと
Dropbearを組み合わせて
起動する方法
暗号化LVMだがパスフレーズ省略までは頑張らない
Kentaro Hayashi
ClearCode Inc.
OSC 2021 Online/Nagoya Lightning Talks

Page: 2

スライドは公開済みです
DebianでWOLとDropbearを組み合わせて起動する方
法
https://slide.rabbit-shocker.org/authors/kenhys/
osc2021-online-nagoya-lt-20210529/

Page: 3

プロフィール
ひよこDebian Developer @kenhys
トラックポイント(ソフトドーム派)
わさビーフ(わさっち派)

Page: 4

本日の内容
リモートから比較的簡単に
Debianマシン(Bullseye)を起動する事例紹介

Page: 5

なぜリモートから起動した
いか
COVID-19前
たまに在宅勤務するときは社内チャット(Zulip)で
電源を入れてもらうようお願いする
のどかな光景
COVID-19後
在宅勤務のためオフィスにお願いできる人がいるとは限
らない

Page: 6

前提条件
社内ネットワークにSSH Gatewayを経由して入れる環
境あり
リモート起動したいマシンには社内の固定IPがふられ
ている
対象マシンのディスクの暗号化LVMは有効にしておき
たい
パスフレーズの入力の省略までは頑張らなくていい

Page: 7

解決策
電源投入はWake on LANで実施
暗号化LVMパスフレーズはSSH経由で入力する
Dropbearを設定しておく
ホスト鍵のfingerprint不一致への対策
DropbearとOpenSSHのホストの鍵を揃える

Page: 8

Wake on LANで電源投入
対象のマシンにマジックパケットを投げつける
社内の他のマシンにwakeonlanがインストールされて
いる必要あり
$ sudo apt install -y wakeonlan
$ wakeonlan (対象のMACアドレス)

Page: 9

暗号化LVMのパスフレーズ
入力
Dropbearのインストール
SSHの公開鍵を設定
GRUBの設定
ホスト鍵を揃える
initramfsの更新

Page: 10

Dropbearのインストール
Dropbearとは
https://matt.ucc.asn.au/dropbear/dropbear.html
リソースの制約のきびしい組み込み機器向けSSHサー
バー
$ sudo apt install -y dropbear busybox

Page: 11

SSHの公開鍵を設定
/etc/dropbear-initramfs/authorized_keys
sshで~/.ssh/authorized_keysを置くのと一緒

Page: 12

GRUBの設定
GRUB_CMDLINE_LINUX="ip=(固定IP)::192.168.10.1:255.255.255.0::eno1:none"
/etc/default/grub を書き換える
インタフェース名(eno1)等は適宜読み替えて設定する
sudo update-grubで更新する

Page: 13

DropbearとOpenSSHのホ
ストの鍵を揃える
初期設定ではDropbearとOpenSSHそれぞれでホスト
の鍵を生成する
同一IPでホスト鍵が変わるとssh接続時にエラーになるの
で面倒
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
dropbearconvertで鍵を変換できる

Page: 14

変換対象の鍵
/etc/ssh/ssh_host_ecdsa_key
/etc/dropbear-initramfs/dropbear_ecdsa_host_key
/etc/ssh/ssh_host_ed25519_key
/etc/dropbear-initramfs/dropbear_ed25519_host_key
/etc/ssh/ssh_host_rsa_key
/etc/dropbear-initramfs/dropbear_rsa_host_key

Page: 15

dropbearconvertの注意
(Bullseye)
dropbear 2020.81-3 で openssh 8.4p1-5の場合
$ sudo dropbearconvert openssh dropbear \
/etc/ssh/ssh_host_ecdsa_key \
/etc/dropbear-initramfs/dropbear_ecdsa_host_key
Error: Unsupported OpenSSH key type
Error reading key from '/etc/ssh/ssh_host_ecdsa_key'

Page: 16

あつかえる形式に前処理す
る
ssh-keygen -mを指定してPEM形式に変換する
$ cp /etc/ssh/ssh_host_ecdsa_key /tmp
$ ssh-keygen -p -m PEM -f /tmp/ssh_host_ecdsa_key

Page: 17

前処理した鍵を変換する
$ sudo dropbearconvert openssh dropbear \
/tmp/ssh_host_ecdsa_key \
/etc/dropbear-initramfs/dropbear_ecdsa_host_key
$ sudo dropbearconvert openssh dropbear \
/tmp/ssh_host_ed25519_key \
/etc/dropbear-initramfs/dropbear_ed25519_host_key
$ sudo dropbearconvert openssh dropbear \
/tmp/ssh_host_rsa_key \
/etc/dropbear-initramfs/dropbear_rsa_host_key

Page: 18

initramfsを更新する
$ sudo update-initramfs -u

Page: 19

Wake on LANで起動する
$ wakeonlan (MACアドレス)
Sending magic packet to 255.255.255.255:9 with (MACアドレス)

Page: 20

SSHで暗号化LVMのパス
ワードを解除
暗号化LVMのパスフレーズを入力するとsshが切れて通
常起動する
% ssh radiant-rboot
To unlock root partition, and maybe others like swap, run `cryptroot-unlock`.
BusyBox v1.30.1 (Debian 1:1.30.1-6+b1) built-in shell (ash)
Enter 'help' for a list of built-in commands.
~ # cryptroot-unlock
Please unlock disk nvme0n1p3_crypt:
cryptsetup: nvme0n1p3_crypt set up successfully
~ # Connection to 192.168.10.109 closed by remote host.
Connection to 192.168.10.109 closed.

Page: 21

まとめ
Wake on LANとDropbearでリモートからの起動を実現
できる
起動時のパスフレーズ入力は許容できるならお手軽
OpenSSHとDropbearの鍵は統一しておくと便利

Other slides

DebConf20 DebConf20
2020-08-25