ウェブサイト検索

Debian 8 Jessie上のCiscoルーターでのTACACS+のインストールと設定


今日のテクノロジーは、ネットワーク機器とその正しい構成に大きく依存しています。管理者の役割は、構成変更が実施前に徹底的にテストされるだけでなく、変更を行う権限のある個人によって行われ、変更が適切に記録されるようにすることです。

このセキュリティ原則はAAA(トリプルA)または認証、認可、および 会計として知られています。管理者がデバイスとそのデバイスがサービスを提供するネットワークへのアクセスを確保するためのAAA機能を提供する、非常に著名な2つのシステムがあります。

RADIUS(リモートアクセスダイヤルインユーザーサービス)および TACACS+(ターミナルアクセスコントローラーアクセス制御システムプラス)。

半径は、伝統的にユーザーのネットワークアクセスを認証するために使用され、TACACSは主にデバイス管理に使用されるという点で対照的です。これら二つのプロトコルの大きな違いの一つは、TACACSがAAA機能を独立した機能に分離できる能力です。

TACACSによるAAA機能の分離の利点は、ユーザーが特定のコマンドを実行する能力を制御できることです。これは、ネットワークスタッフや他のIT管理者に非常に詳細なレベルで異なるコマンド権限を提供したいと考えている組織にとって非常に有利です。

この記事では、TACACS+ システムとして機能する Debian システムの設定方法を説明します。

環境設定

  1. Debian 8 がインストールされ、ネットワーク接続が設定されています。Debian 8 のインストール方法についてはこの記事をお読みください。
  2. Ciscoネットワークスイッチ2940(他のほとんどのCiscoデバイスも動作しますが、スイッチ/ルーターのコマンドは異なる場合があります)。

Debian 8へのTACACS+ソフトウェアのインストール

この新しいTACACSサーバーを設定する最初のステップは、リポジトリからソフトウェアを取得することです。これは‘apt’コマンドを使用することで簡単に実行できます。


apt-get install tacacs+

上記のコマンドは、ポート49でサーバーサービスをインストールして開始します。これはいくつかのユーティリティで確認できます。


lsof -i :49
netstat -ltp | grep tac

これらの2つのコマンドは、このシステム上でTACACSがポート49でリスニングしていることを示す行を返すはずです。

この時点でTACACSはこのマシンで接続を待ち受けています。さて、TACACSサービスとユーザーを設定する時が来ました。

TACACSサービスとユーザーの構成

サーバーに複数のアドレスがある場合、サービスを特定のIPアドレスにバインドすることは一般的に良い考えです。この作業を達成するために、デフォルトのデーモンオプションを変更してIPアドレスを指定することができます。


nano /etc/default/tacacs+

このファイルは、TACACSシステムが起動するすべてのデーモン設定を指定します。デフォルトのインストールでは、構成ファイルのみが指定されます。このファイルに‘-B’引数を追加することで、TACACSがリッスンする特定のIPアドレスを使用することができます。


DAEMON_OPTS="-C /etc/tacacs+/tac_plus.conf " - Original Line
DAEMON_OPTS="-C /etc/tacacs+/tac_plus.conf -B X.X.X.X " - New line, where X.X.X.X is the IP address to listen on

Debianの特別な注意: いくつかの理由から、新しいデーモンオプションを読み込むためにTACACS+サービスを再起動しようとすると失敗します(service tacacs_plus restart経由)。

ここでの問題は、TACACS が init スクリプト経由で起動されるときに、PID が静的に “PIDFILE=/var/run/tac_plus.pid ” に設定されているのに対し、“-B X.X.X.X ” がデーモンオプションとして指定されると、pidファイルの名前が “/var/run/tac_plus.pid.X.X.X.X ” に変更されることです。

これがバグかどうかは完全には確信が持てませんが、一時的にこの状況に対処するために、initスクリプトのPIDFILEを手動で設定して、行を“PIDFILE=/var/run/tac_plus.pid.X.X.X.X ”のように変更することができます。ここで、X.X.X.XはTACACSがリッスンすべきIPアドレスです。そして、サービスを次のように起動します:


service tacacs_plus start

サービスを再起動した後、lsofコマンドを再び使用して、TACACSサービスが正しいIPアドレスでリスニングしていることを確認できます。


lsof -i :49

上記の通り、TACACSは上に示したTACACSデフォルトファイルで設定した特定のIPアドレスでリッスンしています。この時点で、ユーザーと特定のコマンドセットを作成する必要があります。

この情報は別のファイル「/etc/tacacs+/tac_plus.conf」によって管理されています。このファイルをテキストエディタで開いて、適切な修正を行ってください。


nano /etc/tacacs+/tac_plus.conf

このファイルはすべてのTACACS仕様(ユーザ権限、アクセス制御リスト、ホストキーなど)が存在する場所です。最初に作成する必要があるのは、ネットワークデバイス用のキーです。

このステップでは多くの柔軟性があります。すべてのネットワークデバイスに対して単一のキーを設定することも、デバイスごとに複数のキーを設定することもできます。この選択はユーザーに委ねられていますが、このガイドでは簡潔さのために単一のキーを使用します。


key = "super_secret_TACACS+_key"

キーが設定されたら、グループを構築し、後でユーザーに割り当てられる権限を決定する必要があります。グループを作成することで、権限の委任が非常に簡単になります。以下は、フル管理者権限を割り当てる例です。


group = admins {
        default service = permit
        service = exec {
                priv-lvl = 15
        }
}

  1. グループ名は「group=admins」という行によって決定され、adminsがグループ名となります。
  2. 「デフォルトサービス=許可」の行は、コマンドが明示的に拒否されていない場合は、暗黙的に許可することを示しています。
  3. 「service=exec { priv-lvl=15 }」は、Ciscoデバイスのexecモードで特権レベル15を許可します(特権レベル15はCisco機器の最高レベルです)。

ユーザーは管理グループに割り当てられる必要があります。


user = rob {
       member = admins
       login = des mjth124WPZapY
}

  1. “user=rob ”の段落は、ユーザー名がrobのユーザーがいくつかのリソースにアクセスできることを許可します。
  2. 「“member=admins」は、TACACS+に対して、このユーザーが何をすることが許可されているかのリストを得るために、以前のグループ「admins」を参照するように指示します。
  3. 最後の行、“login=des mjth124WPZapY ” は、このユーザーが認証するための des 暗号化されたパスワードです(この非常に “複雑な” パスワード例を解読するためにクラックツールを使用することができます)!

重要: 通常、暗号化されたパスワードをプレーンテキストではなく、このファイルに配置することがベストプラクティスとされています。これは、誰かがこのファイルを読み取る場合に、少しのセキュリティを追加するためです。

これに対する良い予防策は、設定ファイルの世界読み取りアクセスを少なくとも削除することです。これは次のコマンドを使用して実行できます:


chmod o-r /etc/tacacs+/tac_plus.conf
service tacacs_plus reload

この時点で、サーバーサイドはネットワークデバイスからの接続の準備が整いました。これからCiscoスイッチに移動し、このDebian TACACS+サーバーと通信するように設定しましょう。

関連記事: