ยินดีต้อนรับสู่ show running-config ครับ

บล็อก show running-config นี้สร้างไว้เพื่อเป็นแหล่งรวบรวมเทคนิคการตั้งค่าอุปกรณ์เครือข่าย Cisco ไม่ว่าจะเป็น Cisco IOS Router, Cisco Catalyst Swtich, Cisco ASA Firewall, Cisco Mars เป็นต้น รวมทั้งอาจจะมีเทคนิคการตั้งค่าอุปกรณ์ในยี่ห้ออื่น ๆ บ้างเล็กน้อยครับ

ซึ่งบทความในบล็อกนี้ก็จะรวบรวมมาจากประสบการณ์ส่วนตัวของกระผมเองครับ (หากมีข้อผิดพลาดก็ขออภัยไว้ล่วงหน้าเลยละกันนะครับ) และก็อยากใช้พื้นที่แห่งนี้เป็นแหล่งในการแลกเปลี่ยนความรู้ รวมไปถึงวิธีการหรือเทคนิคการตั้งค่าอุปกรณ์เครือข่าย กับทุก ๆ คนครับ

Friday, November 5, 2010

ใช้การพิสูจน์ตัวตนบนอุปกรณ์ร่วมกับ AAA Server

aaa authen

           สวัสดีครับเพื่อน ๆ ในวันนี้ผมก็มีเทคนิคมาแบ่งบันกันเช่นเคยครับ สำหรับผมในการเก็บ username และ password ที่ใช้งานกับอุปกรณ์เครือข่าย ในสมัยก่อนผมก็จะเก็บรายชื่อไว้บนแต่ละตัวอุปกรณ์ (Local) ซึ่งจะต้องทำการตั้งค่า username และ password บนอุปกรณ์ทุก ๆ ตัว มันก็สามารถทำงานได้อยู่ครับเพียงแต่ ถ้าวันนึงเราต้องการที่จะแก้ไขรายระเอียดต่าง ๆ เช่น ต้องการเพิ่ม user เข้าไป หรือต้องการเปลี่ยน password ของผู้ใช้ ก็จะต้องไปแก้ไขการตั้งค่าบนตัวอุปกรณ์ทุก ๆ ตัวใช่มั้ยครับ (ในกรณีที่ไม่มีการใช้ CiscoWork) ซึ่งจะเสียเวลาในการทำงานเป็นอย่างมากในกรณีที่มีอุปกรณ์เครือข่ายเป็นจำนวนมาก ในวันนี้ผมจึงอยากที่จะแนะนำวิธีการที่จะใช้ในการจัดเก็บรายชื่อผู้ใช้อีกวิธีนึงครับ ซึ่งก็คือการใช้งาน AAA Server นั่นเองครับ

           เมื่อเราตั้งค่าการพิสูจน์ตัวตนบนอุปกรณ์เครือข่ายไปใช้ AAA Server แล้ว ทีนี้การจัดการ username และ password ก็จะสามารถทำได้จากศูนย์กลางได้ครับ ถ้าต้องการที่จะแก้ไขรายละเอียดต่าง ๆ ของผู้ใช้ เราก็เข้าไปแก้บน AAA Server ที่เดียว ซึ่งทำให้สะดวกต่อการจัดการมากยิ่งขึ้นใช่มั้ยครับ

          สำหรับ AAA Server ที่ผมใช้ก็คือ Cisco ACS Server (บทความ:เริ่มต้นใช้งาน ACS Server For Window) ซึ่งรองรับการใช้โปรโตคอลทั้ง Radius และ Tacacs+ ครับ แต่เพื่อน ๆ ก็สามารถใช้งานร่วมกับ Radius Server หรือ Tacacs+ Server ในแบบอื่น ๆ ก็ได้นะครับ ไม่จำเป็นจะต้องใน Cisco ACS เสมอไป

         ในการตั้งค่าการพิสูจน์ตัวตนบนอุปกณ์เครือข่ายร่วมกับ AAA Server นั้น สามารถที่จะนำไปใช้ได้หลายรูปแบบ เช่นใช้กับผู้ใช้ของ Cisco VPN Client to Site, ใช้กับการพิสูจน์ตัวตนบนบน point-to-point เช่น pap หรือ chap, ใช้ร่วมกับการตั้งค่า 802.1x, ใช้ในการพิสูจน์ตัวตนผู้ใช้เมื่อต้องการเข้าถึงตัวอุปกรณ์เครือข่าย เป็นต้น แต่ตัวอย่างในวันนี้จะเป็นการใช้งาน AAA Server กับการพิสูจน์ตัวตนผู้ใช้เมื่อต้องการเข้าถึงตัวอุปกรณ์ครับ

          เอาล่ะครับเรามาเริ่มกันเลยดีกว่านะครับ สำหรับในขั้นแรก เราก็ต้องเปิดการทำงานของ AAA โดยใช้คำสั่ง “aaa new-model” ในอุปกรณ์ของเราก่อนนะครับ จากนั้นจึงทำการระบุรายละเอียดของ AAA Server ที่จะใช้ครับ ซึ่งในตัวอย่างนี้ผมจะใช้เป็น Radius นะครับ

