ネットワーク機器への管理アクセス方式
ルータ・スイッチといったネットワーク機器を設定・監視するには、管理者がその機器へアクセスする何らかの手段が必要です。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: 3SSH 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 sshtransport 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-serverip 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)も広く使われています。管理者はクラウドのポータルへアクセスし、複数拠点の機器の設定・監視・ソフトウェア更新をまとめて行えます。機器の運用・保守負担を軽減できる一方、インターネット接続とクラウドサービスへの信頼が前提となる方式です。