ローカルパスワードによるアクセス制御

ネットワーク機器へのアクセスを制限する最も基本的な方法が、機器自身(ローカル)に保存されたパスワードによる認証です。Cisco IOS機器では、アクセス経路(コンソール・VTY・特権モード)ごとに、個別にパスワードを設定できます。

特権EXECモードの保護:enable secret

一般ユーザーモードから、設定変更が可能な特権EXECモードへ昇格する際のパスワードは、enable secretコマンドで設定します。

Router(config)# enable secret Str0ngEnable2026

古くからあるenable passwordコマンドも存在しますが、これは設定ファイル内にパスワードが平文、または簡単に復元できる形式(Type 7)で保存されてしまいます。一方enable secretは、一方向ハッシュという、元のパスワードを復元できない形式で保存されるため、enable passwordではなく必ずenable secretを使うことが推奨されます。enable passwordとenable secretの両方が設定されている場合、特権EXECモードへの昇格時にはenable secretが優先されます。使用されるハッシュ形式やデフォルトは、IOS/IOS XEのバージョンおよびプラットフォームに依存します。

コンソールポートの保護

コンソールポートは物理的なアクセスを前提とするため、共有のパスワードを設定するのが一般的です。

Router(config)# line console 0
Router(config-line)# password C0nsolePass
Router(config-line)# login
Router(config-line)# exec-timeout 5 0

loginコマンドは、パスワードによる認証を要求することを明示します。exec-timeoutは、一定時間操作が無い場合に自動的にセッションを切断する設定で、離席時の不正利用を防ぐ効果があります。

VTY回線の保護

リモートアクセス用のVTY回線では、共有パスワードではなく、ユーザーごとに個別のアカウントを使う方が、誰がアクセスしたかを追跡しやすくなります。

Router(config)# username netadmin secret Adm1nPass2026
Router(config)# line vty 0 4
Router(config-line)# login local
Router(config-line)# transport input ssh

login localは、ローカルデータベース(usernameコマンドで作成したアカウント)を使って認証することを指定します。SSHを利用するには、別途ホスト名・ドメイン名・RSA鍵の設定が必要です。また、VTY回線の番号の範囲は機種やIOSのバージョンによって異なるため、存在するすべてのVTY回線を設定対象にします。

パスワードの暗号化

enable secret以外の、回線パスワード(コンソール・VTY等)は、初期状態では設定ファイル内に平文で保存されます。service password-encryptionコマンドを使うと、これらのパスワードをType 7という形式に変換し、設定ファイルを覗き見された際の可読性を下げられます。

Router(config)# service password-encryption

ただし、Type 7は暗号化アルゴリズムが単純なため、専用ツールで容易に元のパスワードへ復元できてしまうという弱点があります。特権EXECモードのパスワードには、Type 7ではなく、enable secretによる一方向ハッシュを使うべきです。Type 5はMD5ベースの古い形式であるため、機器が対応している場合はType 8またはType 9を優先します。

ログイン試行のブロック(ロックアウト)と最小パスワード長

後述する「セキュリティパスワードポリシーの要素」で説明するロックアウト・最小パスワード長は、単なる運用上の方針にとどまらず、Cisco IOSのコマンドとして実際に設定できます。

Router(config)# login block-for 120 attempts 3 within 60
Router# show login

login block-for 120 attempts 3 within 60は、60秒以内に3回ログインに失敗した場合、その後120秒間、すべてのログイン試行を一律にブロック(クワイエットモード)する設定です。ブルートフォース攻撃・辞書攻撃のように、短時間に大量のログイン試行を繰り返す攻撃への耐性を高めます。show loginコマンドで、現在ログイン試行がクワイエットモードによってブロックされているかどうかを確認できます。

Router(config)# security passwords min-length 8

security passwords min-length 8は、今後ローカルに新たに設定するパスワードについて、最小文字数を8文字に強制するコマンドです。このコマンドの設定時点で既に設定済みのパスワードには遡って適用されない(既存のパスワードが強制的に変更されるわけではない)点に注意してください。このコマンドが実装するのは最小文字数であり、大文字・小文字・数字・記号の組み合わせといった複雑性要件は強制しません。

設定の確認

Router# show running-config | include ^enable secret|password
enable secret 5 $1$mERr$hx5rVt7rPNoS4wqbXKX7m0
 password 7 08351E1D0713181F
Router# show running-config | section ^line
line con 0
 password 7 08351E1D0713181F
line vty 0 4
 login local

enable secretの行が5、8、9などで始まっていれば一方向ハッシュ、回線パスワードの行が7で始まっていれば、比較的弱いType 7の暗号化であることが分かります。Type 5はMD5ベースの古い形式であり、Type 8やType 9が利用可能かどうかは、IOS/IOS XEのバージョンおよびプラットフォームに依存します。

セキュリティパスワードポリシーの要素

パスワードによる保護を効果的に機能させるには、個々のパスワード設定コマンドだけでなく、組織的なパスワードポリシーも重要です。

パスワード管理(Management)

パスワードを安全に保管し、定期的に見直す運用のことです。パスワードの有効期限(aging)を設けて定期的な変更を促す、過去に使ったパスワードの再利用を防ぐパスワード履歴、一定回数のログイン失敗でアカウントを一時的にロックするロックアウト、パスワードを忘れた場合の復旧手順の整備などが含まれます。

パスワードの複雑さ(Complexity)

推測されにくいパスワードにするための要件です。最小文字数、大文字・小文字・数字・記号の組み合わせなど、単純なパスワードによる総当たり攻撃・辞書攻撃への耐性を高める狙いがあります。

パスワードの代替手段

パスワード単体に頼らない、より強固な認証手段も広く使われています。

  • 多要素認証(MFA:Multi-Factor Authentication):パスワード(知識要素)に加えて、スマートフォンアプリのワンタイムコードやセキュリティトークン(所持要素)、指紋等(生体要素)など、異なる種類の要素を複数組み合わせて本人確認を行う方式です。仮にパスワードが漏えいしても、他の要素が無ければ不正アクセスを防げるため、セキュリティが大幅に向上します。
  • 証明書(デジタル証明書):公開鍵暗号方式を用いて、利用者や機器の身元を証明する電子的な認証情報です。パスワードの代わりに、あるいはパスワードと組み合わせて使われます。
  • 生体認証(Biometrics):指紋、顔認証、虹彩スキャンなど、個人固有の身体的特徴を使って本人確認を行う方式です。単独では複製・偽造のリスクもあるため、他の要素と組み合わせて使われることが一般的です。