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

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

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

Sunday, January 16, 2011

การเพิ่มระดับความปลอดภัยในการ login เข้าสู่อุปกรณ์ Cisco IOS

Security Enhancement with Cisco IOS Login Enhancements

login enhancement

         ในการใช้งานอุปกรณ์ Cisco IOS นั้น เพื่อความสะดวกในการจัดการอุปกรณ์ ส่วนมากจะมีการตั้งค่าให้สามารถ remote มาเข้าใช้งานอุปกรณ์ผ่านทางโปรโตคอลที่ใช้ในการ Management ต่าง ๆ เช่น Telnet หรือ SSH ได้ แต่ในการใช้งานโดย default นั้น จะไม่มีการรักษาความปลอดภัยในการ login เข้าสู่ระบบซักเท่าไร แต่ในวันนี้ผมจะมาแนะนำคุณสมบัติที่เรียกว่า Login Enhancements บนอุปกรณ์ Cisco IOS ที่ใช้สำหรับการเพิ่มระดับการรักษาความปลอดภัยในการ login เข้าสู่อุปกรณ์ Cisco IOS กันครับ

          โดยทั่วไปในการใช้งานอุปกรณ์ Cisco IOS นั้นจะไม่มีการกำหนดนโยบายการรักษาความปลอดภัยที่เกี่ยวกับการ login เข้าใช้งานบนอุปกรณ์ Cisco IOS ซักเท่าไร แต่เพื่อน ๆ ทราบมั้ยครับว่า เราสามารถกำหนดนโยบายในการรักษาความปลอดภัยที่เกี่ยวข้องกับการ login ได้ เช่น การกำหนดค่า delay เมื่อมีการ login เข้าสู่ระบบ เพื่อป้องกันการโจมตีแบบ Dictionary Attack หรือ Brute-force Attack หรือการไม่อนุญาตให้ทำการ Login ภายในระยะเวลานึง เมื่อมีการเข้าสู่ระบบล้มเหลวเกินจำนวนที่ได้กำหนดไว้ อีกทั้งยังสามารถทำการเก็บ log ที่เกี่ยวข้องกับการ login ได้อีกด้วย(ซึ่งโดย default จะไม่มีการเก็บ log ที่เกี่ยวกับการ login เข้าสู่ระบบ)

          การใช้งานคุณสมบัติ Login Enhancements นี้ สามารถใช้งานได้ตั้งแต่ Cisco IOS Version 12.3(4)T เป็นต้นมา โดยคุณสมบัติ Login Enhancements นี้จะทำให้สามารถกำหนดนโยบายการรักษาความปลอดภัยที่เกี่ยวข้องกับการ login เข้าใช้งานอุปกรณ์ Cisco IOS ได้ดังนี้

  • การกำหนดช่วงเวลาของการ delay เมื่อมีการ login เข้าสู่ระบบ เพื่อป้องกันการโจมตีแบบ Brute Force
  • การกำหนดจำนวนครั้งที่อนุญาตให้ทำการ login ได้ใหม่ก่อนที่จะเข้าสู่ quiet mode(โหมดพิเศษที่ไม่อนุญาตให้ทำการ login หรือมีการกำหนด ACL เพื่อใช้ในการรักษาความปลอดภัยในการ login)
  • การกำหนดให้มีการเก็บ log การ login เข้าสู่ระบบ ไม่ว่าจะทำการ login สำเร็จหรือไม่

