|
บทนำ
ตัวอย่างที่จะกล่าวถึงในที่นี้
เป็นตัวอย่างที่ต้องการห้ามการใช้คำสั่ง
ping (echo) และต้องการปิดกั้นพอร์ตต่าง
ๆ เพื่อป้องกันไวรัสคอมพิวเตอร์ที่มีชื่อดังรายการข้างล่างนี้
:
โดยวิธีการป้องการไวรัส W.32.Blaster.Worm
นั้นเราควรจะทำการปิดกั้นการติดต่อไปยังพอร์ตต่างๆ
ในระดับของเราเตอร์ ดังต่อไปนี้ :
-
พอร์ต 135/TCP และ 135/UDP ของ DCOM RPC
-
พอร์ต 69/UDP ของ TFTP
-
พอร์ต 139/TCP และ 139/UDP ของ NetBIOS
-
พอร์ต 445/TCP และ 445/UDP
-
พอร์ต 4444/TCP
ส่วนวิธีการป้องการไวรัส
W32.Sasser.Worm และ
W32.Sasser.B.Worm
นั้นก็ควรจะทำการปิดกั้นการติดต่อไปยังพอร์ตต่างๆ
ในระดับของเราเตอร์ ดังนี้ :
-
พอร์ต 445/TCP
เพราะเป็นพอร์ตที่หนอนใช้ในการโจมตี
-
พอร์ต 5554/TCP
เป็นพอร์ตที่ใช้ในการดาวน์โหลดไฟล์ของหนอนด้วยโปรแกรม FTP
-
พอร์ต 9996/TCP เป็น Remote shell
ที่ถูกเปิดโดยโปรแกรมประเภท Exploit ที่โจมตีช่องโหว่ Windows LSASS
สมมุติฐาน
ในที่นี้สมมุติว่าเราเตอร์ของเราเป็นด้านลูกค้า มี 2
อินเตอร์เฟสคือ
Serial 0 กับ FastEthnet 0 โดย
Serial 0 เชื่อมต่อกับ ISP
และ FastEthernet 0 เชื่อมต่อกับ
Hub/Switch
ภายในสำนักงานตัวเอง
การปิดกั้นพอร์ตด้วยการทำ
Access List
Router#conf t
Router(config)#access-list 100 deny tcp any any range 135 139
Router(config)#access-list 100 deny udp any any range 135 netbios-ss
Router(config)#access-list 100 deny udp any any eq 69
Router(config)#access-list 100 deny tcp any any eq 445
Router(config)#access-list 100 deny udp any any eq 445
Router(config)#access-list 100 deny tcp any any eq 5554
Router(config)#access-list 100 deny tcp any any eq 9996
Router(config)#access-list 100 deny icmp any any echo
Router(config)#access-list 100 permit ip any any
Router(config)int f0
Router(config-if)#ip access-group 100 in
Router(config-if)#ip access-group 100 out
Router(config-if)#exit
Router(config)#int s0
Router(config-if)#ip access-group 100 in
Router(config-if)#ip
access-group 100 out
หมายเหตุ
เนื่องจาก
NetBIOS
จะอยู่ในช่วงพอร์ต 139-139 ของทั้ง TCP และ
UDP ในที่นี้จึงได้กำหนดพอร์ต์เป็นช่วงคือ
range 135-139 ส่วนที่เป็น 135 netbios-ss
เนื่องจาก netbios-ss
จะตรงกับพอร์ต 139 ดังนั้น range 135 netbios-ss
จึงมีค่าเท่ากับ range 135 139
สรุปขั้นตอนการทำ
Access List
1.
สร้างกฎขึ้นมาก่อนว่าจะอนุญาตหรือไม่อนุญาตโปรโตคอลอะไรที่พอร์ตไหน
2. เลือกชนิดของ Access List ให้สัมพันธ์กับกฎที่ต้องการ ซึ่งแบ่งตามหมายเลขที่ Cisco
จัดให้มา มีหลายชนิดดังนี้ :
-
<1-99> IP
standard access list
-
<100-199> IP extended
access list
-
<1100-1199> Extended
48-bit MAC address access list
-
<1300-1999> IP standard
access list (expanded range)
-
<200-299> Protocol
type-code access list
-
<2000-2699> IP extended
access list (expanded range)
-
<700-799> 48-bit MAC
address access list
-
dynamic-extended Extend
the dynamic ACL abolute timer
-
rate-limit Simple
rate-limit specific access list
ที่ใช้กันบ่อยก็เป็น Access List หมายเลข 1-99
(IP
standard access list) และ 100-199 ( IP extended
access list)
โดยชนิด 1-99 จะเป็นแบบพื้นฐานที่มีความสามารถแค่จะอนุญาตหรือไม่อนุญาตแพ็กเกตที่มาจาก
Source Address ไหนเท่านั้น
ไม่สามารถระบุโปรโตคอลและพอร์ตได้
ส่วนชนิด 100-199
เป็นแบบที่มีความสามารถมากขึ้นคือสามารถระบุโปรโตคอลและพอร์ตได้
ส่วนชนิดอื่นไม่ขอกล่าวในที่นี้ครับ
จากตัวอย่างข้างบนใช้เป็นชนิด
IP extended access list
ซึ่งจะเห็นว่าในส่วนแรกของ
access list จะเป็นการ
deny ก่อน และบรรทัดสุดท้ายก็จบด้วยการ
permit
ตรงนี้สำคัญมากครับ เพราะถ้าเรา deny
มาก่อนแล้วแต่สุดท้ายไม่มีการ permit
ก็จะทำให้ router เกิดการ
deny
ทั้งหมดเลย
เราไม่สามารถติดต่อใช้งานได้
3. จะนำกฎดังกล่าวไปใช้กับอินเตอร์เฟสไหนของเราเตอร์
เมื่อเราได้สร้างกฎที่ต้องการขึ้นมาแล้ว กฎต่าง ๆ
ยังคงไม่มีผลต่อระบบนะครับ
ต้องมีการระบุอีกด้วยว่าจะให้กฎที่สร้างขึ้นมานั้นมีผลกับอินเตอร์เฟสไหนของเราเตอร์ นั่นคือการคอนฟิกต้องเข้าไปที่อินเตอร์เฟสที่ต้องการแล้วใช้คำสั่ง
ip access-group ซึ่งมีรูปแบบของคำสั่งดังนี้
:
Router(config-if)#ip access-group {number | name [in | out]}
number หมายถึง หมายเลขของ access-list
ตรงนี้ต้องตรงกับหมายเลข access list
ที่ได้ทำไว้นะครับ
in | out หมายถึง ทิศทางของแพ็กเกตข้อมูล
ซึ่งตรงนี้ต้องมีการนึกภาพ (จินตนาการ) นิดหนึ่ง ตัวอย่างเช่น
:
-
ถ้าเราเอากฎไป apply กับ FastEthernet 0
ก็ต้องนึกภาพของจริงว่า FastEthnet 0
นั้นมีการเชื่อมต่อกับ Hub/Switch ดังนั้น คำว่า input ก็หมายถึงแพ็กเกตข้อมูลที่วิ่งจาก
hub/switch มายัง FastEthnet 0 ส่วนคำว่า output ก็หมายถึงแพ็กเกตข้อมูลที่วิ่งจาก
FastEthernet 0 ไปยัง hub/switch
-
ถ้าเอากฎไป apply กับ Serial Port
ซึ่งถ้า Serial ต่ออยู่กับ
Serial ฝั่งตรงข้ามในที่นี้คือเราเตอร์ของ ISP
คำว่า input ก็หมายถึงแพ็ตเกตข้อมูลที่วิ่งจาก
Serial ของเราเตอร์ฝั่งตรงข้าม
(ISP) เข้ามายัง
Serial ของเราเอง ส่วนคำว่า output
ก็หมายถึงแพ็กเกตข้อมูลที่วิ่งจาก Serial 0
ของเราไปยัง Serial ของเราเตอร์ของ
ISP
----จบ---- |