370 likes | 663 Views
實驗 5: 安裝及建置 AAA Server. 實驗目的. 本實驗需安裝與建置 AAA Server ,我們使用 Open Source 套件 –FreeRADIUS 來完成 AAA 協議的三項功能。 Authentication 採用 802.1x 控制 User 未經授權之前,無法使用網路資源。 認證協定使用 PEAP (Protected EAP) 。 Authorization
E N D
實驗目的 實驗 5:安裝及建置AAA Server • 本實驗需安裝與建置AAA Server,我們使用Open Source套件–FreeRADIUS 來完成AAA協議的三項功能。 • Authentication • 採用802.1x 控制User未經授權之前,無法使用網路資源。 • 認證協定使用PEAP (Protected EAP)。 • Authorization • 我們將在NAS (Network Access Server, 向RADIUS提出請求的網路設備)上建置多個VLAN,並在這些VLAN上預先設定不同的Access Control List。 • FreeRADIUS依據User所在的群組授權不同的VLAN ID, • NAS會依照RADIUS回傳的屬性,將User分配到不同的VLAN下。 • Accounting • 我們將展示FreeRADIUS的計費記錄資訊。
實驗目的 實驗 5:安裝及建置AAA Server • 本實驗所需的網路拓墣如上。 • FreeRADIUS • 安裝於Linux作業系統。 • Cisco Router 2600 • 為了讓實驗環境(私有網域)存取Internet資源,所以在Router上執行NAT機制。 • Cisco Catalyst 3560 Switch • 連接各台主機的設備,並啟用它的IP Routing功能。 • 我們在Switch上設定802.1x,讓User未經許可前,無法存取網路資源。 • 共新增兩個VLAN(VLAN ID 2, 3),讓User與Guest分別在不同的網域。
實驗流程 實驗 5:安裝及建置AAA Server • 本實驗大致上可分為下列幾個部份 • FreeRADIUS安裝與設定 • 路由器設定 • 交換器設定 • 利用MySQL 模組記錄FreeRADIUS的資訊 • 最高層認證中心、客戶端與伺服端之憑證製作 • 在WindowXP安裝客戶端憑證與設定PEAP
FreeRADIUS安裝與設定 實驗 5:安裝及建置AAA Server • RADIUS介紹 • FreeRADIUS介紹 • FreeRADIUS安裝 • FreeRADIUS設定 • FreeRADIUS執行與測試 圖片來源:國家高速網路與計算中心
RADIUS介紹 實驗 5:安裝及建置AAA Server • 遠端用撥入驗證服務 (Remote Access Dial In User Service)的應用場合通常有 • 撥接用戶撥入身份認證 • 有線、無線網路存取身份認證 • 其它網路設備管理者登入認證 • 它具備AAA功能: • 驗證(Authentication) • 你是誰? • 授權(Authorization) • 允許你能使用那些服務? • 計費(Accounting) • 使用服務後付費 • 採用UDP封包做為傳輸協定,標準認證使用的通訊埠為1812、計費使用的通訊埠為1813。 • 運作流程(如左圖所示): 使用者向網路設備(NAS)提出存取要求,NAS則傳送一目地埠為1812的UDP封包至本地RADIUS伺服器,若該使用者屬於漫遊身份時,則將由其它RADIUS伺服器代理驗證並回傳驗證結果至NAS。NAS依驗證結果授權使用者是否可以使用網路資源。
FreeRADIUS介紹 實驗 5:安裝及建置AAA Server • 在眾多的RADIUS軟體中,認證機制的支援度最高、功能性最強大。 • Open Source專案,據統計目前約有5萬的軟體開發者。 • 支援的作業系統 • Linux、AIX、Cygwin、FreeBSD、HP-UX、Mac OSX、NetBSD、OpenBSD、OSF/Unix 、Solaris • 支援的硬體平台 • IA-64 (Itanium & Itanium2)、PPC (IBM POWER & PowerPC)、Sparc、x86 • 支援的認證協定 • PAP、CHAP、MS-CHAP、EAP-MD5、EAP-GTC、EAP-TLS、EAP-TTLS、PEAPv0、LEAP、EAP-SIM、Digest • 支援完整的AAA能力。 • 設定方式模組化,容易維護。 • 官方網站 • http://www.freeradius.org/
FreeRADIUS安裝 實驗 5:安裝及建置AAA Server • 左圖為FreeRADIUS於Gentoo Linux上的安裝流程。 • Portage Tree更新至最新版。 • 在安裝FreeRADIUS時,也安裝mysql、ssl等相關模組。 • 設定檔路徑 • /etc/raddb • 記錄檔路徑 • 系統運作及認證記錄檔 • /var/log/radius/radius.log • 計費資訊記錄檔 • /var/log/radius/radacct/<NAS IP位址>/auth-detail-計費日期 • 執行檔路徑 • /usr/sbin/radiusd
FreeRADIUS設定 實驗 5:安裝及建置AAA Server • 系統運作流程 • 程式啟動: 讀取radiusd.conf系統設定 • UDP 1812/1813 • 收到認證請求(Access-Request)封包 • 比對client.conf的認證來源設定 • 若該請求為合法用戶時,則比對領域名稱(Realm),決定認證處理方式 • 比對proxy.conf的領域名稱設定 • 有相同的realm設定 • 使用proxy.conf中所設定的處理方式由其它RADIUS代理認證 • 無相同的realm設定 • 使用users中所設定的預設處理方式比對users中的帳號與金鑰
FreeRADIUS設定- radiusd.conf 實驗 5:安裝及建置AAA Server • 主要的FreeRADIUS系統設定檔,系統啟動時會讀取這個檔案,用以決定執行時的功能及運作方式。 • user = radiusd • 執行時身份為radiusd • group = radiusd • 執行時群族為radiusd • bind_address = * • * 代表監視所有的網路介面 • port = 0 • 使用預設的1812/1813 • proxy_requests = yes • 啟用proxy RADIUS Server代理認證 • 其它的設定可參考radiusd.conf檔,內有詳細的參數說明。
FreeRADIUS設定- client.conf 實驗 5:安裝及建置AAA Server • Client通常是要求認證的網路設備, clients.conf處理與Client端相關的設定(如左所示),所有合法的IP位址或網段都必須記錄在這個檔案之中,若無記錄則視為非法客戶則不提供認證服務。 Client < IP Address>{ secret = <祕密金鑰> Shortname = <名稱> nastype = <NAS型別> } Client 127.0.0.1 { secret = es602 Shortname = localhost nastype = other } 網路設備outgoing_switch, IP ADDRESS為 140.125.32.1 與RADIUS SERVER的通訊 祕密金錀為es602, nastype為other。 Client 140.125.32.1 { secret = es602 Shortname = wire_802dot1X nastype = other } Client < IP Address 網段>{ secret = <祕密金鑰> Shortname = <名稱> nastype = <NAS型別> }
FreeRADIUS設定- users 實驗 5:安裝及建置AAA Server • 設定認證帳號的處理方式 • DEFAULTAuth-Type = System • 使用系統帳號 • DEFAULTAuth-Type = Local • 使用users檔案中的帳號 • DEFAULTAuth-Type = LDAP • 使用LDAP作為認證方式 <帳號名稱> Auth-Type := Local, <帳號驗證條件> 範例: nortel Auth-Type := Local, User-Password ==“es602” Service-Type = Administrative-User 設定使用者帳號nortel,其使用者密碼為es^02, 若使用者認證成功後,RADIUS則回傳授權屬性 Service-Type = Administrative-User
FreeRADIUS設定- proxy.conf 實驗 5:安裝及建置AAA Server • 記載當伺服器收到一個帳號的認證要求時,各個 realm 應該使用(被轉送至)哪些RADIUS伺服器進行處理。 • REALM (領域名稱) • 帳號所屬單位或是伺服器的辨識依據。 • 不區分大小寫。 • ldflag (平衡負載旗標) • FreeRADIUS支援在多個RADIUS之間的Load balancing及Redundancy機制。 • round_robin: 依序循環地選擇符合realm字串的RADIUS伺服器。(Load balancing) • fail_over: 符合realm字串的第一筆RADIUS伺服器,若該伺服器未能正常提供服務時,則由符合realm字串的第二筆記錄的伺服來認證。(Redundancy) • FreeRADIUS預設為fail_over。 • nostrip (不濾除realm字串) • Strip功能為FreeRADIUS收到帳號名稱時,濾除其realm名稱,以便後端模組進行帳號及密碼認證。 • FreeRADIUS預設為strip。 realm <REALM 名稱> { type = radius authhost= <認證伺服器IP>:<port> accthost = <計費伺服器IP>:<port> secret = <祕密金鑰> ldflag = <round_robin | fail_over> <nostrip> } LWC @ edu.tw realm Account
FreeRADIUS設定- proxy.conf-example 實驗 5:安裝及建置AAA Server • 當Local RADIUS收到由LWC@edu.tw的送出Access-Request封包後,比對後發現在proxy.conf有一筆realm記錄符合edu.tw時,則依照該記錄將Access-Request交給Proxy RADIUS驗證。採用round_robin平衡負載的策略和不去除realm的選項(nostrip)以避免Proxy RADIUS無法識別該LWC@edu.tw的帳號。以下是Local RADIUS伺服器的proxy.conf所記錄realm為edu.tw的記錄。 • realmedu.tw{ type = radius authhost = 140.125.32.240:1812 accthost = 140.125.32.240:1813 ldflag = round_robin nostrip }
FreeRADIUS 執行及測試 實驗 5:安裝及建置AAA Server • FreeRADIUS背景執行 • /usr/local/sbin/radiusd • FreeRADIUS除錯模式(emerge時USE旗標需設定) • /usr/local/sbin/radiusd –X • 認證測試工具radtest • radtest <帳號> <密碼> <認證伺服器 IP> <:PORT | 0> <密鑰> • 其它Windows測試工具 • ntradping • 若無法測試成功請檢查 Client.conf、users、proxy.conf及radiusd.conf檔案設定。
安裝FreeRADIUS與設定 實驗 5:安裝及建置AAA Server • 下列圖示按滑鼠右鍵選擇播放,Step by Step說明安裝過程。 • 影片的播放過程中出現綠框黑鍵時,影片將停留在那個畫面,並請點選它,以便影片繼續進行。
FreeRADIUS Configuration -Authentication 實驗 5:安裝及建置AAA Server • 在FreeRADIUS使用SQL記錄AAA的功能需求 • 先確定已完成FreeRADIUS的安裝與設定並啟用與MySQL Server的模組設定。 • 記錄於SQL資料庫中的使用者帳號與密碼。 • Select * From `radcheck` LIMIT 0,30; • 可在這個資料表(radcheck)新增使用者名稱、密碼。 • 記錄於SQL資料庫中使用者所在群組。 • Select * From `groupcheck` LIMIT 0,30; • 這個資料表可以分派使用者屬於那個群組。
FreeRADIUS Configuration - Authorization 實驗 5:安裝及建置AAA Server • 當使用者認證成功後,RADIUS將回傳的相關授權屬性,其中包含各群組的VLAN name。若對以下屬性、數值對有疑問的話,可以參考RFC2865。 • Select * From `radgroupreply` LIMIT 0,30 • 各NAS廠商對RADIUS支援度各有不同,所以在添購設備之前,建議先行調查。
FreeRADIUS – Accounting information 實驗 5:安裝及建置AAA Server ID 使用者帳號 領域位置 NAS IP位址 計時開始 計時結束 上傳流量 Session歷時 NAS實體位址 USER實體位址 計費中斷原因 下傳流量 USER IP
路由器設定 實驗 5:安裝及建置AAA Server • telnet 2600 • Configure terminal • interface FastEthernet0/0 • ip address 140.125.32.248 255.255.255.0 • ip nat outside • exit • interface FastEthernet0/1 • ip address 192.168.1.254 255.255.255.0 • ip nat inside • exit • ip route 0.0.0.0 0.0.0.0 140.125.32.254 • ip nat inside source list 1 interface FastEthernet0/0 overload • access-list 1 permit any • 由於我們的實驗在私有網域(Private Network)下進行,其網路拓墣需要使用一路由器,提供網路位址轉譯(Network Address Translation)之用。 • 使用兩個網路介面(Fa0/0、Fa0/1)、分別為inside、outside網路之用。 • 新增一「允許全部IP的ACL」至NAT位址轉譯的條件,主要目的為把由內往外的封包上的來源IP位址,偽裝成Fa0/0的IP位址。 • 該路由器的預設通訊閘為「140.125.32.254」。 • 左邊的設定為在Cisco 2600 Router上的設定。
交換器設定 實驗 5:安裝及建置AAA Server • telnet 3560 • Configure terminal • aaa new-model • aaa authentication dot1x default group radius • aaa authorization network default group radius • aaa accounting dot1x default start-stop group radius • radius-server host 140.125.32.6 auth-port 1812 acct-port 1813 key cisco • ip classless • ip route 0.0.0.0 0.0.0.0 192.168.1.1 • dot1x system-auth-control • interface FastEthernet0/7 • switchport mode access • dot1x pae authenticator • dot1x port-control auto • dot1x timeout reauth-period 6000 • dot1x reauthentication • dot1x auth-fail max-attempts 2 • spanning-tree portfast • 網路拓墣需要使用一交換器,提供使用者存取網路之用,並與RADIUS Server協同執行802.1x的存取控制。 • 實驗需架設RADIUS,所以我們在Linux平台上安裝FreeRADIUS套件;亦可在Window2000上安裝Cisco ACS套裝軟體。 • 本實驗採用中階的路由交換器網路設備(Cisco Switch 3560),該設備可以完全符合我們的實驗需求(Authentication、Authorization、Accounting的功能)。 • NAS與RADIUS通訊時使用的金鑰為「cisco」。 • 左邊的設定為在Cisco Switch 3560上的設定。
交換器: IEEE 802.1x 實驗 5:安裝及建置AAA Server • 以連接埠為基礎的網路存取控制(Port-Based Network Access Control)藉由身份認證,來增強安全性的不足。 • 當使用者欲存取Internet網路資源時,首先需經過認證伺服器(FreeRADIUS)的身份認證。當使用者與Switch處於Port Unauthorized狀態時,代表所有的資料將不能通過;唯有認證的封包才允許通行。直到認證成功後,狀態轉變成Port Authorized後,使用者此時才可使用網路資源。 • NAS若要完成該實驗,則需要支援兩種網路協定;一是EAP(802.1X)協定,另外則是RADIUS協定。
交換器設定(續) 實驗 5:安裝及建置AAA Server • interface Vlan1 • ip address 192.168.1.254 255.255.255.0 • interface Vlan2 • ip address 192.168.2.254 255.255.255.0 • interface Vlan3 • ip address 192.168.3.254 255.255.255.0 • ip dhcp pool dhcp-vlan-1 • network 192.168.1.0 255.255.255.0 • default-router 192.168.1.254 • dns-server 140.125.252.1 140.125.253.2 • ip dhcp pool forguest • network 192.168.2.0 255.255.255.0 • default-router 192.168.2.254 • dns-server 140.125.252.1 140.125.253.2 • ip dhcp pool foruser • network 192.168.3.0 255.255.255.0 • default-router 192.168.3.254 • dns-server 140.125.252.1 140.125.253.2 • 配置三個Virtual LAN • Vlan1 讓Switch、Router們獨立形成一區域網路。 • Vlan2 讓訪客存取的區域網路。 • Vlan3 讓使用者存取的區域網路。 • 啟用三個ip dhcp pool • dhcp-vlan-1 這個設定在本實驗並無太大用途,但它供一般VOIP Phone自動取得IP位址、IP遮罩、通訊閘、DNS資訊。 • forguest 讓訪客能自動取得IP位址、IP遮罩、通訊閘、DNS資訊。 • foruser 讓使用者能自動取得IP位址、IP遮罩、通訊閘、DNS資訊。
交換器設定(續) 實驗 5:安裝及建置AAA Server • ip access-list extended aclguest • permit tcp any any eq www • permit tcp any eq www any • permit udp any any eq bootps • permit udp any eq bootps any • permit udp any any eq domain • permit udp any eq domain any • vlan access-map guest_vlan 10 • action forward • match ip address aclguest • vlan filter guest_vlan vlan-list 2 • 我們將限制訪客存取網路資源的權限,只開放訪客能使用 • WWW – http protocol • Bootps – dhcp reguest • Domain – dns reguest • vlan filter guest_vlan vlan-list 2 • 2代表Vlan2的VLAN ID Number。
利用MySQL 模組記錄FreeRADIUS的資訊 實驗 5:安裝及建置AAA Server • 我們將在MySQL記錄FreeRADIUS的認證、授權設定與計費資訊。
利用MySQL 模組記錄FreeRADIUS的資訊 實驗 5:安裝及建置AAA Server • 當我們匯入db_mysql.sql後,裡面包含許多的資料表,其中 • usergroup • 記錄使用者屬於那個群組。 • 我們新增四筆帳號資訊。 • radcheck • 記錄使用者認證時所需的帳號與密碼。 • 我們新增四筆對應帳號的密碼資訊。 • radreply • 設定RADIUS該回應屬性數值對給使用者。(針對單一使用者)
利用MySQL 模組記錄FreeRADIUS的資訊 實驗 5:安裝及建置AAA Server • radgroupreply • 設定RADIUS該回應屬性數值對給群組。(針對群組內的使用者)
利用MySQL 模組記錄FreeRADIUS的資訊 實驗 5:安裝及建置AAA Server • radpostauth • 我們使用phpmyadmin套件來觀察記錄於radpostauth的認證資訊,該資料表包含id數值、使用者名稱、密碼、回應訊息、時戳欄位。
利用MySQL 模組記錄FreeRADIUS的資訊 實驗 5:安裝及建置AAA Server • radacct • 記錄計費資訊。 ID 使用者帳號 領域位置 NAS IP位址 計時開始 計時結束 上傳流量 Session歷時 NAS實體位址 USER實體位址 計費中斷原因 下傳流量 USER IP
最高層認證中心、客戶端與伺服端之憑證製作: CA階層信任模型 實驗 5:安裝及建置AAA Server • 憑證 憑證(Certificate)是附上憑證所有人(Owner)的資料(公司名稱、伺服器名稱、個人真實姓名、E-mail、通訊地址等資料),並在後面附上有數位簽章的個人公鑰(Public Key)。憑證上會附有幾個數位簽章,代表這些簽名的單位,已嚴格檢驗擁有這個Public Key的所有人的個人資料與憑證相符,沒有假造。 • 認證中心 認證中心(Certificate Authority, CA)也是一種憑證,上面附有認證中心的資料,主要用以簽發憑證使用,證明憑證所有人和憑證上所記載的資料相符。 • 最高層認證中心 最高層認證中心(Root CA)也是認證中心的一種,與一般認證中心的差別是它不會直接簽發憑證,而是授權給中間的認證中心,讓這些中間的認證中心簽發憑證給用戶。 • 在X.509中,每個合格的憑證皆會有一個簽名,在最下層的憑證(Certificate)上,會有認證中心(CA)的簽名,代表認證中心(CA)檢查過該名使用者的資料;中間的認證中心(CA),也會有管轄它的最高層認證中心(Root CA),代表最高層認證中心授權給它。由於最高層認證中心位處金字塔最頂層,所以無人能簽署,只能自己簽自己。 Root CA CA CA CA Certificate Certificate Certificate Certificate SSL採用的是X.509,由上往下階層式的憑證制度
最高層認證中心、客戶端與伺服端之憑證製作: CA階層信任模型 實驗 5:安裝及建置AAA Server • 我們將使用OpenSSL製作出PEAP所需要的憑證。 • Root CA Certificate • Client Certificate • Server Certificate • 我們將安裝Root CA的憑證與帶有Private Key的Client憑證至WindowXP中。 Root CA (NYUST_CNL_ADM) Server (forDOT1X) Client (es602) 本實驗需建立的憑證。 Root CA的憑證 Client的附有私鑰的憑證
最高層認證中心、客戶端與伺服端之憑證製作與設定最高層認證中心、客戶端與伺服端之憑證製作與設定 實驗 5:安裝及建置AAA Server • 下列圖示按滑鼠右鍵選擇播放,Step by Step說明安裝過程。 • 影片的播放過程中出現綠框黑鍵時,影片將停留在那個畫面,並請點選它,以便影片繼續進行。
在WindowXP安裝客戶端憑證與設定PEAP 實驗 5:安裝及建置AAA Server • 下列圖示按滑鼠右鍵選擇播放,Step by Step說明安裝過程。
參考資料 實驗 5:安裝及建置AAA Server • FreeRADIUS安裝與管理 國家高速網路與計算中心/唐可忠 • http://www.freeradius.org/ • http://wiki.freeradius.org/Main_Page • http://wlanrc.nchc.org.tw/index1-1.html • HOWTO: EAP-TLS Setup for FreeRADIUS and Windows XP Supplicant • RFC 2865, Remote Authentication Dial In User Service (RADIUS) • IEEE 802.1x Multi-Domain Authentication on Cisco Catalyst Layer 3 Fixed Configuration Switches Configuration Example • 「Configuring 802.1X Port-Based Authentication」, Cisco • 「Combined Avaya and Cisco QoS Strategy」, Cisco • 「Configuring VLAN ACLs」, Cisco