สำหรับขั้นตอนการตั้งค่า Loing Enhancements ก็มีดังนี้ครับ

  1. ทำการกำหนดค่า delay เมื่อมีการ login เข้าสู่ระบบ(default จะมีค่าเท่ากับ 1 วินาที) ด้วยการใช้คำสั่ง "login delay <second>"
  2. ทำการกำหนดจำนวนครั้งที่อนุญาตให้ทำการ login ล้มเหลวภายในช่วงเวลาหนึ่ง ๆ พร้อมทั้งการกำหนดช่วงเวลาที่จะให้ใช้งาน quiet mode ด้วยการใช้คำสั่ง “login block-for <second> attempts <number> within <second>”
  3. ทำการสร้าง access-list ที่จะนำไปใช้สำหรับ quiet mode (ทางเลือก) ซึ่งโดย default ถ้าไม่มีการสร้าง access-list ก็จะไม่อนุญาตให้ทำการ login เข้าใช้งานได้ทั้งหมดอยู่แล้ว แต่เราสามารถปรับแต่งค่า access-list ได้ เช่นอนุญาตให้ทำการ login ได้จากต้นทาง ip address หมายเลขใดหมายเลขหนึ่ง เป็นต้น
  4. นำ access-list ที่สร้างขึ้นมาไปใช้งานใน quiet mode ด้วยการใช้คำสั่ง "login quiet-mode access-class <acl number>"
  5. ทำการกำหนดให้อุปกรณ์เก็บ log เมื่อมีการ login เข้าสู่ระบบสำเร็จหรือล้มเหลว ด้วยคำสั่ง "login on-failure log" หรือ "login on-success log"
  6. ทำการตรวจสอบการทำงาน ด้วยการใช้คำสั่ง "show login"

          เอาล่ะครับ เรามาดูตัวอย่างการตั้งค่ากันดีกว่านะครับ ในขั้นตอนแรกจะเป็นการกำหนดค่า delay เมื่อมีการ login เข้าสู่ระบบ ไม่ว่าจะ login สำเร็จหรือไม่นะครับ เพื่อป้องกันการโจมติแบบ Brute Force หรือ Dictionary Attack ที่จะทำการสุ่ม password มาทำการ login เข้าสู่ระบบของเราครับ อย่างเช่นในตัวอย่างด้านล่างนี้เป็นการกำหนดให้มีการ delay เมื่อมีการ login ไว้ 10 วินาทีครับ คือเมื่อใส่ username และ password ไปแล้ว อีก 10 วินาทีจึงจะมี prompt ขึ้นมาครับ

ตัวอย่าง
Running-config(config)#login delay 10

          จากนั้น ในขั้นตอนต่อมาจะเป็นการกำหนดค่าจำนวนครั้งที่อนุญาตให้ทดลองทำการ login เข้าสู่ระบบภายในช่วงเวลาที่กำหนดครับ และยังทำการกำหนดช่วงเวลาที่จะเข้าสู่ Quiet-mode ซึ่งเป็น mode พิเศษสำหรับใช้ในการรักษาความปลอดภัยในการ login ครับ

ตัวอย่าง
Running-config(config)#login block-for 600 attempts 5 within 120

          จากตัวอย่างด้านบน เป็นการกำหนดให้เข้าสู่ Quiet-mode เป็นเวลา 600 วินาทีหรือเท่ากับ 10 นาที เมื่อมีการ login เข้าสู่ระบบล้มเหลวครบ 5 ครั้งใน 120 วินาทีครับ ซึ่งโดย default เมื่ออุปกรณ์ทำงานใน quiet-mode นี้แล้ว จะไม่อนุญาตให้ทำการ login เข้าสู่ระบบได้ไม่ว่าจะทำการ remote มาจากไหน จนกว่าจะครบตามช่วงเวลาที่กำหนดไว้ แต่เราสามารถทำการปรับแต่งให้อนุญาตให้สามารถ remote มาจากบาง  ip address ได้แม้ว่าจะทำงานอยู่ใน Quiet-mode โดยการกำหนด access-list เพิ่มเติมเข้าไปตามตัวอย่างด้านล่างนี้ครับ

ตัวอย่าง
Running-config(config)#access-list 100 permit tcp host 192.168.0.10 any eq 23
Running-config(config)#access-list 100 deny ip any any

          จากตัวอย่างด้านบน เป็นการสร้าง access-list โดยทำการกำหนดให้เครื่องโฮสต์ที่มีหมายเลข ip address เป็น 192.168.0.10 สามารถ remote มายังอุปกรณ์ผ่านทางโปรโตคอล telnet (tcp port 23) ได้ แต่ทราฟิกอื่น ๆ นอกจากนี้ให้ทำการ deny หรือปฏิเสธไปทั้งหมด

          และเมื่อเราทำการสร้าง access-list เสร็จเรียบร้อยแล้ว เราจะต้องนำ access-list ที่สร้างขึ้นมาในขั้นตอนที่แล้ว มาประกาศใช้งานสำหรับ quiet-mode ด้วยการใช้คำสั่ง “login quiet-mode access-class <ACL number>” ครับ

