簡介
本文檔介紹配置安全複製(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.選中要存檔的日誌訂閱的「回滾」列中的覈取方塊,或選中全部覈取方塊以選擇所有訂閱。
步驟3 .按一下Rollover Now以存檔選定的日誌。
影象 — 立即滾動GUI
在遠端伺服器上通過SCP配置日誌檢索
從SWA使用SCP將日誌檢索到遠端伺服器有兩個主要步驟:
- 配置SWA以推送日誌。
- 配置遠端伺服器以接收日誌。
配置SWA以從GUI將日誌傳送到SCP遠端伺服器
步驟 1.登入到SWA,然後在系統管理中選擇Log Subscriptions。
影象 — 選擇日誌訂閱
步驟 2.在「Log Subscriptions」頁上,選擇「Add Log Subscription」。
影象 — 選擇新增日誌訂閱
步驟 3.選擇日誌型別。在此示例中,已選擇訪問日誌
步驟 4.輸入日誌訂閱的名稱
步驟5.(可選)您可以按檔案大小更改滾動更新
步驟 6.從「檢索方法」中選擇「遠端伺服器上的SCP」
步驟 7.輸入遠端伺服器的資訊:
- SCP主機名或IP地址
- 遠端伺服器上偵聽SSH的偵聽埠號(預設值為TCP/22)
- 目錄名稱
- 用於連線到遠端伺服器的使用者名稱
影象 — 配置日誌引數
注意:在此示例中,使用者名稱是wsascp,遠端伺服器是Microsoft Windows作業系統,我們在c:\users\wccpscp資料夾(即Microsoft中的使用者配置檔案資料夾)中建立了一個資料夾wsa01。
步驟 8.提交更改。
步驟 9.將SSH金鑰儲存在文本檔案中,以供遠端SCP伺服器配置部分進一步使用。
註:您需要複製以ssh-和root@<SWA主機名>開頭的兩行。
影象 — 儲存SSH金鑰以供進一步使用。
步驟 10.提交更改。
將Microsoft Windows配置為SCP遠端伺服器
步驟 10.要為SCP服務建立使用者,請導航到Computer Management:
步驟 11.選擇Local Users和group ,然後從左窗格中選擇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上安裝的詳細資訊,請訪問以下連結:開始使用OpenSSH for Windows | Microsoft瞭解
步驟 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伺服器具有作為到D:\WSA_Logs\WSA01的符號連結的資料夾WSA01
有關Microsoft Symbol Link的詳細資訊,請訪問:mklink | Microsoft瞭解
排除SCP日誌推送故障
在SWA中檢視日誌
要對SCP日誌推送進行故障排除,請檢查中的錯誤:
1. CLI > displayalerts
2.系統日誌
注意:要讀取system_logs,您可以在CLI中使用grep命令,選擇與system_logs相關的數字並回答嚮導中的問題。
在SCP伺服器中檢視日誌
您可以在Microsoft Event Viewer(Microsoft事件檢視器)的Applications and Services Logs(應用和服務日誌)> OpenSSH(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從後端刪除主機金鑰。
許可權被拒絕(publickey,password,keyboard-interactive)
此錯誤通常表示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 address> port <TCP port 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未連線:
[1]檢查SCP伺服器防火牆是否阻止訪問。
[2]檢查從SWA到SCP伺服器的路徑中是否有任何防火牆阻止訪問。
[3]檢查TCP埠22在SCP伺服器中是否處於偵聽狀態。
[4]在兩個SWA和SCP伺服器中運行資料包捕獲以進行進一步分析。
以下是成功連線的封包擷取範例:
影象 — 成功捕獲連線資料包
參考資料
思科網路安全裝置最佳實踐指南 — 思科
BRKSEC-3303(ciscolive)
思科安全網路裝置AsyncOS 14.5使用手冊 — GD(常規部署) — 連線、安裝和配置[思科安全網路裝置] — 思科
Windows版OpenSSH入門 | Microsoft瞭解
在Windows上配置SSH公鑰身份驗證 | Windows OS中心(woshub.com)
Windows版OpenSSH中的基於金鑰的身份驗證 | Microsoft瞭解