ルータにパスワードを設定する
ここまでiosでルータの設定を行ってきましたが、接続した人がそのまま誰でもコマンドを実行できるのはセキュリティを考えると好ましくありません。そこで今回は、ルータへのアクセス時にパスワード認証が必要になるように設定してみましょう。
iosでは、次の3つのタイミングでパスワード認証を行うことができます。
・コンソールログイン(コンソール接続した端末からのログイン)
・VTYログイン(ネットワーク経由でのログイン)
・ユーザexecモードから特権execモードへの遷移
今回はこのうち、コンソールログインおよび特権execモードへの遷移時のパスワードの設定を行います。
コンソールログイン時の認証
ログイン認証の設定をもっとも簡単に行うには、以下の手順によります。
1.ラインコンフィギュレーションモードに移行する
2.パスワードを設定する
3.ログイン認証を有効化する
各手順について詳しく見ていきましょう。
ラインコンフィギュレーションモードに移行する
グローバルコンフィギュレーションモードからラインコンフィギュレーションモードに移行するには、lineコマンドを使用します。
lineコマンド
lineコマンドの書式は次の通りです。
(config)# line <lineの種類> <番号>
<lineの種類>は、以下のいずれかのワードを指定します。
| ワード | 意味 |
|---|---|
| console | コンソール接続 |
| vty | VTY接続 |
| aux | AUX接続 |
<番号>はポート番号です。1つまたは2つの数値を記述できます。
| 書式 | 記述例 | 記述例の意味 |
|---|---|---|
| <番号> | 0 | 0番ポート1つのみ使用可能にする |
| <開始番号> <終了番号> | 0␣4 | 0~4番の5つのポートを使用可能にする |
※接続する側がポート番号を指定して接続するわけではありません
パスワードを設定する
ログイン時に必要なパスワードは、lineの種類(コンソール、VTY…)それぞれについて別々に設定できます。コンソール接続時に必要なパスワードを『コンソールパスワード』、VTY接続時に必要なパスワードを『VTYパスワード』と呼んで区別しています。
ログイン認証のためのパスワードを指定するには、ラインコンフィギュレーションモードでpasswordコマンドを使用します。
passwordコマンド
passwordコマンドの書式は次の通りです。
(config-line)# password <パスワード文字列>
<パスワード文字列>は設定したいパスワードそのものです。英字・数字・記号が使用できます。また、英字の大文字・小文字は区別されます。
Linuxのpasswdコマンドなどと異なり、設定するパスワード文字列を平文のままコマンドライパラメータとして与えるので、画面のぞき見による漏洩の危険があります。入力時は注意しましょう。

