Chapter.3セキュリティを(気分で(^^;)スキップしまして、Chapter.4 の方を先に
Chapter.4 ホスト&サーバー機能
冒頭に以下記載されています。
IBM i は、セキュリティ、データ転送、クラウド統合、バックアップ・リカバリといった重要な領域に対応する幅広い拡張機能を備えた、高度にセキュアで多用途なプラットフォームです。データのセキュリティ確保を最優先に考え、本章ではホストとサーバーの主要な拡張機能のいくつかを詳しく解説し、その重要性とメリットを明らかにします。
このChapterの機能拡張も根本は「セキュリティ強化」が目的であることが分かります。
具体的な機能は以下です。
IBM i Debugger server
IBM i NetServer
IBM HTTP Server for i
Instana
IBM WebSphere Application Server
WebSphere Liberty
Host connection server
4.1 IBM i デバッガー・サーバー
・クライアントとの接続にはTLSの使用を強く推奨。TLS v1.3 接続をサポート。
・TLS 通信専用の新しいポート「as-debug-s」(デフォルト・ポート 4027) を使用。
・デジタル証明書マネージャー (DCM) 内の QIBM_QTES_DEBUG_SERVER アプリケーション定義を使用して、TLS サポートを構成できます。この機能はACSの鍵管理と完全に統合、簡素化されている。
・7.6の統合MFAに対応。サインオン・ダイアログに新しい「追加要素」テキスト・フィールドが追加。
以下はNavigator for i の画面ですが、7.6で統合MFAをオンに設定すると、以下のような 追加要素 というフィールドが追加表示されます。
・DBGENCKEY によるソースコード暗号化機能が追加。QteAddViewText / QteRetrieveViewText API が改良され、コンパイラー・オプションは最新のセキュリティー標準を使用した *PGM/SRVPGM ソースコードの暗号化をサポート。
・IBM i デバッガーで TLS を有効にすると、セキュアなリモート・デバッグが可能になります。デバッグ・ハブは、サーバーの起動時にDCMに登録されている QIBM_QTES_DEBUG_SERVER アプリケーションの証明書をチェックすることで、TLS を初期化する。
・TLS有効時のトラブルシューティングについては下記リンクを参照。
https://www.ibm.com/docs/en/i/7.6.0?topic=debugger-securing-i-tls
4.2 ネットサーバー
・サーバー構成情報を取得するNetServer APIは、*IOSYSCFG 特殊権限または QIBM_IOSYSCFG_VIEW 機能使用権限のいずれかが必要に変更された。具体的な変化点は以下。
・IOSYSCFG 特殊権限のないプロファイルによってネットサーバーのIFSフォルダー、プリンターの共有リソースを作成、変更、または削除するには、共有オブジェクトの所有権と QIBM_QZLS_NETSVR_SHARE 機能使用権限が必要。
・ネットサーバーのIFSフォルダー、プリンター共有には、クライアントによる作成、変更、および最終アクセスを追跡するタイムスタンプが含まれる。共有がいつ作成、変更、またはアクセスされたかを簡単に確認可能になった。
・ネットサーバーのリソース共有の変更、不明なユーザーによるアクセス試行、およびサーバーと共有へのアクセスを追跡するために監査ジャーナルのレコードタイプ VP が利用可能。
・上記監査ジャーナルレコードを生成するために、AUDLVL および QAUDLVL2 システム値に指定するNETSMBSVR という新しい監査レベルが追加。IBM i NetServer の接続および切断を監査できる。
4.3 HTTPサーバー for i
・HTTP Server for i (Powered by Apache) は、IBM i によるベーシック認証をサポートしている。ただし、ベーシック認証は現時点では統合MFA(追加要素フィールドに入力する形式)は使用できない。上記のNavigator for iと同様な追加要素フィールドへのOTP入力をさせたい場合、現時点ではユーザーが独自のログインフォームを作成する必要がある。
・当面は、統合MFAが有効な場合、MFAトークンをユーザーパスワードの一部として入力できる。パスワードフィールドにパスワード、コロン、ユーザーの MFA トークンの順に入力する。(例:P@ssw0rd:894357 P@ssw0rd はユーザーパスワード、894357 はクライアント側オーセンティケーターの ワンタイムパスワード(TOTPトークン)。
また、これまではHTTPサーバー、APサーバーの管理はWeb Administration for i の別画面(別な機能)で実行されていたが、Navigator for i の画面で管理できるよう変更が開始されました。
Web Administration for i はNavigator for i のメニューか、http://server:2001/HTTPAdmin でアクセスできます。
画面例はこちら
こちらのインターフェースでも機能的には何ら問題ないと思いますが、Navigator for i とは別テクノロジーなので(右上にWebSphereロゴがある事からも推察できます)、Navigator for iに集約したいという事なのだと思います。
IBM i 7.6ではNavigator for i の「ネットワーク」に、「Web 管理」という新しいグループが追加されました。
新しいNavigator for i での変更点として、confファイル(構成ファイル)の編集がよりやりやすくなったことが挙げられています。実際操作してみると従来のWeb Administration for i より違和感がないですね(^^;
インスタンスを選択して、アクションメニューから 構成 を選択すると以下のようにconfファイルを表示・編集できます。
なお、Web Administration for i の従来画面からのconfファイルの編集も引き続き可能です。
新しいWeb 管理メニューのアプリケーション・サーバーについては、現時点では使用できる機能は限定されています。起動/停止、ログ・ファイルの確認、基本プロパティーの表示、ロギングとトレースの構成、TLS設定ウィザードは使用できます。
また、証明書ストア から設定済みの証明書ストアの一覧が表示され、ユーザーは IFS 内のストアへのパスを指定してストアを追加できます。各ストアの内容を更新するには、従来通りDCMを使用する必要があります。
この環境には証明書はまだありませんでした(^^;
4.4 Instana
InstanaによるIBM i の監視のオプションは、拡張を継続しています。一例は以下。Instanaのサポートについては、https://www.ibm.com/products/instana を参照
・CPU使用率
・メモリープール
・ストレージ使用率
・Db2 for i SQL メトリック
・OUTQ
・MQ
・REST API
4.5 WAS (WebSphere Application Server), WAS Liberty
WAS V3.xから存在する従来の(Libertyでない)WAS:WebSphere Application Serverは最近ではtraditional WAS : tWAS と呼ばれることもあります。
・tWASはIBM i 7.6でもtWASはV9.0のみサポート(Java8 64ビットでのみサポート)。
またtWASはv9.0が最終バージョンとされていますので、いずれWAS Libertyへの移行を推奨しています。tWASからLibertyへの移行ガイドはこちら
tWASのサポートが続く限り、Java 8もIBM i上でフルサポートされます。
・IBM i 7.6はJava 8に加えてJava 17と21をサポート。
・IBM i 7.6はWAS Libertyもサポートしている。実際にはIAW, IAS等と複数の名前で呼ばれる(^^;、APサーバーがLibertyです。正式名称は Integrated Application Server - Liberty です。
・新しいNavigator for iの Web管理 メニューではAPサーバーの開始・停止等は可能ですが、新しいインスタンス作成は執筆時点ではサポートされていません。(拡張予定)
tWASはInstallation Manager という管理S/Wを使って導入しますが(IBM i も含めて)、最新のInstallation ManagerではJAVA11を前提として導入しようとします。IBM i 7.6はJAVA11をサポートしないため、IBM i 7.6にtWASをインストールするには、JAVA8でインストール可能な古いバージョンのInstallation Managerを使用する必要があります。
IBM i でサポートされるWASのバージョンは、*
Official Support Statement for the IBM WebSphere Application Server Product on the IBM i OS
IBM i でサポートされるWASバージョンを調べたい
4.6 Host connection server
ホスト・コネクション・サーバー(ホスト接続サーバー)は、IBM i 7.6で新たに追加されたサーバーです。
Navigator for i ではネットワーク → IBMホスト・サーバー で表示できます。
具体的なサーバージョブ名は以下です。
QSYS/QZBSCNNSRV Server Program
QSYS/QZBSCNNSD Daemon Program
上図の最下行にある、Host Connection がホスト・コネクション・サーバーです。
Redbookの記載をそのまま引用すると、
IBM i 7.6 の新しいホスト・サーバーであるホスト接続サーバーは、さまざまな IBM i ホスト・サーバーへのセキュアな接続の作成と転送を容易にします。ホスト接続サーバーを使用すると、クライアントはさまざまなホスト・サーバーとの認証済みセッションを開始できます。これは、多要素認証 (MFA) が有効な場合に特に便利です。
通常、ホスト・サーバーに接続する場合、クライアントはそのサーバーで認証を受ける必要があります。
MFA がアクティブ化され、ユーザー・プロファイルで追加の認証要素が必須となっている場合、ユーザーは認証プロセス中にこの追加の要素を提供する必要があります。ホスト接続サーバーは、クライアントが一度認証すれば、その認証済みセッションを使用して、再認証することなく他のホスト・サーバーへの新しい接続を開始できます。その結果、ユーザーは、ホスト・サーバーと確立された新しい接続ごとに追加の認証要素を提供する必要がなくなります。
上記からホスト・コネクション・サーバーはMFA有効時に、個々のIBM i上のホストサーバー接続毎にMFA認証する煩雑さを回避するためのMFA認証ハブサーバージョブとして機能するもの、と読み取りました。
環境用意していなく、いずれ調べてみたいと思います。
・ホスト接続サーバーはTLS接続のみサポート
・ホスト接続サーバーから確立および転送された接続は、接続が目的のホストサーバーに転送された後も、ホスト接続サーバーのポートを使用します。
・ホスト接続サーバーでサポートされるサーバーは次のとおりです。
– セントラルサーバー
– データベースサーバー
– データキューサーバー
– ファイルサーバー
– ネットワークプリントサーバー
– リモートコマンドサーバー
– サインオンサーバー
・ホスト接続サーバーの詳細リンク
https://www.ibm.com/docs/en/i/7.6.0?topic=programs-host-connection-server
ホスト接続サーバーへの接続のサンプル
Toolbox for Java(jtOpen)のクラス SecureAS400 というものでホスト接続サーバーに追加する事ができます。そのかんたんなサンプルも掲載されていました。
また、Toolbox for Javaが /QIBM/ProdData/OS400/jt400/lib に配置 されていることも記載されています。