PowerVS IBM i 日記(74): PowerVS の Network Security Groups(NSG) ではパブリックアクセスは守れない

# パブリックネットワークからの ssh アクセス許可は全世界へ公開

Docs には「[IBM i 仮想マシン (VM) への接続](https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-connect-ibmi)」として ssh トンネリングを使用したパブリック IP 経由でのアクセス方法がガイドされています。

では、これで何が起こるか確認してみましょう。

まず、自分のローカル側のIPアドレスを調べます。

[https://www.cman.jp/network/support/go_access.cgi](https://www.cman.jp/network/support/go_access.cgi) などで自分のIPアドレスを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/5706f750-db93-4af5-9944-93b5aee5aa9b.png)

Docs 記載の方法で接続した 5250 の netstat で確認すると、自分以外の IP アドレスからの ssh 接続が確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/934ec4d0-fd3a-4606-b30a-238acc83f354.png)

デフォルトの ssh 構成では、パスワード認証も許されています。ssh キーによるアクセスだけに変更しても、ポート自体へのアクセスは許されていますので、いろいろな迷惑行為を受ける可能性があります。

そこで、今回 PowerVS で利用可能になった Network Security Groups(NSG) で、この状況が守れるか確認します。

参考にするのは「[PowerVSのNetwork Security Groups(NSG)を試してみる](https://qiita.com/y_tama/items/601a09de5efd3763a8dd)」です。

# Network Security Groups(NSG) ではパブリックアクセスは守れない

「[PowerVSのNetwork Security Groups(NSG)を試してみる](https://qiita.com/y_tama/items/601a09de5efd3763a8dd)」によれば、

> Security Groupsで保護できるのはPrivate側インターフェースのみ。Public IP（External IP）が付いているインターフェースはSecurity Groupsの保護対象にできない。

え、**解散!** ... なのですが、これは日記なので、実際にどう守れないか確認したいと思います。

# ワークスペースの用意

> Security Groupsに対応しているワークスペースでは、左側のメニューのNetworkingの配下にNetwork security groupsのメニューが表示されています。

先月(2025/02/08)作った PER 対応のワークスペースが あります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/fd02a9e7-8709-4364-bba6-af243decb593.png)

表示されません...orz

> 新規に作成したPER対応ワークスペースで利用可能です。

と書いてあります。そうですか...

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/e47b0fba-bb44-4e6a-8327-e0ff52fddc7b.png)

新しくワークスペースを作りました。

気がついたのですが、ワークスペースの切り替えで、ここの表示に時間がかかっています。対応しているかチェックして、対応していれば表示される仕組みのようです。
下記のイメージの赤枠内はマスクしているのではなく、ローディング中の表示です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/17b1fea2-e2a7-4db2-b475-293d6034cf79.png)

なるほど。新しく作った方では表示されました。本当に「**新規に作成した**PER対応ワークスペース」でした。
現時点では、PER 対応なら OK というものでは無く「**NSG が利用可能になってから**新規作成したワークスペース」なんですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/b21f5874-7a2f-4ef7-a1fe-3b4c309b2c54.png)

> 既存ワークスペースは6月までに順次対応するようです。

これは PER 対応していないワークスペースへのメッセージで、PER に移行していないワークスペースも、6月までには PER 対応に移行されるので、それに対するものと誤解していました。
確認していませんが、Case で依頼すれば先だって移行してくれるかもしれません。

> デフォルトではSecurity Groupsはワークスペースに対し有効になっていない

NSG はワークスペース・レベルの設定です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/18dc3e0e-e8bb-4356-b9f1-ffef19db45bf.png)

有効化してみます。しばらく時間がかかるようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/4e7ead52-9bdd-4edb-83e4-0b7980050707.png)

有効になりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/ed333f80-611d-410b-af78-66840de401d3.png)

# IBM i インスタンスの用意

パブリック・ネットワークを持った IBM i インスタンスを作りました

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/c1ee1e73-65f4-4104-8855-6a31344b8180.png)

