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

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

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

Sunday, October 31, 2010

การทำ NAT แบบใหม่บน Cisco ASA Version 8.3

 
จากที่เคยใช้งาน Cisco ASA Version 8.2 มาเป็นเวลานาน จนคุ้นเคยกับคำสั่งต่าง ๆ แล้ว ในที่สุด Cisco ก็ได้พัฒนา Cisco ASA Version 8.3 มาให้เราได้ใช้งานกันแล้วครับ ซึ่งการเปลี่ยนแปลงโดยทั่วไปก็จะเป็นการพัฒนาคุณสมบัติต่าง ๆ ให้ดีขึ้นกว่าเดิม แต่การตั้งค่าหลัก ๆ ที่เปลี่ยนแปลงไปจาก Version 8.2 อย่างสิ้นเชิง ก็คือการทำ NAT ครับ ในวันนี้พอดีผมได้ไปพบกับคลิปที่อธิบายถึงวิธีการทำ NAT บน Cisco ASA Version 8.3 ไว้ ซึ่งอธิบายไว้ได้อย่างดีเลยล่ะครับ ครอบคลุมการทำ NAT ทั้งหมด ดูแล้วเข้าใจได้ง่าย เหมาะสำหรับใครที่ยังไม่เข้าใจหรือไม่เคยตั้งค่าการทำ NAT บน Cisco ASA Version 8.3 ครับ (ผมก็ยังไม่เคยครับ แต่จะมีโอกาสได้ใช้งานในเร็ว ๆ นี้) เชิญติดตามได้เลยครับ

จากที่เคยใช้งานคำสั่ง NAT บน Cisco ASA ตั้งแต่ Version แรก ๆ จนมาถึง Version 8.2 จนเคยชินกับคำสั่ง ในวันนี้ Cisco ได้พัฒนา Cisco ASA Version 8.3 ขึ้นมาแล้วครับ โดยจะเปลี่ยนรูปแบบในการตั้งค่า NAT ไปพอสมควร ทำให้ต้องมารื้อตำรามาเรียนรู้กันใหม่กันเลยทีเดียวครับ โดยคำสั่งที่เคยใช้งานบน Cisco ASA Version 8.2 อย่างเช่น global, static, nat-control, alias. จะถูกยกเลิกการใช้งานไปครับ  แต่จะมีคำสั่ง object network, object service เพิ่มขึ้นมาใช้งานแทนครับ


             ทั้งนี้ในปัจจุบัน (31/10/2553) ผมก็ยังไม่เคยได้ใช้งาน Cisco ASA Version 8.3 เลยครับ แต่จะต้องทำงานร่วมกับมันในอีกไม่กี่วันข้างหน้านี้ครับ ซึ่งผมก็ได้ลองค้นหารายละเอียด เกี่ยวกับการตั้งค่าใน Version ใหม่นี้ จนไปพบกับคลิปนี้เข้าครับ ซึ่งผมคิดว่าในคลิปนี้ได้อธิบายไว้ได้อย่างดี ดูแล้วเข้าใจได้ง่าย จึงอยากที่จะนำมาแบ่งบันเพื่อน ๆ ครับ


            
        
             และอีกอย่างที่มีการเปลี่ยนแปลงคือการใช้งาน access-list จะมีการใช้ access-group global เพิ่มขึ้นมา โดย access-list ที่นำไปใช้งานกับ access-group global นี้ถูกจะนำไปใช้กับทุก ๆ อินเทอร์เฟสของ Cisco ASA Firewall ครับ และการใช้ access-list  สามารถใช้ที่อยู่ IP Address ของ Server นั้นได้โดยตรง โดยไม่ต้องใช้ Translate IP Address เมื่อทำการสร้าง access-list บน zone อื่น ๆ ที่ไม่ใช่ zone ที่ Server นั้นอยู่เลยครับ จากที่ Version เก่า นั้น ถ้าจะสร้าง access-list ใน zone ใด ก็จะต้องใช้ IP Address ที่แปลงค่าไปแล้วใน Zone นั้น ๆ ครับ... ฟังดูแล้วอาจจะงง ๆ แต่ถ้าเคยใช้งาน Cisco ASA Firewall ใน Version เก่า ๆ มาบ้างคงจะพอเข้าใจนะครับ ถ้าว่าง ๆ ผมอาจจะมาอธิบายเรื่องนี้ อีกครั้งนะครับ
           
           ส่วนสำหรับใครที่อยากทราบรายละเอียด คุณสมบัติที่เพิ่มขึ้นมาบน Cisco ASA Version 8.3 นี้ ก็สามารถติดตามได้จากลิ้งค์ด้านล่างได้เลยครับ
