CiscoルータからSCPでIOSを抽出する方法メモ
CiscoのルータからIOSを抜き出すときは,FTP経由での方法をよく聞く.
そこでFTPを試してみたが,上手く行かない.
デバッグする気が起きなかったから,SCPで抜き出してみることにした.
コピー先のWindows上でサーバを立てるのは手間だから,ルータ上でSSHサーバを立てて,SCP接続する.
コマンドメモがうろ覚えだから,上手く行かなかったら訂正してくれると嬉しい.
なにがしたかったか
Cisco機器からIOSのバイナリファイルを抜き出すと,それを使ってGNS3でネットワーク構成を仮想でいじることができる.
というわけでバイナリが欲しかった.
準備
最初はいつも通りにシリアルコンソールで接続する.
加えて,ルータのLANポートのどれかとPCをLANケーブルで接続しておく.
挿したらPCからTelnetでログインしておく.
OSがWindowsならputtyから,putty.zip
をダウンロード・適当なところに解凍する.
今回はデスクトップに解凍した前提で進めていく.
dir
コマンドで一応自分が抜き出そうとしているIOSのバージョンを確認しておいたほうが良い.
GNS3でサポートしていないバージョンの可能性がある.
ルータ側での設定
CiscoルータからWindowsがインストールされた端末にコピーする.
ただ打ち込んでいくだけ.
大きな流れは以下の通り.
- IPを割り振る
- ユーザを作成
- SSH鍵の作成(今回は1024bit)・有効化
- SCPを許可
$ enable $ configure terminal $ interface vlan 1 $ ip address 192.168.1.100 255.255.255.0 $ username cisco privilege 15 password cisco $ line vty 0 4 $ login local $ hostname R1 # ここは適当で良い $ ip domain-name r1.com # ここは適当で良い $ crypto key generate rsa modulus 1024 $ ip ssh version 2 $ ip ssh time-out 120 $ ip ssh authentication-retries 3 $ ip scp server enable $ aaa new-model $ aaa session-id unique $ aaa authentication login default local # 認証にローカルDBを利用 $ aaa authorization exec default local none # ログイン認可方式として,全ての回線にローカルDBを使用して認可する. $ enable secret cisco
ルータ側の設定はこれで終了.
ポイントはaaa
認証部分.
aaa
はAuthentication/Authorization/Accounting
に関する制御コマンド.
認証方式を全てローカルのDBに設定しないと,認証が上手く行かない.
IOSを抜き出す
ルータ側で
$ dir flash
でIOSのファイル名を確認する.
Windowsでプロンプトを開く.
$ cd C:\Users\Desktop\putty # puttyを解凍したフォルダに移動 $ pscp.exe -scp cisco@192.168.1.100:???.bin C:\Users\poppycompass\Desktop\IOS
これでダウンロードできる.
Linuxならscp
を打つだけで良い.
失敗談
失敗した事例をメモしておく.
SCP: [22 -> 192.168.1.100:?????] send Privilege denied.
が出る.- 多分,ユーザの権限が十分じゃない.
username cisco privilege 15 password cisco
などで権限を最高にしていないか(show privilege
で確認),aaa
を設定していない
- 多分,ユーザの権限が十分じゃない.
WinSCPでSCPできない
スイッチで同じ設定してみたが,上手く行かない
- 原因不明.知りたい.
おまけ
抜き出してから,IOSのバージョンがGNS3のサポート対象外であることに気づいた.
呆然としつつ,file
コマンドすると
ELF 32-bit MSB executable, Sunplus S+core7 RISC, version 1 (SYSV), statically linked, stripped
と出て驚いた.
どうやらIOSの正体はELF形式のプログラムのようだ.Wikiにも碌に情報が載っていない.
これはまたマニアックなアーキテクチャを使っているな・・・.
OSがELFってことは,BIOSかそれに準ずるプログラムがELFを実行できるということだろうか.
OSを実行するためのOSでも存在するのかな.
謎だけ残ってしまった.
所感
SCPだとファイアウォールの無効化とかがいらないから,躓きが少なくて良い.
参考
Memo.html[Cisco]IOSイメージの抽出(追記2017/4/3)