AAAとは
AAAとは、「Authentication, Authorization, and Accounting」の略で、ネットワークのセキュリティ管理において重要な役割を果たします。
- Authentication(認証): ユーザーやデバイスがネットワークにアクセスする際に、正当なものであることを確認するプロセスです。
- Authorization(認可): 認証されたユーザーやデバイスに対して、どのリソースやサービスにアクセスできるかを決定します。
- 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 ldap | LDAP(Lightweight Directory Access Protocol)サーバーを使用して認証を行います。 |
| group radius | RADIUS(Remote Authentication Dial-In User Service)サーバーを使用して認証を行います。 |
| group tacacs+ | TACACS+(Terminal Access Controller Access-Control System Plus)サーバーを使用して認証を行います。 |
| krb5 | Kerberosバージョン5(krb5)を使用して認証を行います。 |
| krb5-telnet | Kerberos認証を使用したTelnet接続をサポートします。 |
| line | デバイスのlineコンフィグレーションモードで設定されたパスワードを使用して認証を行います。 |
| local | デバイス上にローカルで定義されたユーザー名とパスワードを使用して認証を行います。TACACS+やRADIUSサーバーが利用できない場合のフォールバックオプションとしてよく使用されます。 |
| local-case | localメソッドと似ていますが、ユーザー名の大文字と小文字を区別して認証を行います。 |
| 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 }
認証の設定例
ローカルユーザだけでの認証例
Router(config)# aaa authentication login default local
Router(config)# username admin privilege 15 secret AdminPassword
Router(config)# line vty 0 4
Router(config-line)# login authentication default
Router(config-line)# exit
まずTACACS+で認証を試み、失敗した場合はローカルユーザー名での認証例
Router(config)# tacacs server MyTACACS
Router(config-server-tacacs)# address ipv4 192.168.1.100
Router(config-server-tacacs)# key MySecretKey
Router(config-server-tacacs)#exit
Router(config)# aaa authentication login default group tacacs+ local
Router(config)# line vty 0 4
Router(config-line)# login authentication default
Router(config-line)# exit
コンソールアクセスにはローカルユーザーのみを使用し、VTYアクセスにはTACACS+サーバーを使用
Router(config)# tacacs server MyTACACS
Router(config-server-tacacs)# address ipv4 192.168.1.100
Router(config-server-tacacs)# key MySecretKey
Router(config)# aaa authentication login CONSOLE local
Router(config)# aaa authentication login VTY group tacacs+ local
Router(config)# username admin privilege 15 secret AdminPassword
Router(config)# line con 0
Router(config-line)# login authentication CONSOLE
Router(config-line)# exit
Router(config)# line vty 0 4
Router(config-line)# login authentication VTY
Router(config-line)# exit
認証の設定(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 | 認証情報のダウンロードに対する認可ポリシーを定義します。 |
| exec | EXECセッションの開始に対する認可を設定します。 |
| multicast | マルチキャスト関連のリソースに対する認可を設定します。 |
| network | ネットワークリソースへのアクセスに対する認可を設定します。 |
| reverse-access | リバースアクセスサービスに対する認可を設定します。 |
| template | 特定のテンプレートに基づいた認可を設定します。 |
| default | ユーザのログイン時のデフォルトの認証。 |
| list_name | ユーザがログインするときにアクティブ化される認証方式リストに、 名前を付けるときに使用する文字列。 |
| method1 [ method2…] | 許可に使用する 1 つまたは複数の許可方式を指定します。 |
使用できるmethodは以下になります。
| オプション | 意味 |
|---|---|
| cache group-name | 認可キャッシュを利用します。この設定は、認可が一度成功した場合、 その結果をキャッシュして、次回の認可で再利用することを意味します。 |
| group group-name | 特定の認証サーバーグループを使用して認可を行います。 |
| group ldap | LDAPサーバーを使用して認可を行います。 |
| group radius | RADIUSサーバーを使用して認可を行います。 |
| 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セッションを許可します。
Router(config)# aaa new-model
Router(config)# aaa authorization exec default group radius if-authenticated
Router(config)# radius server MyRADIUS
Router(config-radius-server)# address ipv4 192.168.1.101
Router(config-radius-server)# key MySecretKey
特権レベル15のコマンドに対する認可を設定する
特権レベル15のコマンド実行に対して、まずTACACS+サーバーで認可を行い、TACACS+が利用できない場合にはローカルで認可を行う設定例です。
Router(config)# aaa new-model
Router(config)# aaa authorization commands 15 default group tacacs+ local
Router(config)# tacacs server MyTACACS
Router(config-server-tacacs)# address ipv4 192.168.1.100
Router(config-server-tacacs)# key MySecretKey
ローカルユーザーに対する認可を設定する
外部認証サーバーを使用せず、ローカルユーザー名データベースを使用して認可を行う設定例です。
Router(config)# aaa new-model
Router(config)# aaa authorization exec default local
Router(config)# aaa authorization commands 15 default local
Router(config)# username admin privilege 15 secret AdminPassword
コンソールアクセスに対する認可を設定する
コンソールアクセスに対して、TACACS+サーバーを使用して認可を行い、TACACS+が利用できない場合にはローカルで認可を行う設定例です。
Router(config)# aaa new-model
Router(config)# aaa authorization console default group tacacs+ local
Router(config)# tacacs server MyTACACS
Router(config-server-tacacs)# address ipv4 192.168.1.100
Router(config-server-tacacs)# key MySecretKey
アカウンティングの設定
アカウンティングは、ユーザーのアクティビティをログに記録し、リソースの使用状況や操作履歴を監査するために使用されます。このコマンドを使用して、どのイベントを記録するか、どの方法でログを送信するかを設定します。
基本構文
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} [ broadcast] group group-name
| オプション | 意味 |
|---|---|
| auth-proxy | 認証プロキシのアクティビティを記録します。 |
| system | システム全体のイベント(例: 再起動、構成変更)を記録します。 |
| network | ネットワーク接続(例: PPP、SLIP)に関するアクティビティを記録します。 |
| exec | EXECセッションの開始と終了を記録します。 |
| connection | アウトバウンドのネットワーク接続に関するアクティビティを記録します。 |
| commands level | 特定の特権レベルにおけるコマンドの実行を記録します (例: commands 15 は特権レベル15のコマンドを記録)。 |
| default | デフォルトのアカウンティングリストを指定します。 |
| list-name | 任意の名前を指定して、カスタムアカウンティングリストを作成します。 |
| start-stop | イベントの開始と終了の両方を記録します。 |
| stop-only: | イベントの終了時のみを記録します。 |
| none | アカウンティングを無効にします。 |
| broadcast | 複数のRADIUSまたはTACACS+サーバーに対してアカウンティング情報を送信します。 |
| group groupname | RADIUSまたはTACACS+サーバーのグループを指定します。 |
使用できるmethodは以下になります。
| オプション | 意味 |
|---|---|
| group radius | RADIUS サーバのリストを認証に使用します。 |
| group tacacs+ | TACACS+ サーバのリストを認証に使用します。 |
| group group-name | group-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+サーバーに記録する設定です。
Router(config)# aaa accounting exec default start-stop group tacacs+
Router(config)# tacacs server MyTACACS
Router(config-server-tacacs)# address ipv4 192.168.1.100
Router(config-server-tacacs)# key MySecretKey
特権レベル15のコマンド実行のアカウンティングを設定
特権レベル15のコマンドが実行されたときに、そのアクティビティをRADIUSサーバーに記録する設定です。
Router(config)# aaa accounting commands 15 default start-stop group radius
Router(config)# radius server MyRADIUS
Router(config-radius-server)# address ipv4 192.168.1.101
Router(config-radius-server)# key MySecretKey
システム全体のアカウンティングを設定
システムの重要なイベント(再起動、設定変更など)をRADIUSサーバーに記録する設定です。
Router(config)# aaa accounting system default start-stop group radius
Router(config)# radius server MyRADIUS
Router(config-radius-server)# address ipv4 192.168.1.101
Router(config-radius-server)# key MySecretKey
オプション設定
タイムアウト値の設定
ユーザーがログインを試みた際に、デバイスがユーザーからの応答を待つ時間を設定します。
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