cisco aaa + tac_plus(tacacs +)の構成

cisco + tac_plusバンドルの実装例に関する記事を書くというアイデアは、tac_plusの設定を見て、数年前にそこに何を書いたのか、最も重要なことは覚えていないことに気づいたときに自発的に生まれました。 コーン、眠れない夜、シャーマニックダンスに満ちた蓄積された経験を、ミニハウトの一種で組み合わせます。これは、新しい従業員に読むのに必須であり、他の誰かに役立つかもしれない作業指示に変更できます(私の意見では、実際の関心、またはマゾヒズムの深い憂鬱/攻撃にある)。 さて、インターネットのロシア語部分の記事の数を多様化するために。 しかし、最も重要なことは、選択した方向が行き止まりにつながる/通らないことを理解すること、または尊敬されるコミュニティが他の解決策を提案し、独自の例でそれらを強化できることです。



この資料は、tacacs +プロトコルの完全なレビューではなく(この記事ではまったく考慮されていませんが、排他的に利用されています)、Cisco IOSデバイスの設定および操作の経験がある人向けに設計されたaaa-newモデルを設定する唯一の正しい方法であると主張しています。



耳の中の考え


ネットワークデバイスのフリートを単位でカウントしても、個々のビューリストを設定し、各特権レベルのコマンドセットを指定することで、管理者/ユーザー/監査者のローカルデータベースを維持できます。 彼らの数が数十に近づいたとき-疲れて、百を超えた-...それを穏やかに不快にする。 csico iosデバイスでは、ローカルユーザーデータベースを使用するか、radiusまたはtacacs +プロトコルを使用して、aaa(認証、承認、アカウンティング)を実装できます。これにより、可能性が大幅に広がります。 プロトコル自体はオープンであるため、RADIUSプロトコルサーバーには非常に多くのソフトウェア実装があります。 tacacs +の場合、状況は異なります-これはcisco tacacsプロトコル自体のプロプライエタリな実装ですが、(これは例外的なケースです!)そのソースは公式に利用可能です。 当然、シスコ自体からのソリューション-ACSに注意する必要がありますが、この素晴らしい、しかし非常に無料の製品ではないため、すべての側面から当局に納得させることはできませんでした。 その結果、radiusとtacacs +の「無料」実装から選択する必要がありました: freeradiusとtac_plus(freebsdポートで利用可能、 Windowsのバージョンがあり 、必要なプラットフォーム用にコンパイルできるソースから)。 誰もがFreeradiusが好きでした(特に認証速度は、結局のところ、tcpはマイクロ秒の遅延を導入し、udpトランスポートとは異なり、リモートデバイスでより顕著になりますか、それとも不運でしたか?) SB、その時点では入力コマンドのアカウンティングを受信できなかったため( Rel1ctoのおかげで)コマンド認証を完全にサポートしていなかったため、パケット内の暗号化されたデータをサポートしませんでしたが、SBにとってこれらのポイントは重要です また、アカウンティングを単にsyslogサーバーにマージしようとする私のすべての試み(シスコはAAA機能なしでこれを行うことができるため)は、ボス「Nizya!」に挟まれました。



その結果、ネットワーク機器の認証(ユーザーが本当に本人であるかどうかを判断する)、承認(このユーザーがこのコマンドを実行できるかどうか)、およびアカウンティング(すべての重要なユーザーアクションが記録される)のタスクがtac_plusに割り当てられました。



次に、コメント付きでaaaを設定するためのコマンドをいくつか提供します(リリースのコマンドリファレンスと競合することは決してありません。したがって、矛盾がある場合は、厳密に判断せず、ソースを参照してください)




著者は、記事を読んだ人の行動の結果について責任を負いません。 機器の稼働中に構成を変更する場合は、安全上の注意事項に従ってください(オプションとして遅延リロードを使用してください)。


Tac_plus.confの構成例


