IBM i ネットサーバーでのSMBバージョンコントールガイド
原文:IBM i NetServer SMB protocol version control guide
https://www.ibm.com/support/pages/node/958915?myns=swgother&mynp=OCSWG60&mync=E&cm_sp=swgother-_-OCSWG60-_-E
概略
このドキュメントでは、IBM i 管理者が IBM i NetServer で使用される SMB プロトコルのバージョンを制御する方法を説明します。 現在の IBM i リリースでは、ネゴシエーション時にデフォルトで SMBv3 が使用されますが、セキュリティ要件やコンプライアンス要件を満たすために SMBv1 または SMBv2 を制限したい場合が考えられます。
当資料の概要
IBM i 管理者が IBM i NetServer ネットサーバーの SMB プロトコルのバージョンを表示および管理する方法を紹介しています。
前提環境
IBM i 7.2以降
現在サポートされているリリース (IBM i 7.4, 7.5, 7.6) にフォーカスしてupdate
IBM i のSMBバージョンについて
IBM i OS現行サポートバージョン(IBM i 7.4~7.6)は、クライアント/サーバー ネゴシエーション時にデフォルトで SMBv3 が使用されます。
そのため、IBM i 管理者がクライアントによる SMBv1 または SMBv2 プロトコルのネゴシエーションをブロックすることを希望しない限り、構成の変更は不要です。最新の Windows セキュリティ ポリシーでは、通常、クライアントによる SMBv1 プロトコルの使用がブロックされます。
重要:IBM i における SMB3 と SMB2 の関係
IBM i では、SMB3 は SMB2 のスーパーセットとして実装されています。 そのため、
SMB2 は有効なままにする必要があります。
SMB3 を許可しながら SMB2 を無効にするフラグはありません。
SMB3 のみを使用するクライアントを効果的に強制するには、暗号化を必須( *REQUIRED)に設定することが唯一サポートされている方法です。
5250画面:GO NETSコマンド でSMBの設定確認
IBM i 7.4以降のリリースで SMBv1 および SMBv2 (暗号化なし) プロトコルを無効にするには、IBM i 管理者は GO NETSコマンドからオプション「9. 属性の変更」(NetServer 属性の変更) 画面でNetServer の「暗号化接続」を*REQUIRED に設定します。
Navigator for i : TCP/IPサーバー:ネットサーバー・メニューから
上記はNavigator for i からも実行できます。
Navigator for i で ネットワーク → TCP/IP構成 → サーバー → TCP/IPサーバー → IBM i ネットサーバー を右クリックしてセキュリティを選択
次回開始の展開 をクリックして、接続の暗号化 を必須に変更します。

現在のネットサーバーのSMBバージョンを表示するコマンド
CALL QZLSMAINT PARM('40' '0')
このコマンドはQPCSMPRTスプールファイルを作成します。スプールファイル内のOLD FLAGSとNEW FLAGSを確認してください。
OLD FLAGSの値はNetServerが現在使用しているSMBバージョン
NEW FLAGSの値はNetServerが次回起動時に使用するSMBバージョン
QZLSMAINT 実行結果の値
00000000000000000 - プロトコルバージョンはネゴシエートされ、OS バージョンのデフォルトが使用されます※1
0000000000000080 - SMBv2 を無効にします
0000000000000100 - SMBv1 を無効にします
0000000000000400 - 7.2 で SMBv2 を有効にします(7.3 以降ではデフォルトで有効になります)
0000000000000500 - x100 と x400 の組み合わせ。 SMBv2 以降のみ許可
0000000000001000 - SMBv3 を無効にします (IBM i 7.4 および 7.5 に固有)
0000000000001080 - SMBv2 と SMBv3 を無効にします (IBM i 7.4 および 7.5 に固有)
※1
IBM i 7.2 は SMBv1 と SMBv2 をサポートします。
IBM i 7.3 は SMBv1 と SMBv2 をサポートします。
IBM i 7.4 は SMBv1、SMBv2、および SMBv3 をサポートします。
IBM i 7.1 以前のバージョンは SMBv1 のみをサポートします (そのため上記の値はIBM i 7.1以前では影響も意味もありません)。
IBM i バージョン毎のデフォルトのSMBバージョン
7.2 = SMBv1
7.3 = SMBv2
7.4 and above = SMBv3
CALL QZLSMAINT コマンドを使用したSMB バージョン設定の変更
コマンド例: ※パラメーターの解説は以下を参照
CALL QZLSMAINT PARM('40' '1' '0x400')
NetServer がアクティブでない状態で実行する事を推奨
NetServer SMB プロトコルバージョンを変更するたびに、クライアントが新しい設定を使用するため、ドライブの再マッピングやクライアント PC の再起動が必要になる場合があります。
CALL QZLSMAINTコマンドの実行例
CALL QZLSMAINT PARM('40' '1' '0x400')
2 番目のパラメーター値は、以下のいずれかになります。
‘1’ は、以下の値で定義されるビットをオンにします。
‘2’ は、以下の値で定義されるビットをオフにします。
‘3’ は、フラグをすべてゼロに再初期化します。IBM i サポートからの指示がない限り使用しないでください。
コマンドは累積的に実行されます。例えば、次の 2 つのコマンドを実行した場合、
コマンド1
CALL QZLSMAINT PARM('40' '1' '0x400') + ===> CALL QZLSMAINT PARM('40' '1' '0x100')
を実行すると、次回起動時のフラグは
NEW FLAGS 0000000000000500
となります。
続けて、以下を実行した場合、
CALL QZLSMAINT PARM('40' '2' '0x500')
「2」はビットを500(0101 0000 0000)に設定し、デフォルト設定(すべて0)に戻ります。
さらに
CALL QZLSMAINT PARM('40' '3')
を実行すると、
既存の値に関係なく、フラグをすべて0に再初期化します。IBM i サポートからの指示がない限り使用しないでください。
QZLSMAINTの最小権限要件は、*IOSYSCFG、*ALLOBJ、*SERVICEです。
注:Windows 10クライアントでIBM i 7.2以降で以下のエラーが表示される場合:
The mapped network drive clould nt be created ...
NetServerのSMBプロトコルバージョン管理フラグをx500に設定して、SMBv1プロトコルを無効にします。IBM i NetServerは引き続きSMBv1を受け付けます。 「ネゴシエート プロトコル要求」フレームですが、「ネゴシエート プロトコル応答」(および接続の残りの部分) は SMB2 になります。
参考URL
SMBv1 protocol security warning
How to detect, enable and disable SMBv1, SMBv2, and SMBv3 in Windows and Window…