New Features for ASA Version 8.3

การค้นหาพอร์ตที่โฮตส์เชื่อมต่อ โดยใช้คำสั่ง Traceroute mac

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

อันดับแรกก็ต้องรู้ว่าเครื่องที่ต้องการนั้นมีค่า Mac Address เป็นอะไร ซึ่งอาจจะใช้วิธีในการดูจากเครื่องที่ต้องการโดยตรงเลยก็ได้ สำหรับผม ถ้าเป็นเมื่อก่อน ผมรู้แค่ IP Address ของเครื่องนั้น ก็คงจะใช้วิธี show arp บน Switch Layer 3 ที่เป็น Gateway ของเครื่องที่ต้องการ เพื่อจะได้ทราบค่า Mac Address ของเครื่องที่ว่า

จากนั้นเมื่อรู้ว่า Mac Address ของเครื่องนั้นเป็นอะไรแล้วก็คงทำการ remote ไปบนสวิตซ์ที่มีการใช้งาน Vlan เดียวกันกับเครื่องปลายทางที่ต้องการ แล้วก็ใช้คำสั่ง show mac address-table เพื่อดูว่า Mac Address ของเครื่องที่ต้องการนั้นเชื่อมต่ออยู่กับพอร์ตไหน ถ้าโชคดีอยู่บนสวิตซ์ตัวนี้พอดี ก็สบายไปครับ แต่ถ้าพบว่า Mac Address ของเครื่องที่ต้องการดันไปอยู่บนพอร์ตที่เชื่อมต่อไปยังสวิตซ์ตัวอื่น ก็ต้องทำการ remote ไปยังสวิตซ์ตัวนั้น ๆ ต่อไปครับ และถ้ายังไม่เจอหรือพบว่า Mac Address นั้นเชื่อมต่อกับสวิตซ์ตัวอื่น ๆ อีกที ก็ต้อง Remote ไปยังสวิตซ์ตัวอื่น ๆ ต่อไปเรื่อย ๆ ครับ จนกว่าจะพบว่าค่า Mac Address ที่ว่าเชื่อมต่ออยู่กับ Access Port พอร์ตใดพอร์ตหนึ่งบนเครือข่ายของเราครับ...
            
             เฮ้อ... เป็นไงครับ ฟังดูยุ่งยากใช่มั้ยครับ ในวันนี้ผมจะแนะนำวิธีที่จะทำให้ชีวิตของเพื่อน ๆ ง่ายขึ้นอีกเยอะเลยครับ ติดตามได้ในบทความนี้นะครับ
           วิธีการที่จะแนะนำในวันนี้ สำหรับบางคนอาจจะไม่ใช่วิธีการใหม่ซะทีเดียวนะครับ เพราะว่ามันมีมาตั้งแต่ Catalyst Software Release 12.1(14)EA1 แล้วล่ะครับ ซึ่งผมก็เชื่อว่าคงมีเพื่อน ๆ หลาย ๆ คนเคยใช้งานมากันแล้วบ้างใช่มั้ยครับ เอาเป็นว่าสำหรับคนที่ยังไม่เคยใช้งาน ก็ลองติดตามดูนะครับ
