ブートプロセスの早い段階でポートを開いてSSH経由でLUKSをロック解除する方法


11

私は完全に暗号化されたサーバーでDebian 7を実行し、dropbearとbusyboxを設定して、SSH経由でLUKSコンテナーのロックを解除しました(このチュートリアルこのU&L回答で説明されています)。

残念ながら、再起動時に(LAN経由で)サーバーにSSH接続しようとすると、「接続が拒否されました」というエラーが表示されます。私が試してみましたtelnetし、nmapデフォルトのポート(22)に、両方のポートが閉じていると言います。

サーバーにはufw、LANからのすべてのトラフィックを受け入れるルールがあります。

Anywhere         ALLOW       192.168.1.0/24

dropbearがリッスンするポートを変更しようとしました/etc/defaults/dropbearsshtelnetそれでも接続が拒否されます1

接続してLUKSコンテナーをロック解除できるように、ブートプロセスのその段階でポートが開いていることを確認するにはどうすればよいですか?

ファイアウォールを無効にしても違いはありませんnmap。すべてのポートが閉じられたままです。

2/14更新

break=premountカーネルの行に追加して、initramfsを試してみました。dropbearが開始されましたが、その時点ではネットワークは稼働していません。終了後、ネットワークが起動し、LUKSデバイスのロックを解除するプロンプトが表示されるまでブートが続行されます。

この時点で、ネットワーク稼働しており、ホストには正しいIPアドレスが割り当てられていますが、ポート22はまだ閉じています。

/etc/initramfs-tools/intiramfs.conf私が使用しているIP行は次のとおりです。

export IP=192.168.1.200::192.168.1.1:255.255.255.0::eth0:off

指示と一致して/usr/share/doc/cryptsetup/README.remote.gz、私はちょうど、デバイスオプションを追加しようとしたが、それはネットワークを起動し、DHCPリースを得るのに十分ではありません。

アップデート11/10/14

カールの答えは必要なものでした:セットアップ/etc/initramfs-tools/conf.d/cryptrootが鍵でした:

target=md1_crypt,source=UUID=8570d12k-ccha-4985-s09f-e43dhed9fa2a

このガイドは、より最新で関連性のある(そして成功した)ことも証明しました。


1
うわー!完全にロックされたLUKSをリモートでロック解除できることはまったく知りませんでした。確かに、確かな質問にはお答えできませんが、sshdが開始されていないと思います。私のマシンでは、sshdはプロセスの後半で起動します。
エモリー2012

1
それがbusybox環境にある間、あなたはマシンへのコンソールアクセスがありますか?dropbearが実際に(を介してps)実行され、期待するポートで(を介して)待機していることを確認できますかnetstat
larsk、

larsks-いいえ、コンソールでパスフレーズが入力されるのをプロンプトが待っているため、別のTTYに切り替えると、画面が空白になります(私が正しく理解している場合)。
jasonwryan 2012

(一時的に)LUKS暗号化を削除して、ドロップベアが実際に実行されていることを確認できますか?
Emory 2012

1
break=X初期のinitramfsシェルを取得するためにブートパラメータの1つを使用してみましたか?ファイルシステムの暗号化の問題をデバッグするときはいつでも、私はを使用しますbreak=premount。状況を確認して解決し、起動を続行できます。
Alexios、2012年

回答:


3

私はこれと同じ問題を数週間前(Debian Wheezy 7.6)に取得し、数日のトラブルシューティングの後に、init-topのcryptrootスクリプトが正しく実行されず、停止していなかった設定ファイルがないことがわかりましたsshを介してパスワードを要求し、シーケンスの最後でdropbearを強制終了します(init-bottom)。

構成ファイルが呼び出されcryptroot、下にあるはず/etc/initramfs-tools/conf.d/ です。間違いがない場合、その構成ファイルはインストール中に自動的に作成されたはずです(私はその構成ファイルについて話しているチュートリアルを1つだけ読んだ)が、なんとかしませんでした(物理サーバーとVM、同じOSおよびバージョン)

その時に適切な構文を見つけることができなかったため、適切に構成するために数回の試行が必要でした。私のcryptroot構成ファイルは次のとおりです。

target=crypt-root,source=/dev/vg0/root,lvm=root

構成ファイルを作成したら、initramfsを更新して、もう一度試してください。

update-initramfs -u

あなたは伝説です!ありがとう:私は長い間これに苦労していて、それを解決する希望をほとんどあきらめていました。私のcryptroot構文はあなたの構文とは異なりますが、あなたの答えは私を正しい方向に向けるのに十分でした。お世話になっております。
jasonwryan 2014年

ようやく機能しました。問題を調査しているときにあなたの質問を見ました。実行したら、どうやって解決したかを投稿するべきだと思いました。
Karl

3

件名が間違っています。問題は閉じたポートではなく、バインドされていないポートです。SSHdはまだ開始されていません。それが接続できない理由です。


@camh、それに関して何かルールはありますか?
ポジー

私は編集である最初の文にもっと焦点を合わせていました。残りは良い答えであるとはかなり簡潔ですが、私はまだ答えだと思います。コメントを削除します。
camh

@camh、わかりました...
ポジー

私は使用していませんsshd:質問のとおり、デフォルトでポート22で実行されるdropbearインスタンスに接続しようとしています。
jasonwryan 2014

@jasonwryan、それはあなたが使用しようとしている正確なTCPサービスの役割を果たしていません、それが本当に重要なのはそれが開始されていないことです。
poige 14

3

dropbear(sshサーバー)は、ブートフェーズの非常に早い段階でinit(rcN.d)シーケンスとファイアウォールのinitスクリプトよりも早く開始されることになっています。/よりも前にマウントされています(暗号化されていますよね?)。つまりinitramfs、ブートローダーによってカーネル用にロードされるpre //ユーザーランドです。画像は、のdropbear構成を含むのupdate-initramfs -uコンテンツから(再)生成され/etc/initramfs-tools/ます/etc/initramfs-tools/etc/dropbear/。dropbear configで遊ぶには、それで遊んでください。

したがって、確認すべきいくつかの点:

  • dropbearが起動しません。initbearfsシーケンスにうまく接続されていません。
  • デフォルトのファイアウォールはすべてを拒否します。

ありがとうyarek:私はあなたが正しいと思います-私は私の質問をd​​ebianバグで更新しました(そして機能しない修正)。ファイアウォールを無効にしてみました。
jasonwryan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.