GCEのファイアウォールでsshを制限しながら、GCPのブラウザからのsshもできるようにする
やりたいこと
SSH制限されたNWなど、sshできないのでクラウド上のサーバーにアクセスできない。
そんな環境で役に立つのが、GCPのブラウザからのsshの機能。
GCPのコンソール画面から、GCEのWEBターミナルを起動できる。
GCPのこの機能は地味に気に入っている。
公式の画像
しかし、この機能はssh許可やパブリックIP付与が必要になる。
セキュリティポリシーで、サーバーへのsshの制限が必要だけど、アクセス経路としてGCPのブラウザからのsshを使いたい場合のメモ。
(2020/11/13)もっと良い方法が出てきたので、こっちの記事参照
GCPのブラウザからのsshの条件
GCPのブラウザからのsshの機能だが、
GCEのファイアウォールで外部のSSHを制限しようとしたり、
グローバルからアクセスできるパブリックIPアドレスのないノードだったりするとアクセスできない。
理由は下記のとおり
公式からの抜粋
ポート上の SSH アクセスを許可するファイアウォール ルールがない。 ポート 22 上の SSH アクセスは、すべての Compute Engine インスタンスでデフォルトで有効になっています。アクセスを無効にしている場合、ブラウザからの SSH は機能しません。22 以外のポートで sshd を実行する場合は、カスタムのファイアウォール ルールを使用してそのポートへのアクセスを有効にする必要があります。
SSH アクセスを許可するファイアウォール ルールが有効になっているが、GCP Console サービスからの接続を許可するように構成されていない。ブラウザベースの SSH セッションの送信元 IP アドレスは、GCP Console によって動的に割り当てられ、セッションごとに異なることがあります。この機能を動作させるには、任意の IP アドレスからの接続、または公開 SPF レコードを使用して取得できる Google の IP アドレス範囲からの接続を許可する必要があります。
公開 SPF レコードを許可IPにする
2019/9/3時点の公開 SPF レコードは以下のとおり。
>nslookup -q=TXT _netblocks.google.com 8.8.8.8
"v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"
>nslookup -q=TXT _netblocks2.google.com 8.8.8.8
"v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~all"
>nslookup -q=TXT _netblocks3.google.com 8.8.8.8
"v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"
GCEのファイアウォールルールに上記の_netblocks.google.comのセグメントと、_netblocks3.google.comのセグメントをssh許可にする。
※IPv6はGCEでサポートしていないので不要
(公式:IPv6 はまだ Compute Engine 上でサポートされていないため無効になっています。)
所感
上記の対処だと、
- 許可しているIP範囲広い
- パブリックIPなしはブラウザsshできる踏み台(Bastion)サーバを利用する
- いつのまにか公開SPFレコード変わってたらやだなー
といったところが残り、解決しきった感はない。
GCEはデフォルトでSSH許可されているし(鍵認証で外部アクセスを制限)、
BeyondCorpな考え方がベースにあるのかなとも思うけど、
ブラウザからのsshはグローバルからではなく、GCPのプライベートから可能にするか、せめて許可IPの範囲を狭めてほしいなーと思う。
Author And Source
この問題について(GCEのファイアウォールでsshを制限しながら、GCPのブラウザからのsshもできるようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/henatyokotraveler/items/bbecf262917a3ea53fdc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .