Packet Tracerでネットワークを学ぶ記事です。
【初心者向け】Packet Tracerでネットワークを学ぶ(ルータの設定③)
1. ローカル認証の設定
コンソールパスワードやvtyパスワードではパスワードのみを問われるだけでしたが、ユーザを登録してユーザ名も必要なローカル認証も設定できます。
#username <ユーザ名> [privilege <権限レベル>] password <パスワード>
usernameは任意のユーザ名を入力します。
privilegeは0〜15の数字を入力します。
この数字は権限レベルを表し、数字が大きいほどユーザEXECモードで使えるコマンドが増えます。
15にするといきなり特権EXECモードへログインすることができます。
省略することも可能で、省略した場合はデフォルトで権限レベルが1になります。
passwordは任意のパスワードを入力します。
#login local
これでログイン時にユーザ名とパスワードが必要になります。
権限の違いも確認するために2つのアカウントを作成します。
【1】ユーザ名:user01
権限レベル:省略(レベル1)
パスワード:test01
【2】ユーザ名:user02
権限レベル:15
パスワード:test02
以下が実際のコマンドを実行した図です。
①user01を作成
②user02を作成
③ラインコンフィギュレーションモードに移行
④login localコマンドを実行
設定した内容をrunning-configで確認してみましょう。以下のようになっているはずです。
①2つのユーザが作成されている
②login localと表示されている
実際にログインしてみます。
まずはuser01(権限レベル1)です。
以下の図のようにユーザ名とパスワードの入力を求められます。
入力するとユーザEXECモードでログインできました。
続いてuser02(権限レベル15)です。
こちらでログインするとプロンプトが#になっているので 特権EXECモードでログインしていることが分かります。
ユーザアカウントの作成
ローカル認証の設定にはユーザアカウントを作成する必要があり、グローバルコンフィギュレーションモードにて以下のコマンドを入力します。#username <ユーザ名> [privilege <権限レベル>] password <パスワード>
usernameは任意のユーザ名を入力します。
privilegeは0〜15の数字を入力します。
この数字は権限レベルを表し、数字が大きいほどユーザEXECモードで使えるコマンドが増えます。
15にするといきなり特権EXECモードへログインすることができます。
省略することも可能で、省略した場合はデフォルトで権限レベルが1になります。
passwordは任意のパスワードを入力します。
ローカル認証の割当
ローカル認証を有効化するにはラインコンフィギュレーションモードにて以下のコマンドを入力します。#login local
これでログイン時にユーザ名とパスワードが必要になります。
実際にローカル認証を有効にしてみる
実際にユーザアカウントを作成してみます。権限の違いも確認するために2つのアカウントを作成します。
【1】ユーザ名:user01
権限レベル:省略(レベル1)
パスワード:test01
【2】ユーザ名:user02
権限レベル:15
パスワード:test02
以下が実際のコマンドを実行した図です。
①user01を作成
②user02を作成
③ラインコンフィギュレーションモードに移行
④login localコマンドを実行
設定した内容をrunning-configで確認してみましょう。以下のようになっているはずです。
①2つのユーザが作成されている
②login localと表示されている
実際にログインしてみます。
まずはuser01(権限レベル1)です。
以下の図のようにユーザ名とパスワードの入力を求められます。
入力するとユーザEXECモードでログインできました。
続いてuser02(権限レベル15)です。
こちらでログインするとプロンプトが#になっているので 特権EXECモードでログインしていることが分かります。
2. パスワード暗号化
running-configを確認するとパスワードがそのまま記載されていることが分かります。
この状態では操作時に画面を見られることにより他人に知られてしまう可能性もありセキュリティとして好ましく有りません。
なのでパスワードは暗号化をする必要があります。
以下をグローバルコンフィギュレーションモードで実行すると暗号化したパスワードを使用できます。
#enable secret <パスワード>
すでに「enable password」コマンドでパスワードが設定されている場合は上記で設定したパスワードが優先されます。
またMD5というアルゴリズムで暗号化されている為、後述の全体パスワード暗号化よりも強度が高いです。
パスワード全てを暗号化するコマンドを使用して一括で暗号化します。
暗号化強度はMD5より弱く、イネーブルパスワードにすでに「enable secret」でパスワードを設定されている場合はそちらを優先します。
以下をグローバルコンフィグレーションモードで入力すると全体のパスワードが暗号化されます。
#service password-encryption
これですでに登録されているパスワードは暗号化されます。
またコマンド実行移行に設定したパスワードも暗号化されます。
noを頭につけることで新たに設定するパスワードは暗号化されませんが、すでに暗号化されているパスワードは暗号化状態のままになります。
以下の図は「enable secret」や「service password-encryption」実行後のrunning-configです。
イネーブルパスワード
enable secretで暗号化しています。
数字の5はMD5で暗号化したことを表しています。
ユーザアカウントやコンソール、vtyパスワード
service password-encryptionで暗号化されています。
数字の7はMD5より暗号化強度が低いことを表しています。
この状態では操作時に画面を見られることにより他人に知られてしまう可能性もありセキュリティとして好ましく有りません。
なのでパスワードは暗号化をする必要があります。
イネーブルパスワードの暗号化
イネーブルパスワードには専用の暗号化コマンドがあります。以下をグローバルコンフィギュレーションモードで実行すると暗号化したパスワードを使用できます。
#enable secret <パスワード>
すでに「enable password」コマンドでパスワードが設定されている場合は上記で設定したパスワードが優先されます。
またMD5というアルゴリズムで暗号化されている為、後述の全体パスワード暗号化よりも強度が高いです。
全体パスワード暗号化
コンソールパスワードやvtyパスワードにはイネーブルパスワードのような専用の暗号化コマンドはありません。パスワード全てを暗号化するコマンドを使用して一括で暗号化します。
暗号化強度はMD5より弱く、イネーブルパスワードにすでに「enable secret」でパスワードを設定されている場合はそちらを優先します。
以下をグローバルコンフィグレーションモードで入力すると全体のパスワードが暗号化されます。
#service password-encryption
これですでに登録されているパスワードは暗号化されます。
またコマンド実行移行に設定したパスワードも暗号化されます。
noを頭につけることで新たに設定するパスワードは暗号化されませんが、すでに暗号化されているパスワードは暗号化状態のままになります。
以下の図は「enable secret」や「service password-encryption」実行後のrunning-configです。
イネーブルパスワード
enable secretで暗号化しています。
数字の5はMD5で暗号化したことを表しています。
ユーザアカウントやコンソール、vtyパスワード
service password-encryptionで暗号化されています。
数字の7はMD5より暗号化強度が低いことを表しています。
3. 自動ログアウト設定
コンソール接続やリモート接続の場合に自動でログアウトさせることが設定できます。
自動ログアウトを設定することで作業中に席を外した場合に、第三者に操作されることを防止できるため セキュリティ強度を上げることができると言えます。
コマンドはラインコンフィギュレーションモードにて以下を入力します。
#exec-timeout <分> [<秒>]
<分>に5、<秒>に30と入力すると5分30秒後に自動的にログアウトされて操作を再開するには再度パスワードを入力する必要があります。
<分>を0にすると自動ログアウトの設定は無効になります。
自動ログアウトを設定することで作業中に席を外した場合に、第三者に操作されることを防止できるため セキュリティ強度を上げることができると言えます。
コマンドはラインコンフィギュレーションモードにて以下を入力します。
#exec-timeout <分> [<秒>]
<分>に5、<秒>に30と入力すると5分30秒後に自動的にログアウトされて操作を再開するには再度パスワードを入力する必要があります。
<分>を0にすると自動ログアウトの設定は無効になります。
4. SSHの設定
リモート接続にはtelnetとSSHがあります。
SSHはtelnetより設定するコマンドが多いのでここで解説します。
SSHでは以下の設定が必要になります。
1.ホスト名
2.ドメイン名
3.RSA暗号鍵の生成
4.ユーザアカウントの作成
5.ローカル認証の有効化
6.SSHの接続許可設定
7.SSHのバージョン設定
デフォルト名のRouterでは暗号鍵の生成ができない為、ホスト名の変更が必要となります。
ドメイン名はグローバルコンフィギュレーションモードで以下のコマンドを入力します。
#ip domain-name <ドメイン名>
ドメイン名も暗号鍵の生成に必要となります。
グローバルコンフィギュレーションモードで以下のコマンドを入力します。
#crypto key generate rsa
入力後は暗号鍵のサイズ指定があります。
512、1024、2048、4096のいずれかを指定してください。
数字が大きいほど強固になります。
作成したアカウントがvty接続の際に必要となります。
SSHではvtyパスワードを使用することができません。
#transport input
オプションの意味は以下の通りです。
all telnet,SSHの両方を許可
telnet telnetのみ許可
SSH SSHのみ許可
none vty接続を禁止
バージョンには1と2があり1は脆弱性があるので2で設定します。
グローバルコンフィギュレーションモードで以下のコマンドを入力します。
#ip ssh version < 1 | 2 >
なおすでにIPアドレスは設定済みでPCとルータで通信ができているものとします。
以下はルータで実際にコマンドを入力した図です。
①ホスト名を「R1」に設定
②ドメイン名を「test.jp」に設定
③RSA暗号鍵を生成
④暗号鍵のサイズを1024に指定
⑤ラインコンフィギュレーションモードに移行
⑥ローカル認証を有効化
⑦SSHの接続を許可
⑧グローバルコンフィギュレーションへ戻る
⑨SSHのバージョンを2に設定
SSHはtelnetより設定するコマンドが多いのでここで解説します。
SSHでは以下の設定が必要になります。
1.ホスト名
2.ドメイン名
3.RSA暗号鍵の生成
4.ユーザアカウントの作成
5.ローカル認証の有効化
6.SSHの接続許可設定
7.SSHのバージョン設定
1. ホスト名
hostnameコマンドでホスト名を設定します。デフォルト名のRouterでは暗号鍵の生成ができない為、ホスト名の変更が必要となります。
2.ドメイン名
所属している組織のドメイン名を設定します。(○○.jp)ドメイン名はグローバルコンフィギュレーションモードで以下のコマンドを入力します。
#ip domain-name <ドメイン名>
ドメイン名も暗号鍵の生成に必要となります。
3.RSA暗号鍵の生成
RSAは公開鍵暗号方式の一つです。SSHの通信に使用されます。グローバルコンフィギュレーションモードで以下のコマンドを入力します。
#crypto key generate rsa
入力後は暗号鍵のサイズ指定があります。
512、1024、2048、4096のいずれかを指定してください。
数字が大きいほど強固になります。
4.ユーザアカウントの作成
usernameでユーザアカウントを作成します。作成したアカウントがvty接続の際に必要となります。
5.ローカル認証の有効化
login localコマンドでローカル認証を有効にします。SSHではvtyパスワードを使用することができません。
6.SSHの接続許可設定
SSHの接続許可設定はラインコンフィギュレーションモードにて以下のコマンドを入力します。#transport input
オプションの意味は以下の通りです。
all telnet,SSHの両方を許可
telnet telnetのみ許可
SSH SSHのみ許可
none vty接続を禁止
7.SSHのバージョン設定
SSHのバージョンを選択します。バージョンには1と2があり1は脆弱性があるので2で設定します。
グローバルコンフィギュレーションモードで以下のコマンドを入力します。
#ip ssh version < 1 | 2 >
実際にSSHを設定し接続してみる
実際に以下の図の内容でSSH接続の設定を行ってみます。なおすでにIPアドレスは設定済みでPCとルータで通信ができているものとします。
以下はルータで実際にコマンドを入力した図です。
①ホスト名を「R1」に設定
②ドメイン名を「test.jp」に設定
③RSA暗号鍵を生成
④暗号鍵のサイズを1024に指定
⑤ラインコンフィギュレーションモードに移行
⑥ローカル認証を有効化
⑦SSHの接続を許可
⑧グローバルコンフィギュレーションへ戻る
⑨SSHのバージョンを2に設定