ตัวอย่าง
Running-config(config)#login quiet-mode access-class 100

          จากนั้นในขั้นตอนสุดท้ายนี้ จะเป็นการตั้งค่าให้อุปกรณ์ทำการเก็บ log เมื่อมีการ login เข้าสู่อุปกรณ์ของเราครับ เพราะว่าโดย default ของอุปกรณ์แล้วจะไม่มีการเก็บ log การ login ต่าง ๆ เอาไว้ ทำให้เราไม่สามารถทราบได้ว่ามี user คนไหนทำการ login เข้าใช้งานอุปกรณ์ในเวลาใดได้ครับ

ตัวอย่าง
Running-config(config)#login on-failure log
Running-config(config)#login on-success log

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

ตัวอย่าง
เมื่อมีการ login เข้าสู่อุปกรณ์สำเร็จ
Mar  1 00:15:42.283: %SEC_LOGIN-5-LOGIN_SUCCESS: Login Success [user: cisco] [Source: 192.168.0.10] [localport: 23] at 00:15:42 UTC Fri Mar 1 2002

ตัวอย่าง
เมื่อมีการ login เข้าสู่อุปกรณ์ล้มเหลว
Mar  1 00:46:29.779: %SEC_LOGIN-4-LOGIN_FAILED: Login failed [user: ] [Source: 183.89.195.130] [localport: 23] [Reason: Login Authentication Failed] at 00:46:29 UTC Fri Mar 1 2002

          และเราสามารถตรวจสอบการทำงานของคุณสมบัติ Login Enhancements ได้ด้วยการใช้คำสั่ง “show login” เพื่อดูการตั้งค่าต่าง ๆ ที่เราได้ทำการกำหนดไว้หรือดูสถานะการทำงานของอุปกรณ์ในเวลานั้น ๆ ได้ครับ ว่าทำงานในโหมดใด เช่น Normal-Mode หรือ Quiet-mode เป็นต้น

ตัวอย่าง
เมื่อทำงานในโหมดปกติ
Running-config#show login
     A login delay of 10 seconds is applied.
     Quiet-Mode access list 100 is applied.
     All successful login is logged.
     All failed login is logged.

     Router enabled to watch for login Attacks.
     If more than 5 login failures occur in 120 seconds or less,
     logins will be disabled for 600 seconds.

    Router presently in Normal-Mode.
     Current Watch Window
         Time remaining: 118 seconds.
         Login failures for current window: 0.
     Total login failures: 6.

ตัวอย่าง
เมื่อทำงานใน Quiet-Mode
Running-config#show login
     A login delay of 10 seconds is applied.
     Quiet-Mode access list 100 is applied.
     All successful login is logged.
     All failed login is logged.

     Router enabled to watch for login Attacks.
     If more than 5 login failures occur in 120 seconds or less,
     logins will be disabled for 600 seconds.

     Router presently in Quiet-Mode.
     Will remain in Quiet-Mode for 395 seconds.
     Restricted logins filtered by applied ACL 100.

สรุปตัวอย่างคำสั่งที่ใช้งาน
Running-config(config)#login delay 10
Running-config(config)#login block-for 600 attempts 5 within 120
Running-config(config)#access-list 100 permit tcp host 192.168.0.10 any eq 23
Running-config(config)#access-list 100 deny ip any any
Running-config(config)#login quiet-mode access-class 100
Running-config(config)#login on-failure log
Running-config(config)#login on-success log

1 comment :

  1. พี่ชาย ผมชอบรูปพี่มากๆ สุด creative

    ReplyDelete