34
國國國國國國國國 國國國 國國國國 國國 5: 國國國國國 AAA Server

實驗 5: 安裝及建置 AAA Server

  • Upload
    henry

  • View
    119

  • Download
    7

Embed Size (px)

DESCRIPTION

實驗 5: 安裝及建置 AAA Server. 實驗目的. 本實驗需安裝與建置 AAA Server ,我們使用 Open Source 套件 –FreeRADIUS 來完成 AAA 協議的三項功能。 Authentication 採用 802.1x 控制 User 未經授權之前,無法使用網路資源。 認證協定使用 PEAP (Protected EAP) 。 Authorization - PowerPoint PPT Presentation

Citation preview

Page 1: 實驗  5: 安裝及建置 AAA Server

國立雲林科技大學自由軟體研發中心

實驗 5: 安裝及建置 AAA Server

Page 2: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

2國立雲林科技大學 自由軟體研發中心

實驗目的

本實驗需安裝與建置 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 的計費記錄資訊。

User NAS AAAServer

Authentication Request on EAPoL or EAPoW RADIUS

Authentication Request

RADIUS Authentication Response & Authorization

Accounting Start Request

Accounting Start Response

Authentication Response on EAPoL or EAPoW

Accounting Stop Request

Accounting Stop Response

Get IP Addr.

Logout

Enjoy!

Page 3: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

3國立雲林科技大學 自由軟體研發中心

實驗目的

本實驗所需的網路拓墣如上。 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 分別在不同的網域。

Fa0/24

Fa0/1

Fa0/0

Fa0/7Vlan 3

Vlan 2

FreeRADIUS140.125.32.6

Realm: cnl.yuntech.edu.tw

Cisco Router 2600

Cisco Catalyst 3560 Switch

User

Guest

Group Username VLANguest guest 2user lwc 3

Vlan 1

Page 4: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

4國立雲林科技大學 自由軟體研發中心

實驗流程 本實驗大致上可分為下列幾個部份

1) FreeRADIUS 安裝與設定2) 路由器設定3) 交換器設定4) 利用 MySQL 模組記錄 FreeRADIUS 的資訊5) 最高層認證中心、客戶端與伺服端之憑證製作6) 在 WindowXP 安裝客戶端憑證與設定 PEAP

Page 5: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

5國立雲林科技大學 自由軟體研發中心

FreeRADIUS 安裝與設定 RADIUS 介紹 FreeRADIUS 介紹 FreeRADIUS 安裝 FreeRADIUS 設定 FreeRADIUS 執行與測試

圖片來源:國家高速網路與計算中心

Page 6: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

6國立雲林科技大學 自由軟體研發中心

RADIUS 介紹 遠端用撥入驗證服務 (Remote Access Dial In U

ser Service) 的應用場合通常有 撥接用戶撥入身份認證 有線、無線網路存取身份認證 其它網路設備管理者登入認證

它具備 AAA 功能 : 驗證 (Authentication)

你是誰 ? 授權 (Authorization)

允許你能使用那些服務 ? 計費 (Accounting)

使用服務後付費 採用 UDP 封包做為傳輸協定,標準認證使用的通訊埠為 1812 、計費使用的通訊埠為 1813 。 運作流程 ( 如左圖所示 ) :

使用者向網路設備 (NAS) 提出存取要求, NAS則傳送一目地埠為 1812 的 UDP 封包至本地 RADIUS 伺服器,若該使用者屬於漫遊身份時,則將由其它 RADIUS 伺服器代理驗證並回傳驗證結果至 NAS 。 NAS 依驗證結果授權使用者是否可以使用網路資源。

User

存取要求

NAS

LocalRADIUS

OtherRADIUS

身份驗證

驗證轉送驗證結果

驗證結果

授權回應

Page 7: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

7國立雲林科技大學 自由軟體研發中心

FreeRADIUS 介紹 在眾多的 RADIUS 軟體中,認證機制的支援度最高、功能性最強大。 Open Source 專案,據統計目前約有 5 萬的軟體開發者。 支援的作業系統

