Ciscoセキュリティ対策:パスワードとTelnet設定の基本

Cisco ルータにログインできるようにするときは、セキュリティのために必ずパスワードを設定します。この記事では、パスワードを CISCO として各種パスワードの設定方法を確認し、外部の端末から Telnet で接続できるようにします。

この記事でわかること
  1. 特権モードのパスワード(enable password と enable secret)の違い
  2. コンソールと VTY(Telnet・SSH)のパスワードの設定
  3. service password-encryption で line のパスワードを隠す
  4. 端末から Telnet で接続し、2つのパスワードを順に入力する

設定するパスワードの全体像

Cisco ルータにログインするときは、2段階でパスワードを聞かれます。まず、コンソールや Telnet・SSH で接続したときに、line(回線)ごとに設定したパスワードで認証され、ユーザー EXEC モード(R1>)に入ります。次に、enable コマンドで設定変更などができる特権 EXEC モード(R1#)に入るときに、特権モードのパスワードで認証されます。

コンソールline console 0 Telnet・SSHline vty 0 4 ユーザーEXECR1> 特権EXECR1# enable 1 2 1 line のパスワード(password と login) 2 特権モードのパスワード(enable secret)
図1 ログインの流れと、それぞれで使うパスワード
パスワード設定するコマンド使う場面
特権モードenable secret(または enable password)enable で特権 EXEC モードに入るとき
コンソールline console 0 の passwordコンソールケーブルでログインするとき
VTYline vty 0 4 の passwordTelnet・SSH でリモートからログインするとき

特権モードのパスワード

enable password(平文で保存)

enable password コマンドは、特権モードへのアクセスを制御するもっとも基本的なパスワードの設定です。ただし、パスワードがそのまま(平文で)設定ファイルに保存されるため、セキュリティ上は推奨されません。

R1

R1(config)# enable password CISCO

show running-config で設定を確認すると、パスワードが平文で表示されます。設定ファイルを見た人には、パスワードがそのまま分かってしまいます。

R1

R1# show running-config 
Building configuration...
・
・
!
enable password CISCO

セキュリティを重視する環境では enable password は使わず、次の enable secret を使います。

enable secret(ハッシュ化して保存)

enable secret コマンドは、パスワードをハッシュ化して保存します。ハッシュ化は元のパスワードに戻せない一方向の変換なので、設定ファイルを見られても、パスワードがそのまま知られることはありません。

R1

R1(config)# enable secret CISCO

show running-config では、ハッシュ化されたパスワードが表示されます。

R1

R1# show running-config 
Building configuration...
・
・
!
enable secret 4 zqx41LB0PDWLOwD83WC2N1ncA0PcuK71.j1sri9Xkwg

secret のあとの数字は、ハッシュ化の方式(タイプ)を表しています。この検証機の IOS では、SHA-256 を使うタイプ 4 で保存されました。IOS のバージョンによっては、MD5 を使うタイプ 5 で保存されます。

タイプ保存のしかた
0平文
4SHA-256 でハッシュ化(現在は非推奨)
5MD5 でハッシュ化
7service password-encryption による簡易な暗号化(復号できる)
8PBKDF2(SHA-256)でハッシュ化
9scrypt でハッシュ化
現在の状況

タイプ 4 は、実装上の問題が見つかったため、現在は非推奨になっています。新しい IOS では、enable algorithm-type scrypt secret パスワード(タイプ 9)や enable algorithm-type sha256 secret パスワード(タイプ 8)で、より強い方式を指定できます。使える方式は IOS のバージョンによって違うので、機器のコマンドリファレンスで確認してください。

両方を設定した場合

enable secret を設定すると、enable password で設定したパスワードは使われなくなります。両方に同じパスワードを設定すると警告が表示されます。enable secret の意味がなくなるので、同じパスワードにはしないでください。

line のパスワード

コンソール接続のパスワード

コンソールケーブルでログインするときのパスワードは、line console 0 で設定します。

R1

R1(config)# line console 0
R1(config-line)# password CISCO
R1(config-line)# login

password でパスワードを設定し、login でログイン時にそのパスワードを確認するようにします。login がないと、パスワードを設定しても聞かれません。

VTY(Virtual Teletype)のパスワード

Telnet や SSH でリモートからログインするときは、VTY を使います。VTY は Cisco ルータの仮想的な回線(ポート)です。line vty 0 4 は、0〜4 番の5本の VTY をまとめて設定するという意味です。Telnet で接続できるようにするには、次のように設定します。

R1

R1(config)# line vty 0 4
R1(config-line)# password CISCO
R1(config-line)# login
SSH の利用を推奨

Telnet は通信を暗号化しないため、パスワードを含むやり取りがそのままネットワークに流れ、盗聴されるおそれがあります。実際の運用では SSH を使い、VTY で transport input ssh を設定して、暗号化された接続だけを受け付けるようにします。

SSH の設定は、初心者でも簡単!Ciscoで安全なSSH設定方法 を参照してください。

line のパスワードを隠す(service password-encryption)

Cisco ルータでは、line のパスワードは既定で平文のまま設定ファイルに保存されます。service password-encryption コマンドを使うと、平文で保存されているパスワードを暗号化した形で保存できます。

R1

R1(config)# service password-encryption

このコマンドは、line のパスワードのほか、username のパスワード、認証キー、enable password など、設定ファイルに平文で保存されるパスワードを対象にします。暗号化したあとの設定は、次のように表示されます。

R1

R1# show running-config 
.
.
line con 0
 password 7 14343B382F2B
 login

line vty 0 4
 password 7 106D202A2638
 login
!
タイプ 7 は簡単に復号できる

password 7 の 7 は、service password-encryption で暗号化されたことを表します。タイプ 7 は簡易な方式で、復号するツールも多く出回っています。画面をのぞき見られたときにパスワードがそのまま見えないようにする程度のものと考え、設定ファイルそのものは外に出さないように管理します。

リモート端末からの Telnet 接続

端末から Telnet で接続する

VTY にパスワードを設定したので、端末から Telnet で R1 に接続できるようになりました。端末(192.168.12.100)から R1(192.168.12.1)へ接続します。

Telnet(TCP 23) 端末(Tera Term) R1 .100 .1 192.168.12.0/24
図2 Telnet 接続の構成

端末側では、Tera Term で Telnet 接続します。

画面イメージについて

この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。

Tera Term: New connection画面イメージ
接続方式◉ TCP/IP○ Serial
1Host192.168.12.1 ☑ History
2Service◉ Telnet○ SSH○ Other
TCP port#23
SSH versionSSH2
IP versionAUTO
3OKCancelHelp
図3 Tera Term の接続画面(実際の画面ではなく、設定項目のポイントを示したイメージです)
No.項目設定内容
1Host接続先の R1 の IP アドレス(192.168.12.1)
2Service・TCP port#Telnet を選ぶ。ポート番号は Telnet の 23 になる
3OK押すと接続を始める

接続するとパスワードを聞かれるので、line vty で設定したパスワードを入力します。ログインできたら、次に enable コマンドを入力します。すると、もう一度パスワードを聞かれます。これは特権モードのパスワードで、enable secret(または enable password)で設定したパスワードを入力します。

192.168.12.1 – Tera Term VT画面イメージ
User Access Verification 1Password:R1>enable2Password:3R1#R1#R1#
図4 Telnet でログインして特権モードに入るまで(実際の画面ではなく、表示内容のポイントを示したイメージです)
No.表示意味
1Password:VTY のパスワード(line vty 0 4 の password)を入力する。入力した文字は表示されない
2Password:enable のあとに聞かれる特権モードのパスワード(enable secret)を入力する
3R1#プロンプトが > から # に変わり、特権 EXEC モードに入れた

これで、Telnet で特権モードまでログインできました。

まとめ

設定コマンドポイント
特権モードenable secretハッシュ化して保存される。enable password(平文)は使わない
コンソールline console 0
password / login
login がないとパスワードを聞かれない
VTYline vty 0 4
password / login
Telnet・SSH のログインに使う。運用では SSH を使う
パスワードを隠すservice password-encryption平文のパスワードをタイプ 7 で保存する。簡単に復号できるので、のぞき見対策と考える

コメント