เวบ/อินเตอร์เน็ตเทคโนโลยี ระบบปฏฺบัติการและซอฟท์แวร์ ซอร์สโค๊ด/โอเพนซอร์ส เทคโนโลยีฐานข้อมูล ระบบเครือข่ายและความมั่นคง เอ็มไอเอส/อีบิสสิเนส อื่น ๆ เกี่ยวกับไอ.ที. อื่น ๆ ไม่เกี่ยวกับไอ.ที.

ระบบเครือข่ายและความมั่นคง

Network Address Translation (NAT)

เมื่อจะ private IP เชื่อมต่อและใช้งานอินเทอร์เน็ต
อัปเดท ( 28 กรกฎาคม 2546 ) , แสดง (28,312) , ความคิดเห็น (1) , พิมพ์  
 
ระบบเครือข่ายและความมั่นคง
ความรู้เบื้องต้นเกี่ยวกับเรื่องพอร์ท(Port Concept) port port port port และ port
เทคนิคการสแกนพอร์ทและวิธีป้องกัน หนึ่งในเทคนิคที่โด่งดังที่สุดที่ผู้โจมตีใช้ในการเจาะผ่านเข้าไปยังระบบได้ scan port
ความรู้พื้นฐานเกี่ยวกับ Firewall ระบบหนึ่งหรือกลุ่มของระบบที่บังคับใช้นโยบายการควบคุมการเข้าถึงของระหว่างเครือข่ายสองเครือข่าย
Network Address Translation (NAT) เมื่อจะ private IP เชื่อมต่อและใช้งานอินเทอร์เน็ต
ทำความรู้จักกับ VLAN/Virtual LAN เทคโนโลยีที่ใช้ในการจำลองสร้างเครือข่าย
เลือกใช้พรอกซี่ (Proxy) แบบไหนดี ? เมื่อมีหลายแบบก็ต้องเลือกใช้สักแบบ
MIME กับ อีเมล คู่หูที่ขาดกันมิได้ เมื่อระบบเครือข่ายไม่รู้จักไฟล์ แล้วจะส่งไปอย่างไร
WiMax เทคโนโลยีใหม่ที่กำลังจะมาถึง WiMax เทคโนโลยีใหม่ที่กำลังจะมาถึง
มารู้จัก Application Architecture กันดีกว่า มารู้จัก Application Architecture กัน
Internet 2 : อนาคต Internet จะเป็นอย่างไร Internet 2 : อนาคต Internet จะเป็นอย่างไร

ในอดีตการเชื่อมต่อกับอินเทอร์เน็ตนั้น จำเป็นต้องมี Public IP address เป็นการเฉพาะจึงจะสามารถเชื่อมต่อและใช้งานได้ แต่เนื่องจากการเติบโตอย่างรวดเร็วของอินเทอร์เน็ตทำให้ IP ไม่เพียงพอต่อการใช้งาน ดังนั้น NAT จึงเป็นทางออกหนึ่งสำหรับการแก้ไขปัญหานี้ โดยการทำ NAT นั้นทำให้สามารถใช้ private IP เชื่อมต่อและใช้งานอินเทอร์เน็ตได้ และยังเพิ่มความปลอดภัยทางเครือข่าย (network security) อีกด้วย

NAT เป็นมาตรฐานหนึ่งของ RFC ถูกเขียนขึ้นในปี 1994 โดยสามารถแปลง (translation) IP หลายๆ ตัวที่ใช้ภายในเครือข่ายให้ติดต่อกับเครือข่ายอื่นโดยใช้ IP เดียวกัน ซึ่งถ้าดูจากภาพแล้วจะเข้าใจได้ชัดเจนยิ่งขึ้น

จากภาพจะเห็นว่าตัว NAT device มี IP address เป็น 192.168.1.1 สำหรับเครือข่ายภายใน (inside network) และมี IP address เป็น 203.154.207.76 สำหรับเครือข่ายภายนอก (outside network) เมื่อเครื่อง 192.168.1.20 ต้องการสร้างการติดต่อออกไปภายนอก (เช่น อินเทอร์เน็ต) ตัว NAT device ก็จะแปลง IP จาก 192.168.1.20 ไปเป็น 203.154.207.76 ซึ่งถ้ามองจากเครือข่ายภายในแล้วจะเห็นว่า เครื่องในเครือข่ายภายในสามารถ access ออกไปยัง external network ได้โดยตรง ในขณะที่เครื่องจากภายนอกจะไม่สามารถติดต่อเข้ามาได้ถ้าเครื่องจากเครือข่ายภายในไม่ได้เป็นฝ่ายเริ่มต้นการติดต่อก่อน และข้อมูลขาออกที่ออกไปยัง external network นั้นจะเป็นข้อมูลที่มี source IP address เป็น outside IP address ของ NAT device

