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」という文字列にしておきました。

デフォルトで TACACS.net 関連のファイルは以下にインストールされました。
| 種別 | パス |
|---|---|
| プログラム | C:\Program Files (x86)\TACACS.net |
| 設定ファイル | C:\ProgramData\TACACS.net\config |
| ログファイル | C:\ProgramData\TACACS.net\Logs |
念のため、コマンドプロンプトから引数を付けない "net start" コマンドでサービスの一覧を表示させ、TACACS.net が起動していることを確認しておきます。
1 2 | |
「セキュリティが強化された Windows ファイアウォール」の穴あけ¶
TACACS.net はデフォルトで TCP/49 を Listen します。Windows ファイアウォールを有効化している場合は、該当ポートを開けておきます。コマンドプロンプトから TCP/49 を許可するルールを追加するには、以下のコマンドを実行します。
1 | |
Listen するアドレスの修正¶
TACACS.net はデフォルトで 127.0.0.1 のみ、Listen します。"C:\ProgramData\TACACS.net\config\tacplus.xml" を修正し、全てのアドレスを Listen するように変更します。tacplus.xml の 15 行目は以下のようになっています。
1 | |
これを↓のように修正します。
1 | |
tacplus.xml の修正後は TACACS.net を再起動します。
1 2 3 4 5 6 7 8 | |
認証(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 | |
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 | |
認証の設定が反映されたことを確認する為、ユーザ名「user1」、パスワード「somepassword」でログインし直します(authentication.xml にデフォルトで定義されているユーザです)。正常にログイン出来れば OK です。
認可(Authorization )の設定¶
認証関連の設定ファイルは "C:\ProgramData\TACACS.net\config\authorization.xml" です。今回は最低限の機能テストを行うだけなので、とりあえずデフォルトのままにしておきます。
Cisco 側での認可設定¶
認可の設定により、サービスの制限を行います。今回はコマンドに対する制限を設け、権限レベル 1 と 15 のコマンドの実行許可を TACACS.net へ問い合わせるように設定します。以下の設定を Cisco ルータに行います。
1 2 3 4 | |
認可の設定が反映されたことを確認する為、ユーザ名「user1」、パスワード「somepassword」でログインし直します。show 系のコマンドは許可されているので、問題無く実行できます。
1 2 | |
しかし、show 系以外のコマンドは禁止されている為、例えば ping を実行するとエラーになります。
1 2 3 4 | |