◆ RADIUSとTACACS+の違い
AAAを実装させたネットワーク機器は認証、認可、アカウンティングを行うために、一般的にCisco IOSでは
RADIUS、TACACS+、Kerberosのセキュリティプロトコルを使用してサーバと通信させるのが一般的です。
ここでは最も使用されるTACACS+プロトコルとRADIUSプロトコルについて、その違いを簡単に紹介します。
プロトコル |
標準化 |
使用ポート |
暗号化 |
RADIUS |
IETF標準 |
UDP 1812、UDP 1813 |
パスワード情報のみ暗号化 |
TACACS+ |
シスコ独自 |
TCP 49 |
パケット全体を暗号化 |
RADIUSでは「認証と認可」にはUDPポート1812、「アカウンティング」にUDPポート1813を使用します。
旧式では、「認証と認可」にUDPポート1645、「アカウンティング」にUDPポート1646を使用しています。
RADIUSプロトコルについては、AAAモデルが確立される前に開発されたプロトコルであり「認証と認可」が
組み合わされており1つのサービスとして統合されて、「アカウンティング」のみ分離されています。一方、
TACACS+プロトコルについては「認証」「認可」「アカウンティング」の3つのサービスが分離しています。
◆ AAAクライアント ⇔ AAAサーバ間の通信( RADIUSプロトコル)
下図は、RADIUSプロトコルによる「認証」「認可」「アカウンティング」パケットのシーケンスです。
RADIUSでは「認証・認可」が1つのAccess-RequestやAccess-Acceptパケットに組み込まれています。
A 入力したユーザ名、パスワード、NASのIPアドレス、NASのポート番号などが含まれた情報を送信。
F Access-requestで送信された共有暗号鍵( Shared Secret )をサーバで設定されている値と比較。
一致する場合、ユーザ名とパスワードをRADIUSサーバのDBにある情報と比較。それも一致する場合は
Access-Acceptの送信時に、このセッションで使用されるアトリビュート( VLANやACLなど )を返す。
G アカウンティングフェーズは「 認証および認可フェーズの完了後 」に独立したフェーズとして開始。
◆ AAAクライアント ⇔ AAAサーバ間の通信( TACACS+プロトコル)
TACACS+プロトコルの場合は「認証」「認可」「アカウンティング」の3つが完全に分離しています。
以下の「→→→」はNASからTACACS+サーバへ、「←←←」はTACACS+サーバからNASへのフローです。
◆ Authentication(認証)
@ →→→ Send Start - User trying to connect
A ←←← Get User - to ask client to get username
B →→→ CONTINUE - to give server username
C ←←← Get Pass - to ask client to get password
D →→→ CONTINUE - to give server password
E ←←← Pass / Fail - to indicate pass/fails status
◆ Authorization(認可)
@ →→→ Request - for service=shell
A ←←← Response - to indicate pass/fail status
B →→→ Request - for command & command-argument
C ←←← Response - to indicate pass/fail status
◆ Accounting(アカウンティング)
@ →→→ Request - for start-exec
A ←←← Response - that record was received
B →→→ Request - for command
C ←←← Response - that record was received
D →→→ Request - for stop-exec
E ←←← Response - that record was received
802.1X認証で使用できる認証サーバはRADIUSサーバのみであり、TACACS+やKerberosは使用できません。
|