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の鍵は統一しておくと便利