AAA(認証、認可とアカウンティング)

AAAとは

AAAとは、「Authentication, Authorization, and Accounting」の略で、ネットワークのセキュリティ管理において重要な役割を果たします。

  1. Authentication(認証): ユーザーやデバイスがネットワークにアクセスする際に、正当なものであることを確認するプロセスです。
  2. Authorization(認可): 認証されたユーザーやデバイスに対して、どのリソースやサービスにアクセスできるかを決定します。
  3. Accounting(課金/監査): アクセスや使用状況を記録し、監査やトラブルシューティングのために使用されます。

認証の設定

基本構文

1.AAAの有効化

AAA をグローバルに有効にします。
Router(config)# aaa new-model

2.ログイン認証の作成

認証リストを作成します。
Router(config)#aaa authentication login { default | list-name } [passwd-expiry] method1 [ method2 . .. ]

コマンド内容
defaultユーザのログイン時のデフォルトの認証。
list-nameユーザがログインするときにアクティブ化される認証方式リストに、名前を付けるときに使用する文字列。 
passwd-expiryローカル認証リストのパスワードのエージングを有効にします。
method1 [method2…]認証アルゴリズムが一定の順序で試みる方式のリスト。 1 つ以上の方式を入力する必要があります。また最高 4 つの方式を入力できます。

使用できるmethodは以下になります。

コマンド内容
cache group-name認証サーバーから取得したユーザー認証情報をデバイス上でキャッシュするためのメソッドです。
enableローカルのenableパスワードを使用して認証を行います。TACACS+やRADIUSなどの外部サーバーが利用できない場合やシンプルな認証が求められる場合に使用されます。
group group-name特定のサーバーグループを使用して認証を行います。このグループには、TACACS+、RADIUS、LDAPなどの認証サーバーが含まれており、指定された順序で試行されます。
group ldapLDAP(Lightweight Directory Access Protocol)サーバーを使用して認証を行います。
group radiusRADIUS(Remote Authentication Dial-In User Service)サーバーを使用して認証を行います。
group tacacs+TACACS+(Terminal Access Controller Access-Control System Plus)サーバーを使用して認証を行います。
krb5Kerberosバージョン5(krb5)を使用して認証を行います。
krb5-telnetKerberos認証を使用したTelnet接続をサポートします。
lineデバイスのlineコンフィグレーションモードで設定されたパスワードを使用して認証を行います。
localデバイス上にローカルで定義されたユーザー名とパスワードを使用して認証を行います。TACACS+やRADIUSサーバーが利用できない場合のフォールバックオプションとしてよく使用されます。
local-caselocalメソッドと似ていますが、ユーザー名の大文字と小文字を区別して認証を行います。
none認証をスキップし、すべてのユーザーが認証なしでアクセスできるようにします。
passwd-expiryユーザーのパスワード有効期限をチェックし、期限が切れている場合にはパスワード変更を促します。

3.回線への適応

回線設定モードに入り、認証リストを 1 行または行セットに適用します。
Router(config)#line [aux | console | tty | vty ] line-number [ending-line-number ]
Router(config-line)#login authentication {default | list-name }

認証の設定例

ローカルユーザだけでの認証例

まずTACACS+で認証を試み、失敗した場合はローカルユーザー名での認証例

コンソールアクセスにはローカルユーザーのみを使用し、VTYアクセスにはTACACS+サーバーを使用

認証の設定(PPP)

AAAでPPP(Point-to-Point Protocol)接続を使用した認証方法を設定します。

1.AAAの有効化

AAA をグローバルに有効にします。
Router(config)# aaa new-model

2.認証リストの作成

ローカル認証リストを作成します。
Router(config)# aaa authentication ppp {default | list-name } method1 [method2… ]

3.IFへの適応

インターフェースに認証リストを適用します。
Router(config)# interface interface-type interface-number
Router(config-if)# ppp authentication {protocol1 [protocol2… ]} [if-needed ] {default | list-name } [callin ] [one-time ][optional ]

認可の設定

基本構文

1.AAAの有効化

AAA をグローバルに有効にします。
Router(config)# aaa new-model

2.ログイン許可の作成

認証リストを作成します。
Router(config)#aaa authorization { auth-proxy | cache | commands level | config-commands | configuration | console | credential-download | exec | multicast | network | reverse-access | template} { default | list_name } [ method1 [ method2 …]]

オプション意味
auth-proxy認証プロキシを使用する認可ポリシーを定義します。
cache認可結果をキャッシュするポリシーを設定します。
commands level特定の特権レベルでのコマンド実行を認可します。
たとえば、commands 15は、特権レベル15のコマンドに対して認可を行います。
config-commandsローバルコンフィギュレーションモードのコマンドに対する認可を設定します。
configurationデバイスの設定変更に対する認可を設定します。
consoleコンソール接続に対する認可を設定します。
credential-download認証情報のダウンロードに対する認可ポリシーを定義します。
execEXECセッションの開始に対する認可を設定します。
multicastマルチキャスト関連のリソースに対する認可を設定します。
networkネットワークリソースへのアクセスに対する認可を設定します。
reverse-accessリバースアクセスサービスに対する認可を設定します。
template特定のテンプレートに基づいた認可を設定します。
defaultユーザのログイン時のデフォルトの認証。
list_nameユーザがログインするときにアクティブ化される認証方式リストに、
名前を付けるときに使用する文字列。 
method1 method2…]許可に使用する 1 つまたは複数の許可方式を指定します。

使用できるmethodは以下になります。

オプション意味
cache group-name認可キャッシュを利用します。この設定は、認可が一度成功した場合、
その結果をキャッシュして、次回の認可で再利用することを意味します。
group group-name特定の認証サーバーグループを使用して認可を行います。
group ldapLDAPサーバーを使用して認可を行います。
group radiusRADIUSサーバーを使用して認可を行います。
group tacacs+TACACS+サーバーを使用して認可を行います。
if-authenticated認証が成功したユーザーに対して、自動的に認可を行います。
特定の認可チェックを省略し、認証さえ通れば認可を行う簡略化された方法です。
localローカルに設定されたユーザーデータベースを使用して認可を行います。
Ciscoデバイス自身に保存されたユーザー情報を基に認可が行われます。
none認可を行いません。つまり、すべてのリクエストが許可されます。

3.回線への適応

回線設定モードに入り、認証リストを 1 行または行セットに適用します。
Router(config)#line [aux | console | tty | vty ] line-number [ending-line-number ]
Router(config-line)#authorization exec {default | list-name }

設定例

EXECセッションに対する認可を設定する

ユーザーがログインしたときに、EXECセッションを開始する前に認可を行います。この設定では、RADIUSサーバーを使用して認可を行い、認証に成功したユーザーにのみEXECセッションを許可します。

特権レベル15のコマンドに対する認可を設定する

特権レベル15のコマンド実行に対して、まずTACACS+サーバーで認可を行い、TACACS+が利用できない場合にはローカルで認可を行う設定例です。

ローカルユーザーに対する認可を設定する

外部認証サーバーを使用せず、ローカルユーザー名データベースを使用して認可を行う設定例です。

コンソールアクセスに対する認可を設定する

コンソールアクセスに対して、TACACS+サーバーを使用して認可を行い、TACACS+が利用できない場合にはローカルで認可を行う設定例です。

アカウンティングの設定

アカウンティングは、ユーザーのアクティビティをログに記録し、リソースの使用状況や操作履歴を監査するために使用されます。このコマンドを使用して、どのイベントを記録するか、どの方法でログを送信するかを設定します。

基本構文

1.AAAの有効化

AAA をグローバルに有効にします。
Router(config)# aaa new-model

2.ログイン許可の作成

認証リストを作成します。
Router(config)#aaa accounting { auth-proxy | system | network | exec | connections | commands level} { default | list-name} { start-stop | stop-only | none} [ broadcastgroup group-name

オプション意味
auth-proxy認証プロキシのアクティビティを記録します。
systemシステム全体のイベント(例: 再起動、構成変更)を記録します。
networkネットワーク接続(例: PPP、SLIP)に関するアクティビティを記録します。
execEXECセッションの開始と終了を記録します。
connectionアウトバウンドのネットワーク接続に関するアクティビティを記録します。
commands level特定の特権レベルにおけるコマンドの実行を記録します
(例: commands 15 は特権レベル15のコマンドを記録)。
defaultデフォルトのアカウンティングリストを指定します。
list-name任意の名前を指定して、カスタムアカウンティングリストを作成します。
start-stopイベントの開始と終了の両方を記録します。
stop-only:イベントの終了時のみを記録します。
noneアカウンティングを無効にします。
broadcast複数のRADIUSまたはTACACS+サーバーに対してアカウンティング情報を送信します。
group groupnameRADIUSまたはTACACS+サーバーのグループを指定します。

使用できるmethodは以下になります。

オプション意味
group radiusRADIUS サーバのリストを認証に使用します。
group tacacs+TACACS+ サーバのリストを認証に使用します。
group group-namegroup-name サーバグループで定義したリストを認証に使用します。

3.回線への適応

回線設定モードに入り、認証リストを 1 行または行セットに適用します。
Router(config)#line [aux | console | tty | vty ] line-number [ending-line-number ]
Router(config-line)#accounting exec {default | list-name }

設定例

EXECセッションのアカウンティングを設定

ユーザーがログインしてEXECセッションを開始および終了したときに、そのアクティビティをTACACS+サーバーに記録する設定です。

特権レベル15のコマンド実行のアカウンティングを設定

特権レベル15のコマンドが実行されたときに、そのアクティビティをRADIUSサーバーに記録する設定です。

システム全体のアカウンティングを設定

システムの重要なイベント(再起動、設定変更など)をRADIUSサーバーに記録する設定です。

オプション設定

タイムアウト値の設定

ユーザーがログインを試みた際に、デバイスがユーザーからの応答を待つ時間を設定します。
Router(config-line)# timeout login response seconds

空の(null)ユーザー名を抑制

ユーザーが認証プロンプトで何も入力しなかった場合に、空のユーザー名をサーバーに送信しないようにするための設定します。
Router(config)# aaa authentication suppress null-username

認証のバナー設定

ユーザーがログインしたときに表示されるバナーを構成します。
Router(config)#aaa authentication banner delimiter string delimiter

ユーザーのログインが失敗したときに表示されるメッセージを設定します。
Router(config)#aaa authentication fail-message delimiter string delimiter

参考文献

Authentication Authorization and Accounting Configuration Guide