ตัวอย่าง

Router(config)#aaa new-model
Router(config)#radius-server host 192.168.1.10 auth-port 1812 acct-port 1813 key cisco123

          ในตัวอย่างนี้ผมใช้ radius server ที่มี ip address เป็น 192.168.1.10 ส่วนการตั้งค่าหมายเลขพอร์ต radius ที่จะใช้งานนั้น โดย default บนอุปกรณ์จะใช้พอร์ต UDP 1645 และ 1646 ในการทำงาน ซึ่งเป็นหมายเลขพอร์ตของ radius server แบบไม่เป็นทางการ (อ้างอิง:en.wikipedia.org/wiki/RADIUS) ซึ่งแบบที่เป็นทางการนั้นจะใช้หมายเลขพอร์ต UDP 1812 และ 1813 ตามตัวอย่างการตั้งค่า จากนั้นก็ทำการกำหนด key ที่จะใช้ในการติดต่อสื่อสารกับ Server โดยที่บน Server ก็จะต้องทำการตั้งค่า key ให้ตรงกันด้วย

          ในขั้นตอนต่อมา เราก็มาทำการสร้าง authentication method list และ authorization method list กันครับ ซึ่งจะใช้ในการอ้างอิงครับว่าเราจะใช้การพิสูจน์ตัวตนและการกำหนดสิทธิการใช้งานของผู้ใช้ในรูปแบบใด

ตัวอย่าง

Router(config)#aaa authentication login remote group radius local
Router(config)#aaa authorization exec remote group radius local
Router(config)#aaa authorization console

          จากตัวอย่าง เป็นการสร้าง authentication และ authorization method list โดยกำหนดให้ค้นหา database ของผู้ใช้จาก radius server ก่อน ถ้าไม่พบจึงใช้ database บนตัวมัน (local)

          ในขั้นตอนต่อมา ก็ต้องไปทำการตั้งค่าใน ACS Server โดยจะต้องเข้าไปทำการตั้งค่ารายละเอียดเกี่ยวกับ AAA Server โดยไปที่ Network Configuration > AAA Server และคลิ้กที่ AAA Server ทีต้องการ จากนั้นทำการตั้งค่า IP Address ของ Server และทำการกำหนด key (ใช้ในการติดต่อสื่อสารกับ AAA Server ตัวอื่น ๆ ) จากนั้น ในตัวอย่างนี้จะเลือกใช้โปรโตคอล Radius ในการทำงาน จึงจะทำการเลือก AAA Server Type เป็น Radius Server และทำการกำหนดให้ใช้หมายเลขพอร์ตตามที่เราตั้งค่าไว้บนอุปกรณ์ (1812 และ 1813) จากนั้นให้คลิ้กที่ Submit+Apply

