Telnet が推奨されない理由

    本ページは英語ドキュメントを翻訳したものです。

     


     

    Telnet が推奨されない理由

    リモート ネットワーク接続は、エンタープライズ ネットワーク デバイスの管理にとって非常に重要です。ルータやスイッチへのアクセスは、ネットワーク管理者が次のような日々の運用タスクを実行するのに不可欠です。

    • VLAN の作成と削除。
    • インターフェイスの追加と削除。
    • インターフェイスのシャットダウンまたは有効化。
    • スタティック ルートの追加や削除などのルーティング設定。


    Cisco IOS でルータへのアクセスを設定するには、
    2 つの最も一般的なリモート管理プロトコルであるセキュア シェル(SSH)と Telnet の「回線」を設定します。「回線」は、物理ポート(AUX やコンソール)の場合もあれば、仮想ポート(VTY など)の場合もあります。

    Telnet の設定が一般的ですが、SSH の使用を推奨します。これは、Telnet ではデータがプレーン テキストで送信されるのに対し、SSH ではデータが暗号化されるためです。この意味については、すぐ後で Wireshark キャプチャを使って説明します。


    このデモのために、1 台のルータと 1 台の PC が直接接続された非常にシンプルなトポロジを設定します。PC には Wireshark がインストールされています。初期設定は次のとおりです。


    R4

    !

    hostname R4

    !

    username cisco password cisco

    !

    enable secret cisco

    !

    interface GigabitEthernet3

    ip address 192.168.109.14 255.255.255.0

    !

    line vty 0 4

    login local

    !

    end


    PC

    !

    !

    The PC is configured with the 192.168.109.99/24.

    !

    end


    Telnet でルータに接続する前に、PC からルータに送信されるパケットのキャプチャを開始します。キャプチャを有効にするには、次の手順を実行します。

    1. Wireshark を開きます。
    2. [キャプチャ(Capture)] オプションを選択します。
    3. [インターフェイス(Interfaces)] オプションをクリックします。


    [インターフェイス(Interfaces)] をクリックすると、次のウィンドウが表示されます。



    キャプチャするインターフェイス(この場合は eth0)を選択し、[開始(Start)] をクリックします。”

    ウィンドウが開き、パケットが表示されます。PC からルータに Telnet で接続するには、次のコマンドを実行します。


    root@kali:~# telnet 192.168.109.14

    Trying 192.168.109.14...

    Connected to 192.168.109.14.

    Escape character is '^]'.


    User Access Verification


    Username: cisco

    Password: <cisco>

    R4>en

    Password:

    R4#


    ルータにログインしたら、show running-config コマンドを使用して running-config を確認できます。


    R4#show running-config


    ここで、Telnet パケットを右クリックし、[TCP ストリームを追跡(Follow TCP Stream)] を選択してキャプチャを確認できます。



    ウィンドウが開き、キャプチャが表示されます。



    [メッセージ交換全体(Entire conversation)] オプションをクリックし、ルータの IP からホストの IP へのフローを確認します。




    ルータの設定全体がプレーン テキストで表示されます。



    これは、Telnet は管理者によってリモート管理に広く使用されていますが、ホストからルータへのセキュアな接続を確立する SSH とは異なり、セキュリティ メカニズムを備えていないことを示しています。


    SSH の設定手順は次のとおりです。


    R4#configure terminal

    Enter configuration commands, one per line. End with CNTL/Z.

    R4(config)#ip domain-name ssh.local

    R4(config)#crypto key generate rsa modulus 1024 general-keys

    The name for the keys will be: R4.ssh.local


    % The key modulus size is 1024 bits

    % Generating 1024 bit RSA keys, keys will be non-exportable...

    [OK] (elapsed time was 0 seconds)

    R4(config)#username cisco password cisco

    R4(config)#line vty 0 4

    R4(config-line)#login local

    R4(config-line)#transport input ssh


    これで SSH でルータに接続できます。


    root@kali:~# ssh -l cisco 192.168.109.14

    Password: <cisco>

    R4>en

    Password:

    R4#


    SSH で同じ手順を実行すると、キャプチャから次の出力が表示されます。これは容易には判読できません。



    ボーナス セクション


    1.パスワードとシークレット


    このブログ投稿の初期設定では、ユーザ名とパスワードが cisco に設定されていました。show running-config | include username を実行すると、設定されているユーザ名が表示されます。


    R4(config)#do sh run | inc username

    username cisco password 0 cisco


    このパスワードを暗号化するにはどうすればよいでしょうか。それには 2 つの方法があります。最初の方法は、service password-encryption コマンドを使用することです。


    R4(config)#service password-encryption

    R4(config)#do sh run | inc username 

    username cisco password 7 0822455D0A16


    このパスワードは MD7 で保護されていますが、簡単に破ることができます。http://www.ifm.net.nz/cookbooks/passwordcracker.html ページ [英語] にアクセスして暗号化されたパスワードを入力すると、リバース エンジニアリングできます。



    通常は、可能な限り、password キーワードの代わりに secret キーワードを使用します。たとえば、enable password の代わりに enable secret を使用します。


    ユーザ名とパスワードの削除:


    R4(config)#do sh run | inc username

    username cisco password 7 0822455D0A16

    R4(config)#no username cisco password 7 0822455D0A16


    ユーザ名とシークレットの追加:


    R4(config)#username cisco secret cisco

    R4(config)#do sh run | inc username

    username cisco secret 5 $1$DSnv$u.CyWdRcHNBvLvlexA6Iy1

     

    2.パスワード長ポリシー


    8 文字を超える適切なパスワード長ポリシーを検討してください。ただし、IOS ではデフォルトで 1 文字の長さのパスワードとシークレットを設定できます。例:

     

    R4#configure terminal

    R4(config)#username cisco password o


    このパスワードがルータに受け入れられたことを確認できます。PC からルータに Telnet で接続すると、次のように表示されます。


    root@kali:~# telnet 192.168.109.14

    Trying 192.168.109.14...

    Connected to 192.168.109.14.

    Escape character is '^]'.


    User Access Verification


    Username: cisco

    Password: <o>

    R4>


    このため、security passwords min-length コマンドを使用できます。長さを 8 文字に設定した場合、8 文字以上の長さの新しいパスワードのみが受け入れられます(現在のパスワードを変更する必要はありません。新しいパスワードだけです)。例:


    R4(config)#security passwords min-length 8

    R4(config)#username cisco password pass

    % Invalid Password length - must contain 8 to 25 characters.Password configuration failed


    3.ログインのログ記録


    攻撃者がルータにアクセスしようとするとき、システムにアクセスするためにさまざまなパスワード(おそらくは何らかの辞書的な攻撃ツール)が試行されることがあります。ユーザのログイン試行をログに記録する方法の 1 つは、login on-success log 機能と login on-failure log 機能を使用することです。


    R4(config)#login on-success log

    R4(config)#login on-failure log


    ルータに正常にログインすると、次のようなメッセージが表示されます。


    %SEC_LOGIN-5-LOGIN_SUCCESS: Login Success [user: cisco] [Source: 192.168.109.99] [localport: 23] at 03:07:31 UTC Wed Feb 17 2016


    ユーザがログインに失敗すると、次のメッセージが表示されます。


    %SEC_LOGIN-4-LOGIN_FAILED: Login failed [user: cisco] [Source: 192.168.109.99] [localport: 23] [Reason: Login Authentication Failed - BadPassword] at 03:09:48 UTC Wed Feb 17 2016

    CLNBanner