คำศัพท์ที่ควรทราบ

Non-Routable Address = IP address ที่อยู่ในช่วงที่ถูกสำรองไว้ ตาม RFC 1597 เพื่อใช้สำหรับ private network ได้แก่ 10.x, 172.16.x - 172.31.x, 192.168.x หรือมักจะถูกเรียกอีกอย่างว่าเป็น private IP address (ภาษาบ้านเราชอบเรียกว่า ไอพีปลอม)

NAT Device = อุปกรณ์ที่สามารถทำ network address translation ได้ เช่น Checkpoint Firewall, Linux box, Cisco 675 DSL router

Outbound Mode = การที่ NAT device ทำงานในลักษณะที่แปลง inside IP address ไปเป็น outside IP adrress และไม่ยินยอมให้ external side เป็นฝ่ายเริ่มการส่ง packet ก่อน

Bi-directional Mode = เมื่อ NAT device อนุญาตให้ external side สามารถเป็นฝ่ายเริ่มต้นส่งข้อมูลเข้ามายัง internal side ได้ โดย NAT จะทำการแปลง พอร์ตและ/หรือ address เรียกกันอีกอย่างว่า Port Address Translation (PAT)
  
 

NAT มีขั้นตอนการทำงานอย่างไร

เมื่อ NAT เริ่มทำงาน มันจะสร้างตารางภายในซึ่งมีไว้สำหรับบรรจุข้อมูล IP address ของเครื่องในเครือข่ายภายในที่ส่ง packet ผ่าน NAT device และจากนั้นมันก็จะสร้างตารางไว้สำหรับเก็บข้อมูลหมายเลขพอร์ต (port number) ที่ถูกใช้ไปโดย outside IP address (ในที่นี้คือ 203.154.207.76) และเมื่อมีการส่ง packet จากเครือข่ายภายในไปยังเครือข่ายภายนอก NAT device จะมีกระบวนการทำงานดังต่อไปนี้ :
1. มันจะบันทึกข้อมูล source IP adress และ source port number ไว้ในตารางที่เกี่ยวข้อง
2. มันจะแทนที่ IP ของ packet ด้วย IP ขาออกของ NAT device เอง (ในที่นี้คือ 203.154.207.76)
3. มันจะ assign หมายเลขพอร์ตใหม่ให้กับ packet และบันทึกค่าพอร์ตนี้ไว้ในตาราง และกำหนดค่านี้ลงไปใน source port number ของ packet นั้น
4. จากนั้นจะคำนวณหา IP, TCP checksum อีกครั้งเพื่อตรวจสอบความถูกต้อง

และเมื่อ NAT device ได้รับ packet ย้อนกลับมาจาก external network มันจะตรวจสอบ destination port number ของ packet นั้นๆ แล้วนำมาเปรียบเทียบกับข้อมูล source port number ในตารางที่บรรจุข้อมูลไว้ ถ้าเจอข้อมูลที่ตรงกันมันก็จะเขียนทับ destination port number, destination IP address ของ pakcet นั้นๆ แล้วจึงส่ง packet นั้นไปยังเครื่องอยู่ภายในเครือข่ายภายในที่เป็นผู้สร้าง packet นี้ขึ้นมาในครั้งแรก

ข้อดีของ Outbound Mode NAT เมื่อเปรียบเทียบกับ Firewall

อันตรายของอินเทอร์เน็ตในปัจจุบันนี้ก็คือ เมื่อเราเชื่อมต่อเข้ากับอินเทอร์เน็ต โอกาสที่เครื่องของเราจะถูก scan หรือ probe มีโอกาสสูงมาก เพราะ hackers, crackers หรือ script kiddies ต่างก็จ้องที่จะฉกฉวยข้อมูลไปจากเครื่องของเราตลอดเวลา

บริษัทต่างๆ มักจะใช้ไฟร์วอลล์เป็นตัวป้องกันอันตรายจากอินเทอร์เน็ต ไฟร์วอลล์เป็นอุปกรณ์ที่พิจารณา network traffic โดยจะดูในส่วนของ destination IP, source IP, destination port number, source port number หรือข้อมูล header อื่นๆ ว่าจะให้ผ่านหรือไม่ให้ผ่านตัวไฟร์วอลล์ไป ข้อเสียของไฟร์วอลล์ก็คือความยากในการเขียน rule และการบำรุงรักษา เพราะต้องใช้ความรู้เรื่องเครือข่ายเยอะพอสมควร และการบำรุงรักษานั้นถือเป็นเรื่องที่มีความสำคัญเพราะไฟร์วอลล์ที่มี rule set ที่ซับซ้อนและยุ่งยากมากอาจจะมีช่องโหว่ที่ไม่รู้ตัวก็เป็นได้