5-11-2553 13-45-02

          จากนั้นให้ทำการ เพิ่มอุปกรณ์ AAA Client ซึ่งก็คืออุปกรณ์ที่ต้องการร้องขอการพิสูจน์ตัวตนหรือก็คืออุปกรณ์เครือข่ายของเราเข้าไป โดยคลิ้กที่ Add Entry ในส่วนของ AAA Client จากนั้นทำการกำหนดรายระเอียดของอุปกรณ์ คือ ทำการกำหนดชื่อและหมายเลข IP Address ของอุปกรณ์ และทำการใส่ key ที่ได้ทำการตั้งค่าเอาไว้ จากนั้นเลือกวิธีการพิสูจน์ตัวตนเป็น Radius (Cisco IOS/PIX 6.0) และคลิ้กที่ Submit+Apply

5-11-2553 13-54-54           จากนั้นก็ทำการสร้าง group ของผู้ใช้งาน เพื่อที่จะกำหนดกลุ่มของผู้ใช้ที่มีสิทธิในการใช้งานบนอุปกรณ์ที่ต่างกัน เช่น มีระดับ privilege level ที่ต่างกัน (บทความ:ทำความรู้จักกับ Privilege level) ซึ่งในส่วนนี้จะเป็นเพียง option เท่านั้น ไม่ต้องทำก็ได้ แต่อยากให้รู้ไว้ว่าสามารถที่จะทำได้ครับ

          ในการกำหนดระดับ privilege level ให้กับแต่ละ group ของผู้ใช้ สามารถทำได้โดยไปที่ group setup และทำการเลือก group อะไรก็ได้ขึ้นมา และก็ควรที่จะทำการตั้งชื่อ group ของเราซะหน่อยครับ โดยคลิ้กที่ Rename Group นะครับ และเมื่อตั้งชื่อเรียบร้อยแล้ว จากนั้นก็เข้าไปทำการกำหนดรายละเอียดของ group กันครับ โดยเลือก group ที่ต้องการและคลิ้กที่ Edit Settings ครับ ในการที่จะกำหนดระดับ privilege level ให้ group นั้น มีขั้นตอนการตั้งค่า ดังนี้ครับ

1.ในช่อง jump to ด้านบนให้เลือกที่ Radius (Cisco IOS/PIX 6.0) หรือจะเลื่อนลงมาเรื่อย ๆ จนกว่าจะเจอก็ได้ครับ

2.ให้ทำเครื่องหมายถูกในช่อง [009\001] cisco-av-pair และทำการใส่ค่า “shell:priv-lvl=<0-15>” ลงไปครับ เช่นถ้าต้องการให้ group นี้มีค่า privilege level เท่ากับ 7 ก็ให้ใส่ “shell:priv-lvl=7” ครับ

5-11-2553 14-40-07

          จากนั้นก็ทำการเพิ่ม User เข้าไปใน group ที่เราสร้างขึ้นมาครับ โดยไปที่ User Setup และทำการใส่ Username และคลิ้กที่ Add/Edit แล้วไปที่ tab User Setup จากนั้นทำการกำหนด password และกำหนด group ของผู้ใช้ โดยเลือก group ที่ต้องการในช่อง Group to which the user is assigned: ครับ

5-11-2553 14-46-16          จากนั้นก็ไปทำการตั้งค่าบนอุปกรณ์เครือข่ายของเรากันต่อ โดยไปทำการตั้งค่าในการเข้าถึงอุปกรณ์ไม่ว่าจะผ่าน Console หรือ Vertual Terminal line เช่น telnet หรือ ssh ว่าให้ใช้ authentication และ authorization method list ที่เราสร้างขึ้นมาครับ

ตัวอย่าง

Router(config)#line console 0
Router(config-line)#login authentication remote
Router(config-line)#authorization exec remote
Router(config-line)#exit
Router(config)#line vty 0 15
Router(config-line)#login authentication remote
Router(config-line)#authorization exec remote
Router(config-line)#transport input telnet ssh
Router(config-line)#exit

          เพียงเท่านึ้ เราก็สามารถใช้การพิสูจน์ตัวตนผู้ใช้เมื่อต้องการเข้าถึงอุปกรณ์ร่วมกับ ACS Server ได้แล้วนะครับ ทีนี้ผมขอแนะนำคำสั่งที่จะใช้ในการตรวจสอบการทำงานกันบ้างนะครับ