Linux 、 AIX 、 Cygwin 、 FreeBSD 、 HP-UX 、 Mac OSX 、 NetBSD 、 OpenBSD 、OSF/Unix 、 Solaris

支援的硬體平台 IA-64 (Itanium & Itanium2) 、 PPC (IBM P

OWER & 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/

PAP/CHAP PEAP TTLS

FreeRADIUS V V V

GNU RADIUS V X X

Merit RADIUS V X X

M$ IAS V V X

Ci$co ACS V V X

Page 8: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

8國立雲林科技大學 自由軟體研發中心

FreeRADIUS 安裝 左圖為 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

# emerge --sync# USE=“mysql ssl” emerge freeradius

/* 於 /etc/raddb 目錄下的幾個重要設定檔 */

radiusd.conf /* 主要系統設定檔 : 認證協定模組啟用或停用設在 此設定 */

client.conf /* 認證客戶端設定檔 */

proxy.conf /* 認證轉送設定檔 */

users /* 本地帳號及處理方式設定檔 */

Page 9: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

9國立雲林科技大學 自由軟體研發中心

FreeRADIUS 設定 系統運作流程

程式啟動 : 讀取 radiusd.conf 系統設定 UDP 1812/1813

收到認證請求 (Access-Request) 封包 比對 client.conf 的認證來源設定

若該請求為合法用戶時,則比對領域名稱 (Realm) ,決定認證處理方式 比對 proxy.conf 的領域名稱設定 有相同的 realm 設定

使用 proxy.conf 中所設定的處理方式由其它 RADIUS 代理認證 無相同的 realm 設定

使用 users 中所設定的預設處理方式比對 users 中的帳號與金鑰

radiusd.conf

程式啟動

client.conf

來源檢查

proxy.conf

領域判斷

users

身份驗證

收到認證請求Access-Request

合法用戶

帳號/金鑰管理中心

由其它RADIUS Server代理認證

UNIX shadow/passwdSQL Server

LDAP

非本地帳號

回覆認證失敗Access-Reject

回覆認證成功 Access-Accept授權相關屬性

fail success

本地帳號

Page 10: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

10國立雲林科技大學 自由軟體研發中心

FreeRADIUS 設定 - radiusd.conf

主要的 FreeRADIUS 系統設定檔,系統啟動時會讀取這個檔案,用以決定執行時的功能及運作方式。 user = radiusd

執行時身份為 radiusd group = radiusd

執行時群族為 radiusd bind_address = *

* 代表監視所有的網路介面 port = 0

使用預設的 1812/1813 proxy_requests = yes

啟用 proxy RADIUS Server 代理認證 其它的設定可參考 radiusd.conf檔,內有詳細的參數說明。

Page 11: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

11國立雲林科技大學 自由軟體研發中心

FreeRADIUS 設定 - client.conf

Client 通常是要求認證的網路設備, clients.conf 處理與 Client 端相關的設定 ( 如左所示 ) ,所有合法的 IP 位址或網段都必須記錄在這個檔案之中,若無記錄則視為非法客戶則不提供認證服務。

Client < IP Address>{secret = < 祕密金鑰 >Shortname = < 名稱 >nastype = <NAS 型別 >

}

網路設備 outgoing_switch, IP ADDRESS 為140.125.32.1 與 RADIUS SERVER 的通訊祕密金錀為 es602, nastype 為 other 。Client 140.125.32.1 {

secret = es602Shortname = wire_802dot1Xnastype = other

}

Client < IP Address 網段 >{secret = < 祕密金鑰 >Shortname = < 名稱 >nastype = <NAS 型別 >

}

UserNAS

140.125.32.1

FreeRADIUS140.125.32.6

Client Server

Internet

Client 127.0.0.1 {secret = es602Shortname = localhostnastype = other

}

Page 12: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

12國立雲林科技大學 自由軟體研發中心

FreeRADIUS 設定 - users

設定認證帳號的處理方式 DEFAULT Auth-Type = System

使用系統帳號 DEFAULT Auth-Type = Local

使用 users檔案中的帳號 DEFAULT Auth-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

Page 13: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

13國立雲林科技大學 自由軟體研發中心

FreeRADIUS 設定 - proxy.conf

記載當伺服器收到一個帳號的認證要求時,各個 realm 應該使用 (被轉送至 )哪些 RADIUS 伺服器進行處理。

REALM (領域名稱 ) 帳號所屬單位或是伺服器的辨識依據。 不區分大小寫。

ldflag ( 平衡負載旗標 ) FreeRADIUS 支援在多個 RADIUS 之間的

Load balancing 及 Redundancy 機制。 round_robin: 依序循環地選擇符合 realm字串的 RADIUS 伺服器。 (Load balancing) fail_over: 符合 realm字串的第一筆 RADIU

S 伺服器,若該伺服器未能正常提供服務時,則由符合 realm 字串的第二筆記錄的伺服來認證。 (Redundancy) FreeRADIUS 預設為 fail_over 。

nostrip ( 不濾除 realm字串 ) Strip 功能為 FreeRADIUS收到帳號名稱時,濾除其 realm 名稱,以便後端模組進行帳號及密碼認證。 FreeRADIUS 預設為 strip 。

realm <REALM 名稱 > {type = radiusauthhost= < 認證伺服器 IP>:<port

>accthost = < 計費伺服器 IP>:<port

>secret = < 祕密金鑰 >ldflag = <round_robin | fail_over><nostrip>

} LWC @ edu.tw

realmAccount

Page 14: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

14國立雲林科技大學 自由軟體研發中心

FreeRADIUS 設定 - proxy.conf-example

當 Local RADIUS收到由 [email protected] 的送出 Access-Request 封包後,比對後發現在 proxy.conf 有一筆 realm 記錄符合 edu.tw 時,則依照該記錄將 Access-Request 交給 Proxy RADIUS 驗證。採用 round_robin平衡負載的策略和不去除 realm 的選項 (nostrip) 以避免 Proxy RADIUS 無法識別該 [email protected] 的帳號。以下是 Local RADIUS 伺服器的 proxy.conf 所記錄 realm 為 edu.tw 的記錄。

realm edu.tw{type = radiusauthhost = 140.125.32.240:1812accthost = 140.125.32.240:1813ldflag = round_robinnostrip

}

RoamingUser

NAS140.125.32.1

Local RADIUS140.125.32.6

Realm:yuntech.edu.tw

Client Server

Internet

[email protected]

Proxy RADIUS140.125.32.240Realm: edu.tw

Page 15: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

15國立雲林科技大學 自由軟體研發中心

FreeRADIUS 執行及測試 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檔案設定。

# /etc/init.d/radiusd start* Starting radiusd … [ ok ]# radtest nortel es602 localhost 0 es602 Sending Access-Request of id 178 to 127.0.0.1 port 1812 User-Name = "nortel" User-Password = "es602" NAS-IP-Address = 255.255.255.255 NAS-Port = 0rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=178, length=26 Service-Type = Administrative-User# radtest [email protected] es602 localhost 0 es602Sending Access-Request of id 178 to 127.0.0.1 port 1812 User-Name = "nortel" User-Password = "es602" NAS-IP-Address = 255.255.255.255 NAS-Port = 0rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=178, length=26 Service-Type = Administrative-User# radtest [email protected] failpasswd localhost 0 es602Sending Access-Request of id 202 to 127.0.0.1 port 1812 User-Name = "[email protected]" User-Password = "failpasswd" NAS-IP-Address = 255.255.255.255 NAS-Port = 0Re-sending Access-Request of id 202 to 127.0.0.1 port 1812 User-Name = "[email protected]" User-Password = "failpasswd" NAS-IP-Address = 255.255.255.255 NAS-Port = 0rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=202, length=20#

Page 16: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

16國立雲林科技大學 自由軟體研發中心

安裝 FreeRADIUS 與設定 下列圖示按滑鼠右鍵選擇播放, Step by Step說明安裝過程。 影片的播放過程中出現綠框黑鍵時,影片將停留在那個畫面,並請點選它,以便影片繼續進行。

Page 17: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

17國立雲林科技大學 自由軟體研發中心

在 FreeRADIUS 使用 SQL 記錄 AAA 的功能需求 先確定已完成 FreeRADIUS 的安裝與設定並啟用與 MySQL Server 的模組設定。

記錄於 SQL 資料庫中的使用者帳號與密碼。 Select * From `radcheck` LIMIT 0,30; 可在這個資料表 (radcheck) 新增使用者名稱、密碼。

記錄於 SQL 資料庫中使用者所在群組。 Select * From `groupcheck` LIMIT 0,30; 這個資料表可以分派使用者屬於那個群組。

FreeRADIUS Configuration -Authentication

id Username Attribute op Value

1 es602 User-Password := es^02

2 cloudchi User-Password := cloudz

3 guest User-Password := guest

4 lwc User-Password := 12321

Username GroupName Priority

es602 foruser 1

guest forguest 1

lwc forguest 1

cloudchi foruser 1

Page 18: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

18國立雲林科技大學 自由軟體研發中心

FreeRADIUS Configuration - Authorization

當使用者認證成功後, RADIUS 將回傳的相關授權屬性,其中包含各群組的 VLAN name 。若對以下屬性、數值對有疑問的話,可以參考RFC2865 。 Select * From `radgroupreply` LIMIT 0,30

各NAS廠商對RADIUS支援度各有不同,所以在添購設備之前,建議先行調查。id Groupname Attribute op Value 說明

1 foruser Auth-Type := Local 認證採用的方式。2 foruser Service-Type := Framed-User 用戶需要什麼服務或是能提供什麼服務 ?

3 foruser Framed-IP-Address := 255.255.255.254 設定用戶的 IP位址。4 foruser Framed-IP-Netmask := 255.255.255.0 設定用戶的網路遮罩。5 foruser Tunnel-Type:1 := VLAN 分派 VLAN 使用6 foruser Tunnel-Medium-Type:1 := IEEE-802 分派 VLAN 使用7 foruser Tunnel-Private-Group-ID:1 := foruser 分派 VLAN 使用8 foruser Cisco-AVPair:1 := ip:addr-pool=foruser 指定 dhcp ip pool

9 foruser Session-Timeout := 0 會議期限 (Secs)

10 forguest Auth-Type := Local 認證採用的方式。11 forguest Service-Type := Framed-User 用戶需要什麼服務或是能提供什麼服務 ?

12 forguest Framed-IP-Address := 255.255.255.254 設定用戶的 IP位址。13 forguest Framed-IP-Netmask := 255.255.255.0 設定用戶的網路遮罩。14 forguest Tunnel-Type:1 := VLAN 分派 VLAN 使用15 forguest Tunnel-Medium-Type:1 := IEEE-802 分派 VLAN 使用16 forguest Tunnel-Private-Group-ID:1 := forguest 分派 VLAN 使用17 forguest Cisco-AVPair:1 := ip:addr-pool=forguest 指定 dhcp ip pool

18 forguest Session-Timeout := 0 會議期限 (Secs)

Page 19: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

19國立雲林科技大學 自由軟體研發中心

FreeRADIUS – Accounting information

ID 使用者帳號 領域位置 NAS IP位址

計時開始 計時結束 Session歷時 上傳流量

下傳流量 NAS 實體位址 USER IPUSER 實體位址 計費中斷原因

Page 20: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

20國立雲林科技大學 自由軟體研發中心

路由器設定1) telnet 26002) Configure terminal3) interface FastEthernet0/04) ip address 140.125.32.248 255.255.255.05) ip nat outside6) exit7) interface FastEthernet0/18) ip address 192.168.1.254 255.255.255.09) ip nat inside10) exit11) ip route 0.0.0.0 0.0.0.0 140.125.32.25412) ip nat inside source list 1 interface FastEthernet0/0

