ระบบรักษาความปลอดภัยบน Router ของ Cisco
การป้องกันภยันตรายอย่างเช่น Malware การบุกรุกเครือข่ายและอุปกรณ์เครือข่าย รวมทั้งการโจมตีเพื่อให้ระบบไม่สามารถให้บริการได้ (DoS) รวมทั้งการดูแลรักษาความปลอดภัยของเครือข่ายและสำนักงานสาขา บนอุปกรณ์เราเตอร์ ของ Cisco อย่างเช่น Cisco Router ทั่วไป รวมทั้ง Cisco Integrated Services Routers (ISRs) และ Cisco Aggregated Services Routers เป็นเรื่องท้าทายและน่าสนใจ ฉบับนี้ขอแนะนำ วิธีการติดตั้งระบบรักษาความปลอดภัยบนเราเตอร์ของ Cisco ขั้นพื้นฐาน ไปจนถึงระดับ Advanced เพื่อให้ผู้ดูแลอุปกรณ์เครือข่ายของ Cisco นำมาใช้ประโยชน์ได้
ภาพที่ 1 การบริหารจัดการ Interface ของ Cisco Router |
การบริหารจัดการ Interface ของ Router
การบริหารจัดการระบบรักษาความปลอดภัยของ Router สามารถแบ่งออกเป็น 2 ส่วนหลักๆได้แก่ การบริหารจัดการแบบ Out-Band และ In-Band โดย In-Band หมายถึงการบริหารจัดการที่มีการใช้ Interface ที่เป็นกายภาพหรือตรรกะ ที่สามารถนำพาข้อมูลข่าวสารทั่วไปของผู้ใช้งานรวมทั้งข่าวสารเกี่ยวกับการบริหารจัดการ ลักษณะนี้การบริหารจัดการเครือข่ายเป็นไปในรูปแบบที่ผู้ใช้งานทั่วไปกับผู้ใช้ระบบ Software บริหารเครือข่ายอยู่ในที่เดียวกัน ใช้อุปกรณ์ร่วมกัน ซึ่งหมายความว่า ไม่มีการแยกเครือข่ายเฝ้าดู หรือบริหารจัดการระบบออกจากเครือข่ายที่ใช้งานปกตินั่นเอง และ Interface ที่ทำงานภายใต้ In-band นี้ ยังถูกเรียกว่า Shared management Interface
Out-of-band management interface หมายถึงการบริหารจัดการที่มีการใช้ interface ที่เชื่อมต่อไปยังเครือข่ายที่ถูกกำหนดให้ดูแลหรือบริหารจัดการระบบเครือข่ายโดยเฉพาะ ซึ่งหมายถึงมีการใช้เส้นทางการเชื่อมต่อเครือข่ายแยกออกมาต่างหาก เหมาะสำหรับการบริหารจัดการเครือข่ายที่มีขอบข่ายค่อนข้างใหญ่ ซึ่งโดยทั่วไป ผู้ให้บริการโครงข่ายในต่างๆประเทศมักจะใช้วิธีการเช่นนี้ เนื่องจาก ต้องการรักษาความปลอดภัย และไม่ต้องการนำเอา traffic ของการบริหารจัดการเครือข่ายไปปะปนกับ Traffic ของผู้ใช้บริการ Interface ของ Router ต่อไปนี้จัดอยู่ในการบริหารจัดการแบบ Out-band management
แน่นอนการบริหารจัดการเครือข่าย เกี่ยวข้องกับการบริหารความปลอดภัยของอุปกรณ์เครือข่ายอีกด้วย ต่อไปนี้ขอแนะนำการบริหารความปลอดภัยเบื้องต้นของอุปกรณ์ Router
การบริหารจัดการ Password
การป้องกันและรักษาความปลอดภัยของอุปกรณ์ Router ขั้นต้นคือการบริหารจัดการรหัสผ่าน เพื่อป้องกันการเข้าถึง Router จากผู้ที่ไม่มีสิทธิ์ ทั้งนี้เพื่อป้องกันค่าคอนฟิกภายใน รหัสผ่านของ Router จาก Cisco มีอยู่ 2 แบบ เรียกว่า password 5 กับ password 7 โดย password 5 เป็นรหัสผ่านที่ใช้ MD5 ซึ่งเป็นรหัสผ่านที่มีความยาว 128 บิต มีความปลอดภัยสูงกว่า password 7 และ password 7 โดยทั่วไปเรามักนำมาใช้กับ Console และ telnet เท่านั้น ตัวอย่างต่อไปนี้เป็นการใส่รหัสผ่านแบบ Password 7
การควบคุม การเข้าถึง (Access) Router ของ Cisco
การเข้าถึงผ่านทาง Console
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#line console 0
Router(config-line)#login
Router(config-line)#password <รหัสผ่านของ console>
Router(config-line)#^Z
Router#
การเข้าถึงผ่านทาง Telnet
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#line vty 0 4
Router(config-line)#login
Router(config-line)#password <รหัสผ่านของ vty>
Router(config-line)#^Z
Router#
การติดตั้งรหัสผ่านในระดับ Privilege (password 5)
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#enable secret <enable-password>
Router(config)#^Z
Router#
หลังจากติดตั้งรหัสผ่านเสร็จ เราลองมาดูตัวอย่างหน้าจอ หลังจากใช้คำสั่ง show running ดังนี้
ภาพที่ 2 การแสดงชื่อรหัสผ่านหลังจากติดตั้งเสร็จ |
ภาพที่ 2 แสดงชื่อรหัสผ่านให้เห็นบนหน้าจอ หลังจากติดตั้งเสร็จ ลักษณะนี้ ผู้ไม่เกี่ยวข้องสามารถมองข้ามหัวไหล่และสามารถเห็นรหัสผ่าดังกล่าวได้ ดังนั้นท่านจะต้องเข้ารหัสให้เรียบร้อย ด้วยคำสั่งต่อไปนี้
ภาพที่ 3 แสดงการเข้ารหัส password 7 |
ภาพที่ 4 หลังจากเข้ารหัสเรียบร้อยแล้ว |
ภาพที่ 4 เป็นภาพแสดงหลังจากเข้ารหัสเรียบร้อยแล้ว แต่อย่างไรก็ดี หาก รหัสดังกล่าวยังสามารถถูก Crack ได้อีก หากมีผู้เห็นและจำรหัสดังกล่าวได้ โดยสามารถนำรหัสดังกล่าว ไปที่ google.com แล้วค้นหาคำว่า crack password 7 จากนั้นจะปรากฏ website มากมายที่ให้บริการ crack password ดังกล่าว ตัวอย่างต่อไปนี้ เป็นภาพมาจาก website หนึ่งที่ผู้เขียนทดลองนำเอา password 7 ที่ผ่านการเข้ารหัสแล้วไป crack บน website แห่งหนึ่ง ดูภาพที่ 5
ภาพที่ 5 แสดงตัวอย่างการ crack password 7 บน website แห่งหนึ่ง |
สำหรับ password 5 มีระดับความแข็งแกร่งที่สูงกว่า เนื่องจากเป็น 128 บิต อีกทั้งเป็นการผสมผสานระหว่างตัวอักษรใหญ่เล็กและตัวเลขและสัญญาลักษณ์ ดังตัวอย่างภาพที่ 6
ภาพที่ 6 แสดงตัวอย่างการเข้ารหัสผ่านแบบ password 5 |
การติดตั้ง Username
การใช้ Username เป็นวิธีการอีกแบบหนึ่งที่ช่วยป้องกัน Router ได้ดี โดยสามารถกำหนดชื่อของผู้ดูแล ซึ่งอาจเป็นนามแฝงพร้อมด้วยรหัสผ่านของผู้ดูแลเพิ่มเข้าไปอีกชั้นหนึ่ง ซึ่งจะช่วยเสริมความแกร่งให้กับ Router มากยิ่งขึ้น
ตัวอย่างการใช้ Username เพื่อควบคุมการ Access
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#username vichai password <รหัสผ่านของ vichai>
Router(config)#username somsak password <รหัสผ่านของ somsak>
Router(config)#^Z
หลังจากที่ติดตั้งเสร็จเรียบร้อยแล้ว เพื่อให้มีการพิสูจน์สิทธิ์โดย Username จำเป็นต้องเพิ่มคำสั่งเข้าไปดังนี้
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#line vty 0 4
Router(config-line)#login local
Router(config-line)#^Z
การกำหนดสิทธิ์การเข้าถึงและใช้งาน Router
ถึงแม้ว่า ได้ให้สิทธิ์การเข้าถึง Router ก็ตาม การใช้รหัสผ่านที่รัดกุม รวมทั้งการกำหนดให้มีการใช้ Username ยังไม่เพียงพอต่อการป้องกัน Router ด้วยเหตุนี้ จำเป็นต้องเพิ่มมาตรการป้องกันให้มากกว่านี้ เช่นการกำหนดสิทธิ์ของผู้ที่สามารถเข้าถึง Router ได้ รวมทั้งการจำกัดเครื่องคอมพิวเตอร์ที่จะเข้าถึงเพื่อจัดการกับ Router อีกด้วย
วิธีการควบคุมการเข้าถึง Telnet บน Router
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#access-list 10 permit 192.168.10.12
Router(config)#access-list 10 permit 192.168.10.5
Router(config)#access-list 10 deny any
Router(config)#line vty 0 4
Router(config-line)#access-class 10 in
Router(config-line)#^Z
จากตัวอย่างบน เป็นการตั้งค่าเพื่อกำหนดให้มีเพียงคอมพิวเตอร์ 2 เครื่องเท่านั้น ที่สามารถใช้ Telnet เพื่อเข้าถึงตัว Router โดยผู้มีสิทธิ์เข้าถึง จะต้องใช้คอมพิวเตอร์ทั้งสองเครื่องนี้เท่านั้น นอกจากนี้ มีข้อพึงระวังอีกอย่างหนึ่งคือ หลังจากที่ใช้ Telnet เข้าถึงตัว Router แล้ว หลังจากเสร็จงานแล้วจะต้อง Logout ออกมาเสมอ หรืออาจตั้งค่า Timeout ให้กระชับเวลาก็ได้ มิเช่นนั้น หากเลิกใช้งานโดยไม่ได้ Logout ออกมาจะทำให้เกิด Connection ค้างซึ่งจะส่งผลให้ Hacker ที่จับตาดูอยู่ ( หากมีจริง) จะสามารถเข้ามาใช้งานได้ ด้วยเหตุนี้ อาจต้องเพิ่มประโยคต่อไปนี้เข้าไปที่ Router
ป้องกัน Hacker หลังจากใช้งาน Telnet
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#service tcp-keepalives-in
Router(config)#line vty 0 4
Router(config-line)#exec-timeout 5 0
Router(config-line)#^Z
จากตัวอย่างบนนี้ คำสั่ง service tcp-keepalives-in มีไว้เพื่อให้ Router ตรวจสอบสถานการณ์เชื่อมต่อของเครื่องคอมพิวเตอร์กับ Router หากพบว่า ไม่มีการเชื่อมต่อกันเกินกว่า 5 นาที ให้ตัดการเชื่อมต่อโดยสมบูรณ์ทันที
ในบางกรณีเราอาจต้องการยกเลิกการใช้งาน Telnet จะด้วยเหตุผลความปลอดภัย หรือเหตุผลอื่นก็ตามแต่ เราสามารถยกเลิกด้วยคำสั่ง ดังนี้
วิธีการยกเลิกใช้งาน Telnet
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#line vty 0 4
Router(config-line)#login local
Router(config-line)#no password
Router(config-line)#transport input none
Router(config-line)#no exec
Router(config-line)#exec-timeout 0 1
Router(config-line)#^Z
Router#
จากตัวอย่างบนนี้ คำสั่ง no password จะทำให้ผู้ที่พยายามเข้ามาทาง telnet พบกับหน้าจอขณะที่กำลัง Login ว่า “password is not set” ทำให้ไม่สามารถเข้าสู่ Router ได้ ส่วนคำสั่ง Transport input none หมายถึง ไม่อนุญาตให้ใช้คำสั่งใดๆ เข้ามาที่ Router และคำสั่ง no exec หมายถึงไม่อนุญาตให้มีการเรียกใช้คำสั่งทุกชนิด และ Timeout 0 1 หมายถึงให้มีการ Timeout ภายในเวลา 0 นาที หนึ่งวินาที หรือให้มีการ Timeout ในทันที (หาก Hacker ยังสามารถเข้ามาได้อีก ผู้เขียนว่ายกเครื่องให้เขาไปเลยดีกว่า)
การกำหนดสิทธิ์ของการใช้คำสั่งบน Router ของ User
ในบางกรณีมีความจำเป็นที่จะต้องกำหนดระดับสิทธิ์ของการใช้คำสั่งบน Router เช่นเราอาจจะให้คุณ Vichai ซึ่งเป็นผู้ดูแลระบบหลักมีสิทธิ์ใช้งานได้ 100% ขณะที่ คุณ Somsak เป้นผู้ดูแลระดับรอง ที่เราอาจให้สิทธิ์ในการเข้าไปดูสถานการณ์ทำงานของ Interface ต่างๆและตัว Router เท่านั้น แต่ไม่มีสิทธิ์เข้าไปดูค่า Configuration รวมทั้งติดตั้งหรือเปลี่ยนแปลงค่า Configuration ใดๆของ Router ดังนั้น ก่อนที่เราจะติดตั้งมาตรการดังกล่าว เรามาดู ระดับสิทธิ์ใช้งานของ Router เสียก่อน
Cisco ได้กำหนดให้มีระดับสิทธิ์ในการใช้งาน Router โดยแบ่งเป็นระดับ หรือ level 0 และ 15 โดยที่ Level 0 สามารถใช้ได้เพียงไม่กี่คำสั่งเท่านั้น เช่น Enable Disable Help Exit เป็นต้น ส่วน level 15 หมายถึงทำอะไรก็ได้ ใช้คำสั่งอะไรก็ได้บน Router เราสามารถเรียกดูสิทธิ์การใช้งานในปัจจุบันได้ด้วยคำสั่งดังนี้
ระดับของสิทธิ์ ใน Router ของ Cisco
วิธีการเข้าสู่ระดับต่างๆ รวมทั้งระดับของสิทธิ์ในปัจจุบัน
Router>show privilege
Current privilege level is 1
Router>enable 5
Password: level-5-password
Router#show privilege
Current privilege level is 5
Router#
วิธีการออกจากสิทธิ์ในระดับต่างๆ
Router#show privilege
Current privilege level is 5
Router#disable 2
Router#show privilege
Current privilege level is 2
Router#
วิธีการกำหนดสิทธิ์ภายใต้ User Name
ดังที่ได้กล่าวมาแล้วว่า เราสามารถกำหนดสิทธิ์การใช้คำสั่งบน Router ของ User ได้โดยการกำหนดระดับสิทธิ์ให้กับ User ต่างๆ เช่นกำหนดให้ Vichai ได้สิทธิ์เป็นระดับ 15 ขณะที่ Somsak ได้สิทธิ์เพียง 14 หรือน้อยกว่า ซึ่งหมายความว่า ผู้ที่ได้สิทธิ์ระดับที่ต่ำกว่า 15 จะสามารถทำได้เกือบทุกอย่าง ยกเว้น การใช้คำสั่ง show running และ Configure terminal ซึ่งส่งผลให้ไม่สามารถเข้าไปดูค่า Configuration รวมทั้งการติดตั้ง Configuration ด้วยตนเอง ตัวอย่างต่อไปนี้เป็นการใช้คำสั่งดังกล่าว
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#username vichai privilege 15 password <รหัสผ่านของ vichai>
Router(config)#username somsak privilege 14 password <รหัสผ่านของ somsak>
อย่างไรก็ตาม เราสามารถกำหนดระดับของสิทธิ์ให้สามารถใช้คำสั่งเฉพาะเจาะจงก็ได้ เช่นกำหนดให้ Level 5 สามารถใช้คำสั่ง Connect คำสั่ง show access-list คำสั่ง show ip เป็นต้น
วิธีการกำหนดความสามารถในการใช้คำสั่งภายใต้ระดับสิทธิ์ต่างๆ
RouterOne#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
RouterOne(config)#privilege exec level 5 connect
RouterOne(config)#privilege exec level 5 show ip access-lists
RouterOne(config)#privilege exec level 5 show logging
RouterOne(config)#privilege exec level 5 show ip
RouterOne(config)#^Z
จากคำสั่งบน จะเห็นว่า show ip หมายถึง สามารถใช้คำสั่งใดก็ตามที่อยู่หลัง ip ทั้งหมด เช่น show ip interface brief show ip ospf interface show ip protocol show ip route แต่ห้ามใส่แค่คำสั่ง show อย่างเดียว เนื่องจากจะสามารถใช้คำสั่ง show running หรือ show start เข้ามาดูค่า configuration ได้
การใช้ SSH แทนการใช้ Telnet
เป็นที่ทราบดีว่า การใช้ telnet ไม่มีความปลอดภัย เนื่องจากข้อมูลข่าวสารที่สื่อสารระหว่างเครื่องคอมพิวเตอร์กับ Router ไม่มีการเข้ารหัส และสามารถถูกดักจับได้ หากเป็นการเชื่อมต่อผ่านอินเตอรเนต หรือเครือข่ายที่ไม่มีความปลอดภัยดีพอ ด้วยเหตุนี้ เราสามารถใช้ SSH แทน เนื่องจากมีการเข้ารหัสข้อมูล และมีความปลอดภัยสูงกว่า เราสามารถติดตั้ง SSH Server บนตัว Router ได้ด้วยคำสั่งต่อไปนี้
วิธีการใช้ SSH เพื่อป้องกันข้อมูลแทนการใช้ Telnet
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#hostname RouterOne
RouterOne(config)#ip domain-name mydomain.com
RouterOne(config)#crypto key generate rsa
The name for the keys will be: RouterOne
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take a few minutes.
How many bits in the modulus [512]: 1024
Generating RSA keys ...
[OK]
หลังจากที่ติดตั้ง SSH บน Router เสร็จสิ้นแล้ว เราสามารถใช้ โปรแกรมประเภท terminal Emulator หลายตัว เช่น Putty เพื่อใช้ เป็น SSH Client เข้าไปใช้งานบน Router ดังภาพตัวอย่าง 7
ภาพที่ 7 แสดงตัวอย่างการใช้ Putty เพื่อเป็น Client side เชื่อมต่อกับ Router |
นอกจากนี้ เรายังสามารถติดตั้งคำสั่งเพิ่มเติม เพื่อให้การใช้งาน SSH มีความปลอดภัยมากยิ่งขึ้น โดยอาจกำหนดให้มีค่า Timeout รวมทั้งจำกัดจำนวนครั้งที่พิสูจน์เพื่อเข้ามาใช้งาน โดยกำหนดว่า หากใส่ชื่อหรือรหัสผ่านไม่ถูกต้องเกินจำนวนครั้งที่ตั้งไว้ให้ ดำเนินการดีดออกไป รวมทั้งกำหนดให้มีการใช้โปรโตคอล SSH ได้เพียงอย่างเดียวเท่านั้น
RouterOne(config)#ip ssh time-out 60
RouterOne(config)#ip ssh authentication-retries 2
RouterOne(config)#line vty 0 4
RouterOne(config-line)#transport input ssh
RouterOne(config-line)#^Z
RouterOne#
ควบคุมการเข้าถึง Router ด้วย Web Access
ปกติ เราสามารถเข้าถึง Router เพื่อติดตั้ง Configuration ได้หลายวิธี และการใช้ HTTP หรือ Web Browser ก็เป็นอีกวิธีหนึ่ง ที่ทำได้ ดังนั้น หากอนุญาตให้สามารถเข้าถึงด้วย web browser ให้ติดตั้งคำสั่งต่อไปนี้บน Router
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip http server <หรือ no ip http server หากไม่ต้องการให้เข้าถึงด้วย http>
Router(config)#^Z
จำกัดการ Access ผ่าน Web
บ่อยครั้งก็มีความจำเป็นที่จะต้องจำกัดการเข้าถึง Router ผ่านทาง HTTP หรือ Web โดยเราอาจกำหนดเป็นหมายเลขไอพีแอดเดรสของเครื่องคอมพิวเตอร์ที่จะเข้ามาทาง HTTP ก็ได้ ดังตัวอย่างต่อไปนี้
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#access-list 20 permit 192.168.40.15
Router(config)#access-list 20 deny any
Router(config)#ip http access-class 20 < นำกฎกติกา 20 มาไว้ที่ HTTP Server
Router(config)#^Z
วิธีการพิสูจน์สิทธิ์ผ่าน Web Page
การพิสูจน์สำหรับผู้ที่จะเข้ามาทาง Web เป็นเรื่องจำเป็น ดังนั้น เราจะต้องกำหนดให้มีการพิสูจน์ได้ในหลายรูปแบบ เช่น enable วึ่งเป็นการบังคับให้ใช้รหัสผ่านแบบ MD5 (Password 5) หรืออาจให้ใช้ Local วึ่งเป็น Password 7 รวมทั้งวิธีการอื่น เช่นใช้ tacacs หรือ aaa เป็นต้น ก็ได้ตามที่เห็นสมควร
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ip http authentication <ชนิดของรหัสผ่าน < --- เช่น enable, local, tacacs, หรือ aaa
Router(config)#^Z
การควบคุม Access ด้วย TACACS+
TACACS สามารถดูแลและควบคุมการเข้าถึง Router แบบรวมศูนย์ (หมายความว่า แทนที่จะติดตั้ง Username และ Password บน Router ทุกๆตัว แต่จะใช้วิธีการร้องถาม TACACS+ Server ว่า ผู้ใดที่มีสิทธิ์ในการเข้าถึง Router หากท่านมี Router อยู่เป็นจำนวนมาก ที่ต้องใช้ Username ในการเข้าถึง ท่านสามารถติดตั้ง TACACS+ Server เพียงหนึ่งเดียวเพื่อดูแลการเข้าถึง Router ทุกตัว
ภาพที่ 8 แสดงการติดตั้ง tacacs+ Server |
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#line aux 0
Router(config)#login tacacs
Router(config)#exit
Router(config-line)#tacacs-server last-resort password
Router(config)#tacacs-server host 192.168.10.12
Router(config)#^Z
นอกจากนี้ท่านยังสามารถกำหนดให้ Router ให้บริการพิสูจน์สิทธิ์ Privilege และ Enable Password ได้ ดังนี้
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#tacacs-server host 130.218.10.5
Router(config)#tacacs-server authenticate enable
Router(config)#enable use-tacacs
Router(config)#enable last-resort password
Router(config)#^Z
วิธีการป้องกัน Router โดยใช้ IPSec
การสื่อสารระหว่าง Client ไปที่ Router เพื่อดำเนินการจัดคอนฟิก บน Router ที่อยู่ไกลออกไป โดยผ่านทางอินเตอร์เนต เป็นการกระทำที่เสี่ยงต่อความปลอดภัย เนื่องจากอาจถูกดักจับข้อมูล และมีการทำซ้ำก็เป็นได้ การใช้ IPSec VPN ก้เป็นอีกวิธีหนึ่งที่ช่วยปกป้องข้อมูลข่าวสาร จากการสื่อสารดังกล่าวได้
RouterOne#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
RouterOne(config)#crypto isakmp policy 10 <กำหนด Policy สำหรับ IPsec หมายเลข 10
RouterOne(config-isakmp)#authentication pre-share < กำหนดให้มีการแลกเปลี่ยนกุญแจ
RouterOne(config-isakmp)#^Z
วิธีการเพิ่ม Extended ACL ใช้งานร่วมกับ IPSec เพื่ออนุญาตคอมพิวเตอร์ที่มีสิทธิ์วิ่งบน VPN
RouterOne#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
RouterOne(config)#access-list 150 permit ip host 192.168.10.10 host RouterOne
RouterOne(config)#access-list 150 deny ip any any
RouterOne(config)#^Z
จัดสร้าง IPSec Transform เพื่อกำหนดวิธีการเข้ารหัสข้อมูลภายใต้ IPSec
RouterOne#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
RouterOne(config)#crypto ipsec transform-set TransOne ah-md5-hmac esp-des
RouterOne(cfg-crypto-trans)#^Z
จัดสร้าง Crypto Map เพื่อกำหนดวิธีการทำงานภายใต้ IPSec
RouterOne#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
RouterOne(config)#crypto map MyMapOne 10 ipsec-isakmp
RouterOne(config-crypto-map)#set peer 192.168.10.10 < ระบุคอมพิวเตอร์ที่จะใช้ VPN
RouterOne(config-crypto-map)#set transform-set TransOne <ชื่อ Transform-set
RouterOne(config-crypto-map)#match address 150 <กฎกติกานี้ใช้กับคอมพิวเตอร์ในกก
กติกาหมายเลข 20
RouterOne(config-crypto-map)#^Z
ติดตั้ง Crypto Map เข้ากับ Interface เพื่อนำกฎกติกาไปไว้ใน Interface
RouterOne#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
RouterOne(config)#int Serial 0/1
RouterOne(config-if)#crypto map MyMapOne
RouterOne(config-if)#^Z
การใช้งาน AAA
AAA เป็นวิธีการควบคุมการเข้าถึง Router ที่มีประสิทธิภาพแบบหนึ่ง โดย AAA สามารถใช้ การพิสูจน์สิทธิ์แบบ Local รวมทั้ง TACACS+ RADIUS รวมทั้ง Kerberos เพื่อการพิสูจน์สิทธิ์ และสามารถใช้บริการให้สิทธิ์ใช้งานโดย TACACS+ และ RADIUS
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#aaa new-model
Router(config)#aaa authentication login default local
Router(config)#line vty 0 4
Router(config-line)#login authentication default
Router(config-line)#exit
Router(config)#line aux 0
Router(config-line)#login authentication default
Router(config-line)#exit
Router(config)#line con 0
Router(config-line)#login authentication default
Router(config-line)#^Z
Router#
วิธีการใช้ TACACS+ เพื่อการพิสูจน์สิทธิ์
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#aaa new-model
Router(config)#tacacs-server host 130.218.12.10
Router(config)#tacacs-server key MyTACACSkey
Router(config)#aaa authentication login default group tacacs+ local
Router(config)#line aux 0
Router(config-line)#login authentication default
Router(config-line)#exit
Router(config)#line vty 0 4
Router(config-line)#login authentication default
Router(config-line)#^Z
Router#
วิธีการใช้ TACACS+ และ Enable Password เพื่อพิสูจน์สิทธิ์
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#aaa new-model
Router(config)#tacacs-server host 130.218.12.10
Router(config)#tacacs-server key MyTACACSkey
Router(config)#aaa authentication enable default group tacacs+ enable
Router(config-line)#^Z
Router#
วิธีการให้ AAA ใช้บริการ TACACS+ เพื่อพิสูจน์สิทธิ์ผ่าน Web
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ip http authentication aaa
Router(config)#^Z
ภาพที่ 9 ลักษณะการจัดวาง RADIUS Server และ TACACS+ |
วิธีการให้ AAA ติดต่อ RADIUS เพื่อให้บริการพิสูจน์สิทธิ์
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#aaa new-model
Router(config)#radius-server host 130.218.50.5
Router(config)#radius-server key MyRADIUSkey
Router(config)#aaa authentication login default group radius local
Router(config)#line con 0
Router(config-line)#login authentication default
Router(config-line)#exit
Router(config)#line vty 0 4
Router(config-line)#login authentication default
Router(config-line)#^Z
วิธีการใช้ AAA ติดต่อกับ RADIUS เพื่อใช้ Enable Password ในการพิสูจน์สิทธิ์
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#aaa new-model
Router(config)#radius-server host 130.218.50.5
Router(config)#radius-server key MyRADIUSkey
Router(config)#aaa authentication enable default group radius enable
Router(config)#^Z
Router#
การรักษาความปลอดภัย Router จาก Service ที่มากับ Router
Cisco Router ให้การสนับสนุน การบริการบนเครือข่ายเป็นจำนวนมาก ไม่ว่า Services ของเครือข่ายนี้ จะเป็นการทำงานบน Layer 2 3 4 และ 7 ก็ตาม โดยที่ Sevices เหล่านี้ บางรายการท่านสามารถเข้มงวดต่อการให้บริการ ขณะที่บาง Services เป็นสิ่งที่ไม่จำเป็น และอาจถูกใช้เป็นเครื่องมือการโจมตีจากฝ่ายที่ไม่หวังดี ดังนั้นท่านสามารถหยุดการให้บริการของมันได้ โดยไม่ทำให้ประสิทธิภาพการทำงานของ Router ลดลง นอกจากนี้ Services บางรายการ เป็นโปรโตคอลในระดับ Application ที่ช่วยให้ User หรือคอมพิวเตอร์สามารถสื่อสารติดต่อเพื่อครอบครองและใช้งาน Router นอกจากนี้เป็นโปรโตคอลบริการที่ให้การสนับสนุน การจัด Configuration อื่นๆ ซึ่งสามารถใช้บริการอื่นๆ ทดแทนได้ เช่น ปกติ Router สามารถให้การสนับสนุนใช้งานโปรโตคอล Bootp ซึ่งอาจใช้กับการบริการเครือข่ายต่างๆ แต่ท่านสามารถใช้ Bootp Server ที่ เครื่องคอมพิวเตอร์แทนได้ ดังนั้น การลดปริมาณการให้บริการเครือข่ายใน Router แล้วหันไปใช้ การบริการเครือข่าย จากคอมพิวเตอร์ภายในเครือข่าย แทนการใช้ Router จะช่วยให้สามารถอุดช่องโหว่ของระบบความปลอดภัยบน Router ได้
ต่อไปนี้เป็น ชนิดของ Services และความเสี่ยงภัยจากการใช้ Services เหล่านี้
โปรโตคอล |
รายละเอียด |
ค่า Default |
ข้อแนะนำ |
Cisco Discovery Protocol (CDP) |
โปรโตคอลในระดับ Layer 2 ของ Cisco |
ถูก Enable ใน Router |
CDP เป็นโปรโตคอลที่ไม่จำเป็นต้องใช้ ให้ Disable ออกไปได้ |
TCP Small Server |
เป็นมาตรฐานบริการของ TCP เช่น Echo และ Chargen |
ถูก Enable ใน IOS 11.3 และถูก Disable ใน IOS 11.2 |
เป็นโปรโตคอลบริการแบบเก่า ไม่มีความจำเป็นใช้ ให้ Disable |
UDP Small Services |
เป็นมาตรฐานบริการของ UDP ประกอบด้วย Echo Discard เป็นต้น |
ถูก Disable ใน IOS 11.3 และถูก Enable ใน IOS 11.2 |
เป็นโปรโตคอลบริการแบบเก่า ไม่มีความจำเป็นใช้ ให้ Disable |
Finger |
เป็น Lookup Service ของ UNIX ทำให้สามารถแสดงรายการของผู้เข้ามาใช้งานได้ |
Enable |
ไม่ควรให้ผู้ที่ไม่เกี่ยวข้องเข้ามาใช้บริการนี้ ให้ Disable ออกจาก Router |
HTTP Server |
อุปกรณ์ Cisco บางตัวให้การสนับสนุนการจัด Configure ภายใต้ รูปแบบของ Web |
แล้วแต่อุปกรณ์ที่ใช้ |
หากท่านไม่ใช้ ให้ Disable ทิ้งหรือให้ใช้ด้วยความระมัดระวังและจำกัด |
Bootp Server |
เป็นบริการที่ทำให้ Router ตัวอื่นสามารถ Boot ได้จาก Router ตัวนี้ |
Enable |
โอกาสที่จะบริการนี้เป็นไปได้ยาก และอาจเปิดช่องโหว่ ให้ Disable |
Configuration Auto Loading |
Router พยายามที่จะ Load Configuration ของมันผ่านทาง TFTP |
Disable |
เป็นบริการที่มีโอกาสใช้ยากมาก หากไม่ได้ใช้งาน ให้ Disable |
IP Source Routing |
เป็นคุณลักษณะการทำงานของ IP ที่ทำให้ Packet กำหนดเส้นทางมันเอง |
Enable |
เป็นบริการที่โอกาสใช้ยากมาก และเปิดช่องโหว่ ดังนั้นให้ Disable |
Proxy ARP |
Router จะทำตัวเป็น Proxy สำหรับ แปล Addressใน Layer 2 |
Enable |
ให้ Disable Service นี้ เว้นเสียแต่ว่า Router ถุกทำหน้าที่เป็น LAN bridge |
IP Directed Broadcast |
Packet สามารถแสดงเป้าหมายบน LAN เพื่อ Broadcast |
Enable (IOS 11.3 หรือก่อนหน้านี้) |
Directed Broadcast สามารถถูกใช้เป็นเครื่องมือการโจมตี ให้ Disable ทิ้งไป |
IP Unreachable |
Router ใช้เตือนผู้ส่งถึง IP Address ที่ไม่ถูกต้อง |
Enable |
ช่วยให้ผู้โจมตีสามารถทราบความเป็นไปของเครือข่าย ให้ Disable บนเครือข่ายที่ไม่น่าไว้ใจ |
IP Mask Reply |
Router จะส่ง IP Address mask ของ Interface เพื่อตอบสนองการร้องขอโดย ICMP |
Disable |
ช่วยให้ผู้โจมตีสามารถทราบความเป็นไปของเครือข่าย ให้ Disable บนเครือข่ายที่ไม่น่าไว้ใจ |
IP Redirect |
Router จะส่ง ข่าวสาร ICMP Redirect เพื่อตอบสนอง Route Packet |
Enable |
ช่วยให้ผู้โจมตีสามารถทราบความเป็นไปของเครือข่าย ให้ Disable บนเครือข่ายที่ไม่น่าไว้ใจ |
NTP Service |
Router จะทำตัวเป็น Time Server สำหรับอุปกรณ์อื่นๆรวมทั้ง Hosts |
Enable (หากมีการจัด Configure NTP Server) |
หากไม่ได้ใช้งาน ให้ Disable หรือใช้อย่างระมัดระวัง |
SNMP |
Router สามารถให้การสนับสนุนการร้องขอข่าวสารจาก Remote |
Enable |
หากไม่ได้ใช้งาน ให้เอา Default Community String ออกและ Disable |
Domain name Service |
Router สามารถทำหน้าที่แปลชื่อและ IP Address สำหรับ Host บนเครือข่าย |
Enable (Broadcast) |
ให้ Disable DNS Lookup |
ตารางที่ 1 แสดงโปรโตคอลและ Services ที่จำเป็นและไม่จำเป็นบน Router
ปิด Service ที่ไม่จำเป็น
ปิด ICMP MTU Discovery
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#access-list 103 permit icmp any any 3 4 < --- Type 3 Code 4
Router(config)#access-list 103 deny icmp any any
Router(config)#access-list 103 permit ip any any
Router(config)#interface Serial 0/1
Router(config-if)#ip access-group 103 in
Router(config-if)#^Z
Router#
การ Disable IP Unreachable Redirects และ Mask Replies
TCP/IP มีโปรโตคอลตัวหนึ่งที่เรียกว่า ICMP สามารถให้การสนับสนุน IP Traffic โดยสามารถถ่ายทอดข่าวสารเกี่ยวกับเส้นทาง และเงื่อนไขของเครือข่ายได้ อุปกรณ์ Router ของ Cisco สามารถส่งข่าวสาร ICMP ภายใต้เงื่อนไขต่างๆได้โดยอัตโนมัติ แต่ข่าวสารภายใต้ ICMP หลายประการถูกนำมาใช้ในทางผิดๆ โดยผู้โจมตีเครือข่าย เช่นใช้ข่าวสารนี้ เพื่อการสร้างผังของเครือข่าย เพื่อให้รู้ลักษณะและสถานะของเครือข่ายก่อนเริ่มการโจมตี ข่าวสารดังกล่าว ได้แก่ Host Unreachable Redirects และ Mask reply โดยข่าวสารประเภทนี้ ควรได้รับ Disable ออกไปจาก Router ต่อไปนี้ เป็นวิธีการ Disable ข่าวสารดังกล่าว
ปิด ICMP Redirect --- ขาออก
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface FastEthernet 0/0
Router(config-if)#no ip redirects
Router(config-if)#^Z
Router#
ICMP Redirects ขาเข้า
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#access-list 101 deny icmp any any redirect
Router(config)#access-list 101 permit ip any any
Router(config)#interface FastEthernet 0/0
Router(config-if)#ip access-group 101 in
Router(config-if)#^Z
Router#
ปิด ICMP Mask Reply
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface Ethernet 0/0
Router(config-if)#no ip mask-reply
Router(config-if)#exit
Router(config)#interface Serial 0/1
Router(config-if)#no ip mask-reply
Router(config-if)#^Z
Router#
ปิด ICMP Directed Broadcast
การ Disable IP Directed Broadcast
Directed Broadcast สามารถทำให้คอมพิวเตอร์เครื่องหนึ่งใน LAN Segment (เช่น Switching Hub) หนึ่ง สามารถส่ง Broadcast ทางกายภาพ ไปยัง LAN อีก Segment หนึ่งได้ เทคนิคนี้ ผู้โจมตีเครือข่าย นำมาใช้ในการโจมตีแบบ DoS และเป็นข้อดีที่ Cisco IOS ได้ถอดถอนการทำงานในลักษณะนี้ออกไปเป็นที่เรียบร้อยแล้ว ในกรณีที่อุปกรณ์ของท่านได้ติดตั้ง การบริการดังกล่าว ท่านก็สามารถยกเลิกการใช้งานได้ด้วย คำสั่งดังนี้ที่ Interface Mode
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface Serial 0/1
Router(config-if)#no ip directed broadcast
Router(config-if)#^Z
Router#
ปิด Small Services
ภายใต้โปรโตคอล TCP และ UDP โดยมาตรฐานจะประกอบด้วยชุดโปรโตคอลบริการเล็กๆที่มากับโปรโตคอลเหล่านี้ เช่น Echo Chargen เป็นต้น โดยที่ชุดบริการเหล่านี้ เป็นสิ่งที่ไม่จำเป็นใช้สำหรับ Router อีกทั้งเป็นชุดโปรโตคอลบริการที่เปิดช่องให้ผู้โจมตีสามารถใช้ DOS (Denial of Service) เข้ามาโจมตี Router ได้ ดังนั้นจึงต้อง Disable ทิ้ง วิธีการ Disable มีดังนี้
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#no service tcp-small-servers
Router(config)#no service udp-small-servers
Router(config)#^Z
Router#
ปิดการใช้งาน Finger
Finger Server ภายใต้ IOS สามารถให้การสนับสนุนคำสั่ง Finger แบบที่ใช้ใน UNIX ซึ่งเป็นโปรโตคอลที่ใช้เพื่อการสอบถามคอมพิวเตอร์เกี่ยวกับ User ที่ Logon เข้ามา แต่อย่างไรก็ดี ท่านไม่จำเป็นต้องใช้ Finger เพื่อตรวจสอบดูผู้ที่ Login เข้ามาที่ Host ก็ได้ เพียงแต่ใช้คำสั่ง Show users ก็สามารถแสดงรายการผู้ที่ Logon เข้ามาได้ โดยทั่วไปแล้วผู้ที่ไม่มีสิทธิ์ Logon เข้ามาที่ Router ก็ไม่ควรมีสิทธิ์ที่จะรู้ว่าใครบ้างที่ Logon เข้ามาอยู่แล้ว ตัวอย่างต่อไปนี้ แสดงวิธีการ Disable Finger Server
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#no service finger
Router(config)#^Z
สำหรับ IOS Version ใหม่กว่า
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#no ip finger
Router(config)#^Z
ปิด CDP Services
CDP เป็นโปรโตคอลเฉพาะของ Cisco ที่ถูกนำมาใช้เพื่อการพิสูจน์แสดงตัวซึ่งกันและกันของอุปกรณ์บนเครือข่าย LAN เป็นโปรโตคอลที่มีประโยชน์ในบางสถานการณ์ แต่ก็อาจทำให้อุปกรณ์เครือข่ายเสี่ยงต่อการถูกละเมิดความปลอดภัย วิธีการ Disable CDP มีดังนี้
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#no cdp run
Router(config)#^Z
หรือ
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface Serial 0/0
Router(config-if)#no cdp enable
Router(config-if)#^Z
Router#
ปิดบริการ Proxy ARP
เครื่องคอมพิวเตอร์บนเครือข่ายปกติจะใช้ ARP หรือ Address Resolution protocol เพื่อการแปล IP Address ให้เป็น Address ของ LAN Interface card โดยปกติแล้ว ARP ถูกนำมาใช้กันบน LAN แต่ Router ก็สามารถแปล IP Address ให้เป็น Address Interface ของมันเองแก่ Host ที่สอบถามมาก็ได้ รวมทั้งสามารถเป็นทางผ่านของข่าวสารเกี่ยวกับ Address ของ Interafce ที่ผ่านการแปลแล้วจากเครือข่ายหนึ่งไปยังอีกเครือข่ายหนึ่ง เราเรียกบริการนี้ว่า Proxy ARP การใช้ Proxy ARP เหมาะสำหรับเครือข่ายทั้งสองที่เชื่อมต่อผ่าน Router มีระดับความปลอดภัยที่เท่าเทียมกัน
Router ของ Cisco ปกติจะ Enable การทำงานของ ARP โดย Default ดังนั้น ท่านสามารถ Disable การทำงานของ Proxy ARP ในแต่ละ Interface ของ Router ได้ ตามตัวอย่าง ดังนี้
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface Ethernet 0/0
Router(config-if)#no ip proxy-arp
Router(config-if)#exit
Router(config)#interface Serial 0/0
Router(config-if)#no ip proxy-arp
Router(config-if)#^Z
Router#
การ Disable BootP Server
BootP เป็นโปรโตคอลที่ทำงานภายใต้ UDP ที่คอมพิวเตอร์บางเครื่องนำมาใช้เพื่อ Load ระบบปฏิบัติการ บนเครือข่าย โดย Router ของ Cisco สามารถทำตัวเป็น BootP Server การใช้ BootP บน Router มีจุดประสงค์เพื่อให้ Router ตัวอื่นๆสามารถ Boot ได้จาก Router ตัวนี้ ซึ่งงานประเภทนี้เป็นเรื่องยากที่จะถูกเอามาใช้ และ BootP อาจเปิดโอกาสให้ Hacker สามารถ Download ชุด IOS Software จาก Router ได้ เพื่อที่จะ Disable การทำงานของ BootP Server ท่านสามารถใช้คำสั่ง ดังนี้
Router(config)#no ip bootp server
Router#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#no ip name-server
Router(config)#no service config
Router(config)#no boot network
Router(config)#no service pad
Router(config)#no ip classless
Router(config)#^Z
การดูแลความปลอดภัยของอุปกรณ์เครือข่าย อย่างเช่น Router ยังเป็นสิ่งจำเป็น มีคำกล่าวว่า Firewall มีไว้เพื่อป้องกันเครือข่าย แล้วใครที่จะมาป้องกัน Router คำตอบคือไม่มี เนื่องจาก Router เป็นอุปกรณ์ที่อยู่นอกสุดของเครือข่าย จึงมีโอกาสเผชิญกับอันตรายสูง