สำหรับวิธีการที่ผมจะแนะนำในวันนี้ ก็คือ การใช้คำสั่ง "traceroute mac" ครับ ซึ่งเป็นคำสั่งที่ใช้ในการค้นหาเส้นทางบน Layer 2 ที่แพ็กเก็ตใช้ในการติดต่อสื่อสารระหว่างเครื่องต้นทาง ไปยังเครื่องปลายทางครับ ไม่ขอพูดมากดีกว่า ยังไงลองดูตัวอย่างการใช้งานกันเลยนะครับ
ในการใช้งาน ถ้าบนเครือข่ายของเพื่อน ๆ มีอุปกรณ์ Cisco Catalyst Switch ในระดับ Layer 3 ที่ใช้เป็น Gateway ของเครื่องนั้น ๆ อยู่ด้วยล่ะก็ ง่ายเลยล่ะครับทีนี้ เพียงแค่เพื่อน ๆ ทราบถึงหมายเลย IP Address ของเครื่องที่ต้องการ และขอให้เพื่อน ๆ หาหมายเลข IP Address ของเครื่องใดก็ได้อีกเครื่องหนึ่งใน Vlan เดียวกัน (เพราะว่าในการใช้คำสั่ง traceroute mac จะต้องมีการระบุต้นทางและปลายทางครับ) เพื่อน ๆ ก็สามารถที่จะทราบถึงพอร์ตที่เครื่องผู้ใช้ที่ต้องการเชื่อมต่ออยู่ได้ทันทีเลยครับ โดยใส่ keyword ว่า ip ตามหลังคำสั่ง “traceroute mac” ไปด้วยครับ
ตัวอย่าง
Dist_SW_L3#traceroute mac ip 192.168.0.151 192.168.0.141
Translating IP to mac .....
192.168.0.151 => 0025.64d2.a238
192.168.0.141 => 0025.64d2.5625

Source 0025.64d2.a238 found on Access_SW_55
1 Access_SW_55 (172.16.1.68) : Gi0/26 => Gi0/47
2 Dist_SW_L3 (192.168.0.1) : Gi1/1 => Gi1/5
3 Access_SW_66 (172.16.1.80) : Gi0/47 => Gi0/18
Destination 0025.64d2.5625 found on Access_SW_66
Layer 2 trace completed

เพื่อน ๆ เห็นมั้ยครับ สมมุติว่าผมทราบเพียงแค่ว่า เครื่องที่ผมต้องการค้นหานั้นมีหมายเลข IP Address เป็น 192.168.0.151 ทีนี้ผมก็หา IP Address อีกหมายเลขนึง (ที่มีการใช้งานอยู่ในขณะนั้น) ในที่นี้ผมใช้ 192.168.0.141 ครับ ซึ่งเพื่อน ๆ จะเห็นว่า เครื่องโฮตส์ที่มี IP Address เป็น 192.168.0.151 นั้น อยู่บนพอร์ต Gi0/26 ของสวิตซ์ที่ชื่อว่า Access_SW_55 และเครื่องโฮตส์ที่มี IP Address เป็น 192.168.0.141 นั้น อยู่บนพอร์ต Gi0/18 ของสวิตซ์ที่ชื่อว่า Access_SW_66 ครับ อีกทั้งยังเห็นเส้นทางที่เครื่องทั้งสองใช้ในการติดต่อสื่อสารกันได้อีกด้วยนะครับ
และถ้าเพื่อน ๆ ต้องการทราบข้อมูลที่ละเอียดมากกว่านี้ ก็สามารถใช้ keyword "detail" ตามหลังคำสั่ง "traceroute mac ip <source mac> <destination mac>" ได้ครับ
ตัวอย่าง
Dist_SW_L3#traceroute mac ip 192.168.0.151 192.168.0.141 detail
Translating IP to mac .....
192.168.0.151 => 0025.64d2.a238
192.168.0.141 => 0025.64d2.5625

Source not directly connected, tracing source .....
Source 0025.64d2.a238 found on Access_SW_55[WS-C2960G-48TC-L] (172.16.1.68)
1 Access_SW_55 / WS-C2960G-48TC-L / 172.16.1.68 :
                Gi0/26 [auto, auto] => Gi0/47 [auto, auto]
2 Dist_SW_L3 / WS-C4507R-E / 192.168.0.1 :
                Gi1/1 [full, 1000M] => Gi1/5 [full, 1000M]
3 Access_SW_66 / WS-C2960G-48TC-L / 172.16.1.80 :
                Gi0/47 [auto, auto] => Gi0/18 [auto, auto]
Destination 0025.64d2.5625 found on Access_SW_66[WS-C2960G-48TC-L] (172.16.1.80)
Layer 2 trace completed.

