

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定 探索工具
<a name="discovery-tool-configure"></a>

## 存取 探索工具主控台
<a name="discovery-tool-access-console"></a>

1. 在 Web 瀏覽器存取中：`https://{{ip_address}}:5000`，其中 {{ip\_address}} 是部署探索工具中探索工具的 IP 地址。探索工具使用 HTTPS 連線的自我簽署憑證，這會導致安全警告。選擇**接受風險並繼續**前往探索工具主控台。

1. 如果您是第一次存取探索工具主控台，請建立探索工具登入密碼。建立密碼，以供日後登入時使用。
**重要**  
請記住此密碼 - 沒有密碼復原機制。

## 存取 探索工具 VM
<a name="discovery-tool-vm-access"></a>
+ 探索工具 VM 預設會隨附使用者名稱和密碼 (「探索」、「密碼」)。為了增強安全性，我們建議您在透過 Hypervisor 主控台登入 VM `sudo passwd discovery`之後使用 更新密碼 （例如，vSphere Client for VMware 或 Hyper-V Manager for Hyper-V)。
+ SSH 存取預設為停用。使用者可以使用預先設定`enablessh`和別名來啟用/停用探索工具 `disablessh` VM 的 SSH 存取。啟用 SSH 存取`ssh discovery@<VM-IP>`後，使用者可以透過 將 SSH 傳入 VM。我們鼓勵使用者在大多數情況下停用 SSH 存取，並只在主動要求時啟用它。執行 時會強制執行密碼變更`enablessh`。
+ 若要存取位於 的 探索工具資料目錄`/home/ec2-user/.local/share/DiscoveryTool`，建議您`ec2-user`執行 以切換到 `sudo su ec2-user`。

## 設定 Kerberos 身分驗證
<a name="security-kerberos"></a>

Kerberos 身分驗證是建議從 探索工具連線至 Windows 伺服器的方法。探索工具 VM 使用原生 Amazon Linux 2023 Kerberos 程式庫來驗證 Active Directory 網域。

以下是探索工具 VM 上 Kerberos 身分驗證的重點：
+ 使用 `kinit`命令來取得 Kerberos 票證`klist`並驗證票證。
+ Kerberos 組態檔案位於 `/etc/krb5.conf`。
+ 設定探索工具之前，請在探索工具 VM 上驗證 是否從 CLI `kinit`成功。

### Kerberos 先決條件
<a name="kerberos-prerequisites"></a>

設定 Kerberos 身分驗證之前，請確認您具有下列資訊和網路連線能力。

1. 從您的 Active Directory 管理員取得下列資訊：
   + Kerberos 領域名稱 （通常是您大寫的網域名稱，例如 `EXAMPLE.COM`)。
   + Key Distribution Center (KDC) 的主機名稱或 IP 地址，通常是網域控制站 （例如 `dc01.example.com`)。
   + 具有對目標 Windows 伺服器進行身分驗證之許可的服務帳戶。

1. 確認探索工具 VM 具有下列項目的網路連線能力：
   + 用於 Kerberos 身分驗證的連接埠 88 (TCP 和 UDP) 上的 KDC。
   + WinRM 連接埠上的目標 Windows 伺服器 (HTTP 為 5985，HTTPS 為 5986)。

### 設定 Kerberos
<a name="kerberos-configuration"></a>

完成下列步驟，以在探索工具 VM 上設定 Kerberos 身分驗證。

1. 探索工具 VM 的 SSH。

   ```
   ssh discovery@<discovery-tool-vm-ip>
   ```

1. 在 編輯 Kerberos 組態檔案`/etc/krb5.conf`。

   ```
   sudo nano /etc/krb5.conf
   ```

   新增下列組態，將預留位置值取代為您的環境詳細資訊。

   ```
   [libdefaults]
       default_realm = EXAMPLE.COM
       dns_lookup_realm = false
       dns_lookup_kdc = true
   
   [realms]
       EXAMPLE.COM = {
           kdc = dc01.example.com
       }
   
   [domain_realm]
       .example.com = EXAMPLE.COM
       example.com = EXAMPLE.COM
   ```
