Appearance
AAA (Authentication, Authorization, Accounting)
AAA = Authentication(認証)、Authorization(認可)、Accounting(アカウンティング)
| 設定目的 | コンフィグモード | コマンド例 |
|---|---|---|
| AAA有効化 | Global config | aaa new-model |
AAA認証の設定
コマンド構文
(config)#aaa authentication {タイプ} {default | リスト名} {method1} [method2...]認証タイプ
| タイプ | 説明 |
|---|---|
login | ログイン認証 |
enable | 特権モード移行の認証(適用回線はdefaultのみ) |
dot1x | IEEE 802.1X認証 |
リスト種類
| リスト | 説明 |
|---|---|
default | すべての回線(aux, console, vty等)にデフォルトで適用 |
| 任意のリスト名 | 回線ごとに個別に適用可能なリスト |
method(認証方式)
| method | 説明 |
|---|---|
group {グループ名} | 指定したグループ名のAAAサーバで認証 |
group radius | RADIUSサーバによる認証 |
group tacacs+ | TACACS+サーバによる認証 |
local | ローカルDB認証(ユーザ名の大文字小文字を区別しない) |
local-case | ローカルDB認証(ユーザ名の大文字小文字を区別する) |
line | lineパスワードで認証 |
enable | enableパスワードで認証 |
none | 認証なし(認証せずにログイン許可) |
重要: method1が使えなかった(タイムアウトエラー等)場合、method2が実行される。「認証失敗」ではなく「サーバ到達不能」の場合にフォールバックする点に注意。
例: aaa authentication login default group radius none → まずRADIUSで認証、RADIUSサーバに接続できない場合は認証なしでログイン許可。
AAA認可(Authorization)の設定
コマンド構文
(config)#aaa authorization {タイプ} {default | リスト名} {method1} [method2...]認可タイプ
| タイプ | 説明 |
|---|---|
network | 全てのネットワークサービス要求(SLIP, PPP, ARAP等)の許可 |
exec | ユーザEXECターミナルセッションに関連付けられた属性の許可 |
commands | 指定された権限レベル(0〜15)に属するコマンドの許可 |
method(認可方式)
| method | 説明 |
|---|---|
group radius | RADIUSサーバによる認可 |
group tacacs+ | TACACS+サーバによる認可 |
if-authenticated | 認証に成功したユーザに、要求されている機能へのアクセスを許可 |
local | ローカルDB(usernameで定義)による認可 |
none | 認可を行わない |
重要: 認証(authentication)と認可(authorization)は別コマンド。認証=「誰か」を確認、認可=「何ができるか」を制御。
AAAアカウンティング(Accounting)の設定
コマンド構文
(config)#aaa accounting {タイプ} {default | リスト名} {アカウンティング種類} {method1} [method2...]※認証・認可と異なり、アカウンティング種類(start-stop等)のパラメータが追加される。
アカウンティングタイプ
| タイプ | 説明 |
|---|---|
exec | ユーザEXECターミナルセッションに関連付けられた属性のアカウンティング |
commands | 指定された権限レベル(0〜15)に属するコマンドのアカウンティング |
アカウンティング種類
| 種類 | 説明 |
|---|---|
start-stop | プロセスの開始時に「開始通知」、終了時に「終了通知」を送信 |
stop-only | プロセスの終了時に「終了通知」のみ送信 |
none | アカウンティングを行わない |
method(アカウンティング方式)
| method | 説明 |
|---|---|
group radius | RADIUSサーバをアカウンティングサーバとして使用 |
group tacacs+ | TACACS+サーバをアカウンティングサーバとして使用 |
例: aaa accounting commands 15 default start-stop group tacacs+ → 権限レベル15のコマンドに関するアカウンティング情報をTACACS+サーバに送信。
AAAパスワードセキュリティポリシー
ポリシーの作成
(config)#aaa common-criteria policy {ポリシー名}
(config-cc-policy)#max-length {パスワードの最大文字数}
(config-cc-policy)#min-length {パスワードの最小文字数}
(config-cc-policy)#lifetime {year | month | day | hours | minutes | seconds} {パスワード有効期間}| パラメータ | 説明 |
|---|---|
| ポリシー名 | 作成するポリシーの名前を登録 |
| max-length | パスワードの最大文字数(1〜127) |
| min-length | パスワードの最小文字数(1〜127) |
| lifetime year | 有効期間の年数(0〜99) |
| lifetime month | 有効期間の月数(0〜11) |
| lifetime day | 有効期間の日数(0〜30) |
ユーザへの適用
(config)#username {ユーザ名} [privilege {レベル}] common-criteria-policy {ポリシー名} password {パスワード文字列}重要: ポリシー適用時は password で指定する(secret ではない)。また、ポリシー名とパスワードの両方を指定する必要がある。どちらか欠けると誤り。
RADIUS vs TACACS+
| 特徴 | RADIUS | TACACS+ |
|---|---|---|
| プロトコル | UDP(ポート1812, 1813) | TCP(ポート49) |
| 機能の分離 | 認証と認可は統合、アカウンティングは独立 | 認証・認可・アカウンティングすべて独立 |
| 暗号化 | パスワードのみ暗号化 | パケット全体を暗号化 |
| 標準への対応 | 標準(RFC 2865) | シスコ独自 |
重要: TACACS+はCisco独自プロトコル。RADIUSは認証と認可が統合されているが、TACACS+は3つの機能が完全に独立しているため、より柔軟な制御が可能。
AAAのトラブルシューティング
AAAが想定通り動作しない主な原因:
| 原因 | 説明 | 対処 |
|---|---|---|
| AAAが未有効化 | aaa new-model が未設定 | (config)#aaa new-model |
| リストの適用忘れ | 回線にリストが適用されていない(defaultリストが使われる) | (config-line)#login authentication {リスト名} |
| AAAサーバの指定が不適切 | IPアドレスや事前共有キーが不正 | tacacs server / radius server で再確認 |
TACACS+サーバ設定
(config)#tacacs server {名前}
(config-server-tacacs)#address ipv4 {IPアドレス}
(config-server-tacacs)#key {事前共有キー}debugメッセージ
| メッセージ | 原因 |
|---|---|
TPLUS: Using server UNKNOWN | AAAサーバのIPアドレスが指定できていない |
TPLUS: Invalid AUTHEN packet (check keys). | 事前共有キーが一致していない |