# ENCYPTION KEY accounting file = /var/log/tac_plus.acct key = VeryLongANDSecureKey # Groups group = admin { default service = permit service = exec { priv-lvl = 15 } } group = service { default service = deny service = exec { priv-lvl = 15 } } # Users user = art0m { member = admin login = des S451H82iNlwqQ } user = auditor { member = admin cmd = configure { deny .* } cmd = enable { deny .* } cmd = clear { deny .* } cmd = reload { deny .* } cmd = write { deny .* } cmd = copy { deny .* } cmd = erase { deny .* } cmd = delete { deny .* } cmd = archive { deny .* } login = cleartext secret } user = event_manager { member = service cmd = clear { permit .* } cmd = tclsh { permit .* } cmd = squeeze { permit .* } cmd = event { permit .* } cmd = more { permit .* } cmd = show { permit version } cmd = delete { permit .* } cmd = "delete /force" { permit .* } cmd = "enable" { permit .* } login = des nUKsTKiXQ7G16 }
      
      





設定例では、adminとserviceの2つのグループが作成されます。 デフォルトポリシーの主な違い。 許可とは、コマンドが明示的に禁止されていない限り、ユーザーが自分の特権レベルのすべてのコマンドを許可されることを意味します。 これにより、コマンドを使用する権限を非常に柔軟に構成できます。 この例では、ユーザー監査人がいます。 特権レベル15を持っているにもかかわらず、明示的に破壊的なコマンドを実行することは禁じられています。 それらを入力しようとするすべての試みに対して、彼は以下を受け取ります:



 #delete flash:*.* Command authorization failed.
      
      







別のユースケースは、event_managerユーザーです。 Iosには、特定のアクションの実行、変更への対応などを可能にするメカニズムが組み込まれています。 これらのアクションは、割り当てられたユーザー名(この例では、ios構成(config)#event manager session cli username event_managerのevent_manager)から実行され、この仮想ユーザーはコマンドを実行するためのまったく同じ権限を持ちます。 何が起こっているかを制御するオプションの1つは、このユーザーをデフォルトの禁止のグループ(この例ではサービス)に入れ、特定のコマンドのみを許可することです。



 accounting file = /var/log/tac_plus.acct – ,        : Mon Oct 04 15:37:57 2011 172.18.146.2 art0m tty1 172.16.247.25 stop task_id=823 start_time=1319450277 timezone=msk service=shell priv-lvl=15 cmd=traceroute mac 0050.dead.dead 0050.dead.dead
      
      







 key = VeryLongANDSecurityKey – ,        .
      
      







tac_plusバンドルには、パスワードを暗号化し、暗号化された形式で構成ファイルで使用できるすばらしいtac_pwdユーティリティも付属しています。 それは確かに、インターネット上で「戦闘」設定を公開する権利を与えるものではありませんが、少なくとも人間が読めないようにします。



しかし、このすべての魔法は、クライアントデバイスの適切な構成でのみ機能し始めます。



Cisco IOSの設定例


 !   aaa aaa new-model !  tacacs (    15     will be deprecated soon) ! tacacs-server host 172.16.247.200 key 0 VeryLongANDSecureKey tacacs-server host 172.18.146.43 key 0 VeryLongANDSecureKey tacacs-server timeout 2 tacacs-server directed-request !     2  ( ),       aaa group server tacacs+ tac-int server 172.16.247.200 server 172.18.146.43 !     authentication, authorization and accounting      aaa authentication login admin group tac-int local aaa authorization exec admin group tac-int local aaa authorization commands 15 admin group tac-int local aaa accounting update newinfo aaa accounting commands 15 admin start-stop group tac-int
      
      





ここで、構文を明確にする必要があると思います:同じ名前adminの4つのaaa-sheetsが作成されます(名前は任意ですが、同じuh ...プロセスに属しているため、同じと呼びます)、認証ログインは私たちに伝えますtac-intグループのユーザーを認証するデバイス、およびそのサーバーがローカルで利用できない場合。 アカウンティングを除き、同じデザインが残りのシートに使用されます。



 !    vty- .     authentication, authorization and accounting   tacacs- line vty 0 4 authorization commands 15 admin authorization exec admin accounting commands 15 admin login authentication admin
      
      







他の特権レベルのユーザーがいる場合、適切なシートとそれらのルールを作成する必要があります。



合計


動作中、この束はかなり長い間機能しています。 安定性の観点から、それは不満を引き起こさなかった;私は、安全保障理事会は一般に幸福から静かに死ぬと信じています。

tac_plusは、異なるデータセンターにある2台のサーバーで発生します。唯一の不便は、サーバー構成を手動で同期する必要があることです。 ところで、提案は何ですか? 条件:構成ファイルは各サーバーにローカルに保存する必要があり、変更のみを同期する必要があります。



All Articles