2021年4月22日木曜日

Windows Server 2016 でRC4 を無効化

Windows Server 2016 でRC4 を無効化する場合、以下の2つの方法があります。

レジストリ キー:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319

値:SchUseStrongCrypto
値の種類:REG_DWORD
設定値:0x1

SchUseStrongCrypto については、下記の公開情報を参照するとよいでしょう。


================================
強力な暗号化の構成
強力な暗号化をサポートするように .NET Framework を構成します。 SchUseStrongCrypto レジストリ設定を DWORD:00000001 に設定します。 この値により、RC4 ストリーム暗号が無効になります。また、再起動が必要です。================================


もしくは、下記の レジストリを作成して設定することで、RC4 を無効化することができます。
既定では存在しないキー、値となりますので、存在しない場合は手動で作成してください。

レジストリ キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128

値の名前: Enabled
値の種類: REG_DWORD
設定値: 0x0

レジストリ キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128

値の名前: Enabled
値の種類: REG_DWORD
設定値: 0x0

レジストリ キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128

値の名前: Enabled
値の種類: REG_DWORD
設定値: 0x0

こちらはOS 再起動は不要です。

Windows Server 2016 でのTLS の設定について

Windows Server 2016 では、既定でTLS1.2 が有効となっております。
しかし、TLS1.1 や1.0 、そしてSSL3.0 まで利用できてしまいます。
そのため、下記のレジストリを設定することで、TLS1.2 以外の通信ができないように制御することが可能です。

TLS 1.0 の無効化
====================================================
以下のレジストリを作成して設定することで、TLS 1.0 を無効化することができます。
既定では存在しないキー、値となりますので、存在しない場合は手動で作成してください。

レジストリ キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client

レジストリ キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server

値: Enabled
値の種類: REG_DWORD
設定値: 0x0

値: DisabledByDefault
値の種類: REG_DWORD
設定値: 0x1

TLS 1.1 の無効化
====================================================
以下のレジストリを作成して設定することで、TLS 1.1 を無効化することができます。
既定では存在しないキー、値となりますので、存在しない場合は手動で作成してください。

レジストリ キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client

レジストリ キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server

値: Enabled
値の種類: REG_DWORD
設定値:       0x0

値: DisabledByDefault
値の種類: REG_DWORD
設定値:       0x1

SSL 3.0 の無効化
====================================================
以下のレジストリを作成して設定することで、SSL 3.0 を無効化することができます。
既定では存在しないキー、値となりますので、存在しない場合は手動で作成してください。

レジストリ キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client

レジストリ キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server

値: Enabled
値の種類: REG_DWORD
設定値:       0x0

値: DisabledByDefault
値の種類: REG_DWORD
設定値:       0x1


Enabled は OS で TLS 1.0、1.1 及びSSL 3.0 を有効/無効にするかを決めるレジストリです。
一方、DisabledByDefault はアプリケーションが明示的に TLS/SSL のバージョンを指定しない場合に、OS が自動的にそのバージョンの TLS/SSL 通信を行うかどうかを決定します。
"DisabledByDefault" を 0 に設定しますと、該当の TLS/SSL のバージョンが "既定で有効" になり、1 に設定しますと "既定で無効" になります。
しかしながら、"DisabledByDefault" がいずれの設定の場合でもアプリケーションが明示的に指定した場合には、指定されたバージョンの TLS/SSL 通信が行われます。
また、レジストリ キーとして上記の通り Client と Server の 2 つありますが、"Client" はクライアント側として動作するときの設定、"Server" はサーバー側として動作するときの設定となります。

より詳細な公開情報は下記にありますので、参照してみてください。



2021年4月17日土曜日

カタログ情報をDB から削除するコマンド

 WSUS に着信しない更新プログラムは、手動でインポートする必要があります。

インポートのやり方は管理コンソールの右側に[更新のインポート] という項目があるので、こちらをクリックしてカタログサイトからインポートを実施します。



初めてインポートする場合は、エラーがでてインポートできないかもしれませんので、その場合は、%SystemRoot%\system32\inetsrv にw3wp.exe.config ファイルを生成して、ファイルの内容に下記を追加して保存すれば、大体うまくインポートできるようになります。
---------------------------------
$wsus = Get-WSUSServer
$wsus.DeleteUpdate("XXXXXXXXXXXXX")
---------------------------------
※ "XXXXXXXXXXXXX" の部分につきましては UpdateID を入力します。

