キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
5262
閲覧回数
0
いいね!
0
コメント
mnagao
Cisco Employee
Cisco Employee

 

 

はじめに

 

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              

 

 

rca

 

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/
% 

  

バージョン 2.3.4 以降でのシェル変更

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/サーバから実行してください。

 

Consent Token Challenge の生成

_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.

 

Consent Token Response の適用

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 の無効化

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.

 

 

バージョン 2.3.3 でのシェル変更

 

Cisco DNA Center Administrator Guide, Release 2.3.3
Disable Restricted Shell Temporarily
に記載のようにログインシェルを変更することができます。以下の操作で入力するパスワードは全て maglev アカウントのパスワードです。

一時的な bash への変更

 

通常運用時は特定のコマンドしか実行できない 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 から案内がある場合を除いて、ユーザが以下のような製品改変を伴う操作をすることはサポートしていません。

  

  • 設定ファイルやスクリプトの改変
  • apt 等を使用したアプリケーションのインストールやライブラリの更新
  • cron の実行
  • 独自シェルスクリプトの実行
  • 独自コンテナのデプロイ
  • マニュアルAPI リファレンスに記載無い API を使用した Create/Update/Delete 操作
 
Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします