本檔案介紹如何設定思科路由器,以使用在UNIX上執行的TACACS+進行驗證。TACACS+提供的功能不及商業上提供的Cisco Secure ACS for Windows或Cisco Secure ACS UNIX。
Cisco Systems先前提供的TACACS+軟體已停產,且Cisco Systems不再支援。
現在,您在您喜愛的網際網路搜尋引擎上搜尋「TACACS+免費軟體」時,可以找到許多可用的TACACS+免費軟體版本。思科並不特別建議實施任何特定的TACACS+免費軟體。
思科安全存取控制伺服器(ACS)可透過世界各地的定期思科銷售和分銷管道購買。Cisco Secure ACS for Windows包含在Microsoft Windows工作站上進行獨立安裝所需的所有必要元件。Cisco Secure ACS解決方案引擎附帶預裝的Cisco Secure ACS軟體許可證。訪問思科訂購首頁(僅限註冊客戶)下訂單。
注意:您需要具有相關服務合約的CCO帳戶才能獲得適用於Cisco Secure ACS for Windows的90天試用版。
本文中的路由器組態是在執行Cisco IOS®軟體版本11.3.3的路由器上開發的。Cisco IOS軟體版本12.0.5.T和更新版本使用group tacacs+而不是tacacs+,因此aaa authentication login default tacacs+ enable等陳述式顯示為aaa authentication login default group tacacs+ enable。
請參閱Cisco IOS軟體檔案以瞭解更多有關路由器命令的完整資訊。
本文件沒有特定需求。
本檔案中的資訊是根據Cisco IOS軟體版本11.3.3和Cisco IOS軟體版本12.0.5.T及更新版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
請完成以下步驟:
請確保您已在UNIX伺服器上編譯TACACS+(TAC+)代碼。
這裡的伺服器配置假定您使用Cisco TAC+伺服器代碼。無論伺服器程式碼是否為思科伺服器程式碼,路由器組態都應正常運作。TAC+必須作為根運行;如有必要,請轉到根目錄。
複製本檔案結尾的test_file,將其放在TAC+伺服器上,並命名為test_file。
檢查以確保tac_plus_executable守護程序以test_file啟動。在此命令中,-P選項將檢查編譯錯誤,但不啟動守護程式:
tac_plus_executable -P -C test_file
您可能會看到test_file的內容向下滾動視窗,但您不應該看到cannot find file、cleartext expected - found cleartext或unexpected }等消息。如果出現錯誤,請檢查test_file的路徑,重新檢查鍵入內容,然後重新測試,然後繼續。
開始在路由器上配置TAC+。
輸入enable模式,並在命令集之前鍵入configure terminal。此命令語法可確保您最初沒有鎖定在路由器之外,但前提是沒有tac_plus_executable:
!--- Turn on TAC+. aaa new-model enable password whatever !--- These are lists of authentication methods. !--- "linmethod", "vtymethod", "conmethod", and !--- so on are names of lists, and the methods !--- listed on the same lines are the methods !--- in the order to be tried. As used here, if !--- authentication fails due to the !--- tac_plus_executable not being started, the !--- enable password is accepted because !--- it is in each list. ! aaa authentication login linmethod tacacs+ enable aaa authentication login vtymethod tacacs+ enable aaa authentication login conmethod tacacs+ enable ! !--- Point the router to the server, where #.#.#.# !--- is the server IP address. ! tacacs-server host #.#.#.# line con 0 password whatever !--- No time-out to prevent being locked out !--- during debugging. exec-timeout 0 0 login authentication conmethod line 1 8 login authentication linmethod modem InOut transport input all rxspeed 38400 txspeed 38400 flowcontrol hardware line vty 0 4 password whatever !--- No time-out to prevent being locked out !--- during debugging. exec-timeout 0 0 login authentication vtymethod
繼續進行之前,請進行測試,確保您仍可以通過Telnet和控制檯埠訪問路由器。由於tac_plus_executable未運行,因此應該接受enable密碼。
注意:保持控制檯埠會話處於活動狀態並保持啟用模式。此會話不應超時。此時對路由器的訪問受到限制,您需要能夠進行配置更改而不將自己鎖定。
發出以下命令檢視路由器上的伺服器到路由器的互動:
terminal monitor debug aaa authentication
以根使用者身份在伺服器上啟動TAC+:
tac_plus_executable -C test_file -d 16
檢查以確保TAC+已啟動:
ps -aux | grep tac_plus_executable
或
ps -ef | grep tac_plus_executable
如果TAC+沒有啟動,通常是test_file中的語法問題。返回步驟1以更正此問題。
鍵入tail -f /var/tmp/tac_plus.log檢視伺服器上的路由器到伺服器互動。
注意:步驟5中的-d 16選項將所有事務的輸出傳送到/var/tmp/tac_plus.log。
Telnet(VTY)使用者現在必須透過TAC+進行驗證。
在路由器和伺服器上進行debug(步驟4和7)後,從網路的另一部分Telnet至路由器。
路由器會產生使用者名稱和密碼提示,您會對此進行回覆:
'authenuser' (username from test_file) 'admin' (password from test_file)
使用者authenuser位於admin組中,該組的密碼為admin。
觀察伺服器和路由器,從中可以看到TAC+互動 — 傳送位置、響應、請求等。請更正所有問題,然後再繼續。
如果您也希望使用者透過TAC+進行驗證以進入啟用模式,請確保您的主控台連線埠作業階段仍處於作用中狀態,並將以下命令新增到路由器中:
!--- For enable mode, list 'default' looks to TAC+ !--- then enable password if TAC+ does not run. aaa authentication enable default tacacs+ enable
使用者現在必須透過TAC+啟用。
在路由器和伺服器上進行debug(步驟4和7)後,從網路的另一部分Telnet至路由器。路由器會產生使用者名稱和密碼提示,您會對此進行回覆:
'authenuser' (username from test_file) 'admin' (password from test_file)
進入啟用模式時,路由器會要求您回覆的密碼:
'cisco' ($enable$ password from test_file)
觀察伺服器和路由器,您應該從其中看到TAC+互動 — 傳送內容、響應、請求等。請更正所有問題,然後再繼續。
在仍連線到主控台連線埠時,關閉伺服器上的TAC+程式,確保在TAC+關閉時,使用者仍可以存取路由器:
ps -aux | grep tac_plus_executable
或
ps -ef | grep tac_plus_executable) kill -9 pid_of_tac_plus_executable
重複上一步的Telnet和啟用。然後,路由器會意識到TAC+進程沒有響應,並允許使用者使用預設密碼登入和啟用。
檢查您通過TAC+對控制檯埠使用者的身份驗證。若要執行此操作,請再次啟動TAC+伺服器(步驟5和6),並建立到路由器的Telnet會話(該會話應通過TAC+進行身份驗證)。
在啟用模式下通過Telnet保持與路由器的連線,直到確定可以通過控制檯埠登入路由器。
通過控制檯埠註銷與路由器的原始連線,然後重新連線到控制檯埠。使用使用者ID和密碼(如步驟10所示)登入和啟用的控制檯埠身份驗證現在應通過TAC+。
當您通過Telnet會話或控制檯埠保持連線,並且在路由器和伺服器上進行調試時(步驟4和7),建立到線路1的數據機連線。
線路使用者現在必須通過TAC+登入和啟用。
路由器會產生使用者名稱和密碼提示,您會對此進行回覆:
'authenuser' (username from test_file) 'admin' (password from test_file)
進入啟用模式時,路由器會要求密碼。
回覆:
'cisco' ($enable$ password from test_file)
觀察您看到TAC+互動的伺服器和路由器 — 傳送位置、響應、請求等。請更正所有問題,然後再繼續。
使用者現在必須透過TAC+啟用。
新增授權是可選的。
預設情況下,路由器上有三個命令等級:
許可權級別0,包括禁用、啟用、退出、幫助和註銷
許可權級別1 - Telnet上的正常級別 — 提示符為router>
許可權級別15 — 啟用級別 — 提示router#
由於可用命令取決於IOS功能集、Cisco IOS版本、路由器型號等,因此沒有第1級和第15級的所有命令的完整清單。例如,show ipx route不存在於僅IP功能集中,show ip nat trans不存在於Cisco IOS軟體版本10.2.x中,因為當時未引入NAT,並且沒有電源和溫度監控的路由器型號中沒有show environment。當您輸入?處於該許可權級別時,在路由器中提示符處。
實施思科錯誤ID CSCdi82030(僅限註冊客戶)之前,未將控制檯埠授權新增為功能。預設情況下,控制檯埠授權處於關閉狀態,以減少您意外被鎖定在路由器之外的可能性。如果使用者可以通過控制檯對路由器進行物理訪問,則控制檯埠授權不會非常有效。但是可以在以下命令中實作Cisco錯誤ID CSCdi82030(僅限註冊客戶)的映像中的con 0行下開啟主控台連線埠授權:
authorization exec default|WORD
路由器可以配置為在所有或某些級別通過TAC+授權命令。
此路由器配置允許所有使用者在伺服器上設定每個命令的授權。此處我們通過TAC+授權所有命令,但是如果伺服器關閉,則無需授權。
aaa authorization commands 1 default tacacs+ none aaa authorization commands 15 default tacacs+ none
TAC+伺服器執行期間,使用userid authenuserTelnet連線至路由器。
由於authenuser在test_file中具有預設服務= permit,因此該使用者應該能夠執行所有功能。
在路由器中,進入enable模式,然後開啟授權調試:
terminal monitor debug aaa authorization
使用userid authoruser和password operatorTelnet至路由器。
此使用者無法執行兩種show命令traceroute和logout(請參見test_file)。
觀察應看到TAC+互動的伺服器和路由器(傳送位置、響應、請求等)。 請更正所有問題,然後再繼續。
如果要為autocommand配置使用者,請消除test_file中的已註釋掉的使用者瞬態,並放置有效的IP地址目標來代替#.#.#.#。
停止並啟動TAC+伺服器。
在路由器上:
aaa authorization exec default tacacs+
使用userid transient和password transientTelnet至路由器。telnet #.#.#.#將執行,並將使用者瞬態資訊傳送到另一個位置。
新增記帳是可選操作。
對記帳檔案的引用位於test_file - accounting file = /var/log/tac.log。但是,除非在路由器中配置(如果路由器運行的是高於11.0的Cisco IOS軟體版本),否則不會進行記帳。
在路由器中啟用記帳:
aaa accounting exec default start-stop tacacs+ aaa accounting connection default start-stop tacacs+ aaa accounting network default start-stop tacacs+ aaa accounting system default start-stop tacacs+
注意:在某些版本中,AAA記帳不執行按命令記帳。因應措施是使用每個命令的授權,並將發生的情況記錄在記帳檔案中。(請參閱Cisco錯誤ID CSCdi44140。) 如果您使用的映像使用了此固定版本[Cisco IOS軟體版本11.2(1.3)F、11.2(1.2)、11.1(6.3)、11.1(6.3)AA01、11.1(6.3)CA截至1997年9月24日],您還可以啟用命令記帳。
TAC+在伺服器上執行時,請在伺服器上輸入以下命令,以便檢視進入記帳檔案的專案:
tail -f /var/log/tac.log
然後登入並退出路由器,Telnet退出路由器等等。如有必要,在路由器上輸入:
terminal monitor debug aaa accounting
- - - - - - - (cut here) - - - - - - - # Set up accounting file if enabling accounting on NAS accounting file = /var/log/tac.log # Enable password setup for everyone: user = $enable$ { login = cleartext "cisco" } # Group listings must be first: group = admin { # Users in group 'admin' have cleartext password login = cleartext "admin" expires = "Dec 31 1999" } group = operators { # Users in group 'operators' have cleartext password login = cleartext "operator" expires = "Dec 31 1999" } group = transients { # Users in group 'transient' have cleartext password login = cleartext "transient" expires = "Dec 31 1999" } # This user is a member of group 'admin' & uses that group's password to log in. # The $enable$ password is used to enter enable mode. The user can perform all commands. user = authenuser { default service = permit member = admin } # This user is limitted in allowed commands when aaa authorization is enabled: user = telnet { login = cleartext "telnet" cmd = telnet { permit .* } cmd = logout { permit .* } } # user = transient { # member = transients # service = exec { # When transient logs on to the NAS, he's immediately # zipped to another site # autocmd = "telnet #.#.#.#" # } # } # This user is a member of group 'operators' # & uses that group's password to log in user = authenuser { member = operators # Since this user does not have 'default service = permit' when command # authorization through TACACS+ is on at the router, this user's commands # are limited to: cmd = show { permit ver permit ip } cmd = traceroute { permit .* } cmd = logout { permit .* } } - - - - (end cut here) - - - -
注意:如果TACACS伺服器無法訪問,則會生成以下錯誤消息:%AAAA-3-DROPACCTSNDFAIL:記帳記錄已刪除,傳送到伺服器失敗:system-start。驗證TACACS+伺服器是否正常運行。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
21-Jul-2006 |
初始版本 |