簡介
本文描述設定Secure Copy (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步。點選立即滾動以存檔所選日誌。
影象-立即滑鼠指向效果GUI
透過遠端伺服器上的SCP配置日誌檢索
從SWA使用SCP將日誌檢索到遠端伺服器有兩個主要步驟:
- 配置SWA以推送日誌。
- 設定遠端伺服器以接收記錄。
將SWA配置為從GUI將日誌傳送到SCP遠端伺服器
步驟 1.登入到SWA,然後從System Administration中選擇Log Subscriptions。
影像-選擇記錄訂閱
步驟 2.在日誌訂閱頁上,選擇增加日誌訂閱。
影像-選擇新增記錄訂閱
步驟 3.選擇記錄型別。在本示例中,已選擇「訪問日誌」
步驟 4.輸入日誌訂閱的名稱
步驟5. (選擇性)您可以依檔案大小變更滑鼠指向效果
步驟 6.從Retrieval方法中選擇SCP on Remote Server
步驟 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:
步驟 11.選擇Local Users and 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(重新啟動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.編輯位於記事本中: %programdata%\ssh\sshd_config的SSH配置檔案,並刪除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中的Strict Modes。預設情況下,此模式處於啟用狀態,如果私有金鑰和公鑰未受到適當保護,此模式將阻止基於SSH金鑰的身份驗證。
取消註解yes#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 Authentication Agent」(以管理員身份運行)。
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資料夾(在Cisco IOS軟體中),而SCP伺服器將資料夾WSA01作為指向D:\WSA_Logs\WSA01的符號連結
有關Microsoft Symbol連結的詳細資訊,請訪問:mklink | Microsoft學習
排除SCP日誌推送故障
在SWA中檢視記錄
要排除SCP日誌推送的故障,請在以下位置檢查錯誤:
1. CLI > displayalerts
2. 系統日誌
註:要讀取system_logs,可在CLI中使用grep命令(在CLI中選擇與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從後端刪除主機金鑰。
許可權被拒絕(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地址> port <TCP埠SWA連線到SCP伺服器>的使用者SCP無效
影象-無效使用者
要解決此錯誤,請檢查拼寫並驗證在SCP伺服器中啟用了使用者(在SWA中配置為推送日誌)。
沒有這樣的檔案或目錄
此錯誤表示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]檢查SCP伺服器中的TCP埠22是否處於偵聽狀態。
[4]在兩個SWA和SCP伺服器中運行資料包捕獲以進行進一步分析。
以下是成功連線的封包擷取範例:
映像-成功捕獲連線資料包
參考資料
思科網路安全裝置最佳實踐指南-思科
BRKSEC-3303 (ciscolive)
Cisco Secure Web Appliance的AsyncOS 14.5使用手冊- GD(常規部署) -連線、安裝和配置[Cisco Secure Web Appliance] -思科
開始使用OpenSSH for Windows | Microsoft學習
在Windows上配置SSH公鑰身份驗證 | Windows OS中心(woshub.com)
OpenSSH for Windows中的基於金鑰的身份驗證 | Microsoft學習