Router#debug aaa authentication
Router#debug aaa authorization
Router#debug radius authentication

          และสามารถทดสอบการทำงานของ AAA ได้ โดยการใช้คำสั่ง “test aaa” ครับ

ตัวอย่าง

Router#debug radius authentication              

Router#test aaa group radius admin ******* legacy
Attempting authentication test to server-group radius using radius
User was successfully authenticated.

Router#
*Mar  1 02:59:58.643: AAA: parse name=<no string> idb type=-1 tty=-1
*Mar  1 02:59:58.647: AAA/MEMORY: create_user (0x66B78980) user='admin' ruser='NULL' ds0=0 port='' rem_addr='NULL' authen_type=ASCII service=LOGIN priv=1 initial_task_id='0', vrf= (id=0)
*Mar  1 02:59:58.655: RADIUS: Pick NAS IP for u=0x66B78980 tableid=0 cfg_addr=0.0.0.0
*Mar  1 02:59:58.655: RADIUS: ustruct sharecount=1
*Mar  1 02:59:58.659: Radius: radius_port_info() success=0 radius_nas_port=1
*Mar  1 02:59:58.663: RADIUS/ENCODE: Best Local IP-Address 192.168.1.2 for Radius-Server 192.168.1.10
*Mar  1 02:59:58.671: RADIUS(00000000): Send Access-Request to 192.168.1.10:1812 id 1645/17, len 57
*Mar  1 02:59:58.675: RADIUS:  authenticator 05 73 3B A4 A1 E4 1D 12 - CA F4 48 53 00 D7 9A F5
*Mar  1 02:59:58.679: RADIUS:  NAS-IP-Address      [4]   6   192.168.1.2              
*Mar  1 02:59:58.679: RADIUS:  NAS-Port-Type       [61]  6   Async                     [0]
*Mar  1 02:59:58.683: RADIUS:  User-Name           [1]   7   "admin"
*Mar  1 02:59:58.687: RADIUS:  User-Password       [2]   18  *
*Mar  1 02:59:59.243: RADIUS: Received from id 1645/17 192.168.1.10:1812, Access-Accept, len 77
*Mar  1 02:59:59.243: RADIUS:  authenticator 0C B2 B5 D8 AA 66 46 8E - EC F6 F6 EC 39 12 E6 9E
*Mar  1 02:59:59.247: RADIUS:  Vendor, Cisco       [26]  25 
*Mar  1 02:59:59.247: RADIUS:   Cisco AVpair       [1]   19  "shell:priv-lvl=15"
*Mar  1 02:59:59.251: RADIUS:  Framed-IP-Address   [8]   6   255.255.255.255          
*Mar  1 02:59:59.255: RADIUS:  Class               [25]  26 
*Mar  1 02:59:59.259: RADIUS:   43 41 43 53 3A 30 2F 35 35 2F 63 30 61 38 30 31  [CACS:0/55/c0a801]
*Mar  1 02:59:59.263: RADIUS:   30 32 2F 61 64 6D 69 6E                          [02/admin]
*Mar  1 02:59:59.271: RADIUS: saved authorization data for user 66B78980 at 66B78C10
*Mar  1 02:59:59.275: AAA/MEMORY: free_user (0x66B78980) user='admin' ruser='NULL' port='' rem_addr='NULL' authen_type=ASCII service=LOGIN priv=1 vr

*เพื่อน ๆ สามารถทดลองทำ lab โดยการดาวน์โหลด Lab ในเรื่องนี้ไปทดสอบการทำงานได้ครับ

Packet Tracer Lab:การพิสูจน์ตัวตนเมื่อต้องการเข้าถึงอุปกรณ์ โดยใช้ AAA Server

No comments:

Post a Comment