จะเห็นว่า มีรายละเอียดมากขึ้นกว่าเดิมใช่มั้ยครับ เช่น รุ่นของสวิตซ์ที่เครื่องทั้งสองใช้เป็นเส้นทางในการติดต่อสื่อสารกัน รวมไปถึงการตั้งค่าบนพอร์ตที่ใช้เชื่อมต่อกันด้วยครับ ว่าตั้งค่า speed และ duplex เป็นอะไรไว้

แต่ถ้าเพื่อน ๆ ไม่มีการใช้งาน Switch Layer 3 บนเครื่อข่ายแล้ว ก็สามารถที่จะใช้คำสั่ง "traceroute mac" บนสวิตซ์ Layer 2 ได้นะครับ แต่จะต้องค้นหา Mac Address ของเครื่องที่ต้องการเอาเองด้วยวิธีการ show arp บน gateway หรือดูจากเครื่องผู้ใช้ใน Vlan เดียวกันก็ได้ครับ และเมื่อเราทราบถึง Mac Address ของเครื่องต้นทางและปลายทางแล้ว ก็สามารถใช้คำสั่ง "traceroute mac" ได้เลยครับ
ตัวอย่าง
Access_SW_44#traceroute mac 0025.64d2.a238 0025.64d2.5625  
Source 0025.64d2.a238 found on Access_SW_55
1 Access_SW_55 (172.16.1.68) : Gi0/26 => Gi0/47
2 Dist_SW_L3 (192.168.0.1) : Gi1/1 => Gi1/5
3 Access_SW_66 (172.16.1.80) : Gi0/47 => Gi0/18
Destination 0025.64d2.5625 found on Access_SW_66
Layer 2 trace completed

เห็นมั้ยครับเพื่อน ๆ การใช้ Traceroute mac นั้นจะช่วยทำให้ชีวิตของเราง่ายขึ้นจริง ๆ ครับ

Saturday, October 30, 2010

การตั้งค่า URL Filtering บล็อคเวปบน Cisco IOS Router

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

         บนเราเตอร์ Cisco IOS Software ตั้งแต่ Version 12.2(11)YU เป็นต้นมา สามารถที่จะทำการตั้งค่าให้ บล็อคเวปไซต์ตาม URL หรือที่เรียกว่า URL Filtering ได้ โดยสามารถที่จะใช้ URL list บนตัวเราเตอร์หรือจะทำงานร่วมกับ Server อย่างเช่น Websense หรือ N2H2 ได้ครับ
แต่ในตัวอย่างนี้จะเป็นการตั้งค่า URL Filtering โดยใช้ URL list บนตัวเราเตอร์ครับ เช่น ต้องการที่จะบล็อคการเข้าใช้ URL www.facebook.com เป็นต้น

         อันดับแรกก็ให้เข้าสู่โหมด global configuration ก่อนเลยครับ และก็ใช้คำสั่ง "ip inspect name" เพื่อทำการสร้าง inspect rule ครับ (ใช้กับ Cisco IOS CBAC Firewall) โดยในตัวอย่างนี้ใช้ชื่อ inspect rule ว่า blockweb ครับ
ตัวอย่าง
Router(config)#ip inspect name blockweb http urlfilter

         จากนั้นก็ทำการตั้งค่าของ urlfilter ครับ โดยควรที่จะตั้งค่า allow-mode ให้เป็น on ก่อน เพราะว่าโดย default ค่า allow-mode นี้จะเป็น off ซึ่งจะทำให้ไม่สามารถเข้าเวปไซต์ใด ๆ ได้เลยจนกว่าเราจะสร้าง URL list ที่อนุญาตให้เข้าใช้ได้ครับ
ตัวอย่าง
Router(config)#ip urlfilter allow-mode on

         จากนั้นก็ทำการสร้าง URL list ที่ต้องการใช้บล็อคโดยใช้คำสั่ง "ip urlfilter exclusive-domain deny" ได้เลยครับ
ตัวอย่าง
Router(config)#ip urlfilter exclusive-domain deny www.facebook.com

         เมื่อทำการสร้าง URL list ที่ต้องการเสร็จแล้ว ก็จะต้องนำ inspect rule ที่สร้างขึ้นมาไปใช้งานบนอินเทอร์เฟสด้วยการใช้คำสั่ง "ip inspect <name> in" ใน interface configuration mode ครับ โดยควรที่จะวางไว้ในอินเทอร์เฟสฝั่งภายใน ในทิศทาง inbound ครับ
