Cisco IOS Telnet VTYライン transport input リモートアクセス
🚨 Telnetは本番環境では非推奨 Telnetは通信内容が平文(暗号化なし)でネットワーク上を流れます。パスワードを含むすべての操作が盗聴可能なため、本番環境では必ずSSHを使用してください。この記事はGNS3などの学習環境や、初期設定の理解を目的とした内容です。

Ciscoルータやスイッチへリモートでアクセスする手段として「Telnet」があります。古くから使われているプロトコルで、学習環境でのリモートアクセス確認や初期設定の動作理解に活用されています。

本記事では、CiscoルータにTelnet接続を有効化するための設定手順と、transport inputコマンドの意味・loginとlogin localの違い・トラブル時の切り分け方法まで詳しく解説します。

👷 現場での体験談

ネットワークの勉強を始めた頃、GNS3でルータを動かしてTelnet接続を試みたのにまったくつながらないことがありました。インターフェースにIPを設定してno shutdownもした。なのになぜ?

原因はVTYラインの設定漏れでした。line vty 0 4にパスワードを設定していなかったため、ログイン自体が拒否されていたのです。「IPが通ればTelnetできる」と思い込んでいた自分の理解不足でした。VTYラインの設定がTelnet接続に必須だと痛感した経験です。

前提条件と準備

必要なもの詳細
Ciscoルータ(実機またはGNS3)ISR 900/1000シリーズなど。GNS3・Packet Tracerでも動作確認可能
TelnetクライアントTera Term・PuTTYなどのターミナルソフト。Windowsのコマンドプロンプト(telnetコマンド)でも可
PCとルータのIP疎通PCからルータのインターフェースIPへpingが通る状態
コンソール接続(初期設定時)最初の設定はコンソールケーブルで直接接続して行う
図1:PCからCiscoルータにTelnetでアクセスする基本構成
PC(管理端末) Tera Term / PuTTY TCP:23 Telnet Ciscoルータ GigEth0/0: 192.168.10.1 ルーティング 社内ネットワーク 各種サーバ・PC

Telnet接続のためのCiscoルータ設定手順

1
インターフェースにIPアドレスを設定する

PCからTelnetで到達できるよう、ルータのインターフェースにIPアドレスを設定します。

Router> enable
Router# configure terminal
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip address 192.168.10.1 255.255.255.0
Router(config-if)# no shutdown
Router(config-if)# exit
no shutdownを忘れるとインターフェースがダウンしたままになります。設定後はshow interfaces GigabitEthernet0/0でUP/UPになっているか確認してください。
2
VTYラインのパスワードと接続プロトコルを設定する

VTYライン(仮想端末)にパスワードを設定し、Telnet接続を許可します。

Router(config)# line vty 0 4
Router(config-line)# password cisco
Router(config-line)# login
Router(config-line)# transport input telnet
Router(config-line)# exit

line vty 0 4は同時に接続できる仮想端末を5本(0〜4)設定することを意味します。

3
enableパスワードを設定する

