Skip to content

TACACS.net で TACACS+ サーバを構築する

TACACS+ をサービス出来る製品と言えば、真っ先に思いつくのが Cisco Secure ACS ですが、その他にも以下のソフトウェアで TACACS+ をサービス出来るようです。

今回は TACACS.net をインストールし、最小限の設定をしてみます。TACACS+ と RADIUS の比較については TACACS+ と RADIUS の比較に記載があります。

TACACS.net のインストール

TACACS.net は .NET Framework 2.0 で書かれているようですが、インストーラにランタイム環境も含まれている為、インストーラの指示に従っていれば簡単にインストール出来ます。インストール中、下記の画面で TACACS+ で利用する秘密鍵の設定を促されます。今回は「SECRET-KEY」という文字列にしておきました。

file

デフォルトで TACACS.net 関連のファイルは以下にインストールされました。

種別 パス
プログラム C:\Program Files (x86)\TACACS.net
設定ファイル C:\ProgramData\TACACS.net\config
ログファイル C:\ProgramData\TACACS.net\Logs

念のため、コマンドプロンプトから引数を付けない "net start" コマンドでサービスの一覧を表示させ、TACACS.net が起動していることを確認しておきます。

1
2
> net start | findstr TACACS.net
   TACACS.net

「セキュリティが強化された Windows ファイアウォール」の穴あけ

TACACS.net はデフォルトで TCP/49 を Listen します。Windows ファイアウォールを有効化している場合は、該当ポートを開けておきます。コマンドプロンプトから TCP/49 を許可するルールを追加するには、以下のコマンドを実行します。

1
> netsh advfirewall firewall add rule name="TACACS+" dir=in action=allow protocol=tcp localport=49 profile=private,public,domain

Listen するアドレスの修正

TACACS.net はデフォルトで 127.0.0.1 のみ、Listen します。"C:\ProgramData\TACACS.net\config\tacplus.xml" を修正し、全てのアドレスを Listen するように変更します。tacplus.xml の 15 行目は以下のようになっています。

1
15:  <LocalIP>127.0.0.1</LocalIP>

これを↓のように修正します。

1
15:  <LocalIP>0.0.0.0</LocalIP>

tacplus.xml の修正後は TACACS.net を再起動します。

1
2
3
4
5
6
7
8
> net stop TACACS.net
TACACS.net サービスを停止中です.
TACACS.net サービスは正常に停止されました。


> net start TACACS.net
TACACS.net サービスを開始します.
TACACS.net サービスは正常に開始されました。

認証(Authentication)の設定

認証関連の設定ファイルは "C:\ProgramData\TACACS.net\config\authentication.xml" です。43 行目と 60 行目で XML がコメントアウトされていますので、43 行目と 60 行目を削除します。authentication.xml への変更は随時、反映されるので TACACS.net を再起動する必要はありません。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
40:    <UserGroup>
41:      <Name>Network Engineering</Name>
42:      <AuthenticationType>File</AuthenticationType>
43:     <!-- 
44:     <Users>
        ・
        ・
        ・
59:       </Users>
60:   -->
61:    </UserGroup>

Cisco 側での認証設定

TELNET でのログイン時に認証を TACACS.net で行わせるには、Cisco ルータ側へ以下の設定を行います。今回、設定するパラメータは以下の通りです。当然ですが、秘密鍵の値は TACACS.net と Cisco ルータで合わせておきます。

項目
TACACS サーバのアドレス 192.168.253.66
秘密鍵 SECRET-KEY

以下の設定を Cisco ルータに行います。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
aaa new-model
!
aaa authentication login TACACS-GROUP group tacacs+ none
!
tacacs-server host 192.168.253.66 key SECRET-KEY
!
line vty 0 4
 login authentication TACACS-GROUP
!
end

認証の設定が反映されたことを確認する為、ユーザ名「user1」、パスワード「somepassword」でログインし直します(authentication.xml にデフォルトで定義されているユーザです)。正常にログイン出来れば OK です。

認可(Authorization )の設定

認証関連の設定ファイルは "C:\ProgramData\TACACS.net\config\authorization.xml" です。今回は最低限の機能テストを行うだけなので、とりあえずデフォルトのままにしておきます。

Cisco 側での認可設定

認可の設定により、サービスの制限を行います。今回はコマンドに対する制限を設け、権限レベル 1 と 15 のコマンドの実行許可を TACACS.net へ問い合わせるように設定します。以下の設定を Cisco ルータに行います。

1
2
3
4
aaa authorization commands 1 default group tacacs+
aaa authorization commands 15 default group tacacs+
!
end

認可の設定が反映されたことを確認する為、ユーザ名「user1」、パスワード「somepassword」でログインし直します。show 系のコマンドは許可されているので、問題無く実行できます。

1
2
Router# show clock
*15:51:46.991 UTC Fri Jul 15 2011

しかし、show 系以外のコマンドは禁止されている為、例えば ping を実行するとエラーになります。

1
2
3
4
Router# ping www.example.com

Translating "www.example.com"
The command 'ping www.example.com <cr>' is not authorized for user user1 and client 192.168.253.33