Cisco IOSにおけるAuthentication(認証)の設定についてまとめます。認証とは”誰であるかを確認する方法”で、認可とは異なる概念である事に注意して下さい。
概要
Authenticationについてまとめます。Authentication(認証)とは”誰であるかを確認する方法”で、Authorization(認可)とは”誰にどのような権利を与えるか”です。日本語では「認証」と「認可」は一文字違いですが意味が大きく異なりますので、充分注意して使い分けて下さい。
基本設定
書式
認証の設定には以下のコマンドを使用します。default, <list-name>は認証リストと呼ばれる設定で、認証の適用対象を定義します。<method>は認証方式と呼ばれる設定で、何を使って認証するかを定義します。
Router(config)# aaa authentication login [ default | <list-name> ] <method>...
認証リスト
認証リストにはdefaultまたは<list-name>を設定する事ができます。
認証リスト | 説明 |
---|---|
default | VTY, console等の回線のうち全てが適用対象となります。 |
<list-name> | VTY, console等の回線を個別に指定します。 |
設定例を示します。この設定では、console接続に対してnone(認証なし)が適用されます。それ以外のデフォルト接続(console接続以外、すなわちVTY, AUX等)に対してlocal databaseが適用されます。
aaa new-model ! aaa authentication login default local aaa authentication login CONSOLE none ! line con login authentication CONSOLE
認証方式
認証方式には、何を使って認証するかを指定します。認証方式としは以下を指定する事ができます。
認証方式 | 説明 |
---|---|
enable | enableパスワードを使用します |
line | line vtyに設定したパスワードを使用します |
local | local database(usernameコマンド)を使用します(大文字小文字の区別なし) |
local-case | local database(usernameコマンド)を使用します(大文字小文字の区別あり) |
none | 認証なし(ユーザ名, パスワードなしでログインできます) |
group radius | radius-serverコマンドで指定したサーバを使用します |
group tacacs+ | tacacs-serverコマンドで指定したサーバを使用します |
group <name> | aaa group serverコマンドで指定したサーバを使用します |
設定例を示します。この設定は、console接続の認証としてRADIUSを使用します。もし、RAIDUSの設定が施されていないかRADIUSとの疎通ができない場合は、ログインを拒否します。
aaa new-model ! aaa authentication login CONSOLE group radius ! line con 0 login authentication CONSOLE
もうひとつ設定例を示します。この設定は、VTY接続(telnet接続)の認証としてRADIUSを使用します。もし、RAIDUSの設定が施されていないかRADIUSとの疎通ができない場合は、line password (passwordコマンドで指定したパスワードです。この場合は、”cisco”です)に基づいて認証します。
aaa new-model ! aaa authentication login VTY group radius line ! line vty 0 4 login authentication VTY password cisco
login以外の認証
enable認証
AAAによる認証はlogin以外でも使用する事ができます。enable認証でAAAを使用する例は以下の通りです。
aaa new-model ! aaa authentication enable default none
PPP認証
以下の構成で動作確認を行います。
s0/0 s0/0 +------+.1 .2+------+ | R1 +----------+ R2 | +------+ +------+ 192.168.12.0/24
[R1] aaa new-model ! aaa authentication ppp default group radius local ! username R2 password 0 CISCO ! interface Serial0/0 ip address 192.168.12.1 255.255.255.0 encapsulation ppp ppp authentication chap no shutdown
なお、設定全文は下記ファイルです。
その他
brute force attack 軽減策
brute force attackは、expect moduleを使用して攻撃をしかけてきます。つまり、攻撃者は”Username:”, “Password:”, “% Login invalid”等のデフォルトのメッセージが返ってくるまで次の処理を待つようなプログラムを実装します。
従って、コマンドで認証時のプロンプトやエラーメッセージを変更するだけでも、brute force attackの軽減策として有効です。
Router(config)# aaa authentication username-prompt <prompt> Router(config)# aaa authentication password-prompt <prompt> Router(config)# aaa authentication fail-message <d> <message> <d>
ログイン認証のリトライを認める回数をデフォルトの3回から1回へ変更するものbrute force attackの軽減策として有効です。
Router(config)# aaa authentication attempts login <num>
使用例は以下の通りです。
Rack19R2(config)#aaa authentication username-prompt "Please enter your username : " Rack19R2(config)#aaa authentication password-prompt "Please enter your password : " Rack19R2(config)#aaa authentication fail-message # you dummy # Rack19R2(config)#aaa authentication attempts login 1 Rack19R2(config)# Rack19R2(config)# Rack19R2(config)#do telnet 150.19.2.2 Trying 150.19.2.2 ... Open User Access Verification Please enter your username : hoge Please enter your password : you dummy [Connection to 150.19.2.2 closed by foreign host] Rack19R2(config)#
ログイン不能の注意
aaaは設定を誤るとログイン不能になってしまいますので、設定投入は充分な注意が必要です。以下のような設定を例に挙げます。
aaa new-model ! aaa authentication login default local
全ての回線がlocal databaseに基づいて認証を行います。もしlocal databaseが未作成の状態ならばログインが全くできない状態になってしまいます。local database未作成の状態で誤ってログアウトしてしまった場合は、running-configを読み込まないように再起動して復旧させます(パスワードリカバリと同様の手順です)。