Telnet接続後に特権モード(#プロンプト)に入るために必要です。enable passwordより暗号化強度の高いenable secretを使います。

Router(config)# enable secret cisco123
Router(config)# end
Router# copy running-config startup-config

transport inputコマンドの詳細解説

transport inputコマンドは、VTYライン(リモート接続用の仮想端末)においてどのプロトコルを許可するかを指定します。設定を忘れると機器によってはすべてのリモートアクセスが拒否されることがあるため、必ず設定する習慣をつけてください。

コマンド意味推奨度
transport input telnetTelnet接続のみ許可学習環境のみ
transport input sshSSH接続のみ許可(Telnetは拒否)本番推奨
transport input telnet sshTelnet・SSH両方を許可(明示的に指定)移行期に使用
transport input allすべてのプロトコルを許可非推奨
transport input noneすべてのリモートアクセスを拒否セキュリティ強化時
⚠ transport input allより明示的な指定が推奨 transport input allは意図しないプロトコルも許可してしまう可能性があります。許可するプロトコルをtransport input telnet sshのように明示的に列挙するほうが設定の意図が明確で安全です。

loginとlogin localの違い

VTYラインの認証方式は設定によって異なります。loginlogin localは混同しやすいポイントです。

login(VTYパスワード認証)
line vty 0 4
 password cisco
 login
  • VTYラインに設定したパスワードのみで認証
  • ユーザ名は要求されない
  • 誰がログインしたかの追跡が困難
login local(ローカルユーザ認証)
username admin secret cisco123
line vty 0 4
 login local
  • ユーザ名+パスワードで認証
  • 誰がログインしたかをログで追跡可能
  • 権限レベル(privilege)の設定も可能
ℹ 実務ではlogin localを推奨 login localにすると誰がいつログインしたかがログに記録されるため、セキュリティ監査への対応が容易になります。複数人で機器を管理する環境では、ユーザごとにアカウントを作成してlogin localを使うことを強く推奨します。
図2:Telnet接続の処理フロー

接続確認手順

設定が完了したらPCからTelnetで接続を確認します。

Windowsコマンドプロンプトから接続する場合

C:\> telnet 192.168.10.1
Windows 10/11ではTelnetクライアントはデフォルトで無効です。「Windowsの機能の有効化または無効化」から「Telnetクライアント」を有効にするか、Tera Term・PuTTYを使用してください。

接続成功時の画面の流れ

Trying 192.168.10.1...
Connected to 192.168.10.1.

User Access Verification
Password: ****        ← VTYパスワードを入力

Router>               ← ユーザモードに入る
Router> enable
Password: ****        ← enableパスワードを入力
Router#               ← 特権モードに入る

設定の確認コマンド

! VTYライン設定の確認
Router# show running-config | section vty
line vty 0 4
 password 7 xxxxxxxx
 login
 transport input telnet

! インターフェースの状態確認
Router# show interfaces GigabitEthernet0/0

! 現在の接続セッション確認
Router# show users
    Line       User       Host(s)              Idle
*   2 vty 0              192.168.10.50        00:00:00

Telnet接続がうまくいかない時の確認ポイント

症状原因確認・対処
接続自体がタイムアウトするIPアドレス未設定またはIF Downshow interfaces でUP/UPを確認
pingで疎通確認
「Password required, but none set」と表示されるVTYパスワードが未設定line vty 0 4でpasswordを設定してloginを追加
接続拒否される(Connection refused)transport inputでTelnetが拒否されているshow running-config | section vty
transport input telnetを追加
パスワードは通るが「%No password set」enableパスワードが未設定enable secretを設定する
ACLやFWに弾かれるTCP 23番ポートがブロックされているACLの設定を確認。access-class設定がある場合はVTYラインを確認

セキュリティ面での注意点とSSHへの移行

Telnetは通信内容が平文で送信されます。ネットワーク上のパケットキャプチャツールで、パスワードを含むすべての操作内容が見えてしまいます。本番環境では必ずSSHに移行してください。

比較項目TelnetSSH
使用ポートTCP 23番TCP 22番
暗号化なし(平文)あり(TLS/暗号化)
盗聴リスク高い低い
本番環境での使用非推奨推奨
設定の複雑さ簡単RSA鍵生成・ドメイン名設定が追加で必要

SSHに移行する場合の追加設定

! ホスト名とドメイン名を設定(RSA鍵生成に必要)
Router(config)# hostname Router01
Router01(config)# ip domain-name example.local

! RSA鍵を生成(2048ビット推奨)
Router01(config)# crypto key generate rsa modulus 2048

! SSHバージョン2を指定
Router01(config)# ip ssh version 2

! ローカルユーザを作成
Router01(config)# username admin privilege 15 secret SecurePass

! VTYラインをSSHのみに変更
Router01(config)# line vty 0 4
Router01(config-line)# login local
Router01(config-line)# transport input ssh   ← Telnetを無効化

Router01(config-line)# end
Router01# write memory

まとめ

CiscoルータへのTelnet接続には、インターフェースのIP設定・VTYラインの設定・enableパスワードの3点がセットで必要です。

  • transport input telnetでVTYラインにTelnetを許可する
  • loginはVTYパスワード認証、login localはユーザ名+パスワード認証
  • transport input allよりtransport input telnet sshのように明示的に指定する方が安全
  • Telnetは平文通信のため、本番環境ではSSHへ移行する(transport input ssh
  • 接続できない場合はIP疎通・VTYパスワード・transport input・ACLの4点を順番に確認する

GNS3やPacket Tracerで動作確認を重ねることで、VTYラインの設定に自信がつきます。学習環境で手順を体で覚えておきましょう。