Skip to content

AAA (Authentication, Authorization, Accounting)

AAA = Authentication(認証)、Authorization(認可)、Accounting(アカウンティング)

設定目的コンフィグモードコマンド例
AAA有効化Global configaaa new-model

AAA認証の設定

コマンド構文

(config)#aaa authentication {タイプ} {default | リスト名} {method1} [method2...]

認証タイプ

タイプ説明
loginログイン認証
enable特権モード移行の認証(適用回線はdefaultのみ
dot1xIEEE 802.1X認証

リスト種類

リスト説明
defaultすべての回線(aux, console, vty等)にデフォルトで適用
任意のリスト名回線ごとに個別に適用可能なリスト

method(認証方式)

method説明
group {グループ名}指定したグループ名のAAAサーバで認証
group radiusRADIUSサーバによる認証
group tacacs+TACACS+サーバによる認証
localローカルDB認証(ユーザ名の大文字小文字を区別しない
local-caseローカルDB認証(ユーザ名の大文字小文字を区別する
linelineパスワードで認証
enableenableパスワードで認証
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 radiusRADIUSサーバによる認可
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 radiusRADIUSサーバをアカウンティングサーバとして使用
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+

特徴RADIUSTACACS+
プロトコル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 UNKNOWNAAAサーバのIPアドレスが指定できていない
TPLUS: Invalid AUTHEN packet (check keys).事前共有キーが一致していない