ネットワーク機器への管理アクセス方式

ルータ・スイッチといったネットワーク機器を設定・監視するには、管理者がその機器へアクセスする何らかの手段が必要です。CCNAでは、代表的な管理アクセス方式それぞれの特徴、特にセキュリティ上の違いを理解しておく必要があります。

リモートCLIアクセス:TelnetとSSH

Telnet

Telnetは、古くから使われてきたリモートログイン用のプロトコルです。最大の問題点は、ユーザー名・パスワードを含むすべての通信内容が暗号化されずに(平文で)送信されることです。ネットワーク上で通信内容を盗聴されると、認証情報がそのまま漏えいしてしまう危険性があるため、現在では本番環境での利用は推奨されていません。

SSH(Secure Shell)

SSHは、Telnetに代わる標準的なリモートCLIアクセス手段です。公開鍵暗号を用いる鍵交換やサーバー認証、公開鍵認証を選んだ場合のユーザー認証と、共通鍵暗号を組み合わせて通信路を暗号化するため、認証情報を含むすべての通信内容が保護されます。ユーザー認証には、公開鍵認証のほか、パスワード認証なども使用できます。現在のネットワーク機器の管理アクセスでは、TelnetではなくSSHを使うことが標準的なベストプラクティスとされています。

SSHの設定と確認

SSHを有効にするには、ホスト名・ドメイン名の設定に続けて暗号鍵を生成し、SSHのバージョンを指定します。

Router(config)# hostname R1
R1(config)# ip domain-name example.co.jp
R1(config)# crypto key generate rsa modulus 2048
R1(config)# ip ssh version 2

設定内容は、Cisco IOSでshow ip sshコマンドを使って確認できます。出力内容はIOSのリリースや設定によって異なります。

R1# show ip ssh
SSH Enabled - version 2.0
Authentication methods:publickey,keyboard-interactive,password
Authentication timeout: 120 secs; Authentication retries: 3

SSH Enabled - version 2.0から、脆弱性が指摘されているバージョン1ではなく、バージョン2で動作していることを確認できます。

VTY回線をSSH専用に制限する

SSHを有効にしただけでは、VTY回線(リモートアクセス用の仮想端末)で使用する認証方式と許可プロトコルは設定されません。ローカルユーザーで認証し、リモートアクセスをSSHのみに限定するには、VTY回線の設定モードでlogin localとtransport inputコマンドを使います。

Router(config)# username admin secret <password>
Router(config)# line vty 0 4
Router(config-line)# login local
Router(config-line)# transport input ssh

transport input sshを設定すると、そのVTY回線はSSH接続のみを受け付けるようになり、Telnetでの接続は拒否されます。transport input telnet sshやallを設定している場合はTelnetも許可された状態になります。transport inputの初期値や利用可能なプロトコルはIOSのリリースや既存設定によって異なります。SSHがTelnetより推奨される理由を設定面から裏付ける、代表的な設定です。

リモートGUIアクセス:HTTPとHTTPS

Webブラウザ経由でネットワーク機器のGUI管理画面へアクセスする方式にも、暗号化の有無による違いがあります。

  • HTTP:暗号化されていない通信で管理画面にアクセスします。Telnetと同様、認証情報を含む通信内容が平文でやり取りされてしまいます。
  • HTTPS:TLS(Transport Layer Security)による暗号化を追加した方式です。「S」はSecureを意味し、一般的にTCPポート443が使われます。ネットワーク機器でHTTPSを有効にするには、TLSで使用するサーバー証明書と秘密鍵を利用可能にしておく必要があります。機器・OSによっては自己署名証明書が自動生成され、本番環境では信頼された認証局が発行した証明書を使用します。

Telnetと同様、HTTPよりもHTTPSを使うことがセキュリティ上のベストプラクティスです。

HTTP/HTTPSの設定と確認

Cisco IOSでHTTP/HTTPSサーバーを有効にするかどうかは、次のコマンドで制御します。WebベースのGUI管理画面を利用できるかどうかは、機種・IOSリリース・搭載機能に依存します。

Router(config)# ip http server
Router(config)# ip http secure-server

ip http serverはHTTPサーバーを、ip http secure-serverはHTTPS(TLS)サーバーを、それぞれ有効にします。どちらが有効になっているかは、show ip http server statusコマンドで確認できます。

Router# show ip http server status
HTTP server status: Disabled
HTTP secure server status: Enabled

この例では、HTTP server status: Disabled(平文のHTTPは無効)、HTTP secure server status: Enabled(暗号化されたHTTPSは有効)となっており、セキュリティ上のベストプラクティスどおり、HTTPSのみが有効な状態であることが確認できます。管理アクセスを使わない機器では、no ip http server・no ip http secure-serverでどちらも無効化し、不要な管理インターフェースを閉じておくことも重要です。

コンソールアクセス

コンソールポートは、ネットワーク機器に物理的にケーブル(コンソールケーブル)で直接接続し、CLIへアクセスするための専用ポートです。ネットワーク経由の設定が一切できない初期設定時や、リモートアクセス自体が機能しなくなった障害時の復旧作業など、他の方式に依存できない場面で欠かせないアクセス手段です。

AAAとTACACS+・RADIUS

ネットワーク機器へのログイン認証を、機器ごとに個別のローカルアカウントで管理するのではなく、AAA(Authentication、Authorization、Accounting:認証・認可・アカウンティング)の仕組みを使って、外部の専用サーバーで一元的に管理する方法が広く使われます。この際に使われる代表的なプロトコルが、TACACS+とRADIUSです。

TACACS+

Cisco が推進してきた、企業のネットワーク機器管理向けのAAAプロトコルです。TCPポート49を使用し、パケット本体を暗号化します。ユーザーがどのコマンドを実行したかまで細かく記録できる、コマンド単位の詳細な認可・監査ログに対応している点が特徴です。

RADIUS

主に、ISP(インターネットサービスプロバイダ)や無線LANでの認証など、より広範な用途で使われるAAAプロトコルです。UDPを使用し、従来のRADIUSでは共有シークレットを用いてUser-Password属性を保護しますが、それ以外の多くの通信内容は暗号化されません。ユーザーのログイン・ログアウトといったセッション単位の記録が中心で、TACACS+のようなコマンド単位の詳細な監査には向いていません。

TACACS+とRADIUSの比較

観点TACACS+RADIUS
トランスポートTCP(ポート49)UDP
暗号化範囲パケット本体User-Password属性
主な用途ネットワーク機器管理ISP・無線LAN等の認証
監査の粒度コマンド単位セッション単位

クラウド管理

近年は、個々の機器へ直接ログインするのではなく、クラウド上の管理ダッシュボードからネットワーク機器を一元管理する方式(例:Cisco Meraki)も広く使われています。管理者はクラウドのポータルへアクセスし、複数拠点の機器の設定・監視・ソフトウェア更新をまとめて行えます。機器の運用・保守負担を軽減できる一方、インターネット接続とクラウドサービスへの信頼が前提となる方式です。