overload13) 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.25

4」。 左邊的設定為在 Cisco 2600 Router 上的設定。

LWC Cisco 3560 Switch FreeRADIUS140.125.32.6

Realm: cnl.yuntech.edu.tw

Cisco Router 2600NAT

140.125.32.248

PEAP Fa0/0Fa0/1Fa0/24Fa0/7

Page 21: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

21國立雲林科技大學 自由軟體研發中心

交換器設定1) telnet 35602) Configure terminal3) aaa new-model4) aaa authentication dot1x default group radius5) aaa authorization network default group radius 6) aaa accounting dot1x default start-stop group radius7) radius-server host 140.125.32.6 auth-port 1812 acc

t-port 1813 key cisco

8) ip classless9) ip route 0.0.0.0 0.0.0.0 192.168.1.1

10) dot1x system-auth-control11) interface FastEthernet0/712) switchport mode access13) dot1x pae authenticator14) dot1x port-control auto15) dot1x timeout reauth-period 600016) dot1x reauthentication17) dot1x auth-fail max-attempts 218) spanning-tree portfast

網路拓墣需要使用一交換器,提供使用者存取網路之用,並與 RADIUS Server 協同執行 802.1x 的存取控制。 實驗需架設 RADIUS ,所以我們在 Linux平台上安裝 FreeRADIUS 套件;亦可在 W

indow2000 上安裝 Cisco ACS 套裝軟體。 本實驗採用中階的路由交換器網路設備 (C

isco Switch 3560) ,該設備可以完全符合我們的實驗需求 (Authentication 、 Authorization 、 Accounting 的功能 ) 。

NAS 與 RADIUS 通訊時使用的金鑰為「 cisco」。

左邊的設定為在 Cisco Switch 3560 上的設定。

LWC Cisco 3560 Switch FreeRADIUS140.125.32.6

Realm: cnl.yuntech.edu.tw

Cisco Router 2600NAT

140.125.32.248

PEAP Fa0/0Fa0/1Fa0/24Fa0/7

Page 22: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

22國立雲林科技大學 自由軟體研發中心

交換器 : IEEE 802.1x

PHY PHY PHY

MACMACMAC

EAPOL EAPOL IP

UDP

RADIUS

EAP-MD5PEAPLEAP

.

.EAP-TTLSEAP-TLS

EAP-MD5PEAPLEAP

.

.EAP-TTLSEAP-TLS

PHY

MAC

IP

UDP

RADIUS

EAP

以連接埠為基礎的網路存取控制 (Port-Based Network Access Control) 藉由身份認證,來增強安全性的不足。

當使用者欲存取 Internet 網路資源時,首先需經過認證伺服器 (FreeRADIUS) 的身份認證。當使用者與 Switch處於 Port Unauthorized 狀態時,代表所有的資料將不能通過;唯有認證的封包才允許通行。直到認證成功後,狀態轉變成 Port Authorized 後,使用者此時才可使用網路資源。

