web-dev-qa-db-ja.com

コマンドラインを介してLANからDMZ(ドメイン外)のサーバーにアクセスするための最良のアプローチ(MS Windows)

私は2つのサーバーを持っています:

LAN内のSVR1(Windows Server 2008)-ドメインの一部

SVR2(Windows Server 2008)in DMZ-ワークグループ

コマンドラインバッチを介してSVR1からSVR2にアクセスする必要があります-いくつかのファイルをコピーし、scコマンドを実行してSVR2のサービスを管理します。このバッチはスケジュールされているため、資格情報を入力せずにSVR2にアクセスする必要があります。

私が知っている唯一の可能性は、両方のサーバーで同じユーザー名とパスワードを使用することですが、それはそれほど優雅ではなく、潜在的なリスクです。

私の問題を解決するための最良のアプローチは何ですか?サードパーティのソフトウェアなしでそれを行うのが最善でしょう。

1
teo

SVR1とSVR2は同じADドメインの一部ではないため、自動スクリプトがアクセスするには、SVR1のどこかにSVR2の資格情報を保存する必要があります。

WinRMと十分に更新されたPowershellを使用すると、Powershell Remotingを使用して、SVR1からSVR2への接続を確立し、コマンドラインで考えられるすべてのことを自動的に実行できます。

Powershellを使用してWindows資格情報ボールトにパスワードを保存すると、スクリプトは資格情報ボールトから資格情報にアクセスできます。

https://gallery.technet.Microsoft.com/scriptcenter/How-to-add-credentials-to-c8e9bd5f

資格情報を保存するための少し良い方法として、これをお勧めします。資格情報を保存する古い古典的な方法は、次のようなことでした。

read-Host -assecurestring | convertfrom-securestring | out-file operationspassword.txt

次に、スクリプトで、次のようにパスワードを「復号化」します。

$pass = Get-Content operationspassword.txt | convertto-securestring
$creds = New-Object -Typename System.Management.Automation.PSCredential -argumentlist "SRV2\admin",$pass

「暗号化された」クレジットは、最初に暗号化されたのと同じアカウントと同じマシンでのみ復号化できるため、SecureStringのテキスト表現を盗んで別の場所で使用することはできません。しかし、この方法でクレジットを保存することは、まだ専門家ではないので、一般的にはあまりお勧めしません。

また、Powershell TrustedHostsリストを変更して、「信頼されていない」マシンへの接続を許可することを忘れないでください... KerberosまたはSSLを使用していないため、これを行う必要があります。

それは私に思い出させます...より良いセキュリティのためにWinRM接続にSSLを使用してください: http://support.Microsoft.com/kb/2019527

Windows 2008 WinRMポートは、80(HTTP)と443(HTTPS)です。

Microsoftはすぐに、これらのポートがすでに使用されていることに気づきました。

Windows 2008 R2以降のWinRMポートは、5985(HTTP)および5986(HTTPS)です。

2
Ryan Ries