NAT ทำงานได้ในระดับเดียวกันกับไฟร์วอลล์แต่สามารถลดค่าใช้จ่ายและไม่ต้องการความรู้ด้านเทคนิคมากมายนัก NAT สามารถซ่อน internal network IP address จากเครือข่ายภายนอกไว้ได้ ซึ่งผู้ที่อยู่ภายนอกจะมองเห็นแค่เพียง outside IP address ของ NAT device เท่านั้น ดังนั้นโอกาสในการ broadcast หรือ hack หรือ spoof จึงแทบไม่มีโอกาสเป็นไปได้

ข้อดีอีกอย่างหนึ่งของ NAT คือทำให้ลดภาระของผู้ดูแลระบบลง จากเดิมที่ต้องดูแลทั้ง NAT device และเครื่องต่างๆ ในเครือข่ายภายใน การใช้ NAT ทำให้ผู้ดูแลระบบให้ความสนใจเพียง NAT device เพียงเท่านั้น ซึ่งทำให้ผู้ที่อยู่ภายนอกไม่สามารถส่ง packet เข้ามาได้ ถ้าไม่มีการเริ่มส่งจากเครือข่ายภายในก่อน และทุก packet จะต้องส่งผ่าน NAT device เสมอ

ความง่ายในการดูแลเครือข่ายที่ใช้ NAT

  • เนื่องจากเราสามารถใช้ non-routable address ในเครือข่ายภายใน ซึ่งสามารถใช้ได้อย่างมากมาย จึงทำให้ลดค่าใช้จ่ายสำหรับ routable address ลงไปได้
  • สามารถแบ่งเครือข่ายให้เล็กลงได้อย่างง่าย และการเพิ่มเข้า-ลดออกของเครื่องคอมพิวเตอร์ในเครือข่ายก็ไม่มีผลกระทบต่อระบบ
  • NAT device รุ่นใหม่ๆ สามารถทำหน้าที่เป็น DHCP server ได้ด้วย
  • NAT device บางยี่ห้อ สามารถจำกัดการเข้าถึงอินเทอร์เน็ตได้ เช่นให้ใช้เฉพาะ HTTP เท่านั้น
  • มี traffic logging คือมีการบันทึกข้อมูลลงล็อกไฟล์ ทำให้สามารถตรวจสอบรายงานการใช้งานได้
  • NAT device บางตัวสามารถทำ routing ได้ด้วย ซึ่งทำให้เราสามารถสร้างเครือข่ายที่เป็น sub-network ได้

แต่ NAT สามารถทำงานได้ในหลายโหมด
  
 

เมื่อ NAT ทำงานใน outbound mode ทำให้ผู้ที่อยู่ภายนอกไม่สามารถส่ง packet เข้ามาได้ ถ้าไม่มีการเริ่มส่งจากเครือข่ายภายในก่อน การทำงานในลักษณะนี้ยังมีจุดอ่อนในเรื่องของความปลอดภัยดังต่อไปนี้คือ

  1. ถ้า internal side user เรียกใช้เว็บที่มีโค้ดที่เป็นอันตราย (malicious code) เช่น IIS web server ที่ติดไวรัส Nimda หรือ malicious ActiveX code หรือ malicious Java code ซึ่งตัว NAT device เองจะไม่สามารถป้องกันอันตรายในลักษณะนี้ได้
  2. มีโปรแกรมบางตัวที่อยู่ในเครื่องของ internal side พยายามส่ง packet ออกไป external side เช่น ม้าโทรจัน ซึ่งในกรณีนี้ NAT ก็ไม่สามารถป้องกันได้เช่นเดียวกัน
  3. NAT ไม่ได้ปกป้องข้อมูลภายใน internal host เสมอไป เราสามารถตรวจสอบล็อกไฟล์ในบางเซิร์ฟเวอร์ (เช่น Windows Streaming Media Server) ซึ่งสามารถค้นพบว่า มีข้อมูลของ non-routable address และเวอร์ชั่นของระบบปฏิบัติการปรากฏอยู่
  4. มีความเป็นไปได้ที่จะมีการสร้าง IP packet ปลอม เพื่อหลอก NAT device ว่า packet นี้ถูกเริ่มสร้างจาก internal IP address จากนั้นตัว NAT device ก็จะ forward packet นี้ไปยัง internal network
  5. และแน่นอนที่สุด NAT ไม่สามารถป้องกันไวรัสได้

เมื่อ NAT ทำงานใน bi-directional mode หรือ PAT mode ตัว NAT device จะมีตารางซึ่งใช้เก็บข้อมูลเพื่อ map external address, port ไปเป็น internal address, port ซึ่งในกรณีนี้จะอนุญาตให้เราเซ็ทอัพ internet IP address, port ได้ที่ external side ของ NAT device จากนั้นก็จะทำ statically map ไปยัง private address, port ซึ่งอยู่ที่ internal side ของ NAT device ยกตัวอย่างเช่น เราสามารถตั้งเว็บเซิร์ฟเวอร์ที่ internal side โดยมี IP address เป็น 192.168.1.20 ที่พอร์ต 80 และมีค่า internet IP address เป็น 203.154.207.76 พอร์ต 80 ที่ external side เมื่อมี request จากภายนอกเข้ามายังexternal address ที่พอร์ต 80 มันจะถูกส่งต่อไปยังพอร์ต 80 ของ internal address และเมื่อมี request มาที่พอร์ตอื่นนอกเหนือจาก 80 แล้ว ข้อมูลนั้นจะถูกทิ้งไป

คำถามคือ NAT ยังมีความปลอดภัยเพียงพอหรือไม่

มีหลายคนที่ยังเข้าใจผิดเรื่อง NAT โดยมักจะคิดว่าถ้ามี NAT แล้วก็ไม่จำเป็นต้องมีไฟร์วอลล์ ซึ่งจริงๆ แล้ว NAT ยังมีช่องโหว่ที่ต้องพิจารณาอีก ในกรณีที่ NAT ทำงานใน bi-directional mode นั้น จะต้องมีการเปิดพอร์ตสำหรับให้บริการเสมอ เช่น 20-21 (FTP), 23(TELNET), 25 (SMTP), 53 (DNS), 80 (HTTP), 110 (POP), 143 (IMAP) ซึ่งพอร์ตเหล่านี้เป็นที่รู้จักกันดี และมี exploit code ที่รันได้บนพอร์ตเหล่านี้ ซึ่งมักจะมีช่องโหว่อยู่เสมอ และ NAT ไม่สามารถป้องกันอันตรายในลักษณะนี้ได้เลย นอกจากนี้ NAT device ยังมีข้อเสียที่การเก็บข้อมูลลงล็อกไฟล์ ซึ่งการโจมตีดังที่กล่าวไปข้างต้นนั้น NAT device (บางยี่ห้อ)จะไม่บันทึกข้อมูลลงล็อกไฟล์เลย ดังนั้นเราอาจจะโดนโจมตีโดยไม่รู้ตัวก็เป็นได้

นอกจากนี้การที่ user ใน internal network รันโปรแกรมบนเครื่องตัวเอง ซึ่งโปรแกรมนั้นอาจจะเป็นม้าโทรจันก็เป็นไปได้ จากนั้นม้าโทรจันก็จะส่ง packet ออกไป external network ซึ่ง NAT ก็จะปล่อยให้ packet ผ่านไปได้เพราะถือว่าเป็นการ request จาก internal side ในกรณีนี้ก็จะเห็นได้ว่า NAT ไม่ได้ช่วยอะไรได้เลย

สรุป

NAT ไม่ใช่ทางเลือกที่ดีสำหรับ security แน่นอนว่ามันสามารถป้องกันข้อมูลด้าน internal network ได้ มันปิดทุกพอ์รตที่เราไม่ได้ตั้งใจเปิดไว้ แต่มันก็ยังคงมีจุดอ่อนดังที่กล่าวมาแล้ว จำเป็นที่จะต้องมีไฟร์วอลล์, DMZ และ Intrusion Detection System ซึ่งได้รับการออกแบบให้เหมาะสมกับทรัพยากรที่มีอยู่ พร้อมกับการได้รับการดูแลจากผู้ดูแลระบบอย่างสม่ำเสมอ



เขียนโดย : n/a

ple
18 ม.ค. 2550 , 11:17 AM
เราจะใช้ DHCP SERVERคู่กับ NATSERVER ได้อย่างไรคะ ช่วยตอบมาที่ เมล์หน่อยค่ะ ไม่รู้จะเริ่มยังไง พรุ่งนี้ได้มั้ยคะ ขอบคุณค่ะ
1

ความคิดเห็น/แนะนำ/ติชม/อื่นๆ เกี่ยวกับบทความนี้
ชื่อของคุณ  : *     อีเมล : *    
ความคิดเห็น : *    
      อีเมลล์จะไม่ถูกเปิดเผย (นโยบายข้อมูลส่วนบุคคล)

Copyright © 2002 - 2018 by www.NEXTPROJECT.net All rights reserved. Policy