CiscoルータやスイッチにTelnet接続した際、ユーザ名とパスワードを入力させたい場面があります。初期状態ではVTYラインにパスワードのみ設定されていることが多く、ユーザ名認証が行われないケースがあります。
この記事では、Cisco機器でTelnet接続時にユーザ名とパスワードを要求する設定方法・ログイン後の権限(privilege)制御・enableパスワード設定、そして実務では必須となるSSHへの移行方法まで体系的に解説します。
引き継いだ環境で、スイッチへのTelnet接続にユーザ名が不要な状態になっていたことがありました。loginだけ設定されており、VTYパスワードを知っていれば誰でも入れる状態でした。
セキュリティ監査で「誰がいつログインしたか追跡できない」と指摘され、login localへの変更とSSH移行を対応しました。ユーザ名認証にするだけで、ログに誰がアクセスしたかが記録されるようになり、管理性が大幅に向上しました。


VTYラインの認証方式と違い
Cisco IOSでは、VTYラインへの認証方式は3種類あります。設定方法によって、ログイン時の動作が大きく変わります。
| 設定コマンド | 認証方式 | ユーザ名要求 | 推奨度 |
|---|---|---|---|
| no login | 認証なし | なし(誰でも入れる) | 本番NG |
| login | VTYパスワード認証 | パスワードのみ | 最低限 |
| login local | ローカルユーザ認証 | ユーザ名+パスワード | 推奨 |
login localを設定すると、機器内に登録されたローカルユーザで認証を行います。誰がログインしたかがログに残り、権限レベルもユーザごとに制御できるため、loginより大幅にセキュリティが向上します。
Telnetログインでユーザ名とパスワードを要求する設定
設定コマンド全体(コピペ用)
Router# configure terminal
! ローカルユーザを作成(特権レベル15=enable相当)
Router(config)# username admin privilege 15 secret Cisco123
! VTYラインの設定
Router(config)# line vty 0 4
Router(config-line)# login local
Router(config-line)# transport input telnet
Router(config-line)# end
! 設定を保存
Router# copy running-config startup-config各コマンドの詳細解説
① ローカルユーザの作成
username admin privilege 15 secret Cisco123| キーワード | 意味 |
|---|---|
| username admin | ユーザ名「admin」を作成 |
| privilege 15 | 特権レベル15(最高権限)を付与。ログイン後すぐにRouter#(enable状態)になる |
| secret Cisco123 | パスワードをType 5(MD5)で暗号化して保存。passwordとの違い:passwordは弱い暗号化(Type 7)のため必ずsecretを使うこと |
② VTYラインの設定
line vty 0 4
login local
transport input telnet| コマンド | 意味 |
|---|---|
| line vty 0 4 | 5本の仮想端末ライン(0〜4)を設定対象にする。同時接続5セッションまで許可 |
| login local | ローカルユーザデータベース(usernameコマンドで登録したユーザ)で認証する |
| transport input telnet | Telnet接続のみ受け付ける。両方許可するにはtransport input telnet sshと指定する |
Telnet接続時の動作確認
設定後にTelnet接続すると、ユーザ名とパスワードが要求されます。
Trying 192.168.100.1 ... Open
User Access Verification
Username: admin
Password: ********
Router# ← privilege 15のため即時enable状態privilegeレベルと権限制御
Cisco IOSではprivilegeレベル(0〜15)でユーザの権限を細かく制御できます。実務では主にレベル1・15が使われます。
| privilegeレベル | ログイン後の状態 | 利用シーン |
|---|---|---|
| 0 | 最小権限(logout等のみ) | 通常使わない |
| 1(デフォルト) | Router>(ユーザモード) | 参照のみの監視担当者など |
| 2〜14 | カスタム権限(個別コマンドを割当可能) | 特定操作のみ許可したい場合 |
| 15 | Router#(特権モード) | 管理者・ネットワークエンジニア |
privilege 1(ユーザモード)でログインする設定
ログイン後すぐに特権モードに入らせたくない場合は、ユーザ権限をprivilege 1にします。監視担当者など「show系コマンドのみ実行できればよい」ユーザに適しています。
! privilege 1ユーザを作成
Router(config)# username user1 privilege 1 secret Password123
! enableパスワードの設定(特権モード昇格用)
Router(config)# enable secret EnablePasswordprivilege 1でログインすると以下の状態になります。
User Access Verification
Username: user1
Password: ********
Router> ← ユーザモード(設定変更不可)
Router> enable ← 特権モードへ昇格
Password: ****
Router# ← 特権モードenable secretが必要です。enable secretが未設定だとenableコマンドを実行してもパスワードなしで特権モードに入れてしまうため、必ず設定してください。またenable passwordよりもenable secretを使ってください(secretは暗号化強度が高い)。設定の確認方法
設定後は以下のコマンドで意図した通りに設定されているか確認します。
ローカルユーザの確認
Router# show running-config | include username
username admin privilege 15 secret 5 $1$XXXX$... ← 暗号化されて表示される
username user1 privilege 1 secret 5 $1$YYYY$...VTYライン設定の確認
Router# show running-config | section vty
line vty 0 4
login local
transport input telnet現在のVTY接続セッション確認
Router# show users
Line User Host(s) Idle Location
* 1 vty 0 admin idle 00:00:00 192.168.100.50
2 vty 1 user1 idle 00:05:32 192.168.100.51show usersで現在接続しているユーザとIPアドレスが確認できます。login local設定後はユーザ名が表示されるため、誰がログインしているかの把握が容易になります。
本番環境ではSSHへ移行する
Telnetはパスワードを含む通信内容が平文でネットワーク上を流れます。セキュリティの観点から、本番環境ではSSHを使用することが必須です。SSHでは通信全体が暗号化されるため、パスワードが盗聴されるリスクを排除できます。
SSH設定の全手順
Router# configure terminal
! ① ホスト名を設定(必須:RSA鍵生成に必要)
Router(config)# hostname Router01
! ② ドメイン名を設定(必須:RSA鍵生成に必要)
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 Cisco123
! ⑥ VTYラインをSSHのみに変更
Router01(config)# line vty 0 4
Router01(config-line)# login local
Router01(config-line)# transport input ssh ← Telnetを無効化しSSHのみに
Router01(config-line)# end
Router01# copy running-config startup-config- ホスト名が
Router以外に設定されていること ip domain-nameが設定されていること- ローカルユーザが少なくとも1つ作成されていること
SSH設定の確認
! SSHの動作確認
Router# show ip ssh
SSH Enabled - version 2.0
Authentication methods:publickey,keyboard-interactive,password
Authentication timeout: 120 secs; Authentication retries: 3
! RSA鍵の確認
Router# show crypto key mypubkey rsa
% Key pair was generated at: ...
Key name: Router.example.local
Usage: General Purpose Key
Key is exportable. The name of the key is Router.example.local
Key Data:
...(鍵データ)...追加セキュリティ設定
ユーザ認証の設定に加えて、以下のセキュリティ設定も合わせて行うことを推奨します。
接続タイムアウトの設定
line vty 0 4
! 10分間操作がなければ自動切断
exec-timeout 10 0
! ログイン試行のタイムアウト(秒)
login block-for 120 attempts 3 within 60パスワードの暗号化と管理IPアクセス制限
! running-configに残るpassword設定を暗号化(Type 7)
service password-encryption
! 管理用VTYアクセスを特定のサブネットのみ許可
access-list 10 permit 192.168.100.0 0.0.0.255
line vty 0 4
access-class 10 in ← 上記ACLを適用service password-encryptionはpasswordコマンドで設定したパスワードをType 7形式で暗号化しますが、容易に復号できるため強力な暗号化ではありません。パスワードの設定は必ずsecretコマンドを使ってください。設定の全体まとめ表
| 目的 | コマンド | 必須度 |
|---|---|---|
| 管理者ユーザ作成 | username admin privilege 15 secret [PW] | 必須 |
| VTYユーザ認証 | login local | 必須 |
| 特権パスワード設定 | enable secret [PW] | 必須 |
| SSH有効化 | crypto key generate rsa modulus 2048 | 本番では必須 |
| SSHバージョン指定 | ip ssh version 2 | 本番では必須 |
| タイムアウト設定 | exec-timeout 10 0 | 推奨 |
| 接続元IP制限 | access-class [ACL番号] in | 推奨 |
まとめ
Cisco機器でTelnet接続時にユーザ名とパスワードを要求するには、VTYラインの認証方式をlogin localに変更し、ローカルユーザを作成します。
login localでユーザ名+パスワード認証が有効になるprivilege 15でログイン後すぐに特権モード(#)になるprivilege 1+enable secretでユーザ権限を分離できる- パスワードは必ず
secretで設定(passwordは使わない) - 本番環境ではSSH(
ip ssh version 2)へ移行しtransport input sshでTelnetを無効化する - タイムアウト設定(
exec-timeout)と接続元IP制限(access-class)も合わせて設定する
Cisco機器の管理アクセスは、適切な認証設定とSSH移行をセットで考えることが重要です。



