簡介
本文檔介紹配置安全複製(SCP)以自動將Secure Web Appliance(SWA)中的日誌複製到其他伺服器的步驟。
必要條件
需求
思科建議您瞭解以下主題:
- SCP的工作原理
- SWA管理
- Microsoft Windows或Linux作業系統的管理
思科建議您:
- 已安裝物理或虛擬SWA。
- 許可證已啟用或已安裝。
- 安裝嚮導已完成。
- 對SWA圖形使用者介面(GUI)的管理訪問。
- 已安裝Microsoft Windows(至少Windows Server 2019或Windows 10(內部版本1809))或Linux系統。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
SCP
安全複製(SCP)的行為與遠端複製(RCP)類似,後者來自Berkeley r-tools套件(Berkeley大學自有的一組網路應用程式),不同之處在於SCP依賴安全外殼(SSH)實現安全性。此外,SCP要求配置身份驗證、授權和記帳(AAA)授權,以便裝置可以確定使用者是否具有正確的許可權級別
遠端伺服器上的SCP方法(相當於SCP推送)定期通過安全複製協定將日誌檔案推送到遠端SCP伺服器。此方法要求遠端電腦上具有SSH2協定的SSH SCP伺服器。訂閱需要在遠端電腦上提供使用者名稱、SSH金鑰和目標目錄。根據您設定的滾動更新計畫傳輸日誌檔案。
SWA日誌訂閱
可以為每種型別的日誌檔案建立多個日誌訂閱。訂用包括歸檔和儲存方面的配置詳細資訊,包括:
- 滾動更新設定,用於確定日誌檔案的存檔時間
- 已存檔日誌的壓縮設定
- 歸檔日誌的檢索設定,用於指定是將日誌歸檔到遠端伺服器上還是儲存在裝置上
歸檔日誌檔案
當當前日誌檔案達到使用者指定的最大檔案大小限制或自上次滾動後的最長時間限制時,AsyncOS存檔(滾動)日誌訂閱。
日誌訂閱中包含以下存檔設定:
- 按檔案大小滾動更新
- 按時間滾動更新
- 日誌壓縮
- 檢索方法
您也可以手動存檔(回滾)日誌檔案。
步驟1.選擇System Administration > Log Subscriptions。
步驟2.選中要存檔的日誌訂閱的Rollover列中的覈取方塊,或選中All復選框以選擇所有訂閱。
步驟3 .按一下Rollover Now以存檔選定的日誌。
影象 — 立即滾動GUI
在遠端伺服器上通過SCP配置日誌檢索
從SWA使用SCP將日誌檢索到遠端伺服器有兩個主要步驟:
- 配置SWA以推送日誌。
- 配置遠端伺服器以接收日誌。
配置SWA以從GUI將日誌傳送到SCP遠端伺服器
步驟1.登入到SWA,從System Administration中選擇Log Subscriptions。
影象 — 選擇日誌訂閱
步驟2.在「日志訂閱」頁上,選擇「新增日誌訂閱:
影象 — 選擇新增日誌訂閱
步驟3.選擇日誌型別。在此示例中,已選擇訪問日誌。
步驟4.輸入日誌訂閱的名稱。
步驟5.(可選)您可以按檔案大小更改滾動更新。
步驟6.從Retrieval方法中,選擇Remote Server上的SCP。
步驟7.輸入遠端伺服器的以下資訊:
- SCP主機名或IP地址
- 遠端伺服器上偵聽SSH的偵聽埠號(預設值為TCP/22)
- 目錄名稱
- 用於連線到遠端伺服器的使用者名稱
影象 — 配置日誌引數
附註:在本示例中,使用者名稱是wsascp,遠端伺服器是Microsoft Windows作業系統。在c:\users\wccpscp資料夾(即Microsoft中的使用者配置檔案資料夾)中建立資料夾wsa01。
提示:您只需鍵入資料夾名稱;在本例中,它是wsa01。
步驟8.提交變更。
步驟9.將SSH金鑰儲存在文本檔案中,以供在遠端SCP伺服器配置部分進一步使用。
附註:您需要同時複製以ssh-和以root@<SWA主機名>結束的兩行。
影象 — 儲存SSH金鑰以供進一步使用。
步驟10.提交更改。
將Microsoft Windows配置為SCP遠端伺服器
步驟10.要為SCP服務建立使用者,請導航到Computer Management:
附註:如果您已經有了SCP使用者,請跳至步驟16。
步驟11.選擇Local Users和Groups,然後從左窗格中選擇Users。
步驟12.按一下右鍵首頁並選擇新使用者。
影象 — 為SCP服務建立使用者。
步驟13.輸入使用者名稱和所需的密碼。
步驟14.選擇Password Never Expired。
步驟15.按一下Create,然後關閉視窗。
影象 — 輸入新使用者資訊。
步驟16.使用新建立的使用者登入到遠端SCP伺服器,以建立配置檔案目錄。
附註:如果遠端SCP伺服器上安裝了OpenSSL,請跳至步驟19。
步驟17.使用管理員許可權開啟PowerShell(以管理員身份運行)並運行以下命令檢查先決條件:
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
如果輸出為True,您可以繼續。否則,請與Microsoft支援團隊聯絡,
步驟 18. 要使用具有管理員許可權的PowerShell安裝OpenSSH(以管理員身份運行),請運行:
# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
以下是成功結果的示例:
Path :
Online : True
RestartNeeded : False
映像 — 在PowerShell中安裝OpenSSH
注意:如果RestartNeeded設定為True,請重新啟動Windows。
有關在其他版本的Microsoft Windows上安裝的更多資訊,請訪問Windows版OpenSSH入門指南 | Microsoft Learn。
步驟 19.開啟常規(非提升的)PowerShell會話,並使用命令生成一對RSA金鑰:
ssh-keygen -t RSA
命令完成後,您可以看到.ssh資料夾已建立您的使用者配置檔案目錄。
映像 — 生成RSA金鑰
步驟20.使用管理員許可權(以管理員身份運行)從PowerShell啟動SSH服務。
Start-Service sshd
步驟21.(可選但建議)將服務「啟動」型別更改為「自動」,並具有「管理員」許可權以「管理員運行」。
Set-Service -Name sshd -StartupType 'Automatic'
步驟22.確認已建立允許訪問TCP埠22的防火牆規則。
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}
步驟23.編輯位於記事本中的SSH配置檔案: %programdata%\ssh\sshd_config ,刪除RSA和DSA的#。
HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key
步驟24.編輯%programdata%\ssh\sshd_config中的連線條件。在本例中,偵聽地址用於所有介面地址。您可以根據您的設計進行自定義。
Port 22
#AddressFamily any
ListenAddress 0.0.0.0
步驟25.在%programdata%\ssh\sshd_config檔案的末尾標籤這兩行,方法是在每行開頭新增#:
# Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
步驟26.(可選)編輯%programdata%\ssh\sshd_config中的嚴格模式。預設情況下,此模式處於啟用狀態,並且如果私有金鑰和公用金鑰未受到適當保護,將阻止基於SSH金鑰的身份驗證。
取消註釋該行#StrictModes是,並將其更改為StrictModes no:
StrictModes No
步驟27.將#從此行刪除%programdata%\ssh\sshd_config以允許公鑰身份驗證
PubkeyAuthentication yes
步驟28.在.ssh資料夾中建立文本檔案authorized_keys並貼上SWA公共RSA金鑰(在步驟9中收集):
影象 — SWA公鑰
附註:複製整行,從ssh-rsa開始並以root@<your_SWA_hostname>結束。
提示:由於RSA安裝在SCP伺服器上,因此無需貼上ssh-dss金鑰。
步驟29.在具有管理員許可權(以管理員身份運行)的PowerShell中啟用OpenSSH身份驗證代理。
Set-Service -Name ssh-agent -StartupType 'Automatic'
Start-Service ssh-agent
映像 — 啟用開放式SSH身份驗證代理
步驟30.(可選)將此行新增到%programdata%\ssh\sshd_config以允許金鑰型別:
PubkeyAcceptedKeyTypes ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,ssh-rsa,ssh-dss
步驟31.重新啟動SSH服務。可以通過具有管理員許可權的PowerShell使用此命令(以管理員身份運行
restart-Service -Name sshd
步驟32.要測試SCP推送配置是否正確,請將滑鼠指標置於已配置的日誌上,可以從GUI或CLI(rollovernow命令)執行:
WSA_CLI> rollovernow scpal
您可以確認日誌已複製到定義的資料夾,在本例中為c:/Users/wsascp/wsa01。
將SCP日誌推送到其他驅動器
如果您需要將日誌推入除C:以外的其他驅動器,請建立從使用者配置檔案資料夾到所需驅動器的連結。在此範例中,日誌會被推送到D:\WSA_Logs\WSA01。
步驟1.在所需的驅動器中建立資料夾。
步驟2.使用管理員許可權(以管理員身份運行)開啟命令提示。
步驟3.運行此命令以建立連結:
mklink /d c:\users\wsascp\wsa01 D:\WSA_Logs\WSA01
影象 — 建立SYM連結
附註:在本示例中,SWA配置為將日誌推送到C:\Users\wsascp中的WSA01資料夾,而SCP伺服器將WSA01資料夾作為到D:\WSA_Logs\WSA01的符號連結。
有關Microsoft Symbol Link的詳細資訊,請訪問:mklink | Microsoft學習
排除SCP日誌推送故障
在SWA中檢視日誌
要對SCP日誌推送進行故障排除,請檢查中的錯誤:
1. CLI > displayalerts
2.系統日誌
附註:要讀取system_logs,您可以在CLI中使用grep命令。選擇與system_logs關聯的數字並回答嚮導中的問題。
在SCP伺服器中檢視日誌
您可以在Microsoft事件檢視器、應用程式和服務日誌> OpenSSH > Operational中讀取SCP伺服器日誌:
映像 — PreAuth失敗
"主機金鑰驗證失敗"
此錯誤表示儲存在SWA中的SCP伺服器公鑰無效。
以下是CLI中displayalerts輸出的錯誤範例:
02 Jan 2024 16:52:35 +0100 Log Error: Push error for subscription scpal: SCP failed to transfer to 10.48.48.195:22:
Last message occurred 68 times between Tue Jan 2 15:53:01 2024 and Tue Jan 2 16:52:31 2024.
Log Error: Push error for subscription scpal: SCP failed to transfer to 10.48.48.195:22: Host key verification failed.
Last message occurred 46 times between Tue Jan 2 16:30:19 2024 and Tue Jan 2 16:52:31 2024.
Log Error: Push error for subscription scpal: SCP failed to transfer to 10.48.48.195:22: lost connection
Last message occurred 68 times between Tue Jan 2 15:53:01 2024 and Tue Jan 2 16:52:31 2024.
Log Error: Push error for subscription scpal: SCP failed to transfer to 10.48.48.195:22: ssh: connect to host 10.48.48.195 port 22: Operation timed out
Last message occurred 22 times between Tue Jan 2 15:53:01 2024 and Tue Jan 2 16:29:18 2024.
以下是system_logs中錯誤的一些示例:
Tue Jan 2 19:49:50 2024 Critical: Log Error: Push error for subscription scp: SCP failed to transfer to 10.48.48.195:22:
Tue Jan 2 19:49:50 2024 Critical: Log Error: Push error for subscription scp: SCP failed to transfer to 10.48.48.195:22: lost connection
Tue Jan 2 19:49:50 2024 Critical: Log Error: Push error for subscription scp: SCP failed to transfer to 10.48.48.195:22: Host key verification failed.
要解決此問題,可以從SCP伺服器複製主機並將其貼上到SCP日誌訂閱頁面中。請參閱配置SWA中的步驟7,從GUI向SCP遠端伺服器傳送日誌,或者您可以聯絡Cisco TAC從後端刪除主機金鑰。
"許可權被拒絕(公鑰、密碼、鍵盤互動)"
此錯誤通常表示SWA中提供的使用者名稱無效。
以下是system_logs中的錯誤日誌示例:
Tue Jan 2 20:41:40 2024 Critical: Log Error: Push error for subscription scpal: SCP failed to transfer to 10.48.48.195:22:
Tue Jan 2 20:41:40 2024 Critical: Log Error: Push error for subscription scpal: SCP failed to transfer to 10.48.48.195:22: lost connection
Tue Jan 2 20:41:40 2024 Critical: Log Error: Push error for subscription scpal: SCP failed to transfer to 10.48.48.195:22: scp@10.48.48.195: Permission denied (publickey,password,keyboard-interactive).
以下是來自SCP伺服器的錯誤範例:"來自<SWA_IP地址>埠<TCP埠SWA連線到SCP伺服器>的使用者SCP無效"。
影象 — 無效使用者
要解決此錯誤,請檢查拼寫,並驗證使用者(在SWA中配置為推送日誌)在SCP伺服器中是否已啟用。
"無此類檔案或目錄"
此錯誤表示SWA日誌訂閱部分中提供的路徑無效,
以下是system_logs的錯誤示例:
Tue Jan 2 20:47:18 2024 Critical: Log Error: Push error for subscription scpal: SCP failed to transfer to 10.48.48.195:22:
Tue Jan 2 20:47:18 2024 Critical: Log Error: Push error for subscription scpal: SCP failed to transfer to 10.48.48.195:22: scp: Userswsascpwsa01/aclog.@20240102T204508.s: No such file or directory
Tue Jan 2 20:47:18 2024 Critical: Log Error: Push error for subscription scpal: SCP failed to transfer to 10.48.48.195:22: Sink: C0660 255 aclog.@20240102T204508.s
要解決此問題,請驗證拼寫,並確保路徑在SCP伺服器中正確有效。
"SCP無法傳輸"
此錯誤可能是通訊錯誤的指示符。以下是錯誤範例:
03 Jan 2024 13:23:27 +0100 Log Error: Push error for subscription scp: SCP failed to transfer to 10.48.48.195:22:
要排除連線故障,請使用SWA CLI中的telnet命令:
SWA_CLI> telnet
Please select which interface you want to telnet from.
1. Auto
2. Management (10.48.48.187/24: SWA_man.csico.com)
[1]> 2
Enter the remote hostname or IP address.
[]> 10.48.48.195
Enter the remote port.
[23]> 22
Trying 10.48.48.195...
在此示例中,未建立連線。成功的連線方式如下:
SWA_CLI> telnet
Please select which interface you want to telnet from.
1. Auto
2. Management (10.48.48.187/24: rishi2Man.calo.lab)
[1]> 2
Enter the remote hostname or IP address.
[]> 10.48.48.195
Enter the remote port.
[23]> 22
Trying 10.48.48.195...
Connected to 10.48.48.195.
Escape character is '^]'.
SSH-2.0-OpenSSH_for_Windows_SCP
如果telnet未連線:
- 檢查SCP伺服器防火牆是否阻止訪問。
- [檢查從SWA到SCP伺服器的路徑中是否有任何防火牆阻止訪問。
- 檢查TCP埠22在SCP伺服器中是否處於偵聽狀態。
- 在兩台SWA和SCP伺服器中運行資料包捕獲以進行進一步分析。
以下是成功連線的封包擷取範例:
影象 — 成功捕獲連線資料包
"未找到匹配的主機金鑰型別"
此錯誤表示SWA在客戶端金鑰交換階段提供的主機金鑰演算法在SCP伺服器中沒有匹配項。
Wed Feb 12 20:21:40 2025 Critical: Log Error: Push error for subscription al: SCP failed to transfer to 10.48.48.192:22:
Wed Feb 12 20:21:40 2025 Critical: Log Error: Push error for subscription al: SCP failed to transfer to 10.48.48.192:22: lost connection
Wed Feb 12 20:21:40 2025 Critical: Log Error: Push error for subscription al: SCP failed to transfer to 10.48.48.192:22: info: Unable to negotiate with 10.48.48.192 port 22: no matching host key type found. Their offer: rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519
要解決此問題,可以使用以下步驟:
步驟1.在SWA中啟動資料包捕獲並過濾SCP伺服器IP地址
步驟2.將滑鼠指標置於日誌檔案上,以確保SWA將檔案傳送到SCP伺服器
步驟3.停止封包擷取並開啟檔案。
步驟4.在擷取檔案中,尋找具有「Client:」字樣的封包Info部分中的Key Exchange Init(金鑰交換初始)」。
步驟5.展開SSH協定,然後導航到「演算法」部分。
步驟6.檢查server_host_key_algorithms字串(例如:server_host_key_algorithms字串:ssh-rsa)
步驟7.導航到SCP伺服器並編輯sshd_config檔案。
步驟8.找到以HostKeyAlgorithms開頭的行,並將「步驟6」中提到的受支援的主機金鑰新增到檔案。(在此範例中:HostKeyAlgorithms ssh-rsa)
附註:如果沒有使用HostKeyAlgorithms啟動的行,則可以將行新增到檔案末尾。
步驟9.儲存更改並重新啟動SSHD服務。
參考資料