このドキュメントでは、Secure Web Appliance(SWA)のログを別のサーバに自動的にコピーするようにSecure Copy(SCP)を設定する手順について説明します。
次の項目に関する知識があることが推奨されます。
シスコでは次のことを推奨しています。
本書の内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
Secure Copy(SCP)の動作は、Berkeley r-tools suite(Berkeley大学独自のネットワーキングアプリケーションセット)のRemote Copy(RCP)の動作と似ていますが、SCPはセキュリティをセキュアシェル(SSH)に依存する点が異なります。また、SCPでは、ユーザに正しい特権レベルが設定されているかどうかをデバイスが判断できるように、認証、認可、アカウンティング(AAA)認可を設定する必要があります
リモートサーバ上のSCP方式(SCPプッシュと同等)では、SCPを使用してリモートサーバにログファイルを定期的にリモートSCPサーバにコピーします。この方法では、SSH2プロトコルを使用するリモートコンピュータ上にSSH SCPサーバが必要です。サブスクリプションには、リモートコンピューター上のユーザー名、SSHキー、および宛先ディレクトリが必要です。ログファイルは、ユーザが設定したロールオーバースケジュールに基づいて転送されます。
ログファイルのタイプごとに複数のログサブスクリプションを作成できます。サブスクリプションには、アーカイブおよびストレージの構成の詳細が含まれます。次の内容が含まれます。
AsyncOSは、現在のログファイルがユーザ指定の最大ファイルサイズ制限または最後のロールオーバー以降の最大時間に達すると、ログサブスクリプションをアーカイブ(ロールオーバー)します。
次のアーカイブ設定は、ログサブスクリプションに含まれています。
ログファイルを手動でアーカイブ(ロールオーバー)することもできます。
ステップ 1:System Administration > Log Subscriptionsの順に選択します。
ステップ2:アーカイブするログサブスクリプションのロールオーバー列のチェックボックスをオンにするか、すべてのチェックボックスをオンにして、すべてのサブスクリプションを選択します。
ステップ3:Rollover Nowをクリックして、選択したログをアーカイブします。
イメージ:GUIでのロールオーバー
SCPを使用してSWAからリモートサーバにログを取得するには、主に2つの手順があります。
ステップ 1:SWAにログインし、System AdministrationでLog Subscriptionsを選択します。
イメージ:ログサブスクリプションの選択
ステップ 2:Log Subscriptionsページで、Add Log Subscriptionを選択します。
イメージ – [追加] [ログサブスクリプション]を選択
ステップ 3:Log typeを選択します。この例では、アクセスログが選択されています。
ステップ 4:ログサブスクリプションの名前を入力します(オプション)。
ステップ5:(オプション)ロールオーバーのファイルサイズを変更できます。
手順 6:Retrieval methodから、SCP on Remote Serverを選択します。
手順 7:リモートサーバに関する次の情報を入力します。
イメージ:ログパラメータの設定
注:この例では、ユーザ名はwsascpで、リモートサーバはMicrosoft Windowsオペレーティングシステムです。フォルダwsa01がc:\users\wccpscpフォルダ(Microsoftのユーザプロファイルフォルダ)に作成されました。
ヒント:単にフォルダ名を入力するだけで済みます。この例では、名前はwsa01です。
ステップ 8:変更を送信します。
ステップ 9:リモートSCPサーバ設定セクションでさらに使用するために、SSH キーをテキストファイルに保存します。
注:ssh-で始まりroot@<SWA hostname>で終わる両方の行をコピーする必要があります。
イメージ:後で使用できるようにSSHキーを保存します。
ステップ 10:変更を確定します。
ステップ 11:SCPサービス用のユーザを作成するには、Computer Managementに移動します。
注:すでにSCPのユーザがいる場合は、ステップ16に進んでください。
ステップ 12:Local Users and Groupsを選択してから、左側のペインでUsersを選択します。
ステップ 13:メインページで右クリックして、new userを選択します。
図:SCPサービス用のユーザの作成
ステップ 14:ユーザ名と必要なパスワードを入力します。
ステップ 15:Password Never Expiresを選択します。
ステップ 16:Createをクリックし、次にウィンドウを閉じます。
イメージ:新しいユーザ情報を入力します。
ステップ 17:プロファイルディレクトリを作成するために、新しく作成したユーザでリモートSCP サーバにログインします。
注:リモートSCPサーバにOpenSSLがインストールされている場合は、ステップ19に進んでください。
ステップ 18:Administrator権限でPowerShellを開き(Run as Administrator)、次のコマンドを実行して前提条件を確認します。
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
出力がTrueの場合、次に進むことができます。それ以外の場合は、Microsoftのサポートチームに問い合わせてください。
ステップ19:管理者権限を持つ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」を参照してください。
ステップ 20:通常の(上昇していない)PowerShellセッションを開き、次のコマンドを使用してRSAキーのペアを生成します。
ssh-keygen -t RSA
コマンドが終了すると、.sshフォルダによってユーザプロファイルディレクトリが作成されたことが分かります。
イメージ:RSAキーの生成
ステップ 21:管理者権限を持つPowerShellからSSH サービスを開始します(管理者として実行)。
Start-Service sshd
ステップ22:(オプションですが、推奨)サービスのスタートアップの種類を、管理者権限を持つ自動(管理者として実行)に変更します。
Set-Service -Name sshd -StartupType 'Automatic'
ステップ 23: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."
}
ステップ 24:メモ帳の%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
ステップ 25:%programdata%\ssh\sshd_configで接続状態を編集します。この例では、すべてのインターフェイスアドレスに対してリッスンアドレスが使用されます。この設定は、配置の設計に基づいてカスタマイズできます。
Port 22
#AddressFamily any
ListenAddress 0.0.0.0
ステップ 26:各行の先頭に#を追加して、%programdata%\ssh\sshd_configファイルの末尾の次の2つの行に印を付けます。
# Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
ステップ27:(オプション)%programdata%\ssh\sshd_configでStrict Modesを編集します。このモードは、デフォルトで有効になっており、秘密キーと公開キーが適切に保護されていない場合はSSHキーベースの認証ができません。
#StrictModes yesの行のコメントを解除し、StrictModes noに変更します。
StrictModes No
ステップ 28:この行から%programdata%\ssh\sshd_config に#を削除し、公開キー認証を許可します
PubkeyAuthentication yes
ステップ 29:.sshフォルダ内にテキストファイル authorized_keysを作成し、ステップ9で収集したSWA 公開RSA キーを貼り付けます。
画像:SWA公開キー
注:ssh-rsaで始まりroot@<your_SWA_hostname>で終わる行全体をコピーします。
ヒント:RSAはSCPサーバにインストールされているため、ssh-dssキーを貼り付ける必要はありません。
ステップ 30:PowerShellで、OpenSSH Authentication Agentを管理者権限(管理者として実行)で有効にします。
Set-Service -Name ssh-agent -StartupType 'Automatic'
Start-Service ssh-agent
イメージ:オープンSSH認証エージェントの有効化
ステップ31:(オプション)次の行を%programdata%\ssh\sshd_configに追加して、キータイプを許可します。
PubkeyAcceptedKeyTypes ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,ssh-rsa,ssh-dss
ステップ 32:SSH サービスを再起動します。このコマンドは、PowerShellからAdministrator privilege (Run as Administrator)を使用して実行できます。
restart-Service -Name sshd
ステップ 33:SCPプッシュが正しく設定されているかどうかをテストするには、設定されたログにカーソルを合わせます。この操作は、GUIまたはCLI(rollovernowコマンド)の両方から実行できます。
WSA_CLI> rollovernow scpal
注:この例では、ログ名はscpalです。
ログが定義されたフォルダにコピーされていることを確認できます。この例ではc:/Users/wsascp/wsa01です。
ログをC以外の別のドライブにプッシュする必要がある場合は、ユーザプロファイルフォルダから目的のドライブへのリンクを作成します。この例では、ログはD:\WSA_Logs\WSA01にプッシュされます。
ステップ 1:目的のドライブにフォルダを作成します。
ステップ 2:管理者権限でコマンドプロンプトを開きます(管理者として実行)。
ステップ 3:リンクを作成するには、次のコマンドを実行します。
mklink /d c:\users\wsascp\wsa01 D:\WSA_Logs\WSA01
イメージ – SYMリンクの作成
注:この例では、SWAがC:\Users\wsascp内のWSA01フォルダにログをプッシュするように設定されており(WSAのインストール時)、SCPサーバにはD:\WSA_Logs\WSA01へのシンボリックリンクとしてWSA01フォルダがあります。
Microsoft Symbol Linkの詳細については、次のサイトを参照してください。 mklink | Microsoft Learn
SCPログプッシュのトラブルシューティングを行うには、次の場所でエラーを確認します。
1. CLI > displayalertsの順に選択します。
2. System_logs
注: system_logsを読み取るには、CLIでgrepコマンドを使用できます(次の例を参照)。system_logsに関連付けられているnumberを選択し、ウィザードの質問に答えます。
SCPサーバのログは、Microsoft Event ViewerのApplications and Services Logs > OpenSSH > Operational:で読むことができます。
イメージ: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 ログサブスクリプションページに貼り付けます。「GUIからSCPリモートサーバにログを送信するためのSWAの設定」のステップ7を参照するか、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サーバのエラー例を次に示します。「Invalid user SCP from <SWA_IP address> port <TCP port SWA connects to SCP server>」
イメージ – 無効なユーザ
このエラーを解決するには、スペルを確認し、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が接続されていない場合:
接続が成功した場合のパケットキャプチャの例を次に示します。
図 – 正常な接続パケットキャプチャ
「一致するホストキータイプが見つかりません」
このエラーは、クライアントキーエクスチェンジフェーズで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: Key Exchange Init」という文字列を含むパケットを探します。
ステップ 5:SSH Protocolを展開し、Algorithmsセクションに移動します。
手順 6:server_host_key_algorithms文字列を確認します(例:server_host_key_algorithms文字列:ssh-rsa)。
手順 7:SCP サーバに移動し、sshd_configファイルを編集します。
ステップ 8:HostKeyAlgorithms で始まる行を探し、ステップ6で説明したサポートされているホストキーをファイルに追加します。(この例ではHostKeyAlgorithms ssh-rsa)
ステップ 9:変更を保存し、SSHDサービスを再起動します。
| 改定 | 発行日 | コメント |
|---|---|---|
3.0 |
22-Oct-2026
|
再認定 – 更新された代替テキストとフォーマット。 |
2.0 |
13-Feb-2025
|
書式、句読点、文法、スタイル、SEO。 |
1.0 |
11-Jan-2024
|
初版 |