**重要**  
Kerberos 區分大小寫。領域名稱必須為大寫 （例如 `EXAMPLE.COM`，而非 `example.com`)。`[domain_realm]` 區段中的網域名稱必須為小寫。

   **多個 Active Directory 網域**

   探索工具支援不同 Active Directory 網域的多個 Kerberos 登入資料。每個登入資料都會獨立驗證，因此您可以正常設定多個登入資料，且會自動隔離。

   如果您在多個網域中有伺服器，請為 `/etc/krb5.conf` 檔案中的每個領域新增項目：

   ```
   [libdefaults]
       default_realm = DEV.COMPANY.COM
       dns_lookup_realm = false
       dns_lookup_kdc = true
   
   [realms]
       DEV.COMPANY.COM = {
           kdc = dc01.dev.company.com
       }
       PROD.COMPANY.COM = {
           kdc = dc01.prod.company.com
       }
   
   [domain_realm]
       .dev.company.com = DEV.COMPANY.COM
       dev.company.com = DEV.COMPANY.COM
       .prod.company.com = PROD.COMPANY.COM
       prod.company.com = PROD.COMPANY.COM
   ```

1. 執行 `kinit`命令，確認您可以取得 Kerberos 票證。

   ```
   kinit username@REALM.COM
   ```

   出現提示時輸入密碼。如果命令完成時沒有發生錯誤，表示身分驗證成功。

1. 執行 `klist`命令來驗證票證。

   ```
   klist
   ```

   預期的輸出類似於以下內容。

   ```
   Ticket cache: FILE:/tmp/krb5cc_1000
   Default principal: username@REALM.COM
   
   Valid starting       Expires              Service principal
   01/01/2025 12:00:00  01/01/2025 22:00:00  krbtgt/REALM.COM@REALM.COM
   ```

1. 使用與 相同的區分大小寫主體來設定探索工具 `kinit`（例如，`username@REALM.COM`)。

如果您的環境已針對 Kerberos 服務探索設定 DNS SRV 記錄，則可能不需要明確的`krb5.conf`組態。如需 Kerberos 組態選項的詳細資訊，請參閱 [MIT Kerberos krb5.conf 文件](https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html)和[範例 krb5.conf 檔案。](https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html#sample-krb5-conf-file)

### 從加入網域的機器尋找 Kerberos 組態
<a name="kerberos-find-config"></a>

如果您沒有 Kerberos 組態詳細資訊，您可以從加入網域的 Windows 機器擷取詳細資訊。從加入網域的機器上的命令提示字元執行下列命令。

若要尋找網域名稱，請執行下列命令。

```
echo %USERDNSDOMAIN%
```

輸出範例：

```
EXAMPLE.COM
```

若要尋找網域控制器主機名稱，請執行下列命令。

```
nltest /dsgetdc:EXAMPLE.COM
```

輸出範例：

```
           DC: \\dc01.example.com
      Address: \\10.0.1.100
     Dom Guid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
     Dom Name: EXAMPLE.COM
  Forest Name: example.com
 Dc Site Name: Default-First-Site-Name
Our Site Name: Default-First-Site-Name
        Flags: 0xe00033fd
The command completed successfully
```

將輸出映射到您的`krb5.conf`組態，如下所示：
+ **領域** – 使用 `%USERDNSDOMAIN%`中的大寫值 （例如，`EXAMPLE.COM`)。
+ **KDC** – 使用輸出中的 DC 主機名稱 `nltest`（例如 `dc01.example.com`)。

## 設定 vCenter 存取
<a name="discovery-tool-vcenter-config"></a>

1. 在**探索工具**頁面**的步驟 1 下。設定探索來源**，選擇**設定來源**。

1. 在**設定探索來源**頁面上，提供**易記名稱**、**vCenter FQDN/IP**、**使用者名稱和密碼******。

1. 選擇 **Save configuration** (儲存組態)。

   探索工具會開始收集 vCenter 資訊，如[探索的庫存](https://docs.aws.amazon.com/transform/latest/userguide/discovery-tool-data-collection.html#discovery-tool-inventory)中所述。

在初始組態後，在**探索工具狀態**框架中選擇**編輯 vCenter 存取**，以變更您的 vCenter 存取設定。

探索工具會從所有設定的 vCenter 伺服器平行收集。如果在收集期間無法連線一個 vCenter 伺服器，工具會報告部分成功，並繼續從剩餘的 vCenter 伺服器收集。

如果 VM 出現在多個 vCenter 伺服器上 （例如，由於共用 ESXi 主機或跨 vCenter vMotion)，探索工具會自動刪除重複VMs。每個唯一的 VM 只會在庫存中出現一次。

## 設定 Hyper-V 存取
<a name="discovery-tool-hyperv-config"></a>

