このドキュメントでは、Cisco Cache Engine にアクセスするための Terminal Access Controller Access Control System Plus(TACACS+)のサポートを設定する方法について説明します。このドキュメントの手順により、キャッシュ エンジンに Telnet アクセスしたユーザを、リモートの TACACS+ サーバ/データベースを使用して認証することができます。ユーザ ID に対応するエントリがサーバに含まれていない場合は、キャッシュ エンジンが有効なアクセスかどうかをチェックします。
このドキュメントに特有の要件はありません。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
設定がクリアなラボ環境でのCisco Cache Engine 505
Cisco Cache Engine Software Release 2.3.1
CiscoSecure for UNIX
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
このセクションでは、このドキュメントで説明する機能を設定するために必要な情報を提供しています。
注:このセクションで使用されているコマンドの詳細を調べるには、Command Lookup Tool(登録ユーザ専用)を参照してください。一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことをご了承ください。
このドキュメントでは、次のネットワーク セットアップを使用します。
TACACS+をサポートするようにキャッシュエンジンを設定するには、次の手順を実行します。
キャッシュ エンジンに、対応するバージョンの Web Cache Communication Protocol (WCCP)を設定します。
デフォルト設定には、次のコマンドを使用します。
authentication login local enable authentication configuration local enable
TACACS+サーバのIPアドレスを設定します。複数のサーバのプライマリ アドレスを指定する場合には、セカンダリ以降のサーバは指定しないでください。
TACACS+ サーバ認証をプライマリとして設定します。サーバを使用できない場合、デフォルトではローカルの認証方式が使用されます。
必要に応じて、TACACS+認証のキー情報を設定します。
注:PPPを必要としないルータとは異なり、Cisco Cache EngineはPPPを使用してTACACSサーバで認証するため、Cisco Cache EngineでTACACS+を有効にする必要があります。Cisco Cache EnginesでTACACS+を有効にするには、Cisco Secure ACS 2.6を開き、[Group Setup]タブをクリックし、[TACACS+ Settings]領域にある[PPP IP]チェックボックスをオンにします。
コマンドラインは次の出力のようになります。
cepro(config)#tacacs server 172.18.124.114 cepro(config)#authentication login tacacs ena primary cepro(config)#authen configuration tacacs enab
ここでは、設定が正常に機能しているかどうかを確認します。
アウトプット インタープリタ ツール(登録ユーザ専用)(OIT)は、特定の show コマンドをサポートします。OIT を使用して、show コマンドの出力の分析を表示します。
show version:Cache Engineで実行されているソフトウェア、およびシステムの稼働時間(コードが以前に起動された場所やコンパイルされた日付など)に関するその他のコンポーネントを表示します。
cepro#show version Cisco Cache Engine Copyright (c) 1986-2001 by Cisco Systems, Inc. Software Release: CE ver 2.31 (Build: FCS 02/16/01) Compiled: 11:20:14 Feb 22 2001 by bbalagot Image text-base 0x108000, data_base 0x437534 System restarted by Reload The system has been up for 20 hours, 42 minutes, 59 seconds. System booted from "flash"
show hardware:show versionコマンドと同じ情報、およびキャッシュエンジンのハードウェアコンポーネントを表示します。
cepro#show hardware Cisco Cache Engine Copyright (c) 1986-2001 by Cisco Systems, Inc. Software Release: CE ver 2.31 (Build: FCS 02/16/01) Compiled: 11:20:14 Feb 22 2001 by bbalagot Image text-base 0x108000, data_base 0x437534 System restarted by Reload The system has been up for 21 hours, 15 minutes, 16 seconds. System booted from "flash" Cisco Cache Engine CE505 with CPU AMD-K6 (model 8) (rev. 12) AuthenticAMD 2 Ethernet/IEEE 802.3 interfaces 1 Console interface. 134213632 bytes of Physical Memory 131072 bytes of ROM memory. 8388608 bytes of flash memory. List of disk drives: /c0t0d0 (scsi bus 0, unit 0, lun 0)
show running-config:キャッシュエンジンの実行コンフィギュレーションを表示します。
cepro#show running-config Building configuration... Current configuration: ! ! ! user add admin uid 0 password 1 "eeSdy9dcy" capability admin-access user add chbanks uid 5001 password 1 "eeSdy9dcy" capability admin-access ! ! ! hostname cepro ! interface ethernet 0 ip address 10.27.2.2 255.255.255.0 ip broadcast-address 10.27.2.255 exit ! ! interface ethernet 1 exit ! ip default-gateway 10.27.2.1 ip route 0.0.0.0 0.0.0.0 10.27.2.1 cron file /local/etc/crontab ! wccp router-list 1 10.27.2.1 wccp web-cache router-list-num 1 ! authentication login tacacs enable primary authentication login local enable !--- on by default ---! authentication configuration tacacs enable authentication configuration local enable !---- on by default ---! tacacs server 172.18.124.114 primary rule no-cache url-regex .*cgi-bin.* rule no-cache url-regex .*aw-cgi.* ! ! end cepro#
show tacacs:TACACS+サーバの設定を表示します。
cepro#show tacacs Login Authentication for Console/Telnet Session: enabled (primary) Configuration Authentication for Console/Telnet Session: enabled TACACS Configuration: --------------------- Key = Timeout = 5 seconds Retransmit = 2 times Server Status ---------------------------- ------ 172.18.124.114 primary
show statistics tacacs:TACACS+の統計情報を表示します。
cepro#show statistics tacacs TACACS+ Statistics ----------------- Number of access requests: 13 Number of access deny responses: 7 Number of access allow responses: 0
show authentication:現在のTACACS+の認証と認可の設定を表示します。
cepro#show authentication Login Authentication: Console/Telnet Session ----------------------------- ----------------------- local enabled tacacs enabled (primary) Configuration Authentication: Console/Telnet Session ----------------------------- ----------------------- local enabled tacacs enabled cepro#
ここでは、設定のトラブルシューティングに使用できる情報を示します。
アウトプット インタープリタ ツール(登録ユーザ専用)(OIT)は、特定の show コマンドをサポートします。OIT を使用して、show コマンドの出力の分析を表示します。
注:debug コマンドを使用する前に、『debug コマンドの重要な情報』を参照してください。
show debug:有効になっているdebugコマンドを表示します。
cepro#show debug Authentication debugging is on Tacacs debugging is on
terminal monitor:デバッグの出力を画面に表示します。次の出力は、debug authenticationコマンドとdebug tacacsコマンドの結果を示しています。
cepro#terminal monitor cepro#authenticateUser(): Begin setRemoteIPAddress(): pRemoteAddress 172.18.124.193 bAuthentication(): Begin bAuthenticationIntersection(): Begin bAuthenticationIntersection(): telnet_access 1 setAuthenticatedService(): nServiceToAuthenticate 6 getAuthenticatedService(): Begin getAuthenticatedService(): nServiceToAuthenticate = 6 bAuthenticationIntersection() getAuthenticatedService 6 setErrorDisplayed(): Begin bStatus 0 getLocalLoginAuthEnable(): Begin getLocalLoginAuthEnable(): uiState = 1 getTacacsLoginAuthEnable(): Begin getTacacsLoginAuthEnable(): uiState = 1 getTacacsLoginAuthPrimary(): Begin getTacacsLoginAuthPrimary(): uiState = 1 IncrementTacacsStatRequest(): Begin tacacs_plus_login() Begin isConsole() Begin getAuthenticatedService(): Begin getAuthenticatedService(): nServiceToAuthenticate = 6 isConsole() nReturn 0 telnet tacacs_plus_login() sWhatService() tty = telnet getRemoteIPAddress(): Begin getRemoteIPAddress(): pRemoteAddress = 172.18.124.193 tacacs_plus_login() getRemoteIPAddress sHostIp 172.18.124.193 tacacs_malloc() Begin 164 tacacs_malloc() PSkmalloc ptr getUserStruct() malloc_named ustr tacacs_plus_login() allocated memory for ustruct aaa_update_user() Begin debug_authen_svc() Begin aaa_update_user(): user='admin' ruser='system' port='telnet' rem_addr='172.18.124.193' authen_type=1 tacacs_plus_login() updated user getNumTacacsLoginAttempts(): Begin getNumTacacsLoginAttempts(): ulRetransmit = 2 ####### tacacs_plus_login() num_tries 1 aaa_start_login() Begin debug_start_login() Begin debug_start_login()/AUTHEN/START (0): port='telnet' list='(null)' action=LOGIN service=LOGIN aaa_randomize_id() Begin tacacs_plus_start_login() Begin tacacs_parse_server() Begin user_str admin getTacacsDirectRequestEnable(): Begin getTacacsDirectRequestEnable(): cDirectRequestEnable = 0 printIpAddr() Begin printIpAddr() 0.0.0.0 tacacs_plus_start_login() server.ip_addr 0.0.0.0 server.type 0 server.length 0 choose_version() Begin create_authen_start() Begin create_authen_start() len 45 tacacs_malloc() Begin 45 tacacs_malloc() PSkmalloc ptr create_authen_start() malloc_named tac_pak fill_tacacs_plus_hdr() Begin encrypt 1 fill_tacacs_plus_hdr() len 33, tac_pak->length 33 #### fill_tacacs_plus_hdr() tac_pak->encrypted 1 #### fill_tacacs_plus_hdr() TEST nTestLen 33 create_authen_start() len 33, tac_pak->length 33 create_authen_start() u->priv_lvl 15 start->priv_lvl 15 create_authen_start() start->action 1 create_authen_start() start->authen_type 1 create_authen_start() start->service 1 create_authen_start() user_len 5 create_authen_start() port_len 6 create_authen_start() addr_len 14 create_authen_start() out_len 33 tacacs_plus_start_login() TACACS+: send AUTHEN/START packet ver=192 id=1541646967 tacacs_plus_start_login() login to TACACS+ server: printIpAddr() Begin printIpAddr() 0.0.0.0 tacacs_plus_get_conn() Begin server(0) printIpAddr() Begin printIpAddr() 0.0.0.0 tacacs_plus_get_conn() **pSocketHandleIndex 89434348 tacacs_plus_get_conn() Look at server in the TACACS+ server list tacacs_plus_get_conn() TACACS+: This is a loop through server list tacacs_plus_openconn() Begin printIpAddr() Begin printIpAddr() 172.18.124.114 open_handle() Begin tacacs_plus_socket() Begin tacacs_plus_socket Socket: return nSocket 784 nSockFdTbl[28] = 784 printIpAddr() Begin printIpAddr() 172.18.124.114 open_handle() TACACS+: Opening TCP/IP connection to 172.18.124.114 open_handle() nSockFdTbl[28]= 784 setCurrentServer() Begin SaveCurrentServer->ip_addr 172.18.124.114 IncrementTacacsStatPerServerRequest(): Begin ##### IncrementTacacsStatPerServerRequest Server->ip_addr 1920733868 tacacs_root.ulTacacsServerAddr open_handle() socket(28) 784 tacacs_plus_connect() Begin tacacs_plus_connect() socket(28) 784 tacacs_plus_connect() End open_handle() is connected open_handle() *connection_handle 28 open_handle() **pSocketHandleIndex 28 tacacs_plus_openconn() **pSocketHandleIndex 28 get_server() Begin tacacs_plus_openconn() server->opens++ tacacs_plus_get_conn() **pSocketHandleIndex 28 tacacs_plus_get_conn() oldServerCount: 0, count:0 tacacs_plus_start_login() **pHandleIndex 28 tacacs_plus_send_receive() Begin tacacs_plus_proc_send_receive() Begin tacacs_plus_proc_send_receive() length 33 copy_tac_plus_packet() Begin tacacs_malloc() Begin 45 tacacs_malloc() PSkmalloc ptr copy_tac_plus_packet() malloc_named copy tacacs_plus_encrypt() Begin getTacacsKey(): Begin getTacacsKey(): sKey = tacacs_plus_encrypt() key tacacs_plus_encrypt() sizeof(tacacs_plus_pkt_hdr) 12 tacacs_plus_encrypt() sizeof(uchar) 1 tacacs_plus_encrypt() tac_pak->encrypted 1 tacacs_plus_encrypt() tac_pak->encrypted = TAC_PLUS_CLEAR && key is empty tacacs_plus_proc_send_receive() out_pak->encrypted 1 tacacs_plus_proc_send_receive() out_pak->encrypted 1 tacacs_plus_proc_send_receive() PSkfree dump_pak tacacs_plus_proc_send_receive() ntohl(out_pak->length) 33 dump_start_session() Begin ntohl(out_pak->length) 33 getTacacsKey(): Begin getTacacsKey(): sKey = 0xc0 0x1 0x1 0x1 0x77 0xaa 0xe3 0x5b 0x0 0x0 0x0 0x21 0x1 0xf 0x1 0x1 0x5 0x6 0xe 0x0 0x61 0x64 0x6d encrypt_md5_xor() Begin encrypt_md5_xor() no key dump_summarise_incoming_packet_type() Begin Read AUTHEN/START size=45 dump_nas_pak() Begin dump_header() Begin PACKET: key= version 192 (0xc0), type 1, seq no 1, encrypted 1 session_id 2007688027 (0x77aae35b), Data length 33 (0x21) End header type=AUTHEN/START, priv_lvl = 15action=login authen_type=ascii service=login user_len=5 port_len=6 (0x6), rem_addr_len=14 (0xe) data_len=0 User: port: rem_addr: data: End packet dump_start_session() PSkfree test getTacacsTimeout(): Begin getTacacsTimeout(): ulTimeout = 5 tacacs_plus_sockwrite() Begin tacacs_plus_proc_send_receive() PSkfree out_pak getTacacsTimeout(): Begin getTacacsTimeout(): ulTimeout = 5 sockread() Begin tacacs_plus_proc_send_receive() read tacacs_malloc() Begin 18 tacacs_malloc() PSkmalloc ptr tacacs_plus_proc_send_receive() malloc_named *in tacacs_plus_proc_send_receive() allocated memory getTacacsTimeout(): Begin getTacacsTimeout(): ulTimeout = 5 sockread() Begin tacacs_plus_proc_send_receive() OK tacacs_plus_decrypt() Begin getTacacsKey(): Begin getTacacsKey(): sKey = tacacs_plus_decrypt() key tacacs_plus_decrypt() tac_pak->encrypted = TAC_PLUS_CLEAR && key is empty authen_resp_sanity_check() Begin tacacs_plus_hdr_sanity_check() Begin authen_debug_response() Begin authen_debug_response() TACACS+: ver=192 id=1541646967 received AUTHEN status = FAIL tacacs_plus_start_login() PSkfree out_tac_pak unload_authen_resp() Begin tacacs_plus_start_login() PSkfree in_tac_pak debug_authen_status() Begin TACACS+/AUTHEN (2007688027): status = FAIL tacacs_plus_login() Authentication failed. tacacs_plus_login() label1 aaa_cleanup_login() Begin aaa_close_connection() Begin tacacs_plus_closeconn() Begin get_server() Begin close_handle() Begin close_handle() nHandleIndex 28 nSockFdTbl[**handle] 784 aaa_set_password() Begin aaa_free_user() Begin debug_authen_svc() Begin aaa_close_connection() Begin TACACS+/AUTHEN: free user admin system telnet 172.18.124.193 authen_type=ASCII service=LOGIN priv_lv aaa_free_user() PSkfree ustr ####### tacacs_plus_login() num_tries 2 aaa_start_login() Begin debug_start_login() Begin debug_start_login()/AUTHEN/START (0): port='unknown' list='(null)' action=LOGIN service=LOGIN TACACS+/AUTHEN/START aaa_start_login() (0): ERROR (no ustruct) tacacs_plus_login() TACACS+: aaa_start aaa_free_user() Begin tacacs_plus_login() try_local_login AUTHENTICATION_INTERNAL_ERROR IncrementTacacsStatDenyAccess(): Begin localAuthentication(): Begin localAuthentication() usrName admin localAuthentication() passwd system localAuthentication() pUid 89435294 localAuthentication() telnet_access localAuthentication() rc == TRUE AuthenticationIntersection(): bTacacsLogin 0 IncrementLocalLoginStat(): Begin getLocalConfigAuthEnable(): Begin getLocalConfigAuthEnable(): uiState = 1 getTacacsConfigAuthEnable(): Begin getTacacsConfigAuthEnable(): uiState = 1 getTacacsConfigAuthPrimary(): Begin getTacacsConfigAuthPrimary(): uiState = 0 localAuthentication(): Begin localAuthentication() usrName admin localAuthentication() passwd system localAuthentication() pUid 89435294 localAuthentication() telnet_access localAuthentication() rc == TRUE AuthenticationIntersection(): bTacacsConfig 0 AuthenticationIntersection():== Local Database Authentication == IncrementLocalConfigStat(): Begin AuthenticationIntersection(): user has been found AuthenticationIntersection(): bTacacsLogin pUid 89435294 AuthenticationIntersection(): GOT ACCESS capab 0 Admin 0 Ftp 0 Http 0 Telnet 0 authenticateUser() AUTHENTICATION IS OK authenticateUser() AUTHENTICATION #2