ตัวอย่าง
Router(config)#int fa0/0
Router(config-if)#description inside-network
Router(config-if)#ip inspect blockweb in
Router(config-if)#exit

เพียงเท่านี้ ก็จะสามารถบล็อคเวปไซค์ที่ไม่ต้องการได้แล้วนะครับ

สรุปคำสั่งที่ต้องใช้ครับ
Router(config)#ip inspect name blockweb http urlfilter
Router(config)#ip urlfilter allow-mode on
Router(config)#ip urlfilter exclusive-domain deny www.facebook.com
Router(config)#int fa0/0
Router(config-if)#description inside-network
Router(config-if)#ip inspect blockweb in
Router(config-if)#exit

ทำความรู้จักกับ Privilege level บน Cisco IOS

 

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

          คำสั่ง Privilege ก็เป็นระดับที่ใช้สำหรับการกำหนดสิทธิในการเข้าใช้งานของแต่ละผู้ใช้ ว่าผู้ใช้ในแต่ละระดับนั้นสามารถที่จะใช้คำสั่งใดบนอุปกรณ์ได้บ้าง ซึ่งในการใช้งาน Cisco IOS Software โดยปกติจะมีโหมดในการทำงานอยู่สองระดับ คือ User Exec Mode กับ Privileged Exec Mode และสามารถที่จะกำหนดระดับการใช้งานของผู้ใช้ได้ถึง 16 ระดับ ตั้งแต่ระดับ 0 ซึ่งจะจำกัดการใช้งานไว้มากที่สุด จนถึงระดับ 15 ที่สามารถใช้งานได้ทุกอย่าง

โดย Default ระดับ Privilege level บนอุปกรณ์ Cisco IOS จะมีสิทธิการใช้งาน ดังนี้

  • Privilege level 0 สามารถใช้คำสั่ง disable, enable, exit, help และ logout ได้ในโหมด User Exec Mode
  • Privilege level 1 สามารถใช้งานได้ทุกคำสั่งใน User Exec Mode
  • Privilege level 2-14 สามารถใช้งานคำสั่งในโหมด Privileged Exec Mode ได้ตามแต่ละระดับของสิทธิการใช้งาน เช่นระดับ Privilege level 8 ขึ้นไปสามารถที่จะใช้คำสั่ง configure เพื่อเข้าสู่โหมด Configure ได้ ส่วนระดับ Privilege level 2-7 นั้นสามารถใช้ได้เพียงคำสั่งที่ใช้สำหรับดูสถานะในการทำงานของอุปกรณ์ จะไม่สามารถใช้คำสั่ง Configure เพื่อเข้าสู่โหมด Configure ได้ และไม่สามารถใช้คำสั่ง show run เพื่อเรียกดูค่าคอนฟิกในปัจจุบันได้
  • Privilege level 15 สามารถใช้งานได้ทุกคำสั่งในโหมด Privileged Exec Mode ได้ และสามารถเข้าสู่โหมด Configure เพื่อทำการคอนฟิกได้

ตัวอย่างคำสั่งใน Privilege level 0
Router>?
Exec commands:
  call     Voice call
  disable  Turn off privileged commands
  enable   Turn on privileged commands
  exit     Exit from the EXEC
  help     Description of the interactive help system
  logout   Exit from the EXEC

ตัวอย่างคำสั่งใน Privilege level 1
Router>?
Exec commands:
  access-enable    Create a temporary Access-List entry
  access-profile   Apply user-profile to interface
  call             Voice call
  clear            Reset functions
  connect          Open a terminal connection
  crypto           Encryption related commands.
  disable          Turn off privileged commands
  disconnect       Disconnect an existing network connection
  enable           Turn on privileged commands
  exit             Exit from the EXEC
  help             Description of the interactive help system
  lat              Open a lat connection
  lock             Lock the terminal
  login            Log in as a particular user
  logout           Exit from the EXEC
  modemui          Start a modem-like user interface
  mrinfo           Request neighbor and version information from a multicast router
  mstat            Show statistics after multiple multicast traceroutes
  mtrace           Trace reverse multicast path from destination to source
  name-connection  Name an existing network connection
