Active Directory認証を使用するLinux上のTACACS +

ネットワークにはこのトピックに関するさまざまなガイドがありますが、Linuxでサービスを上げて30〜60分間Active Directoryに関連付けることはできませんでした。 詳細なコメントとともに、問題を解決する独自の方法を提案します。



サービスのインストールに進みます。 使用されるOSはCentOSです。



必要なサービスパッケージをインストールする

# yum install gcc # yum install perl-LDAP # yum install bind-utils
      
      





すべての操作は「ルート」の下で実行されます

(それぞれホームディレクトリ/ルート)



Tac Plusをインストールする

 # yum install wget # wget http://www.pro-bono-publico.de/projects/src/DEVEL.tar.bz2 # tar xvfj ./DEVEL.tar.bz2 # cd ./PROJECTS # ./configure # make # make install
      
      





アカウンティングファイルのディレクトリを追加する

 # mkdir /var/log/tac_plus # mkdir /var/log/tac_plus/access # mkdir /var/log/tac_plus/acct # chmod 760 -R /var/log/tac_plus/
      
      





Tac Plusをスタートアップに追加する

 # cp /root/PROJECTS/tac_plus/extra/etc_init.d_tac_plus /etc/init.d/tac_plus # chmod 755 /etc/init.d/tac_plus # chkconfig --add tac_plus # chkconfig --level 2345 tac_plus on
      
      





スタートアップに含めることを確認します

 # chkconfig --list | grep tac_plus
      
      





構成ファイルを編集します

 # cp /root/PROJECTS/tac_plus/extra/tac_plus.cfg-ads /usr/local/etc/tac_plus.cfg # chmod 660 /usr/local/etc/tac_plus.cfg
      
      





!!! 構成を変更するたびに、サービスを再起動する必要があります(service tac_plus restart)

動作中の設定ファイルの例(コメントフィールドを修正した後、tac_plus.cfgの内容を置き換える必要があります)



 #!/usr/local/sbin/tac_plus id = spawnd { listen = { port = 49 } #,   TACACS spawn = { instances min = 1 instances max = 10 } background = yes } id = tac_plus { #   access log = ">/var/log/tac_plus/access/%Y%m%d.log" accounting log = ">/var/log/tac_plus/acct/%Y%m%d.log" #     Active Directory mavis module = external { setenv LDAP_SERVER_TYPE = "microsoft" setenv LDAP_HOSTS = "ldaps://domain.name:636" #     DNS- (   nslookup).     IP  setenv LDAP_SCOPE = sub setenv LDAP_BASE = "dc=domain,dc=name" #    setenv LDAP_FILTER = "(&(objectclass=user)(sAMAccountName=%s))" setenv LDAP_USER = "aduser@domain.name" #      AD setenv LDAP_PASSWD = "passw0rd" #   #setenv AD_GROUP_PREFIX = tacacs #setenv REQUIRE_TACACS_GROUP_PREFIX = 1 #setenv USE_TLS = 0 setenv FLAG_USE_MEMBEROF = 1 exec = /usr/local/lib/mavis/mavis_tacplus_ldap.pl } login backend = mavis user backend = mavis #pap backend = mavis host = world { address = ::/0 welcome banner = "" #Crypt password generate by "openssl passwd -1 clear_text_password" enable 15 = crypt $1$eqIkg6p0$jzhK5. key = "TACACSPASSWORD" #    TACACS- } #      group = ADMIN { message = "[Admin privileges]" default service = permit service = shell { default command = permit default attribute = permit set priv-lvl = 15 } } #            group = VOIP { message = "[VoIP-admin privileges]" default service = permit service = shell { default command = permit default attribute = permit set priv-lvl = 15 cmd = interface { permit "Lo*" permit "Se*" deny .* } cmd = aaa { deny .* } cmd = username { deny .* } cmd = line { deny .* } cmd = delete { deny .* } #cmd = reload { deny .* } cmd = boot { deny .* } cmd = enable { deny .* } cmd = archive { deny .* } cmd = router { deny .* } cmd = ip { permit "address *" deny .* } cmd = tacacs-server { deny .* } cmd = radius-server { deny .* } cmd = privilege { deny .* } cmd = erase { deny .* } cmd = write { permit "memory" deny .* } cmd = format { deny .* } } } }
      
      





構成の正確さを確認します(すべてが正常であれば、何も出力されません)

 # /usr/local/sbin/tac_plus -P /usr/local/etc/tac_plus.cfg
      
      





ADでグループを作成する

Active Directoryでは、2つのグループ(構成に基づいて)を作成する必要があります:tacacsadminとtacacsvoip。

Tac Plusは、構成内のグループに対するADで指定されたグループの比率でプレフィックス「tacacs」を切り取り、残りの文字を大文字に変換します。

したがって、tacacsadminはADMINに対応し、tacacsvoipはVOIPに対応します(設定で属性AD_GROUP_PREFIXおよびREQUIRE_TACACS_GROUP_PREFIXを使用してこの動作を変更できます)。

グループは、理由のために構成で大文字で示されます!

作成したグループにユーザーを追加します。



TACACSサービスの開始と停止

 # service tac_plus start # service tac_plus stop # service tac_plus restart
      
      





シスコ機器のAAAサービス設定

 tacacs server TACSRV1 !IP- tacacs- address ipv4 172.16.2.2 !    ,       key TACACSPASSWORD timeout 2 ! aaa new-model aaa group server tacacs+ TACSERVICE server name TACSRV1 aaa authentication login default group TACSERVICE local aaa authentication login CONSOLE local aaa authentication enable default group TACSERVICE enable aaa authorization config-commands aaa authorization exec default group TACSERVICE local aaa authorization exec CONSOLE local aaa authorization commands 15 default group TACSERVICE local aaa accounting commands 15 default start-stop group TACSERVICE ! line con 0 login authentication CONSOLE line vty 0 15
      
      





デバッグ手法

1. LDAPモジュールの動作を確認します(エラーなしで空の文字列を返す必要があります)。 perl-LDAPパッケージがインストールされていない場合のエラー。

 # env LDAP_HOSTS="172.16.1.1" LDAP_SERVER_TYPE="microsoft" /usr/local/lib/mavis/mavis_tacplus_ldap.pl 2.   TACACS - LDAP.     RESULT - ACK.      ,     AD. <source lang="bash"> # /usr/local/bin/mavistest /usr/local/etc/tac_plus.cfg tac_plus TACPLUS <login> <password>
      
      





3.サービスが実行され、tcp 49でリッスンしていることを確認します

 # netstat -nlp | grep tac_plus
      
      





4.サービスコールを表示するには

 # tcpdump -nn port 49
      
      





5.サービスによって処理されたリクエストをデバッグする

 # /usr/local/sbin/tac_plus -d 4088 -fp /var/run/tac_plus.pid /usr/local/etc/tac_plus.cfg
      
      





ご清聴ありがとうございました!



情報源およびサポートリンク:

http://packetroute.wordpress.com/2012/12/12/tacacs-ad-centos-free/

http://www.pro-bono-publico.de/projects/howto-tac_plus-ads.html

http://habrahabr.ru/post/194750/



All Articles