NAS 若要完成該實驗,則需要支援兩種網路協定;一是 EAP(802.1X) 協定,另外則是 RADIUS 協定。

SupplicantPAE

Service OfferedBy Authenticator

AuthenticationPAE

AuthenticationServer

Authentication ServerAuthenticatorSupplicant

Controlled Port Uncontrolled Port

MAC Enable

LAN

Page 23: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

23國立雲林科技大學 自由軟體研發中心

交換器設定 (續 )

19) interface Vlan120) ip address 192.168.1.254 255.255.255.021) interface Vlan222) ip address 192.168.2.254 255.255.255.023) interface Vlan324) ip address 192.168.3.254 255.255.255.0

25) ip dhcp pool dhcp-vlan-126) network 192.168.1.0 255.255.255.027) default-router 192.168.1.254 28) dns-server 140.125.252.1 140.125.253.229) ip dhcp pool forguest30) network 192.168.2.0 255.255.255.031) default-router 192.168.2.254 32) dns-server 140.125.252.1 140.125.253.2 33) ip dhcp pool foruser34) network 192.168.3.0 255.255.255.035) default-router 192.168.3.254 36) 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 資訊。

LWC Cisco 3560 Switch FreeRADIUS140.125.32.6

Realm: cnl.yuntech.edu.tw

Cisco Router 2600NAT

140.125.32.248

PEAP Fa0/0Fa0/1Fa0/24Fa0/7

Page 24: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

24國立雲林科技大學 自由軟體研發中心

交換器設定 (續 )

37) ip access-list extended aclguest38) permit tcp any any eq www39) permit tcp any eq www any40) permit udp any any eq bootps41) permit udp any eq bootps any42) permit udp any any eq domain43) permit udp any eq domain any

44) vlan access-map guest_vlan 1045) action forward46) match ip address aclguest47) 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 。

LWC Cisco 3560 Switch FreeRADIUS140.125.32.6

Realm: cnl.yuntech.edu.tw

Cisco Router 2600NAT

140.125.32.248

PEAP Fa0/0Fa0/1Fa0/24Fa0/7

Page 25: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

25國立雲林科技大學 自由軟體研發中心

利用 MySQL 模組記錄 FreeRADIUS的資訊# emerge mysql# mysql -uroot -prootpass radius < db_mysql.sql# vi /etc/raddb/sql.conf /* 只列表需更動的地方 */

server = "localhost" login = "root" password = “abcde“

sql_user_name = "%{Stripped-User-Name:-%{User-Name:-DEFAULT}}# vi /etc/raddb/radiusd.conf authorise { preprocess chap mschap #counter #attr_filter #eap suffix sql #files #etc_smbpasswd } authenticate { authtype PAP { pap } authtype CHAP { chap } authtype MS-CHAP{ mschap } #pam #unix #authtype LDAP { ldap } }

我們將在 MySQL 記錄 FreeRADIUS 的認證、授權設定與計費資訊。 /* 只列表需更動的地方 */