--More—

ตัวอย่างคำสั่งใน Privilege level 2-7
Router#?
Exec commands:
  access-enable    Create a temporary Access-List entry
  access-profile   Apply user-profile to interface
  call             Voice call
  clear            Reset functions
  connect          Open a terminal connection
  crypto           Encryption related commands.
  disable          Turn off privileged commands
  disconnect       Disconnect an existing network connection
  enable           Turn on privileged commands
  exit             Exit from the EXEC
  help             Description of the interactive help system
  lat              Open a lat connection
  lock             Lock the terminal
  login            Log in as a particular user
  logout           Exit from the EXEC
  modemui          Start a modem-like user interface
  mrinfo           Request neighbor and version information from a multicast router
  mstat            Show statistics after multiple multicast traceroutes
  mtrace           Trace reverse multicast path from destination to source
  name-connection  Name an existing network connection
--More--

          และในการตั้งค่าการกำหนดระดับสิทธิการใช้งานให้กับแต่ละผู้ใช้สามารถทำได้ โดยการใช้คำสั่ง “username <name> privilege <0-15> password <password>”

ตัวอย่าง
Router(config)#username admin privilege 15 password ****

          แต่ในการใช้งานทั่วไป จะมีการตั้งค่า enable password (หรือ enable secret) เอาไว้ ซึ่งเมื่อผู้ใช้ ไม่ว่าจะมีสิทธิการใช้งานในระดับใด เมื่อทำการใส่ enable password ผ่านแล้ว ก็จะมีระดับ Privilege level เท่ากับ 15 ทันที ซึ่งจะทำให้ไม่สามารถกำหนดสิทธิในการใช้งานให้กับแต่ละผู้ใช้ได้

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

ทำความรู้จักกับ AAA model

          ในการใช้งานอุปกรณ์ Cisco IOS นั้น เชื่อว่าเพื่อน ๆ ก็คงจะมีการกำหนด username และpassword ให้กับผู้ใช้หรือสำหรับตัวเอง เพื่อใช้สำหรับให้ผู้ใช้สามารถ login ผ่านการ remote หรือผ่าน console เข้ามาบนอุปกรณ์ได้ ซึ่งในการเก็บรายชื่อผู้ใช้นี้ สามารถที่จะเก็บไว้บนตัวอุปกรณ์Cisco IOS เอง (LOCAL) หรือจะใช้งาน Server ที่ทำงานในการเก็บข้อมูลผู้ใช้ เช่น Radius Server, Tacacs+ Server หรือ Kerberos ก็ได้

          ในการพิสูจน์ตัวตนผู้ใช้รวมทั้งการกำหนดสิทธิผู้ใช้บนอุปกรณ์ Cisco IOS นั้น จะมีการใช้โมเดลที่เรียกว่า AAA model ในการทำงาน สำหรับเพื่อน ๆ ที่อยากรู้ถึงวิธีการทำงานของ AAA modelก็ เชิญติดตามบทความนี้ได้เลยครับ

          AAA model เป็นแนวทางในการพิสูจน์ตัวตนบน Cisco IOS Software สามารถทำงานร่วมกับโปรโตคอล เช่น Radius, Tacacs+ และ Kerberos ได้ สามารถรองรับการพิสูจน์ตัวตนและการกำหนดสิทธิการใช้งานได้หลากหลาย โดยจะประกอบไปด้วย 3 ส่วน ดังนี้

  • Authentication คุณเป็นใคร เช่น ชื่อผู้ใช้อะไร
  • Authorization คุณสามารถทำอะไรได้บ้าง เช่น ผู้ใช้ A สามารถเข้าถึง Server ผ่านTCP พอร์ต 23 ได้
  • Accounting คุณทำอะไรไปบ้าง เช่น ผู้ใช้ A เข้าใช้งาน Server โดยใช้โปรโตคอลTelnet เป็นเวลา 15 นาที

          ในวันนี้ จะขอพูดถึงการคอนฟิกการตั้งค่า AAA โดยใช้รายชื่อผู้ใช้บนตัวอุปกรณ์ Cisco IOS (LOCAL) ให้ผู้ใช้ ใช้ในการ remote ผ่านโปรโตคอล Telnet เข้ามายังอุปกรณ์ก่อนนะครับ สำหรับขั้นตอนในการคอนฟิก ก็มีดังนี้ครับ