1. 在**探索工具**頁面**的步驟 1 下。設定探索來源**，選擇**設定來源**。

1. 在**設定探索來源**頁面上，提供**易記的名稱**、**主機 FQDN 或 IP 地址**、**身分驗證類型 (NTLM 或 Kerberos)**、**WinRM 使用者名稱**和 **WinRM 密碼**。

1. 選擇 **Save configuration** (儲存組態)。

   探索工具會開始收集 Hyper-V 資訊，如[探索的庫存](https://docs.aws.amazon.com/transform/latest/userguide/discovery-tool-data-collection.html#discovery-tool-inventory)中所述。

在您儲存登入資料後，集合會自動開始。

對於 Hyper-V 容錯移轉叢集，您可以在同一個叢集中新增多個主機。此工具會自動刪除出現在多個主機上的 VMs。

## 匯入伺服器
<a name="discovery-tool-bare-metal-import"></a>

1. 從探索工具首頁導覽至**匯入伺服器**頁面。

1. 使用下列資料欄準備 CSV 檔案： `hostname_or_ip`（必要）、 `os_credential_name` （選用） 和 `oracle_credential_name`（選用）。
   + `hostname_or_ip` 值必須是有效的 IPv4 地址或完整網域名稱 (FQDN)。
   + 如果提供此`os_credential_name`值，則必須符合您已設定之作業系統登入資料的易記名稱 (SSH、WinRM 或 SNMP)。對於尚未設定作業系統登入資料的伺服器，請保留空白。
   + 如果提供此`oracle_credential_name`值，則必須符合您已設定的 Oracle 登入資料的易記名稱。

1. 上傳 CSV 檔案。工具會驗證所有資料列，並在任何資料列無效時拒絕檔案。

成功匯入後，如果已設定作業系統登入資料，工具會自動開始為匯入的伺服器收集資料庫、網路和作業系統指標。如果您上傳另一個 CSV 檔案，則會更新現有的記錄而不建立重複項目，並將新的記錄合併到清查中。

## 將自我簽署憑證授權單位匯入探索工具 （選用）
<a name="security-certificate-authority"></a>

當您使用由自我簽署憑證授權單位 (CA) 簽署的 WinRM HTTPS 憑證透過 HTTPS 和目標伺服器使用 WinRM，而且您想要在探索工具上啟用「驗證伺服器 SSL 憑證」時，這是必要的。 WinRM 

### 先決條件
<a name="certificate-prerequisites"></a>

1. 用於在目標伺服器上簽署 WinRM HTTPS 憑證的自我簽署 CA 憑證

1. PEM 格式的憑證 (.pem 或 .crt 延伸）

若要在探索工具 VM 上匯入自我簽署憑證授權單位：

1. Ssh to Discovery 工具 VM

1. 將簽署目標伺服器 WinRM 憑證的 CA 憑證 (CA) 放入探索工具 VM `/etc/pki/ca-trust/source/anchors/`上的信任存放區目錄。例如：`sudo cp winrm-ca.pem /etc/pki/ca-trust/source/anchors/winrm-ca.pem`。注意：如果您的目標伺服器使用不同 CAs憑證，請將所有相關 CA 憑證複製到此目錄。

1. 更新憑證信任存放區： `sudo update-ca-trust`

1. 重新啟動 VM

1. （選用） 若要確認憑證已成功匯入，您可以執行下列命令。 `sudo trust list —filter=ca-anchors | grep -A 5 "<certificate_name>"`

請參閱 [Windows Remote Management 的安裝和組態](https://learn.microsoft.com/en-us/windows/win32/winrm/installation-and-configuration-for-windows-remote-management)

## 設定作業系統存取的探索工具
<a name="discovery-tool-os-access"></a>

設定作業系統存取，以便探索工具可以：
+ 探索資料庫以執行資料庫評估並協助 VM 遷移，
+ 追蹤庫存中伺服器之間的網路連線，包括與每個連線相關聯的程序，以協助應用程式相依性映射和波規劃。只有兩個端點都位於探索工具清查中的連線才會包含在內。

**啟用探索工具作業系統存取**

1. 導覽至**設定作業系統存取**頁面，以提供 Windows 和 Linux 登入資料。

1. 選擇您要為其新增登入資料的通訊協定。

1. 提供所選通訊協定所需的登入資料。

1. 選取**自動連線**以啟用探索工具，在探索的伺服器上嘗試所有提供的登入資料，直到找到每個伺服器的相符登入資料為止。

   如需自動連線功能的重要安全建議，[謹慎使用自動連線功能](discover-tool-security.md#auto-connect-caution)請參閱 。

1. 選擇**設定並連線**。

當作業系統比對程序完成時，您會看到一則訊息，指出資料收集正在進行中，以及找不到登入資料比對之伺服器的相關錯誤。

### 支援的通訊協定設定
<a name="discovery-tool-os-access-protocols"></a>

您必須在目標伺服器上設定 WinRM、SSH 和 SNMP 通訊協定，探索工具才能與其通訊。

#### 設定 WinRM 和 WMI
<a name="discovery-tool-winrm-setup"></a>

WinRM 會自動與目前支援的所有 Windows 作業系統版本一起安裝。

若要驗證或編輯 WinRM 組態，請使用`winrm`命令列工具：
+ 驗證已安裝的 WinRM 接聽程式： `winrm enumerate winrm/config/listener`
+ 驗證 WinRM 組態： `winrm get winrm/config`
+ 設定 WinRM 的範例命令： `winrm quickconfig -transport:https`

**接聽程式連接埠**

預設 HTTP 連接埠為 5985；HTTPS 為 5986。您可以視需要使用其他連接埠。連接埠必須在探索工具和目標伺服器之間開啟。

**加密**

探索工具使用加密的 WinRM 通訊。我們建議目標伺服器上的 WinRM 接聽程式也使用加密： `winrm set winrm/config/service '@{AllowUnencrypted="false"}'`

**NTLM 與 Kerberos**

探索工具支援 WinRM 身分驗證通訊協定 Kerberos 和 NTLM。NTLM 只能與 HTTPS 搭配使用，而 Kerberos 可以與 HTTP 或 HTTPS 搭配使用。

**WMI 要求**

探索工具會查詢下列 WMI 命名空間。WinRM 帳戶需要與您的集合模組相關的每個命名空間的讀取存取權：


| WMI 命名空間 | 使用者： | 
| --- | --- | 
| root\\cimv2 | 作業系統指標、Hyper-V 主機中繼資料、SQL Server 集合 | 
| root\\virtualization\\v2 | Hyper-V VM 庫存 | 
| root\\StandardCIMV2 | 網路集合 | 
| root\\Microsoft\\SqlServer\\ComputerManagement\* | SQL Server 集合 | 
| root\\Microsoft\\SqlServer\\ReportServer\\\* | SQL Server 集合 (SSRS) | 

針對網路集合，請確定符合下列條件：
+ 允許透過 ICMP 進行網路連線
+ 允許透過 TCP 連接埠 135 \+ 暫時性 TCP 連接埠範圍 (49152 - 65535) 進行網路連線
+ 停用 UAC
+ 遠端 DCOM 許可已設定
+ 建立具有最少必要許可的專用服務帳戶
+ 已為具有命名空間的 Windows 帳戶設定 WMI 命名空間許可：`\\root\\standardcimv2`、 `MSFT_NetTCPConnection`類別

對於 SQL Server 集合，由於複雜的 WMI 物件許可要求，需要屬於**本機管理員群組**的 Windows 帳戶 （本機或網域）。

### 設定 SSH
<a name="discovery-tool-ssh-setup"></a>
+ 預設連接埠為 22。支援自訂連接埠。設定的連接埠必須在探索工具和目標伺服器之間開啟。
+ 若要讓 SSH 網路集合正常運作，請提供針對無密碼 sudo 設定的使用者。
+ 確定下列命令可用於目標 Linux 伺服器 （在大多數發行版本上預設安裝）： `ss`或 `netstat`用於網路集合，以及 `lsblk`、`iostat`、`dmidecode`、`ip`、、、 `smartctl` `top` `ps` `free`和 `df`用於作業系統指標集合。

探索工具支援兩種 SSH 身分驗證方法：

**選項 1：使用者名稱和密碼**

提供 SSH 使用者名稱和密碼。這是預設身分驗證方法。

**選項 2：SSH 私有金鑰**

以 PEM 格式提供 SSH 使用者名稱和私有金鑰。若要使用此選項，請在設定 **SSH 登入資料時，**從**身分驗證類型**下拉式清單中選擇 SSH 金鑰。如果使用密碼片語加密私有金鑰，請在選用的**金鑰密碼片語欄位中輸入密碼片語**。

支援下列金鑰格式：
+ RSA
+ ECDSA
+ Ed25519
+ OpenSSH 格式
+ PKCS\#8 格式

這兩種身分驗證方法都支援自動連線。登入資料會靜態加密儲存。

### 設定 SNMP
<a name="discovery-tool-snmp-setup"></a>
+ 預設連接埠為 161/UDP。支援自訂連接埠。設定的連接埠必須在探索工具和目標伺服器之間開啟。
+ 對於 SNMP v2：提供可存取 TCP 連線 OIDs唯讀社群字串。
+ 對於 SNMP v3：使用可存取 TCP 連線 OIDs唯讀許可，提供使用者名稱/密碼和身分驗證/權限詳細資訊

探索工具需要存取：
+ `"1.3.6.1.2.1.6.13.1.1." (tcpConnState)`
+ `"1.3.6.1.2.1.6.19.1.8." (tcpConnectionProcess)`
+ `"1.3.6.1.2.1.25.4.2.1.2." (hrSWRunName)`

## 設定 Oracle 資料庫存取
<a name="discovery-tool-oracle-access"></a>

設定 Oracle 資料庫存取，以直接透過 SQL 連線收集詳細的 Oracle 資料庫中繼資料。收集的中繼資料包括 CDB 和 PDB 拓撲、功能用量和安裝選項。此資料可協助您更準確地規劃 Oracle 資料庫遷移。您可以透過直接 SQL 連線收集 Oracle Database 12c 版本 1 (12.1) 和更新版本。作業系統層級備用偵測適用於所有 Oracle 版本。

**在 探索工具中設定 Oracle 登入資料**

1. 在**探索工具**頁面的邊欄中，選擇**資料庫存取**。

1. 選擇**新增 Oracle 登入資料**。

1. 請提供下列資訊：
   + **易記名稱** – 此登入資料的描述性名稱 （例如 `Oracle Production`)。
   + **連接埠** – Oracle 接聽程式連接埠 （預設 1521)。
   + **服務名稱** – 目標資料庫的 Oracle 服務名稱。
   + **使用者名稱** – Oracle 服務帳戶使用者名稱。
   + **密碼** – Oracle 服務帳戶密碼。
   + **自動連線** – 開啟此選項，針對庫存中的所有伺服器嘗試登入資料。關閉此選項，以手動將登入資料指派給特定伺服器。

1. 若要新增更多登入資料 （例如，針對不同的 Oracle 環境），請再次選擇**新增 Oracle 登入資料**。

1. 選擇**儲存**。

**登入資料模式**

當您設定 Oracle 登入資料時，您可以選擇兩種模式：
+ **手動** – 將登入資料固定到特定伺服器。探索工具只會針對該伺服器使用該登入資料。如果連線失敗，則不會發生備用。修正登入資料組態以解決問題。
+ **自動連線** – 探索工具會針對庫存中的每個伺服器嘗試每個自動連線憑證。當伺服器登入資料成功時，探索工具會將該登入資料用於所有後續的集合回合。

**偵測流程**

當您設定 Oracle 登入資料時，探索工具會先嘗試直接 SQL 連線。如果所有資料庫登入資料都失敗，工具會透過 SSH 或 WinRM 回到作業系統層級偵測，因此您仍然可以在沒有資料庫存取權的情況下探索 Oracle 安裝。

## 更新探索工具
<a name="discovery-tool-updating"></a>

探索工具沒有自動更新功能，但您將在安裝 30 天後收到提醒通知以進行更新。建議您將應用程式保持在up-to-date，以接收最新的功能和安全性修補程式。

**手動更新工具**

1. 從提供的連結下載最新的探索工具映像檔案 （適用於 VMware 的 OVA 或適用於 Hyper-V 的 VHD)。

1. （選用） 建議您先刪除先前的探索工具映像檔案，再部署最新的。

1. 請依照部署探索工具區段中的步驟來部署更新版本。

## 撤銷存取
<a name="discovery-tool-revoking"></a>

您可以個別撤銷每個探索來源的存取權。當您撤銷某個來源的存取權時，來自其他來源的資料不會受到影響。
+ **撤銷 vCenter 存取** – 刪除 vCenter 登入資料和 VMware 收集的資料。不會刪除 Hyper-V 資料、匯入的伺服器資料或作業系統登入資料。
+ **撤銷 Hyper-V 存取** – 僅刪除 Hyper-V 登入資料和 Hyper-V-collected。
+ **刪除匯入的伺服器** – 從庫存中移除匯入的伺服器。從這些伺服器收集的下游收集資料 （網路、資料庫） 會保留。