実は、機密漏洩で一番多いのは『高度なテクニックによるクラッキング』の類ではなく、『画面ののぞき見』や『ゴミ箱からメモを漁る』など人間の手による原始的な方法なのです。特にパスワード入力中の画面を後ろから覗き見る行為は『ショルダーハック』と呼ばれ、ソーシャルエンジニアリングの代表的な手口といわれています。
ログイン認証を有効化する
実はパスワードを設定しただけではログイン認証が行われるようにはなりません。ログイン認証を行うためには、明示的にログイン認証を有効化する必要があります。
ログイン認証を有効化するには、ラインコンフィギュレーションモードで loginコマンドを使用します。
loginコマンド
loginコマンドの書式は次の通りです。
(config-line)# login [<認証形式>]
loginコマンドは、次にルータに接続した際にログイン認証を行うように設定するためのコマンドです。このコマンドを実行したその場でログイン処理が行われるわけではありません。
<認証形式>は省略可能なパラメータです。passwordコマンドで設定したパスワードを用いて認証を行う場合にはこのパラメータは省略します。
特権execモード移行時の認証
enableパスワード
iosでは、ログイン時の認証とは別に、ユーザexecモードから特権execモードへの移行時にもパスワード認証を行うことが出来ます。特権execモードへの移行時にはenableコマンドを使用することから、このパスワードを『enableパスワード』と呼びます。
特権execモードへの移行時にパスワード認証を行うように設定するには、パスワードを設定するだけです。コンソールパスワードなどと異なり、loginコマンドのような操作は必要ありません。
特権execモードへの移行時のパスワードを設定するには、グローバルコンフィギュレーションモードでenable passwordコマンドを使用します。
enable passwordコマンド
enable passwordコマンドの書式は次の通りです。
(config)# enable password <パスワード文字列>
<パスワード文字列>は設定したいパスワードそのものです。使用可能な文字種は英字・数字・記号で、英字の大文字小文字は区別されます。
これもラインコンフィギュレーションモードのpasswordコマンドと同じく、コマンド入力時にパスワードが画面に表示されてしまいますので、作業時は周囲の環境に注意してください。
enableシークレット
実は、enableコマンド使用時(ユーザEXECモードから特権EXECモードへの遷移時)のパスワードはもう一種類あります。これを設定する場合はグローバルコンフィギュレーションモードで enable secretコマンドを使用します。
enable secretコマンド
enable secretコマンドの書式は次の通りです。
(config)# enable secert <パスワード文字列>
<パスワード文字列>は設定したいパスワードそのものです。使用可能な文字種は英字・数字・記号で、英字の大文字小文字は区別されます。
コマンドのpasswordの部分がsecretに変わっただけで使い方は全く同じです。
ではどこが違うのかというと、設定ファイル(running-config)への格納方法が違うのです。enable passwordで設定したパスワードは設定ファイル中に平文で記録されるのですが、enable secretで設定したパスワードは暗号化されて記録されます。設定ファイルは特権EXECモードに移行しなくては参照できないとはいえ、暗号化されていた方が安全なのは言うまでもありません。enable secretコマンドで設定したパスワードを『enableシークレット』と呼びます。
なお、enableパスワードとenableシークレットの両方を設定した場合は、enableシークレットだけが有効になり、enableパスワードでは特権EXECモードに移行できなくなります。
演習
それでは、実際にルータにパスワードを設定する演習を行いましょう。
今回は、1台のルータに対して、以下のようにパスワードを設定します。
| 種類 | パスワード文字列 |
|---|---|
| コンソールパスワード | apple |
| enableパスワード | orange |
| enableシークレット | grapefruit |
準備
使用機材
| 種類 | 個数 | 説明 | |
|---|---|---|---|
![]() | ルータ | 1台 | サービス統合型ルータ(実行例は1841を使用しています) |
![]() | PC | 1台 | ターミナルエミュレータがインストールされているもの |
| コンソールケーブル | 1本 | PC側にシリアルポートがない場合はシリアル/USBインターフェイスも必要 またはシリアル対応のコンソールケーブルを用意する |
機材の設置と接続
実機で実験する場合は演習02-1を参考にルータとPCをコンソール接続します。
PacketTracerの場合は演習02‐2のようにコンソール接続しても良いのですが、ルータ操作画面のCLIタブでも同じように操作可能です。