ขั้นตอนที่ 1: เข้าสู่ Global Configuration Mode
ขั้นตอนที่ 2: เปิดการทำงาน AAA โดยใช้คำสั่ง aaa new-model
ขั้นตอนที่ 3: ตั้งค่า AAA authentication lists.
ขั้นตอนที่ 4: ตั้งค่า AAA authorization สำหรับการกำหนดสิทธิการใช้งานผู้ใช้
ขั้นตอนที่ 5: ตั้งค่า line vty

          ในการที่เพื่อน ๆ ต้องการที่จะทำการคอนฟิก AAA อันดับแรกที่จะต้องทำก็คือการเปิดการทำงานของAAA ด้วยการใช้คำสั่ง "aaa new-model" ในโหมด global configuration ก่อนครับ
ตัวอย่าง
Router(config)#aaa new-model

          เมื่อเปิดการทำงานของ AAA แล้ว เพื่อน ๆ ก็จะสามารถสร้าง Authentication lists ได้ ด้วยการใช้คำสั่ง “aaa authentication” ครับ ซึ่งสามารถนำไปใช้ได้หลายรูปแบบ ดังนี้

  • aaa authentication arap ใช้สำหรับ AppleTalk Remote Access Protocol
  • aaa authentication banner ใช้สร้างข้อความ banner ที่จะแสดงในหน้า login
  • aaa authentication enable default ใช้ในการพิสูจน์ตัวตนของผู้ที่มีสิทธิเข้าถึงPrivileged level
  • aaa authentication fail-message ใช้สร้างข้อความเมื่อ User ทำการ login ไม่สำเร็จ
  • aaa authentication local-override ให้ใช้ local database ในการพิสูจน์ตัวตนก่อนที่จะไปใช้ database อื่น
  • aaa authentication login ใช้ในการพิสูจน์ตัวตนในการเข้าสู่เราเตอร์
  • aaa authentication nasi ใช้สำหรับ NetWare Access Server Interface
  • aaa authentication password-prompt ใช้กำหนด Password Prompt ที่จะแสดงในหน้า login
  • aaa authentication ppp ใช้พิสูจน์ตัวตนสำหรับ serial interface ที่ใช้ ppp
  • aaa authentication username-prompt ใช้กำหนด Username Prompt ที่จะแสดงในหน้า login

          ในวันนี้จะขอพูดถึงการพิสูจน์ตัวตนในกรณีที่ผู้ใช้ต้องการ remote หรือ console เข้ามายัง CLI บนอุปกรณ์ก่อนนะครับ ซึ่งจะต้องใช้คำสั่ง “aaa authentication login” ครับ
ตัวอย่าง
Router(config)#aaa authentication login ? 
WORD     Named authentication list. 
default  The default authentication list.

          ซึ่งเมื่อเพื่อน ๆ ใช้คำสั่ง “aaa authentication” และตามด้วยเครื่องหมาย ? แล้ว ก็จะพบว่ามีสองทางเลือกเท่านั้น นั่นก็คือการใช้ค่า default หรือการตั้ง authentication list ขึ้นมาเอง โดยการกำหนดชื่อauthentication list ครับ ในส่วนนี้ผมขอเลือกที่จะตั้งค่า authentication list ขึ้นมาเองโดยใช้ชื่อว่า“remote” และใช้ database บนตัวอุปกรณ์โดยการใช้ keyword ว่า local ตามหลังครับ
ตัวอย่าง
Router(config)#aaa authentication login remote local

          จากนั้นก็ทำการตั้งค่าในการกำหนดสิทธิผู้ใช้ ว่าให้ใช้สิทธิตามระดับที่กำหนดไว้บนตัวอุปกรณ์ หรือจะให้ใช้ Server ภายนอกครับ ในที่นี้ขอใช้บนตัวอุปกรณ์นะครับ สำหรับคำสั่งที่จะใช้งานในขั้นตอนนี้ก็คือ “aaa authorization” ครับ ซึ่งสามารถนำ Authorization list ไปใช้ได้หลายรูปแบบ ดังนี้

  • Network ใช้ร่วมกับ network ประเภทต่างๆ รวมถึง PPP, SLIP, ARA
  • EXEC นำไปใช้กับการใช้งาน EXEC Terminal session
  • Commands ใช้ในการกำหนดถึงคำสั่งที่ผู้ใช้สามารถใช้งานได้ในโหมด EXEC
  • Reverse Access ใช้กับ Reverse Telnet
  • Configuration ใช้กับการดาวน์โหลดค่าคอนฟิกจาก AAA

          ในกรณีนี้เราจะเลือกใช้คำสั่ง “aaa authorization exec” ครับและใช้การกำหนด authorization listเองรวมทั้งใช้ database บนตัวอุปกรณ์ครับ
ตัวอย่าง
Router(config)#aaa authorization exec remote local

          เมื่อทำการตั้งค่า authentication list และ authorization list แล้ว ก็อย่าลืมที่จะตั้งค่ารายชื่อผู้ใช้ โดยการใช้คำสั่ง “username” ด้วยนะครับ ไม่งั้นแม้ว่าจะทำเสร็จแล้ว แต่บนตัวอุปกรณ์ไม่มีรายชื่อผู้ใช้เลย ก็ไม่สามารถใช้งานได้นะครับ โดยในตัวอย่างนี้จะกำหนด Privilege level ไว้ในระดับ 5 นะครับ
ตัวอย่าง
Router(config)#username user5 privilege 5 password ****

          จากนั้นก็มาทำการตั้งค่า line VTY กันครับ ซึ่งจะต้องทำการตั้งค่าให้ใช้การพิสูจน์ตัวตนตามauthentication list และ authorization list ที่เราสร้างขึ้นมาครับ
ตัวอย่าง
Router(config)#line vty 0 15
Router(config-line)#login authentication remote
Router(config-line)#authorization exec remote

          เท่านี้ก็เสร็จแล้วครับ เมื่อผู้ใช้ทำการ Telnet เข้ามาใช้งาน CLI บนอุปกรณ์ ก็จะได้รับสิทธิการใช้งานตามแต่ละระดับ Privilege level ของตนครับ อย่างเช่นในระดับ Privilege level 5 นี้จะไม่สามารถ เข้าสู่โหมด Configure และไม่สามารถเรียกดูค่า running-config ได้ครับ
ตัวอย่าง
User Access Verification

Username: user5

Password:

Router#show privilege
Current privilege level is 5

Router#conf t
                  ^
% Invalid input detected at '^' marker.

Router#show run
                   ^
% Invalid input detected at '^' marker.

          เพื่อน ๆ จะเห็นว่าในการ remote เข้ามายังอุปกรณ์ถ้าไม่มีการใช้งาน aaa model ร่วมด้วย เมื่อผู้ใช้ remote เข้ามายังอุปกรณ์ ผู้ใช้จะได้รับสิทธิในการใช้งานตามค่า privilege level ที่ได้กำหนดไว้ในแต่ละ line vty ซึ่งโดย default จะมีค่าเท่ากับ 1

          ทำให้ผู้ใช้นั้นจะเข้าสู่โหมด User EXEC ก่อน จากนั้นจึงเข้าสู่โหมด Privilage EXEC ด้วยการใช้คำสั่ง enable ซึ่งจะทำให้ผู้ใช้ได้ระดับในการใช้งานเป็น 15 ซึ่งจะสามารถที่จะใช้คำสั่งทั้งหมดบนอุปกรณ์ตัวนั้นได้

          แต่ในกรณีที่ต้องการกำหนดสิทธิการใช้งานให้กับผู้ใช้ เช่น ในองค์กรของผมอาจจะมี ผู้ใช้บางคน (เช่น outsource) ที่ผมไม่ต้องการให้ทำการตั้งค่าใด ๆ บนอุปกรณ์ ให้สามารถที่จะเข้ามาดูสถานะการทำงานต่าง ๆ ของอุปกรณ์ได้เท่านั้น ก็จะต้องใช้งาน AAA model ร่วมกับการตั้งค่า line vtyตามตัวอย่างนี้ครับ