2022-07-25 07:05 PM 2023-06-14 05:12 PM 更新
Cisco DNA Center バージョン 2.3.3 より、デフォルトのシェルが bash から magshell (Restricted Shell) というカスタムシェルに変更されています。
[Monday Jul 25 04:49:45 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) $ ps --forest PID TTY TIME CMD 38250 pts/1 00:00:00 magshell 25755 pts/1 00:00:00 \_ ps
これは FIPS 対応などのセキュリティ向上を意図したもので、実行可能なコマンドが制限されています。magshell 上で kubectl, docker コマンドなどは使用できませんが、magctl コマンドは使用できます。
[Monday Jul 25 04:49:46 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) $ ? Help: cat concatenate and print files in restricted mode clear clear the terminal screen date display the current time in the given FORMAT, or set the system date debug enable console debug logs df file system information dmesg print or control the kernel ring buffer. du summarize disk usage of the set of FILEs, recursively for directories. free quick summary of memory usage history enable shell commands history htop interactive process viewer. ip print routing, network devices, interfaces and tunnels. last show a listing of last logged in users. ls restricted file system view chrooted to maglev Home lscpu print information about the CPU architecture. magctl tool to manage a Maglev deployment maglev maglev admin commands maglev-config tool to configure a Maglev deployment manufacture_check tool to perform manufacturing checks netstat print networking information. nslookup query Internet name servers interactively. ntpq standard NTP query program. ping send ICMP ECHO_REQUEST to network hosts. ps check status of active processes in the system rca root cause analysis collection utilities reboot Reboot the machine rm delete files in restricted mode route print the IP routing table. runonce Execute runonce scripts scp restricted secure copy sftp secure file transfer shutdown Shutdown the machine ssh OpenSSH SSH client. tail Print the last 10 lines of each FILE to standard output top display sorted list of system processes traceroute print the route packets trace to network host. uname print system information. uptime tell how long the system has been running. vi text editor w show who is logged on and what they are doing.
これらのコマンド出力をパイプで grep/egrep/fgrep, sed, awk, cut, sort, head, tail, less, wc などに渡すことは可能です。
[Monday Jul 25 07:37:13 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) $ magctl appstack status | grep -v -E '([0-9]+)/\\1.*Running' NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES maglev-system license-service-cleanup-job-q44mq 0/1 Completed 1 2d14h 169.254.44.218 192.0.2.1 maglev-system release-job-0139e3e5-211e-49eb-b50b-a52c88766af7-packages-75hw2 0/1 Completed 0 2d14h 169.254.44.233 192.0.2.1
DNA Center からの rca ファイルのアップロードについては rca view/clear/copy コマンドが実装されています。
[Monday Jul 25 05:20:20 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) $ rca view total 538068 -rwxr-xr-x 1 root root 550975809 Jul 25 04:54 maglev-192.0.2.1-rca-2022-07-25_04-39-23_UTC.tar.gz [Monday Jul 25 05:20:24 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) $ rca copy --files maglev-192.0.2.1-rca-2022-07-25_04-39-23_UTC.tar.gz scpuser@192.0.2.222:/home/scpuser/Downloads FIPS mode initialized scpuser@192.0.2.222's password: maglev-192.0.2.1-rca-2022-07-25_04-39-23_UTC.tar.gz 100% 525MB 112.0MB/s 00:04 [Monday Jul 25 07:06:44 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) $ rca clear maglev-192.0.2.1-rca-2022-07-25_04-39-23_UTC.tar.gz [Monday Jul 25 07:06:54 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) $ rca view total 0
DNA Center バージョン 2.3.3.5 以下でログインシェルが magshell の場合は DNA Center から SCP クライアントへ rca ファイルをダウンロード (scp -P 2222 maglev@x.x.x.x:/data/rca/RCA_FILE .) することはできません。rca copy コマンドをご使用ください。
バージョン 2.3.3.6, 2.3.5.0 以降では機能改善されており、ログインシェルが magshell の場合でも DNA Center から SCP/SFTP クライアントへ rca ファイルをダウンロードできます。
[Friday Mar 10 11:44:24 UTC] maglev@192.2.0.1 (maglev-master-192-2-0-11) $ ls ./data/rca maglev-192.2.0.1-rca-2023-03-09_05-21-31_UTC.tar.gz [Friday Mar 10 11:44:53 UTC] maglev@192.2.0.1 (maglev-master-192-2-0-11) $ exit Connection to 192.0.2.1 closed. [2023-03-10 20:44:56] ~/Downloads/rca/ % [2023-03-10 20:44:59] ~/Downloads/rca/ % scp -O -P 2222 maglev@192.0.2.1:/data/rca/maglev-192.2.0.1-rca-2023-03-09_05-21-31_UTC.tar.gz . Welcome to the Cisco DNA Center Appliance maglev@192.0.2.1's password: maglev-192.2.0.1-rca-2023-03-09_05-21-31_UTC.tar.gz 100% 940MB 10.1MB/s 01:33 [2023-03-10 20:47:18] ~/Downloads/rca/ % [2023-03-10 20:47:20] ~/Downloads/rca/ % rm maglev-192.2.0.1-rca-2023-03-09_05-21-31_UTC.tar.gz [2023-03-10 20:47:34] ~/Downloads/rca/ % [2023-03-10 20:47:38] ~/Downloads/rca/ % sftp -P 2222 maglev@192.0.2.1:/data/rca/maglev-192.2.0.1-rca-2023-03-09_05-21-31_UTC.tar.gz . Welcome to the Cisco DNA Center Appliance maglev@192.0.2.1's password: Connected to 192.0.2.1. Fetching /data/rca/maglev-192.2.0.1-rca-2023-03-09_05-21-31_UTC.tar.gz to ./maglev-192.2.0.1-rca-2023-03-09_05-21-31_UTC.tar.gz maglev-192.2.0.1-rca-2023-03-09_05-21-31_UTC.tar.gz 100% 940MB 13.6MB/s 01:09 Connection closed. [2023-03-10 20:48:01] ~/Downloads/rca/ %
Cisco DNA Center Administrator Guide, Release 2.3.5
About Restricted Shell
バージョン 2.3.4 以降 (一般向けリリースでは 2.3.5 以降) では bash への遷移に consent token が必要です。セキュリティ強化のため、ログインシェルを bash にすることはできません。
トラブルシューティングや学習目的で tcpdump などの Restricted Shell 上で実行できない Linux コマンドや magctl でカバーしていない OSS のコマンドなどを実行する必要がある場合は、以下に記載の Consent Token Challenge を添えて Cisco TAC にサービスリクエストをオープンしてください。
bash に遷移しなくても rca を取得し各種コマンドの出力結果を確認することや magctl スクリプトを通じた基本的な docker/kubectl コマンドの実行は可能です。
curl による API 実行は Cisco からガイドされる場合を除いて DNA Center ではなく外部の PC/サーバから実行してください。
_shell コマンドを実行して Challenge を生成し、Cisco TAC にサービスリクエストをオープンします。Consent Token による bash アクセスの有効期限は最大 10080 分 (7 日) です。
[Wednesday Jun 14 04:38:29 UTC] maglev@192.2.0.11 (maglev-master-192-2-0-11) $ _shell Please secure authentication via request of a consent token for bash shell-access. Proceed to generate a challenge? [y/n] : y Enter authentication time-out(in minutes - max 10080[default 4 days]) : 10080 Generating Challenge..................................... Challenge String (Please copy everything between the asterisk lines exclusively): ***************************************************************************************** qoFV+QAAAQUBAAQAAAABAgAEAAAAAAMACAAAAAAAAAAABAAQuwUSSbss8KKcGST80fXnaAUABAAAJ2AGAARETkFDBwAMTUFHU0hFTExfQ1QyCAAKRE4yLUhXLUFQTAkAJGY2MmU5NjBjLWViMmMtOTZhYy03MjE2LWU0OGE2MTZjZjI4OQ== ***************************************************************************************** Validate the generated challenge using [_shell -v] command for bash shell-access.
Cisco TAC より Consent Token Response をご案内しますので、_shell -v コマンドを用いて Token を適用すると bash に遷移できます。
[Wednesday Jun 14 04:43:58 UTC] maglev@192.2.0.11 (maglev-master-192-2-0-11) $ _shell -v Qm3a2gAAAQUBAAQAAAABAgAEAAAAAAMBYk9lamY4Vk5PR1hVQlJmZG9ZcEhjS0xsTGJNNW51Y0RYaEUzVkV6WFkxR3pEbVlpc3g3UHJJaHgweDNuTWNGajUNCmNDSG8ydGpIb1RVUDAwWGtSS1lGVkxTSkZ1Wmpsa1NNV1g5Sk43eHJZVHNacWFWc2hRT3orM0xwenM4Q255b0gNCk1LdTQzNmg5d0JId2owWElNM3JuV2IzdkNUTWxzcEFPakJSazZGREZ1U09UWjBUMnRpZExXQkhyTmxvSE5ldEUNCkZxeDV2bWwwM3VtY0lTYVBmdGhFcldtT3R0cXVPTmY2L1hFK1J5YkhCck9IVGxOSmdsR0JCL1A5RGJsY3YvcmgNCnpCeDNteUcxS21NTW9CMFgyWDVUSE5jNXZ4Z0ROZDh6T1QrSTd1a0doQWNFTXlRRXY4TXVMMm9zbXJRTFh2a3INCkNKMUZPcExieHRrT25JZWNUMnpCYlE9PQ== Warning! Activity within this shell can jeopardize the functioning of the system! maglev@maglev-master-192-2-0-11:~$ maglev@maglev-master-192-2-0-11:~$ ps --forest PID TTY TIME CMD 110965 pts/0 00:00:00 magshell 30700 pts/0 00:00:00 \_ bash 34125 pts/0 00:00:00 \_ ps
bash 上で exit コマンドを実行すると Restricted Shell に戻ることができます。
_shell -s コマンドで Consent Token の有効期間を確認でき、有効期間内であればいつでも _shell -v <Consent Token Response> で bash に遷移できます。
有効期間後に再度 bash を使用する必要がある場合は、再度 Consent Token Challenge を生成して Cisco TAC にサービスリクエストをオープンしてください。
maglev@maglev-master-192-2-0-11:~$ exit exit [Wednesday Jun 14 04:48:30 UTC] maglev@192.2.0.11 (maglev-master-192-2-0-11) $ _shell -s Challenge : qoFV+QAAAQUBAAQAAAABAgAEAAAAAAMACAAAAAAAAAAABAAQuwUSSbss8KKcGST80fXnaAUABAAAJ2AGAARETkFDBwAMTUFHU0hFTExfQ1QyCAAKRE4yLUhXLUFQTAkAJGY2MmU5NjBjLWViMmMtOTZhYy03MjE2LWU0OGE2MTZjZjI4OQ== Status : CT_STATE_AUTHENTICATED Creation Time : 2023 06 14 04:38:49 Validation Time: 2023 06 14 04:44:08 Expiration Time: 2023 06 21 04:44:08 Auth Time Out : 10080 mins [Wednesday Jun 14 04:48:35 UTC] maglev@192.2.0.11 (maglev-master-192-2-0-11) $ _shell -v Qm3a2gAAAQUBAAQAAAABAgAEAAAAAAMBYk9lamY4Vk5PR1hVQlJmZG9ZcEhjS0xsTGJNNW51Y0RYaEUzVkV6WFkxR3pEbVlpc3g3UHJJaHgweDNuTWNGajUNCmNDSG8ydGpIb1RVUDAwWGtSS1lGVkxTSkZ1Wmpsa1NNV1g5Sk43eHJZVHNacWFWc2hRT3orM0xwenM4Q255b0gNCk1LdTQzNmg5d0JId2owWElNM3JuV2IzdkNUTWxzcEFPakJSazZGREZ1U09UWjBUMnRpZExXQkhyTmxvSE5ldEUNCkZxeDV2bWwwM3VtY0lTYVBmdGhFcldtT3R0cXVPTmY2L1hFK1J5YkhCck9IVGxOSmdsR0JCL1A5RGJsY3YvcmgNCnpCeDNteUcxS21NTW9CMFgyWDVUSE5jNXZ4Z0ROZDh6T1QrSTd1a0doQWNFTXlRRXY4TXVMMm9zbXJRTFh2a3INCkNKMUZPcExieHRrT25JZWNUMnpCYlE9PQ== Warning! Activity within this shell can jeopardize the functioning of the system! maglev@maglev-master-192-2-0-11:~$
Consent Token は有効期間後に自動的に無効化されますが、有効期間内に bash アクセスが不要になった場合は _shell -x を実行することでも Consent Token を無効化できます。
maglev@maglev-master-192-2-0-11:~$ exit exit [Wednesday Jun 14 04:55:13 UTC] maglev@192.2.0.11 (maglev-master-192-2-0-11) $ _shell -x Starting challenge invalidation thread.. Challenge Invalidation thread started!! [Wednesday Jun 14 04:55:22 UTC] maglev@192.2.0.11 (maglev-master-192-2-0-11) $ _shell -s No active consent token available.
Cisco DNA Center Administrator Guide, Release 2.3.3
Disable Restricted Shell Temporarily
に記載のようにログインシェルを変更することができます。以下の操作で入力するパスワードは全て maglev アカウントのパスワードです。
通常運用時は特定のコマンドしか実行できない magshell で運用し、必要時だけ bash を使用したい場合、_shell コマンドを使用して magshell の子プロセスとして bash を起動します。
[Monday Jul 25 07:18:22 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) $ ps --forest PID TTY TIME CMD 87311 pts/1 00:00:01 magshell 25665 pts/1 00:00:00 \_ ps [Monday Jul 25 07:18:40 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) $ _shell Password: Warning! Activity within this shell can jeopardize the functioning of the system! maglev@maglev-master-192-0-2-1:~$ maglev@maglev-master-192-0-2-1:~$ ps --forest PID TTY TIME CMD 87311 pts/1 00:00:01 magshell 28453 pts/1 00:00:00 \_ bash 29119 pts/1 00:00:00 \_ ps maglev@maglev-master-192-0-2-1:~$ maglev@maglev-master-192-0-2-1:~$ exit <--- magshell に戻る [Monday Jul 25 07:19:05 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) $ ps --forest PID TTY TIME CMD 87311 pts/1 00:00:01 magshell 25665 pts/1 00:00:00 \_ ps
ログインシェルを magshell から bash に変更したい場合、_shell -c 'sudo magctl ssh shell bash' を実行します。設定変更後にログアウトし、再度ログインすることで bash を使用できます。
[Monday Jul 25 07:23:08 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) $ magctl ssh shell display Active shell for current user: magshell [Monday Jul 25 07:23:14 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) $ _shell -c 'sudo magctl ssh shell bash' Password: Warning! Activity within this shell can jeopardize the functioning of the system! [sudo] password for maglev: Successfully enabled bash for user, will be effective from next login.
ログインシェルを bash から magshell に変更したい場合、sudo magctl ssh shell magshell を実行します。設定変更後にログアウトし、再度ログインすることで magshell を使用できます。
[Mon Jul 25 07:24:26 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) ~ $ magctl ssh shell display Active shell for current user: bash [Mon Jul 25 07:24:33 UTC] maglev@192.0.2.1 (maglev-master-192-0-2-1) ~ $ sudo magctl ssh shell magshell [sudo] password for maglev: Successfully enabled magshell for user, will be effective from next login.
magctl appstack status | less の出力を停止させた状態で別ターミナルで _shell -> ps コマンドを実行すると、magshell が unshare, chroot でプロセスを分離した上で busybox を使用している状況を確認できます。
root 5196 0.0 0.0 76016 6180 ? Ss Jul22 0:00 /usr/sbin/sshd -D root 47685 0.0 0.0 118108 9152 ? Ss 01:46 0:00 \_ sshd: maglev [priv] maglev 50747 0.0 0.0 118108 5212 ? S 01:46 0:00 | \_ sshd: maglev@pts/1 maglev 50917 0.3 0.0 315416 69764 pts/1 Ssl+ 01:46 0:00 | \_ /opt/maglev/bin/python /usr/local/bin/magshell maglev 37062 5.8 0.0 86272 39640 pts/1 S+ 01:49 0:00 | \_ /opt/maglev/bin/python /usr/local/bin/magctl appstack status maglev 37165 0.0 0.0 4632 820 pts/1 S+ 01:49 0:00 | | \_ sh -c kubectl get pods -o wide --selector tier!=cron,tier!=job --all-namespaces maglev 37166 12.4 0.0 753588 57288 pts/1 SLl+ 01:49 0:00 | | \_ kubectl get pods -o wide --selector tier!=cron,tier!=job --all-namespaces root 37068 0.0 0.0 64416 4252 pts/1 S+ 01:49 0:00 | \_ /usr/bin/sudo unshare --mount --net --pid --fork chroot --userspec maglev:maglev /home/maglev/.magshell busybox sh -c busybox less root 37069 0.0 0.0 6076 772 pts/1 S+ 01:49 0:00 | \_ unshare --mount --net --pid --fork chroot --userspec maglev:maglev /home/maglev/.magshell busybox sh -c busybox less maglev 37070 0.0 0.0 2316 4 pts/1 S+ 01:49 0:00 | \_ busybox sh -c busybox less maglev 37071 10.8 0.0 2316 4 pts/1 S+ 01:49 0:00 | \_ busybox less root 2064 0.0 0.0 118108 8752 ? Ss 01:48 0:00 \_ sshd: maglev [priv] maglev 3079 0.0 0.0 118504 5604 ? S 01:48 0:00 \_ sshd: maglev@pts/2 maglev 3097 0.6 0.0 323572 69712 pts/2 Ssl 01:48 0:00 \_ /opt/maglev/bin/python /usr/local/bin/magshell maglev 22324 0.0 0.0 20364 3924 pts/2 S 01:49 0:00 \_ /bin/bash maglev 38130 0.0 0.0 40048 5220 pts/2 R+ 01:49 0:00 \_ ps auxf
Cisco DNA Center はアプライアンス製品です。Cisco から案内がある場合を除いて、ユーザが以下のような製品改変を伴う操作をすることはサポートしていません。
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます