1. 程式人生 > 其它 >Tacacs-配置single-connection單連線模式證測試與總結

Tacacs-配置single-connection單連線模式證測試與總結

技術標籤:網路雜項網路安全Tacacs+tacacsAAA安全網路


其他文章:


Tacacs+ single-connection單連線模式測試

經測試單連線模式真正實現的效果就是:不論有多少使用者同時登陸一臺網路裝置,不論同時執行多少條命令,設計到的認證,授權,計費報文都在同一個TCP連線中傳輸。

單連線模式相關概念:

單連線模式:https://tools.ietf.org/id/draft-ietf-opsawg-tacacs-18.html

#rfc.section.4.3

單連線模式( Single Connection Mode)是為了提高效能,有很多客戶端和伺服器之間的流量通過允許複用多個會話在一個TCP連線。

資料包頭包含客戶端和伺服器用來協商使用單連線模式的TAC_PLUS_SINGLE_CONNECT_FLAG。客戶端設定此標誌,以表明它支援在單個TCP連線上多路傳輸TACACS+會話。在單連線狀態建立之前,客戶端不能在連線上傳送第二個資料包。

為了表示它將支援單一連線模式,伺服器將在響應客戶端的第一個請求的第一個應答包中設定此標誌(Flag)。即使客戶端沒有設定該標誌,伺服器也可以設定該標誌,但是客戶端可以忽略該標誌並在會話完成後關閉連線。

該標誌只與連線上的前兩個包相關,以允許客戶端和伺服器建立單一連線模式。在前兩個包之後沒有更改單個連線模式的規定:客戶端和伺服器必須忽略連線上第二個包之後的標誌。

如果在TCP連線的前兩個包中沒有建立單連線模式,那麼客戶端和伺服器都會在第一次會話結束時關閉連線。

客戶端採用單連線模式,提高了效率。伺服器可能拒絕允許客戶端使用單連線模式。例如,在某些部署中,可能不適合將持久的TCP連線分配給特定的客戶端。即使伺服器被配置為允許特定客戶端使用單一連線模式,伺服器也可以關閉連線。例如:伺服器必須配置為在一段特定的不活動時期後超時單個連線模式TCP連線,以保留其資源。即使建立了單個連線模式,客戶端也必須在TCP會話上適應這種終止。

由於伺服器或中間連線的超時,單連線模式下的TCP連線最終將關閉。如果一個會話正在進行,當客戶端檢測到斷開連線,那麼客戶端應該處理它。如果會話沒有進行,那麼客戶端將需要檢測它,並在它啟動下一個會話時重新啟動單連線模式。

Tacacs+伺服器端配置:

single-connection ( may-close ) = ( yes | no )

該指令可用於允許或拒絕特定主機物件的單連線功能。 may-close關鍵字告訴守護程式如果未使用則關閉連線。

Caveat Emptor(需留心):

單連線不按預期工作的可能性很小。路由器中的單連線實現,甚至在這個守護程序中實現的連線(或者可能兩者都有)可能有問題。如果你注意到奇怪的AAA行為無法解釋,那麼嘗試禁用路由器上的單連線。

Tacacs+ single-connection引數的測試結果:

  • Tacacs+配置檔案預設不需要寫single-connection = yes 就支援單連線。

  • 通過實際測試:即使配置了single-connection = no, 只要客戶端支援單連線模式,還是可以建立單連線模式。

  • 如果配置single-connection may-close = yes, 如果客戶端不是單連線模式,則每次建立TCP連線,認證或者計費完成後,Tacacs+伺服器端會主動先發送FIN報文關閉TCP連線。若不配置may-close,客戶端是單連線的話,每次是客戶端主先發起FIN報文,關閉TCP連線。

各交換機廠商對單連線模式的支援情況:

H3C single-connection測試與總結:

H3C裝置上解釋:single-connection Transmit HWTACACS packets on an open TCP connection。

不開啟單連線模式情況下:

交換機單連線配置:

主要在配置Tacacs+伺服器時不攜帶single-connection引數:

hwtacacs scheme tacacs
 primary authentication 192.168.147.135 49  key simple [email protected]123
 primary authorization 192.168.147.135 49  key simple [email protected]123
 primary accounting 192.168.147.135 49 key simple [email protected]123
 user-name-format without-domain

在裝置上執行命令,通過display tcp | in 49, 過濾Tacacs+伺服器的埠號,檢視網路裝置於Tacacs+伺服器建立的TCP連線情況。

可以總結出,每執行一條命令,會建立兩條TCP連結,分別為授權和計費連線。且計費連線每次看到的狀態都是 ESTABLISHED狀態。

認證產生的TCP連線只會在登陸的時候產生,後續TCP連線超時後就會斷掉,不會在觸發認證。

通過抓包分析,從Tacacs+的報文互動過程來看,在登陸的時候交換機會向Tacacs+伺服器傳送1個認證請求報文,一個收認證回覆報文。華三的裝置使用者命和密碼會在第一個認證請求包中。在認證成功之後,後續在交換機輸入的每條命令都會進行4個報文的互動,分別是授權請求報文,授權迴應報文,計費請求報文,計費迴應報文。

剛開始登陸時,會產生一條用於傳送認證的TCP連線。

開啟Tacacs+ 單連線模式的情況下:

主要在配置Tacacs+伺服器時攜帶single-connection引數:

hwtacacs scheme tacacs
 primary authentication 192.168.147.135 49 single-connection key simple [email protected]123
 primary authorization 192.168.147.135 49 single-connection key simple [email protected]123
 primary accounting 192.168.147.135 49  single-connection key single-connectionsimple [email protected]123
 user-name-format without-domain

single-connection ( may-close) = yes ,加上may-close引數後,如果交換機未配置單連線模式,那麼每次建立完TCP連線後,Tacacs+會主動斷開TCP連線,但是不影響AAA功能。

通過觀察總結,交換機開啟single-connection模式後,不論Tacacs+伺服器的single-connection ( may-close) = yes 該配置項如何調整,每新加一個使用者,就會建立5條TCP連線,並且一直存活。

在這裡為了區分這5條TCP連線分別用於傳輸什麼資料,特意搭建了3個Tacacs+伺服器:

  • 認證伺服器:192.168.147.135
  • 授權伺服器:192.168.147.136
  • 計費伺服器:192.168.147.137

通過抓包分析總結:

<H3C>dis tcp | in 49
 192.168.1.1:48386   192.168.147.135:49        ESTABLISHED 1     0x000000000003bdf9
 # 這一條TCP連線是使用者登陸時建立的認證連線,只在登陸時會傳輸資料,後續不會再傳輸資料。
 192.168.1.1:48387   192.168.147.136:49      ESTABLISHED 1     0x000000000003bdfa
 # 第一條授權TCP連線,是授權 service=shell, cmd*, cvp-roles=network-admin,後續這條連線不會傳輸資料。
 # 第一條授權TCP連線會回覆cvp-roles=network-admin,priv-lvl=15資訊,後續這條連線不會傳輸資料。
 192.168.1.1:48388   192.168.147.137:49     ESTABLISHED 1     0x000000000003bdfb
 # 第一條計費TCP連線,是對使用者的預設許可權,sevice=shell的計費。
 192.168.1.1:48389   192.168.147.136:49      ESTABLISHED 1     0x000000000003bdfc
 # 第二條授權TCP連線,是除了第一次登入時使用者授權,後面每次執行的命令的授權都會在這個TCP連線中進行。
 192.168.1.1:48390   192.168.147.137:49     ESTABLISHED 1     0x000000000003bdfd
 # 第二條計費TCP連線,是除了第一次登陸的預設計費,後面每次執行的命令的計費都會在這個TCP連線中進行。

H3C Tacacs+配置單連線模式總結:

H3C的單連線實現方式是個假的單連線,交換機在與Tacacs+伺服器傳送的報文中,Single Connection欄位沒有置位,所有也沒有實現真正的單連線模式。

配置單連線模式後,每次使用者登陸會新建5條TCP連線,並保持一直連線。但是通過配置單鏈接也能減少H3C交換機和Tacacs+的TCP連線數。

華為單連線模式測試與總結:

首先通過測試華為支援配置單連線模式。

不配置單連線模式的情況:

hwtacacs server template tacacs
 hwtacacs server authentication 192.168.147.135 49 shared-key [email protected]123
 hwtacacs server authorization 192.168.147.135 49 shared-key [email protected]123 
 hwtacacs server accounting 192.168.147.135 49 shared-key [email protected]123
 hwtacacs server source-ip 192.168.1.1
 hwtacacs server timer response-timeout 3 
 hwtacacs server user-name domain-excluded 
  • 華為裝置每次登陸認證會話只會建立一個TCP連線,認證完成後關閉TCP連線。

  • 通過抓包分析,每次執行命令,會分別建立一條授權和計費TCP連線,且會發送RST報文斷開TCP連線。後續發起的TCP連線使用隨機埠號。

配置單連線模式後:

主要是配置mux-mode 引數。

hwtacacs server template tacacs
 hwtacacs server authentication 192.168.147.135 49 shared-key [email protected]123 mux-mode
 hwtacacs server authorization 192.168.147.135 49 shared-key [email protected]123  mux-mode
 hwtacacs server accounting 192.168.147.135 49 shared-key [email protected]123 mux-mode
 hwtacacs server source-ip 192.168.1.1
 hwtacacs server timer response-timeout 3 
 hwtacacs server user-name domain-excluded 
  • 配置單連線模式後,不論有多少使用者,不論執行多少條命令,認證,授權,計費報文只在一條TCP連線中傳輸。

  • 華為裝置配置單連線模式的引數是: mux-mode Configure the multiplex mode for a server

銳捷 Tacacs+配置單連線模式測試與總結:

銳捷不支援配置單連線模式。

Ruijie#show tacacs  
Tacacs+ Server : 192.168.147.135/49
Socket Opens: 37  #通過show tacacs開看到開啟和關閉的連線。
Socket Closes: 37
Total Packets Sent: 40
Total Packets Recv: 40
Reference Count: 1
Ruijie#show tacacs  
Tacacs+ Server : 192.168.147.135/49
Socket Opens: 39  #通過show tacacs開看到開啟和關閉的連線。
Socket Closes: 39
Total Packets Sent: 42
Total Packets Recv: 42
Reference Count: 1

通過在網路裝置上檢視建立的TCP連線數和抓包分析,在銳捷裝置上,每次執行命令,都會新開啟兩條TCP連線。

通過抓包分析:

  • 銳捷Tacacs+報文互動過程,銳捷的認證互動總數是4個包,且在一個TCP連線傳輸。在第一個認證請求報文中,只會攜帶使用者名稱,第一個認證迴應報文中攜帶server訊息(\nPassword: ),請求密碼:使用者輸入密碼後,會發起第二個認證請求報文,第二個認證回覆報文會是認證結果。認證報文互動只會建立一個TCP連線,傳輸完資料就關閉了。

  • 銳捷的所有Tacacs+互動資料都在同一個TCP源埠中傳輸,使用的不是FIN,而是RST報文,每次互動完認證/授權/計費就發起一個RST,提前重置TCP連線,後續的收取,計費報文再使用同樣的源埠發起SYN建立TCP連線互動資料。

  • 銳捷裝置不支援Tacacs+的認證,授權,計費分離。

思科裝置Tacacs+配置單連線模式測試與總結:

Cisco裝置支援Tacacs+配置單連線模式。

不配置單連線模式的情況:

tacacs-server host 192.168.147.135 key [email protected]123 port 49
  • 不配置單連線模式情況下,每次登陸,或者執行命令,認證,授權,計費,都是單獨建立一條TCP連線進行傳輸資料。傳輸完資料後,交換機主動傳送FIN關閉TCP連線。

配置單連線模式的情況:

主要在執行Tacacs+伺服器時配置:single-connection 引數。

tacacs-server host 192.168.147.135 key [email protected]123 port 49 single-connection 

通過抓包分析:

  • Cisco交換機Tacacs+ 配置單連線模式後,不論多少使用者線上,認證,授權,計費報文都會在同一條TCP連線中傳輸。

  • Cisco的認證報文是兩個,使用者賬號和密碼會在同一個報文中傳輸。

Arista裝置Tacacs+配置單連線模式測試與總結:

Arista裝置支援單連線模式。

不配置單連線模式:

tacacs-server host 192.168.147.135  port 49 key key [email protected]123

通過在裝置上檢視Tacacs+認證資訊與抓包分析總結:

  • 每次進行一次認證互動就會新建一個TCP連線,並且認證的4個認證報文使用1個TCP連線。
  • 每次授權的授權請求報文和授權迴應報文使用一個新TCP連線,且完成後交換機主動關閉TCP連線。
  • 每次計費的計費請求報文和計費迴應報文使用一個新TCP連線,且完成後交換機主動關閉TCP連線。
  • Arista 不開啟單連線模式,不論多少使用者線上,只要執行一條命令,會建立2條TCP連線。
  • 每個TCP連線使用的埠號不同。
  • 多個使用者同時登陸,和上述情況一致。

配置單連線模式情況:

tacacs-server host 192.168.147.135  port 49 key single-connection key [email protected]123

通過抓包分析:

Arista裝置的Tacacs+認證交換報文和H3C的略有區別:

  • H3C的認證報文只有2個,在第一個認證請求報文中,會同時攜帶使用者名稱和密碼。
  • Arista的認證報文有4個,在第一個認證請求報文中,只會攜帶使用者名稱,第一個認證迴應報文中攜帶server訊息(\nPassword: ),請求密碼:使用者輸入密碼後,會發起第二個認證請求報文,第二個認證回覆報文會是認證結果
  • Arista的單連線模式,真正做到了將認證,授權,計費,已經多使用者的多個session在同一個TCP連線中傳輸。
  • 但是Arista不支援將認證,授權,計費分離配置。

Tacacs+配置單連線模式總結

  • 華為,思科,Arista,支援配置單連線模式,且不論多少使用者同時登陸,認證,授權,計費報文都會在同一個TCP連線中傳輸。

    且支援單連線模式的Tacacs+報文中的Single Conection 欄位置1,表示使用Tacacs+單連線模式。

  • 銳捷不支援配置單連線模式。

  • H3C的單鏈接模式是個假單鏈接模式,Tacacs+報文中的Single Connection欄位不置位,配置單連線模式後,每次使用者登陸會新建5條TCP連線,並保持一直連線。但是通過配置單鏈接也能減少H3C交換機和Tacacs+的TCP連線數。已和廠商提需求。

  • 華為,銳捷,arista的認證報文分為4個報文交換,H3C,思科的認證報文只有2個。

  • 配置single-connection模式後,如果交換機數量很大,且同時與Tacacs+伺服器建立TCP連線的話,能減少大量Tacacs+伺服器端的TCP連線。

  • 配置single-connection,大量認證,授權,計費資料包在同一個TCP連線中傳輸,提高了傳輸效率,不必一直重複建立和銷燬TCP連線。


其他Tacacs+學習資料:


其他文章: