PowerShell 스크립트는 모든 구성 설정을 사용하여 환경을 준비합니다. PowerShell 스크립트를 실행하여 Unified Access Gateway를 배포할 경우 첫 번째 시스템 부팅 시 솔루션의 프로덕션 사용 준비가 완료됩니다.

중요: PowerShell 배포를 사용하여 INI 파일에 있는 모든 설정을 제공할 수 있습니다. 또한 Unified Access Gateway 인스턴스는 부팅하는 즉시 운영 준비가 완료됩니다. 배포 후에 어떤 설정도 변경하지 않으려면 관리 UI 암호를 제공할 필요가 없습니다.

그러나 배포 중에 관리 UI 암호를 제공하지 않으면 관리 UI 및 API를 둘 다 사용하지 못합니다. 배포 시에 관리 UI 암호를 제공하지 않으면 나중에 사용자를 추가하여 관리 UI 또는 API에 대한 액세스를 사용하도록 설정할 수 없습니다. Unified Access Gateway를 다시 배포해야 합니다.

모니터링 역할이 있는 낮은 권한의 관리자를 생성하기 위해 INI 파일에 매개 변수를 포함할 수 있습니다. 수퍼유저 관리자는 생성할 수 없습니다. Unified Access Gateway 인스턴스를 배포하기 전에 루트 사용자 및 관리자의 암호 정책을 구성할 수 있습니다.

매개 변수에 관한 자세한 내용은 동급의 관리 UI 매개 변수가 사용되는 섹션을 참조하십시오. 예를 들어 일부 배포 매개 변수는 Unified Access Gateway 배포용 PowerShell 매개 변수OVF 템플릿 마법사를 사용하여 Unified Access Gateway 배포에 설명되어 있습니다. 시스템 구성, syslog 서버 설정, 네트워크 설정 등에 사용되는 매개 변수에 관해 보려면 관리 구성 페이지에서 Unified Access Gateway 구성의 내용을 참조하십시오. Edge 서비스 및 기타 Unified Access Gateway 사용 사례(예: Workspace ONE Intelligence 및 ID 브리징)에 관해 보려면 Unified Access Gateway에 대한 배포 사용 사례의 내용을 참조하십시오.

사전 요구 사항

  • Hyper-V 배포에서 고정 IP를 사용하여 Unified Access Gateway를 업그레이드할 경우 Unified Access Gateway의 새 인스턴스를 배포하기 전에 이전 장치를 삭제합니다.
  • 시스템 요구 사항이 적절한지와 사용 가능한지 확인합니다.

    다음은 사용자 환경에 Unified Access Gateway를 배포하기 위한 샘플 스크립트입니다.

    그림 1. 샘플 PowerShell 스크립트