これまでやってきた通り、ssh トンネルで 5250 を接続します。
いつも通り接続されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/4db9596f-02ee-4e5f-9ac5-41d8cf90f6c6.png)

# NSG の構成

NSG を構成していきます。

> 有効にした直後は、全てallowの状態

デフォルトのルールがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/bc11471c-5c8d-4955-a686-a153567f30a7.png)

すべて Allow です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/28a637f4-7cd1-4400-b171-91ed7c35c604.png)

[https://www.cman.jp/network/support/go_access.cgi](https://www.cman.jp/network/support/go_access.cgi) などで自分のIPアドレスを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/5706f750-db93-4af5-9944-93b5aee5aa9b.png)

「ネットワーク・アドレス・グループ」を作ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/3bb8771f-0510-4deb-9d16-c6d4b6ebe1eb.png)

今回は /32 で先ほど確認した IP だけに絞ります。複数の CIDR の追加が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/cd6fc59c-e04a-479e-b870-f8309b0b9426.png)

ネットワーク・セキュリティ・グループに戻り「ルールの作成」を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/25b6026e-81ec-4134-9122-f78e40a26caa.png)

先ほど作成した「ネットワーク・アドレス・グループ」からの TCP ポート 22 の許可ルールを作ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/baa2ec19-82e8-4563-b176-042eec934dfc.png)

「TCP」でルールを作成したので、そちらのタブに表示されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/38a5c069-6c2a-4975-bca7-5181b5248dfa.png)

外部アドレスからの Allow を「削除」します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/3cc8823f-6a93-4d8e-bdad-ad28e318486d.png)

IBM i インスタンスをメンバーに追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/193498e4-5a8b-4f1c-894c-6046bd3e32ef.png)

IBM i インスタンスを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/229a6629-7b63-49fa-83c4-28ebb0c29b27.png)

パブリックネットワークのインターフェースを選択し「メンバーの追加」を選びます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/4df0069b-4a26-489d-a16c-b1d0fc38fb54.png)

えっ? もしかして構成できる? と思ったら、ここでエラーになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/120f9c30-35cb-4686-aca8-565a1a96a646.png)

拡大すると、このようなメッセージです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/3dc2943f-4dcd-4ad2-aa16-9545761047b4.png)

# 選べるのは UI のバグで修正予定

Case で問い合わせたところ、パブリックネットワークのインターフェースが選べてしまうことが、バグなのだそうです。
選択できないように修正するとのことでした。

> As per our backend team: NSG is only for private interfaces. It's a bug in UI to list the public interfaces to add as member to NSG, which our developers are working to solve.  Please select only private interface for NSG.

# 結論: パブリックネットワーク経由のアクセスは許可しないことを推奨

最初に述べたとおり、パブリックネットワーク経由のアクセスは全世界に解放されています。仮にログオンできなくても TCP レベルの接続は許してしまいます。
NSG での保護を期待しましたが、それが出来ないことが確認できました。

PER 環境であれば「[PowerVS IBM i 日記(67): PER 環境の利用(4) - VPC Linux の sshd 経由で 5250 接続する](https://qiita.com/6onoda/items/f0195217f3cac2c4e106)」でご紹介したように、より安全で比較的構成が容易な VPC 経由でのパブリック環境からのアクセスを構成することが可能です。
もちろん、費用と構成工数が許せば、VPC VPN 経由の接続を構築してもいいでしょう。

いずれにしても、PowerVS インスタンスへ、直接パブリックネットワーク経由のアクセスを許可しないことを、安全性のために推奨します。

---
当日記のIndexは[こちら](https://qiita.com/6onoda/items/f146c78c0c1bbe905a42)です。

---
許可の無い転載を禁じます。
この記事は筆者の個人的な責任で無保証で提供しています。
当記事に関してIBMやビジネスパートナーに問い合わせることは、固くお断りします。