PowerVS のパブリック・ネットワークを使わないテスト環境での 5250 接続
「PowerVS IBM i 日記(64): PER 環境の利用(1) - PER 環境を用意する」、PowerVS IBM i のパブリック・ネットワークを有効にするのは、危険だという事を説明しました。
では、Direct Link のようなプライベート接続が準備できていない時に、インターネット経由で 5250 接続するのはどうしたらいいのでしょう。
今回、紹介するのは、VPC 上の Linux の sshd サーバーと ssh トンネルをはり、そこから TGW 経由で IBM i に転送してもらうという方法です。
VPC上のLinuxとの接続には、下記のパターンが考えられます。
- VPN for VPC の Client to Site VPN で接続する
- VPC Linux にフローティング IP を割り当て、そちら経由でアクセスする
今回はフローティング IP 経由での接続を検証します。
IBM i 側の準備
システム値の変更
PowerVS IBM i 日記(52)の「外部からのアクセス」で、紹介したように、5250 デバイスが自動構成できる様に設定を変更します。
関連システム値を変更するには、記事の通り事前に DST か SST から許可を与える必要があります。
IBM i 上でのサーバー起動
IBM i 上の sshd は起動不要
PowerVS IBM i のパブリック・ネットワークを使って ssh トンネルをはっていた時は、IBM i 上の sshd に接続していました。
しかし、今回は VPC 上の Linux と ssh トンネルをはるため、IBM i 上では sshd を起動する必要はありません。
PCOMM では TELNET サーバーだけ
PCOMM の場合は、TELNET サーバーだけ開始していれば構いません。
ACS 接続で必要なホスト・サーバー
以前にも記事にしましたが、ACS で 5250 接続するのに最低限必要なポートは下記のとおりです。
こちらを起動しておきます。
機能 | サーバー名 | ポート(非TLS) |
---|---|---|
Server Mapper | as-svrmap | 449 |
License Management | as-central | 8470 |
Remote Command | as-rmtcmd | 8475 |
Signon Verification | as-signon | 8476 |
ODBC やデータ転送などが必要であれば「TCP/IP Ports Required for IBM i Access and Related Functions」を参考に必要なサーバーも起動します。
ssh トンネルの開始
今回は Window 11 の標準の ssh コマンドを使います。
「PowerVS IBM i 日記(3): IBM Cloud の IBM Power Systems Virtual Server で IBM i を構築する(3)-ACSからの5250接続」の時には、Windows 標準の ssh のバージョンが低く特権ポートを転送できなかったのですが、今回利用した Windows 11(23H2) に含まれているものには、その制約は無くなっていました。
PCOMM 用の ssh トンネル
慣例に従って localhost の ポート 50000 で IBM i に接続する設定です。
ssh -L 50000:[IBM i IP]:23 root@[フローテングIP] -i ssh秘密鍵
PowerVS IBM i のパブリック・ネットワークを使って ssh トンネルをはっていた時は「IBM i IP」の部分が「localhost」でした。これは、IBM i 上の sshd を使っていたため、そこから見ての「localhost」に接続するという指定でした。
今回は VPC Linux の sshd から転送してもらうので IBM i の IP を指定します。
PCOMM から接続先として localhost:50000 を指定します。
サインオン画面が出ました。
ACS 用の ssh トンネル
ACS の 5250 接続では ポート 23 に加え 4 つの転送も指定します。下記で「^」は Windows のコマンドプロンプトでの継続行表示です。Mac や Linux の場合は置き換えてください。
ssh -L 50000:[IBM i IP]:23 ^
-L 449:[IBM i IP]:449 ^
-L 8470:[IBM i IP]:8470 ^
-L 8475:[IBM i IP]:8475 ^
-L 8476:[IBM i IP]:8476 ^
root@[フローテングIP] -i ssh秘密鍵
ACS の 5250 で接続先として localhost:50000 を指定します。
サインオンのポップアップが表示されたあとに、サインオン画面が出ました。
VPC Linux の保護
現時点では、鍵認証の ssh ではあるものの、全世界からアクセスが可能です。
VPC 側の機能で接続制限をしてみましょう。
今回 VPC を作成する時にデフォルト・セキュリティ・グループで ssh を許可しました。
そのため、全世界、全てのソースからのポート22への接続が許可されています。
これを、自分が使っているグローバル IP だけを許可するように変更します。
自分が使っているグローバル IP を調べるサイトはインターネット上にいろいろあるので、そのようなものを利用すればいいでしょう。
これで、自分の IP からしかアクセスできなくなりました。
さらに、アクセスしない時はフローティング IP を VSI からデタッチしておけば、さらに安心でしょう。
利用する時は、このような手順になります。
- 自分のグローバル IP アドレスを調べる
- グローバルIPアドレスが変更されている場合は、セキュリティ・グループを更新する
- フローティング IP を VSI にアタッチする
- 利用する
- フローティング IP を VSI からデタッチする
また、複数人で同じ VPC Linux を踏み台にしていて、フローティングIPをVSIからデタッチしたくない場合は
- 自分のグローバル IP アドレスを調べる
- セキュリティ・グループで対象グローバル IP アドレスに許可をあたえる
- 利用する
- セキュリティ・グループから自分の IP アドレスを除去する
当日記のIndexはこちらです。
許可の無い転載を禁じます。
この記事は筆者の個人的な責任で無保証で提供しています。
当記事に関してIBMやビジネスパートナーに問い合わせることは、固くお断りします。