프로시저

  1. Customer Connect 포털에서 Unified Access Gateway OVA를 시스템에 다운로드합니다.
  2. uagdeploy-XXX.zip 파일을 시스템의 폴더로 다운로드합니다.
    ZIP 파일은 Unified Access Gateway에 대한 Customer Connect 페이지에서 사용할 수 있습니다.
  3. PowerShell 스크립트를 열고 디렉토리를 스크립트의 위치로 수정합니다.
  4. Unified Access Gateway 가상 장치에 대한 INI 구성 파일을 생성합니다.
    예를 들어 새 Unified Access Gateway 장치 UAG1을 배포합니다. 구성 파일 이름은 uag1.ini입니다. 이 파일에는 UAG1에 대한 모든 구성 설정이 포함됩니다. uagdeploy.ZIP 파일의 샘플 INI 파일을 사용하여 INI 파일을 생성하고 설정을 적절히 수정할 수 있습니다.
    참고:
    • 환경의 여러 Unified Access Gateway 배포에 대해 고유한 lNI 파일이 있을 수 있습니다. 여러 장치를 배포하려면 INI 파일의 IP 주소 및 이름 매개 변수를 적절히 변경해야 합니다.
    • 개인 키를 PKCS8에서 PKCS1으로, 즉 BEGIN PRIVATE KEY 형식에서 BEGIN RSA PRIVATE KEY 형식으로 변환하려면 다음 openssl 명령을 실행합니다.

      openssl rsa -in key.pem -out keyrsa.pem

      PKCS#12 형식 파일을 .p12 또는 .pfx 파일 확장명으로 변환하고 키가 RSA 키인지 확인하려면 다음 명령을 실행합니다.

      openssl pkcs12 -in cert.pfx -nokeys -out cert.pem

      openssl pkcs12 -in cert.pfx -nodes -nocerts -out key.pem

      openssl rsa -in key.pem -check -out keyrsa.pem

    수정할 INI 파일의 예입니다.
    [General]
    netManagementNetwork=
    netInternet=
    netBackendNetwork=
    name=
    dns = 192.0.2.1 192.0.2.2
    dnsSearch = example1.com example2.com
    ip0=10.108.120.119
    diskMode=
    source=
    defaultGateway=10.108.120.125
    target=
    ds=
    deploymentOption=threenic
    eth0CustomConfig=DHCP^UseDNS=false
    eth1CustomConfig=DHCP^UseDNS=false
    eth2CustomConfig=DHCP^UseDNS=false
    authenticationTimeout=300000
    fipsEnabled=false
    uagName=UAG1
    locale=en_US
    ipModeforNIC3=DHCPV4_DHCPV6
    tls12Enabled=true
    ipMode=DHCPV4_DHCPV6
    requestTimeoutMsec=10000
    ipModeforNIC2=DHCPV4_DHCPV6
    tls11Enabled=false
    clientConnectionIdleTimeout=180
    tls10Enabled=false
    adminCertRolledBack=false
    cookiesToBeCached=none
    healthCheckUrl=/favicon.ico
    quiesceMode=false
    isCiphersSetByUser=false
    tlsPortSharingEnabled=true
    ceipEnabled=true
    bodyReceiveTimeoutMsec=15000
    monitorInterval=60
    cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
    , TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
    outboundCipherSuites=
    adminPasswordExpirationDays=90
    monitoringUsersPasswordExpirationDays=90
    rootSessionIdleTimeoutSeconds=300
    rootPasswordExpirationDays=365
    passwordPolicyMinLen=6
    passwordPolicyMinClass=1
    passwordPolicyUnlockTime=900
    passwordPolicyFailedLockout=3
    adminPasswordPolicyFailedLockoutCount=3
    adminPasswordPolicyMinLen=8
    adminPasswordPolicyUnlockTime=5
    adminSessionIdleTimeoutMinutes=10
    httpConnectionTimeout=120
    isTLS11SetByUser=false
    sessionTimeout=36000000
    ssl30Enabled=false
    snmpEnabled= TRUE | FALSE
    ntpServers=ipOrHostname1 ipOrHostname2
    fallBackNtpServers=ipOrHostname1 ipOrHostname2
    sshEnabled=
    sshPasswordAccessEnabled=
    sshKeyAccessEnabled=
    sshPublicKey1=
    adminDisclaimerText=
    sshLoginBannerText=VMware EUC Unified Access Gateway
    secureRandomSource=
    hostClockSyncEnabled=false
    extendedServerCertValidationEnabled=false
    sslprovider=
    tlsNamedGroups=
    tlsSignatureSchemes=
    osLoginUsername= 
    adminMaxConcurrentSessions=5
    osMaxLoginLimit=10
    dsComplianceOS=false
    sshPort=22
    sshInterface=eth0
    
    [WorkspaceOneIntelligenceSettings1]
    encodedCredentialsFile=
    name=TEST1
    trustedCert1=
    urlThumbprints=bed22939bf8546d15de2136f4c33f48f31d44e71
    
    [WorkspaceOneIntelligenceSettings2]
    encodedCredentialsFile=
    name=RISK_SCORE
    
    [SnmpSettings]
    version= v3
    usmUser= SAM_SNMP_V3
    securityLevel=
    authAlgorithm=
    authPassword=
    privacyAlgorithm=
    privacyPassword=
    engineID=uag1.example.com
    
    [WebReverseProxy1]
    proxyDestinationUrl=https://10.108.120.21
    trustedCert1=
    instanceId=view
    healthCheckUrl=/favicon.ico
    userNameHeader=AccessPoint-User-ID
    proxyPattern=/(.*)
    landingPagePath=/
    hostEntry1=10.108.120.21 HZNView.uagqe.auto.com
    
    [Horizon]
    endpointComplianceCheckProvider=Workspace_ONE_Intelligence_Risk_Score
    proxyDestinationUrl=https://enterViewConnectionServerUrl
    trustedCert1=
    gatewayLocation=external
    disableHtmlAccess=false
    healthCheckUrl=/favicon.ico
    proxyDestinationIPSupport=IPV4
    smartCardHintPrompt=false
    queryBrokerInterval=300
    proxyPattern=(/|/view-client(.*)|/portal(.*)|/appblast(.*))
    matchWindowsUserName=false
    windowsSSOEnabled=false
    complianceCheckOnAuthentication=true
    proxyDestinationUrlThumbprints=
    proxyDestinationPreLoginMessageEnabled=true
    customExecutable1=WEBEXVDIPLUGIN
    
    [CustomExecutableSettings1]
    name=OPSWAT2
    osType=
    trustedSigningCertificates1=
    url=<<URL to custom executable file>>
    urlResponseRefreshInterval=
    isObtainedFromURL=
    
    [Airwatch]
    tunnelGatewayEnabled=true
    disableAutoConfigUpdate=false
    pacFilePath=
    pacFileURL=
    credentialFilePath=
    apiServerUsername=domain\apiusername
    apiServerPassword=*****
    proxyDestinationUrl=https://null
    ntlmAuthentication=false
    healthCheckUrl=/favicon.ico
    organizationGroupCode=
    apiServerUrl=https://null
    outboundProxyHost=1.2.3.4
    outboundProxyPort=3128
    outboundProxyUsername=proxyuser
    outboundProxyPassword=****
    reinitializeGatewayProcess=false
    airwatchServerHostname=tunnel.acme.com
    trustedCert1=c:\temp\CA-Cert-A.pem
    hostEntry1=1.3.5.7 backend.acme.com
    
    [AirwatchSecureEmailGateway]
    memConfigurationId=abc123
    apiServerUsername=domain\apiusername
    healthCheckUrl=/favicon.ico
    apiServerUrl=https://null
    outboundProxyHost=1.2.3.4
    outboundProxyPort=3128
    outboundProxyUsername=proxyuser
    outboundProxyPassword=****
    reinitializeGatewayProcess=false
    airwatchServerHostname=serverNameForSNI
    apiServerPassword=****
    trustedCert1=c:\temp\CA-Cert-A.pem
    pfxCerts=C:\Users\admin\My Certs\mycacerts.pfx
    hostEntry1=1.3.5.7 exchange.acme.com
    
    [AirWatchContentGateway]
    cgConfigId=abc123
    apiServerUrl=https://null
    apiServerUsername=domain\apiusername
    apiServerPassword=*****
    outboundProxyHost=
    outboundProxyPort=
    outboundProxyUsername=proxyuser
    outboundProxyPassword=*****
    hostEntry1=192.168.1.1 cgbackend.acme.com
    trustedCert1=c:\temp\CA-Cert-A.pem
    ntlmAuthentication=false
    reinitializeGatewayProcess=false
    airwatchServerHostname=cg.acme.com
    
    [SSLCert]
    pemPrivKey=
    pemCerts=
    pfxCerts=
    pfxCertAlias=
    
    [SSLCertAdmin]
    pemPrivKey=
    pemCerts=
    pfxCerts=
    pfxCertAlias=
    
    [WorkspaceONEIntelligenceRiskScoreEndpointComplianceCheckSettings]
    allowLow=true
    allowMedium=true
    allowHigh=true
    complianceCheckInterval=5
    allowOthers=false
    name=Workspace_ONE_Intelligence_Risk_Score
    workspaceOneIntelligenceSettingsName=RISK_SCORE
    
    [JWTSettings1]
    publicKey1=
    publicKey2=
    publicKey3=
    name=JWT_1
    
    [JWTSettings2]
    publicKey1=
    publicKey2=
    name=JWT_2
    
    [JWTIssuerSettings1]
    issuer=issuer-1
    jwtType=PRODUCER
    name=issuerJWT_1
    pemPrivKey=
    pemCerts=
    pfxCerts=
    pfxCertAlias=
    
    [JWTIssuerSettings2]
    issuer=issuer-2
    jwtType=PRODUCER
    name=issuerJWT_2
    pemPrivKey=
    pemCerts=
    pfxCerts=
    pfxCertAlias=
    
    [AdminUser1]
    name=monitoringUser1
    enabled=true
    
    [AdminUser2]
    name=monitoringUser2
    enabled=true
    
    [OutboundProxySettings1]
    proxyUrl=
    name=
    proxyType=HTTP
    includedHosts1=
    includedHosts2=
    trustedCert1=
    
    [OutboundProxySettings2]
    proxyUrl=
    name=
    proxyType=HTTP
    includedHosts1=
    includedHosts2=
    trustedCert1=
    
    [adminSAMLSettings]
    enable=true
    entityId=https://www.entityid.com
    
    [IDPExternalMetadata1]
    allowUnencrypted=false
    certChainPem=
    encryptionCertificateType=
    entityID=<entityID>
    forceAuthN=false
    metadataXmlFile=<Path of IDP metadata xml file>
    privateKeyPem=
    
    [OPSWATEndpointComplianceCheckSettings]
    allowInCompliance=
    allowEndpointUnknown=
    complianceCheckFastInterval=
    complianceCheckInitialDelay=
    complianceCheckInterval=
    allowNotInCompliance=
    allowOutOfLicenseUsage=
    allowAssessmentPending=
    allowOthers=
    hostName=
    name=
    clientSecret=
    clientKey=
    
    [PackageUpdates]
    packageUpdatesScheme=OFF|ON_NEXT_BOOT|ON_EVERY_BOOT
    packageUpdatesOSURL=
    packageUpdatesURL=
    trustedCert1=
    
    [SyslogServerSettings1]
    sysLogType=TCP
    syslogCategory=ALL
    syslogFormat=TEXT
    syslogSettingName=
    syslogSystemMessagesEnabledV2=true
    syslogUrl=
    
    [SyslogServerSettings2]
    hostname=
    port=6515
    sysLogType=TLS
    syslogCategory=ALL
    syslogClientCertKeyPemV2=
    syslogClientCertPemV2=
    syslogServerCACertPemV2=
    syslogFormat=TEXT
    syslogSettingName=
    syslogSystemMessagesEnabledV2=false
    
    [SyslogServerSettings3]
    mqttClientCertCertPem=
    mqttClientCertKeyPem=
    mqttServerCACertPem=
    mqttTopic=
    sysLogType=MQTT
    syslogCategory=ALL
    syslogFormat=TEXT
    syslogSettingName=
    syslogSystemMessagesEnabledV2=true
    syslogUrl=
    참고:
    • INI 파일에 포함된 [adminSAMLSettings]는 관리 UI에 대한 관리자 액세스 권한을 가진 사용자를 인증하는 데 사용되는 SAML 인증 방법을 구성하기 위한 것입니다. 여기서 entityId는 외부 메타데이터 제공자 엔티티 ID를 나타냅니다.
    • 모니터링 역할이 있는 낮은 권한의 관리자 암호는 PowerShell 스크립트에 대한 매개 변수로 제공됩니다. 이 암호가 제공되지 않으면 사용자에게 암호를 입력하라는 메시지가 표시됩니다. 매개 변수를 newAdminUserPwd로 제공하고 매개 변수 값을 monitoringUser1:P@ssw0rd1;monitoringUser2:P@ssw0rd2와 유사하게 입력합니다. INI 파일의 enabled 매개 변수는 선택 사항이며 매개 변수를 사용할 수 없는 경우 기본값은 true입니다.
  5. 스크립트 실행이 제한되지 않도록 하려면 PowerShell set-executionpolicy 명령을 입력합니다.
    set-executionpolicy -scope currentuser unrestricted
    제한을 제거하려면 이 작업을 한 번만 하면 됩니다.
    1. (선택 사항) 스크립트에 대한 경고가 표시되면 다음 명령을 실행하여 경고를 차단 해제합니다. unblock-file -path .\uagdeploy.ps1
  6. 이 명령을 실행하여 배포를 시작합니다. .INI 파일을 지정하지 않으면 스크립트는 기본적으로 ap.ini가 됩니다.
    .\uagdeploy.ps1 -iniFile uag1.ini
  7. 자격 증명을 입력하라는 메시지가 표시되면 입력하고 스크립트를 완료합니다.
    참고: 대상 시스템에 대한 지문을 추가하라는 메시지가 표시되면 yes를 입력합니다.
    Unified Access Gateway 장치가 배포되고 프로덕션용으로 사용 가능합니다.

결과

PowerShell 스크립트에 대한 자세한 내용은 https://communities.vmware.com/docs/DOC-30835를 참조하십시오.

다음에 수행할 작업

기존 설정을 유지하면서 Unified Access Gateway를 업그레이드하려면 .ini 파일을 편집하여 소스 참조를 새 버전으로 변경한 후 .ini 파일을 다시 실행합니다( uagdeploy.ps1 uag1.ini). 이 프로세스에는 최대 3분이 소요될 수 있습니다.
[General]
name=UAG1
source=C:\temp\euc-unified-access-gateway-3.2.1-7766089_OVF10.ova

서비스 중단 없이 업그레이드하려면 다운타임이 없는 업그레이드를 참조하십시오.