上記コマンドを実施して以下のエラーが発生する場合は、対象の更新プログラムが承認済みの状態だったりしますので、元の未承認の状態に戻すことで、事象が解消しますのでご確認ください。

===================================
PS C:\Users\administrator> $wsus.DeleteUpdate("628f5572-7e1a-4934-b864-3e6e24d3c758")
"1" 個の引数を指定して "DeleteUpdate" を呼び出し中に例外が発生しました: "spDeleteRevision: cannot delete revisionid: 11
3652 because it is still deployed to a Non DSS Target Group
spDeleteUpdate got error from spDeleteRevision
spDeleteUpdateByUpdateID got error from spDeleteUpdate"
発生場所 行:1 文字:1
+ $wsus.DeleteUpdate("628f5572-7e1a-4934-b864-3e6e24d3c758")
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SqlException
===================================

Japan Microsoft Endpoint Manager Support Team のブログ公開

下記のリンクから、Japan Microsoft Endpoint Manager Support Team のブログにいけます。

日本マイクロソフト サポート情報 (cssjpn.github.io)



今までのフォーラムの情報もアーカイブとして残っていますが、いつ削除されるかわからないので、保存しておきたい情報はスクショしておきましょう。


ちなみにブログのリンクは以下。

Japan Microsoft Endpoint Manager Support Blog (jpmem.github.io)





2021年4月10日土曜日

MECM/SCCM でのBranchCache とPeerCache を併用した場合の動作について

MECM/SCCM では、BranchCache とPeerCache の設定を両方有効にすることが可能です。

その場合、どちらの機能を利用してコンテンツをダウンロードするの?という疑問が湧いてきます。

これは結論から言うと、通常の環境であれば、PeerCache が有効になるケースがほとんどとなります。

理由としては、BranchCache は配布ポイントからダウンロードされる場合に有効となりますが、コンテンツのダウンロードソースの優先順位はPeerCache ソースの方が優先順位が高いため、PeerCache が有効になります。

ただ、PeerCache ソースがダウンしているような状況であれば、配布ポイントからのコンテンツダウンロードが動作するため、その場合はBranchCache が利用される動作となります。

コンテンツのダウンロードソースの優先順位は下記の公開情報に情報がありますので、確認してみてください。

 コンテンツ管理の基礎 - Configuration Manager | Microsoft Docs

MECM/SCCM のピアキャッシュの一部ダウンロードの動作検証

MECM では、ピアキャッシュという機能があります。

簡単にいうと、ピアキャッシュソースというコンテンツを持つクライアント端末に対して、他のコンテンツを持たないクライアントが、ピアキャッシュソースからコンテンツをダウンロードする、というもので、配布ポイントからのダウンロードをしない動作となります。 


クライアントのピア キャッシュ - Configuration Manager | Microsoft Docs


この中で、MECM の管理コンソールの下記のチェックを有効にした場合に、上記の公開情報にある一部ダウンロードという機能が有効になります。



このチェックを入れてピアキャッシュの機能を検証してみたところ、下記のようなログが出力されました。
黄色の部分と白色の部分で、別端末のログを示しています。


まず緑の部分を上から見ていくと、最初に白のクライアントがブロック2をダウンロードしています。このダウンロード上に黄色のクライアントがブロック3をダウンロードしています。
その後、白のクライアントがブロック2をダウンロード完了し、次にブロック4をダウンロードしようとしています。
その後、黄色のクライアントがブロック3をダウンロード完了し、白のクライアントがすでにダウンロード完了した、ブロック2をダウンロードし始めます。

つまり、この機能は同時に同じブロックのコンテンツを複数端末にダウンロードさせないように制御されています。
そのため、最大でもファイルのコンテンツサイズのダウンロード分の帯域しか利用されないため、設定のところにも記載があるように、「WAN の使用率を下げる」ことができる、ということになるようです。

WSUS にインポートしたカタログ情報を削除

 WSUS から配信できない更新プログラムを手動でインポートしたが、これを消したいということがあるかと思います。

その場合、下記のコマンドをPowerShell から実行すればカタログ情報から削除できます。

- サンプル コマンド
--------------------------------
$wsus = Get-WSUSServer
$wsus.DeleteUpdate("13b5a526-7f85-4546-adde-95ced26276e5")
--------------------------------
※ "13b5a526-7f85-4546-adde-95ced26276e5" の部分は UpdateID を入力します。

UpdateID を確認する場合、カタログサイトの対象の更新プログラムを選択した時に表示されるURL 情報を確認するとよいでしょう。

Microsoft Update カタログ