preacct { preprocess suffix #files } accounting { acct_unique detail #counter unix sql radutmp #sradutmp } session { radutmp }

Page 26: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

26國立雲林科技大學 自由軟體研發中心

利用 MySQL 模組記錄 FreeRADIUS的資訊# mysql -uroot -pabcde -h localhostmysql> use radius Database changedmysql> select * from usergroup;+---------- +----------- +----------+| UserName | GroupName | priority |+---------- +----------- +----------+| es602 | user | 1 || guest | forguest | 1 || lwc | foruser | 1 || cloudchi | user | 1 |+---------- + -----------+ ----------+4 rows in set (0.00 sec)mysql> select * from radcheck;+----+---------- +--------------- +---- + --------+| id | UserName | Attribute | op | Value |+----+---------- +--------------- +---- +--------+| 2 | cloudchi | User-Password | := | cloudz || 1 | es602 | User-Password | := | es^02 || 3 | guest | User-Password | := | guest || 4 | lwc | User-Password | := | 12321 |+---+ ----------+ ---------------+----+ --------+4 rows in set (0.00 sec)

mysql> select * from radreply;Empty set (0.00 sec)

當我們匯入 db_mysql.sql 後,裡面包含許多的資料表,其中 usergroup

記錄使用者屬於那個群組。 我們新增四筆帳號資訊。

radcheck 記錄使用者認證時所需的帳號與密碼。 我們新增四筆對應帳號的密碼資訊。

radreply 設定 RADIUS 該回應屬性數值對給使用者。 (針對單一使用者 )

Page 27: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

27國立雲林科技大學 自由軟體研發中心

利用 MySQL 模組記錄 FreeRADIUS的資訊mysql> select * from radgroupreply;;+----+----------- +--------------------------- +----+----------------------- +| id | GroupName | Attribute | op | Value |+----+----------- +--------------------------- +----+----------------------- +| 1 | forguest | Auth-Type | := | Local || 2 | forguest | Service-Type | := | Framed-User || 3 | forguest | Framed-IP-Address | := | 255.255.255.254 || 4 | forguest | Framed-IP-Netmask | := | 255.255.255.0 || 5 | forguest | Tunnel-Type:1 | := | VLAN || 6 | forguest | Tunnel-Medium-Type:1 | := | IEEE-802 || 7 | forguest | Tunnel-Private-Group-ID:1 | := | forguest || 8 | forguest | Cisco-AVPair:1 | := | ip:addr-pool=forguest || 9 | forguest | Session-Timeout | := | 0 || 10 | foruser | Auth-Type | := | Local || 11 | foruser | Service-Type | := | Framed-User || 12 | foruser | Framed-IP-Address | := | 255.255.255.254 || 13 | foruser | Framed-IP-Netmask | := | 255.255.255.0 || 14 | foruser | Tunnel-Type:1 | := | VLAN || 15 | foruser | Tunnel-Medium-Type:1 | := | IEEE-802 || 16 | foruser | Tunnel-Private-Group-ID:1 | := | foruser || 17 | foruser | Cisco-AVPair:1 | := | ip:addr-pool=foruser || 18 | foruser | Session-Timeout | := | 0 |+----+ -----------+ ---------------------------+----+ -----------------------+21 rows in set (0.00 sec)

radgroupreply 設定 RADIUS 該回應屬性數值對給群組。 (針對群組內的使用者 )

Page 28: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

28國立雲林科技大學 自由軟體研發中心

利用 MySQL 模組記錄 FreeRADIUS的資訊 radpostauth

我們使用 phpmyadmin 套件來觀察記錄於 radpostauth 的認證資訊,該資料表包含 id數值、使用者名稱、密碼、回應訊息、時戳欄位。

Page 29: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

29國立雲林科技大學 自由軟體研發中心

利用 MySQL 模組記錄 FreeRADIUS的資訊 radacct

記錄計費資訊。ID 使用者帳號 領域位置 NAS IP位址

計時開始 計時結束 Session歷時 上傳流量

下傳流量 NAS 實體位址 USER IPUSER 實體位址 計費中斷原因

Page 30: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

30國立雲林科技大學 自由軟體研發中心

最高層認證中心、客戶端與伺服端之憑證製作 : CA階層信任模型 憑證

憑證 (Certificate) 是附上憑證所有人 (Owner) 的資料 (公司名稱、伺服器名稱、個人真實姓名、 E-mail 、通訊地址等資料 ) ,並在後面附上有數位簽章的個人公鑰 (Public Key) 。憑證上會附有幾個數位簽章,代表這些簽名的單位,已嚴格檢驗擁有這個 Public Key 的所有人的個人資料與憑證相符,沒有假造。

認證中心認證中心 (Certificate Authority, CA) 也是一種憑證,上面附有認證中心的資料,主要用以簽發憑證使用,證明憑證所有人和憑證上所記載的資料相符。

最高層認證中心最高層認證中心 (Root CA)也是認證中心的一種,與一般認證中心的差別是它不會直接簽發憑證,而是授權給中間的認證中心,讓這些中間的認證中心簽發憑證給用戶。

在 X.509 中,每個合格的憑證皆會有一個簽名,在最下層的憑證 (Certificate) 上,會有認證中心(CA) 的簽名,代表認證中心 (CA)檢查過該名使用者的資料;中間的認證中心 (CA) ,也會有管轄它的最高層認證中心 (Root CA) ,代表最高層認證中心授權給它。由於最高層認證中心位處金字塔最頂層,所以無人能簽署,只能自己簽自己。

Root CA

CACA

CA

Certificate CertificateCertificate

Certificate

SSL 採用的是 X.509 ,由上往下階層式的憑證制度

Page 31: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

31國立雲林科技大學 自由軟體研發中心

最高層認證中心、客戶端與伺服端之憑證製作 : CA階層信任模型 我們將使用 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 的附有私鑰的憑證

Page 32: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

32國立雲林科技大學 自由軟體研發中心

最高層認證中心、客戶端與伺服端之憑證製作與設定 下列圖示按滑鼠右鍵選擇播放, Step by Step說明安裝過程。 影片的播放過程中出現綠框黑鍵時,影片將停留在那個畫面,並請點選它,以便影片繼續進行。

Page 33: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

33國立雲林科技大學 自由軟體研發中心

在 WindowXP 安裝客戶端憑證與設定PEAP

下列圖示按滑鼠右鍵選擇播放, Step by Step說明安裝過程。

Page 34: 實驗  5: 安裝及建置 AAA Server

實驗 5:安裝及建置AAA Server

34國立雲林科技大學 自由軟體研發中心

參考資料 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 Configurati

on Example 「 Configuring 802.1X Port-Based Authentication」 , Cisco 「 Combined Avaya and Cisco QoS Strategy」 , Cisco 「 Configuring VLAN ACLs」 , Cisco