web-dev-qa-db-ja.com

Hetzner CloudでのUbuntuフルディスク暗号化により、initramfsに静的ルートが追加されます

HetznerCloud上でフルディスク暗号化を使用してUbuntuをセットアップしようとしています。 initramfsでのネットワーク接続以外はすべて機能しました。 UIコンソールのおかげでロックを解除することが可能ですが、最初にSSH(dropbear)が必要です。ルートサーバーで同じ構成を問題なく使用できました。

DhcpでIPを取得するようにdropbearを設定すると、常にNETWORK IS UNREACHABLEになります。ただし、dhcpサーバーから適切なパラメーターを取得します。ヘッツナーサポートに聞いてみました。彼らは、dhcpクライアントはRFC 3442クラスレス静的ルートオプションをサポートしていないと考えており、ip r a 172.31.1.1 dev ens3を使用して静的ルートを追加することを推奨しています。このように 質問 ルートを追加しましたが、常に同じエラーが発生しました:NETWORK IS UNREACHABLE。さまざまなスクリプトでルートを設定するためにテストしましたが、何も変わりませんでした。私はUbuntu 16.04と18.04をテストしました。

私はこれについてのどんな推薦にも満足しています。ありがとう!

3
user2638109

このスレッドに出くわした人のために:

少なくともDebianStretchでは、もう少し一般的な構成(パッケージの更新時に壊れることはありません)が機能します。 init-premountのスクリプトを使用して、ネットワークを静的に構成するだけです。

vi/etc/initramfs-tools/scripts/init-premount/static-routes

#!/bin/sh 
# /etc/initramfs-tools/scripts/init-premount/static-routes

# to avoid race condition
# we have to wait until the automatic network configuration via dhcp
# is finished
sleep 15

ip a add 192.168.0.18/32 dev eth0
ip route add 192.168.178.1 dev eth0
ip route add default via 192.168.178.1 dev eth0

exit 0

chmod 755/etc/initramfs-tools/scripts/init-premount/static-routes

1
jajo

initramfsがこのようなHetznerクラウドインスタンスでのみ失敗することはあり得ないという同じ問題/テクニカルサポートとの小さな議論がありました。

ただし、Hetzner Supportは、DHCPサーバーが RFC3442 に準拠していることのみを繰り返し述べています。これは、内部クラウドGWへのデフォルトのホストルートをアナウンスします。したがって、これはinitramfs dhcpクライアントの問題である必要があり、おそらく可能性のあるBootP応答をセットアップすることができませんでした(そうしませんでしたか?)。正しいIP = ...パラメータを使用します。

私はこれについてドキュメントを更新することを提案しましたが、「ドキュメント用にwikiを自由に使用してください」...(marketing;)...)回答 here は正しくありません:

Hetzner_OL 6か月前[-]

Docker/dbaasについての提案をありがとう。私はそれを開発チームに渡しました。通常、開発中の新製品や機能は、準備が整うまで公開しませんが、アップグレードに関する情報は、開発が進むにつれて引き続き投稿します。

DSGVOについて:ファイルシステムの暗号化をサポートしていますか? ->

Hetzner Cloudサーバーは完全に仮想化されています。したがって、顧客はサーバー全体を完全に暗号化できます。 --Katie、マーケティング、Hetzner Online

私はこの問題の質問/解決策を見つけようとしましたが、今日見つけた唯一の一致はあなたの質問です;)

インターフェイスをセットアップするための参照された答えは部分的に正しいです。しかし、質問から、彼がゲートウェイへの静的ホストルートも必要であることが明確ではなかったため、回答に含まれていません。

この問題の私の迅速な解決策は、このような「動的に」必要な関数に手動でパッチを適用することです。/run/net-ens3.confですべての変数を確認できます。

root@image-debian-jessie-94 ~ # diff -p /usr/share/initramfs-tools/scripts/functions{.orig,}
*** /usr/share/initramfs-tools/scripts/functions.orig   2018-07-31 12:46:40.911167456 +0200
--- /usr/share/initramfs-tools/scripts/functions        2018-07-31 12:50:30.736742035 +0200
*************** configure_networking()
*** 274,279 ****
--- 274,284 ----
                # ipconfig should have quit after first response
                . /run/net-*.conf
        fi
+
+       # Hack for Hetzner vServer static route enhanced like shown partly in this answer:
+       # https://serverfault.com/questions/909040/static-route-in-initramfs
+       ip route add ${IPV4GATEWAY}/${IPV4NETMASK} dev ${DEVICE}
+       ip route add default via ${IPV4GATEWAY} dev ${DEVICE}
  }

  # Wait for queued kernel/udev events

テストして、私のためにうまくいきました。最小のイメージをセットアップ/スナップショットできました。

暗号化されたスナップショットは、暗号化されていない0.5GBと比較して最大18GBですが、セキュリティの向上と比較すると、スナップショットの価格は依然として問題ありません(通常、Openstackベースのシステムには、これを透過的に実行できるキーマネージャーサービスが必要です。;)

2
Reiner030