やってみよう
コンソールパスワードの設定
ラインコンフィギュレーションモードに移行
今回はまず、コンソールログインの設定を行うため、<lineの種類>には “console” を指定します。また、コンソールは通常1つしかポートをもたないため、<番号>は”0″を指定します。よって、入力すべきコマンドは以下のようになります。
※ホスト名をRT1に設定していますが、起動からホスト名設定までのコマンドは省略します。
※赤字が入力部分です。
RT1(config)#line␣console␣0⏎
RT1(config-line)#
プロンプトが『(config-line)#』に変化し、ラインコンフィギュレーションモードに移行したことが判ります。
コンソールパスワードを設定
コンソールパスワードを『apple』に設定するために入力すべきコマンドは以下のようになります。
RT1(config)#line console 0
RT1(config-line)#password␣apple⏎
RT1(config-line)#
ログイン認証を行うように設定
続いて、コンソールログイン時にパスワード認証を行うように設定します。コマンドは以下のようになります。
RT1(config)#line console 0
RT1(config-line)#password␣apple
RT1(config-line)#login⏎
RT1(config-line)#
これで設定は完了です。
enableパスワードを設定
次に、enable認証のパスワードを設定します。enable認証のパスワードにはenableパスワードとenableシークレットの2つがありましたが、まずenableパスワードのみ設定し、enableシークレットは設定しないで試してみましょう。enableパスワードを『orange』に設定するコマンドは以下のようになります。
RT1(config-line)#exit⏎
RT1(config)#enable␣password␣orange⏎
設定内容を確認
特権execモードで設定状況を確認してみましょう。『show running-config』コマンドで設定ファイルの内容を表示します。パスワードの部分をハイライトしています
RT1(config)#exit⏎
RT1#
%SYS-5-CONFIG_I: Configured from console by console
⏎ (システムメッセージが表示されたのでEnterを押してプロンプトを再表示しています)
RT1#show␣running-config⏎
Building configuration...
Current configuration : 625 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname RT1
!
!
!
enable password orange
!
(中略 『 --More-- 』と表示されて停止したら SPACE を押すと続きが表示されます)
!
line con 0
password apple
login
!
line aux 0
!
line vty 0 4
login
!
!
!
end
RT1#
このように、設定ファイルrunning-config中に平文のままでパスワードが格納されていることが判ります。
再ログインして動作確認
コンソールパスワードの確認
『logout』コマンドでいったんログアウトします。
起動したときと同様、『Press RETURN to get started』と表示されるので、Enter キーを押します。
RT1#logout⏎
RT1 con0 is now available
Press RETURN to get started.
⏎
User Access Verification
Password: (表示されませんが 『apple⏎』と入力しています)
RT1>
パスワード設定前と違い、『Password:』と表示されてパスワード入力を促されます。
先ほど設定したパスワード『apple』を入力してみましょう。
入力されたパスワードは表示されません。アプリケーションやWebサイトのパスワード入力欄と違い『*』や『●』も表示されませんので、誤入力がないように注意して下さい。
正しくパスワードを入力するとユーザexecモードのプロンプトが表示されます。
enableパスワードの確認
続いて、enableコマンドを使用して特権execモードに移行してみましょう。ここで再度パスワードを求められるはずです。
RT1>enable⏎
Password: (表示されていませんが『orange⏎』と入力しています)
RT1#
先ほど設定したenableパスワード『orange』を入力すれば特権execモードに移行できます。
ここでも、コンソールパスワードと同様、入力した文字は表示されません。
enableシークレットの設定
次に、特権execモード移行時のもう1つのパスワード、enableシークレットを設定してみましょう。
RT1#configure terminal⏎
Enter configuration commands, one per line. End with CNTL/Z.
RT1(config)#enable secret grapefruit⏎
RT1(config)#
設定内容を確認
running-configの内容を確認してみましょう。パスワードの部分をハイライトしています。
RT1(config)#exit⏎
RT1#
%SYS-5-CONFIG_I: Configured from console by console
⏎ (システムメッセージが表示されたのでEnterを押してプロンプトを再表示しています)
RT1#show running-config⏎
Building configuration...
Current configuration : 645 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname RT1
!
!
!
enable secret 5 $1$mERr$8AiS64MJA2D5FEKZrNNal/
enable password orange (enableパスワードの設定が消えるわけではありません)
!
(後略 『 --More-- 』と表示されて停止したら SPACE を何度か押して最後まで行くか、
q キーを押して終了します)
RT1#
enableシークレットは『grapefruit』という文字列そのままではなく、暗号化されて保存されていることが判ります。
enableシークレットの動作確認
disableコマンドで一度ユーザexecモードに戻り、再度enableコマンドで特権execモードに移行してみましょう。
RT1#disable⏎
RT1>enable⏎
Password: (表示されていませんが『orange⏎』と入力しています)
Password: (特権execモードに移行できず、再度パスワード入力を促されます)
パスワード入力を促されるので、先ほどと同様にenableパスワード『orange』を入力しますが、今度は特権execモードに移行できません。enableシークレットを設定するとenableパスワードは無効になってしまうのです。
それではenableシークレットを入力してみましょう。
Password: (表示されていませんが『grapefruit⏎』と入力しています)
RT1#
enableシークレット『grapefruit』を入力すると、特権execモードに移行できます。
まとめ
今回は、ルータにコンソールログイン時およびenable時のパスワードを設定し、一定のセキュリティを確保する方法について演習しました。コンソールパスワードは平文のまま保存されているとか、デバイス1台に付きコンソールログインパスワードが1つしか設定できないなど、実用上は不安が残る内容ですが、次の演習ではさらに安全性の高い内容について触れる予定です。
なお、ルータだけではなくCatalystスイッチなど他のios使用機器もまったく同じようにパスワードの設定ができます。




コメント