Назад | Перейти на главную страницу

Лучший способ доступа к серверу в DMZ (вне домена) из локальной сети через командную строку (MS Windows)

У меня два сервера:

SVR1 (Windows Server 2008) в локальной сети - часть домена

SVR2 (Windows Server 2008) в DMZ - рабочая группа

Мне нужно получить доступ к SVR2 из SVR1 через пакет командной строки - скопируйте некоторые файлы и выполните команду sc для управления службами на SVR2. Этот пакет запланирован, поэтому мне нужно получить доступ к SVR2 без ввода учетных данных.

Единственная известная мне возможность - иметь одно и то же имя пользователя и пароль на обоих серверах, но это не так изящно и представляет собой потенциальный риск.

Как лучше всего решить мою проблему? Лучше всего сделать это без стороннего программного обеспечения.

Поскольку SVR1 и SVR2 не являются частью одного домена AD, вам нужно будет хранить учетные данные для SVR2 где-нибудь на SVR1, чтобы ваш автоматический скрипт мог получить доступ.

Используя WinRM и достаточно обновленный Powershell, Powershell Remoting позволит вам установить соединение от SVR1 к SVR2 и делать все, что вы можете придумать в командной строке, в автоматическом режиме.

Вы можете сохранить пароль в хранилище учетных данных Windows с помощью Powershell, и ваш сценарий может получить доступ к учетным данным из хранилища учетных данных:

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.

Это напоминает мне ... используйте SSL для подключений WinRM для большей безопасности: http://support.microsoft.com/kb/2019527

Порты Windows 2008 WinRM: 80 (HTTP) и 443 (HTTPS).

Вскоре Microsoft поняла, что эти порты вроде как уже используются, и поэтому:

Порты WinRM Windows 2008 R2 и выше - 5985 (HTTP) и 5986 (HTTPS).