การทำงานของ Network Address Translation และไฟร์วอลล์ (Firewall)

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
การทำงานของ Network Address Translation และไฟร์วอลล์ (Firewall) por Mind Map: การทำงานของ Network Address Translation และไฟร์วอลล์ (Firewall)

1. เนื้อหาสาระ การติดต่อสื่อสารระหว่างเครื่องคอมพิวเตอร์นั้น จำเป็นที่จะต้องมีไอพีแอดเดรส (IP Address) ซึ่งเป็นหมายเลขขนาด 32 บิท ที่ไม่ซ้ำกัน สำหรับใช้ในการระบุถึงสถานที่ตั้งของ เครื่องคอมพิวเตอร์ภายในระบบเครือข่าย เพื่อที่จะสามารถทำการส่งข้อมูลไปยังเครื่องคอมพิวเตอร์ แต่ละเครื่องได้ เมื่อครั้งตอนทำการออกแบบไอพีแอดเดรส (IP Address) ใน เวอร์ชั่น 4 (Version 4) หรือที่เรียกว่า IPv4 นั้น ผู้ออกแบบคิดว่าปริมาณของหมายเลขไอพีแอดเดรส (IP Address) ของ IPv4 นั้นมีจำนวนมากเกินความต้องการ เนื่องจากในทางทฤษฎีแล้ว IPv4 สามารถที่จำนวนหมายเลข IP Address ที่ไม่ซ้ำกันได้ถึง 4,294,967,296 หมายเลข (แต่สามารถใช้งานได้ประมาณ 3.2 ถึง 3.3 พันล้านหมายเลข เนื่องจากบาง IP Address ได้ถูกสำรองไว้ใช้งานอื่น ๆ เช่น Multicasting, Broadcast เป็นต้น) แต่เนื่องจากในปัจจุบันมีการใช้งานอินเทอร์เน็ตอย่างแพร่หลายมากขึ้น จนเกิน ความคาดหมายของผู้ออกแบบ IPv4 ทำให้ IP Address ที่สามารถนำมาใช้งานได้ในปัจจุบันกำลังจะ หมดลงไป ในการใช้งาน IPv4 ในปัจจุบันนี้จึงต้องมีการใช้งานอย่างประหยัดมากขึ้น และการทำ เน็ตเวิร์กแอดเดรสทรานเลชั่น (Network Address Translation : NAT) ก็เป็นวิธีการหนึ่งที่จะช่วยใน การประหยัดการใช้งาน IP Address ได้ องค์กร IANA (Internet Assigned Nubbers Authority) ได้ทำการกำหนดช่วงของ ไอพีแอดเดรส (IP Address) สำหรับการใช้งานในเครือข่ายภายในเอาไว้หรือที่เรียกว่า Private IP Address ซึ่งเป็น IP Address แบบ Unregistered โดยจะไม่สามารถใช้งานไอพีแอดเดรส (IP Address) เหล่านี้ในเครือข่ายสาธารณะหรือเครือข่ายอินเทอร์เน็ตได้ แต่สร้างขึ้นมาเพื่อใช้งาน สำหรับเครือข่ายภายในองค์กรเท่านั้น ซึ่งในแต่ละองค์กรก็อาจจะที่จะใช้ไอพีแอดเดรส (IP Address) ในช่วงเดียวกันหรือซ้ำกันก็ได้ ยกตัวอย่างเช่น ไอพีแอดเดรส (IP Address) ในชุด 192.168.x.x ที่มี การใช้งานอย่าแพร่หลาย แต่เมื่อมีเครื่องในเครือข่ายภายในแต่ละองค์กรต้องการที่จะติดต่อกับ เครือข่ายอินเทอร์เน็ต ก็จะถูกทำการ NAT IP Address แบบ Private IP Address เหล่านี้ไปเป็น ไอพีแอดเดรส (IP Address) แบบ Public IP Address หรือ IP Address แบบ Registered ได้

2. 1. ความหมายของ Network Address Translation เน็ตเวิร์กแอดเดรสทรานเลชั่น (Network Address Translation : NAT) คือ วิธีการทางเครือข่ายที่ จะเปลี่ยนค่าเน็ตเวิร์กแอดเดรส (Network Address)จากหมายเลขหนึ่งไปเป็นอีกหมายเลขหนึ่ง ซึ่งทำให้ เกิดการเชื่อมต่อไปยังเครื่องปลายทางได้ โดยเครื่องต้นทางไม่จำเป็นต้องเปลี่ยนแปลงค่าทางเครือข่าย การ ทำแน็ท (NAT)ช่วยให้การใช้งานเครือข่ายทำได้อย่างมีประสิทธิภาพมากขึ้นกว่าที่เป็นอยู่ รวมทั้งมีส่วนใน การรักษาความปลอดภัยในเครือข่ายได้ด้วย ซึ่งโดยทั่วไปจะเป็นความสารถหนึ่งในไฟร์วอลล์ (Firewall) หรือ อุปกรณ์เครือข่ายทั่วไปอยู่แล้ว

3. 2. การทำงานของ Network Address Translation โดยทั่วไปในระบบเครือข่ายภายในองค์กร โดยเฉพาะองค์กรที่มีเซิร์ฟเวอร์(Server) เป็น ลีนุกซ์(Linux), วินโดว์ เอ็นที (Windows NT), วินโดว์ 2000 เซิร์ฟเวอร์ (Windows 2000 Server) จะมีการกำหนดไอพี(IP) ภายในองค์กรที่เรียกว่า ไปรเวทไอพี (Private IP) เช่น 192.168.0.1 หรือ 10.0.0.1 เป็นต้น ซึ่งไอพี(IP) เหล่านี้เป็นไอพี(IP) ที่ไม่สามารถนำไปใช้งานในระบบอินเตอร์เน็ตได้ การทำแน็ท (NAT) จะเป็นการแปลงไปรเวทไอพี(Private IP) ให้เป็นไอพี(IP) ที่สามารถใช้งานบน ระบบอินเตอร์เน็ตได้ หรือที่เราเรียกว่า รีจีสเตอร์ไอพี (Registered IP) 2.1 ขั้นตอนการทำงาน แน็ท (NAT) จะสร้างตารางภายในซึ่งมีไว้สำหรับบรรจุข้อมูลไอพีแอดเดรส (IP Address) ของ เครื่องในเครือข่ายภายในที่ส่งแพ็กเกจ (Packet) ผ่าน แน็ทเซิร์ฟเวอร์ (NAT Server) จากนั้นก็จะ สร้างตารางไว้สำหรับเก็บข้อมูลหมายเลขพอร์ต (Port Number) ที่ถูกใช้ไปโดย เอาท์ไซต์ ไอพีแอดเดรส (Outside IP Address) จะมีกระบวนการทำงานดังนี้ 2.1.1 จะบันทึกข้อมูลซอร์ตไอพีแอดเดรส (Source IP Address) และซอร์ตไอพีพอร์ต นัมเบอร์(Source Port Number) ไว้ในล็อกไฟล์(Log File) 2.1.2 จะแทนที่ไอพี(IP) ของแพ็กเกจ (Packet) ด้วยไอพี(IP) ขาออกของ แน็ทเซิร์ฟเวอร์ (NAT Server) เมื่อ แน็ทเซิร์ฟเวอร์ (NAT Server) ได้รับแพ็กเกจ (Packet) ย้อนกลับมาจาก เครือข่ายภายนอก (External Network) ก็จะตรวจสอบปลายทางของพอร์ตนัมเบอร์(Destination Port Number) ของแพ็กเกจ (Packet) นั้น ๆ แล้วนำมาเปรียบเทียบกับข้อมูล ซอร์ตพอร์ตนัมเบอร์ (Source Port Number) ในล็อกไฟล์ (Log File) ถ้าเจอข้อมูลที่ตรงกันก็จะเขียนทับ Destination Port Number, Destination IP Address ของ Packet นั้น ๆ แล้วจึงส่ง Packet นั้นไปยังเครื่องอยู่ ภายในเครือข่ายภายใน 2.2 ไปรเวทไอพีแอดเดรส (Private IP Address) หมายเลขไอพีแอดเดรสในช่วงที่ไม่สามารถนำมาเชื่อมต่อกับเครือข่ายอื่นๆ ได้โดยตรง ซึ่ง ช่วงของหมายเลขไอพีแอดเดรสที่เป็นไปรเวทไอพีแอดเดรส (Private IP) นั้น จะแบ่งเป็น 3 กลุ่ม ด้วยกันคือ 1.3.1 ช่วงหมายเลข 10.0.0.0 – 10.255.255.255 ( 10/ ) 1.3.2 ช่วงหมายเลข 172.16.0.0 – 172.32.255.255 ( 172.16/12 ) 1.3.3 ช่วงหมายเลข 192.168.0.0 – 192.168. 255.255 ( 192.168/16 ) 2.3 คุณสมบัติของอุปกรณ์แน็ท (NAT) อุปกรณ์เครือข่าย หรือโปรแกรมที่ใช้ในการทำ NAT จะต้องมีความสามารถในการทำงาน ต่าง ๆ เหล่านี้คือ 2.3.1 สามารถกำหนดหมายเลขไอพีแอดเดรสได้ (Transparent Address Assignment) 2.3.2 สามารถส่งผ่านแพคเก็จของข้อมูลที่มีการเปลี่ยนแปลงแอดเดรสได้ (Transparent address routing through address transition) 2.3.3 สามารถเปลี่ยนแปลงข้อมูลของ ICMP payload ได้ (ICMP error message payload translation) 2.4 รูปแบบในการเปลี่ยนแปลงค่าไอพีแอดเดรส (IP Address) 2.4.1 Static NAT (static assignment and basic NAT) เป็นการเปลี่ยนแปลงค่าหมายเลขไอพีแอดเดรสโดยมีการจับคู่กันของหมายเลขไอพี แอดเดรสตลอดการทำงานของอุปกรณ์ ซึ่งจะเปลี่ยนแปลงค่าไอพีแอดเดรสจาก Private IP เป็น หมายเลขไอพีภายนอก และเปลี่ยนจากหมายเลขไอพีแอดเดรสภายนอกเป็น Private IP แบบหนึ่งต่อ หนึ่งไปตลอด 2.4.2 Dynamic NAT (Dynamic Assignment and Basic NAT) เป็นการเปลี่ยนแปลงค่าหมายเลขไอพีแอดเดรสโดยมีการจับคู่กันของหมายเลขไอพี แอดเดรสที่เป็น Private IP กับหมายเลขไอพีแอดเดรสภายนอกเพียงชั่วคราวเท่านั้น โดยอุปกรณ์ NAT จะจับคู่หมายเลขไอพีแอดเดรสในช่วงเวลาที่ session มีการเชื่อมต่อกันอยู่เท่านั้น หลังจากที่ ใช้งาน session เสร็จเรียบร้อยแล้วจะไม่เก็บข้อมูลการจับคู่นั้นไว้อีก เมื่อมีการเชื่อมต่อกับเครือข่าย ภายนอกอีกครั้ง อุปกรณ์ NAT จะเลือกหมายเลขไอพีแอดเดรสภายนอกใหม่อีกครั้งหนึ่ง ซึ่งไม่ จำเป็นต้องซ้ำกับหมายเลขเดิม 2.4.3 Overloading (NAPT) เป็นการเปลี่ยนแปลงหมายเลขไอพีแอดเดรสเพียงหมายเลขเดียว แต่มีการ เปลี่ยนแปลงหมายเลขพอร์ตต้นทางในการเชื่อมต่อแทน เมื่อมีการตอบกลับจากเครื่องภายนอก เครือข่ายแล้ว ที่อุปกรณ์ NAT จะดูหมายเลขพอร์ตปลายทางในส่วนหัวของข้อมูลว่าเป็นหมายเลข อะไร แล้วจึงเปลี่ยนข้อมูลส่วนหัวให้ตรงกับเครื่องคอมพิวเตอร์ที่ทำการร้องขออีกครั้ง

4. สรุป การทำเน็ตเวิร์คแอดเดรสทรานเลชั่น (Network Address Translation : NAT) เป็นวิธีการ หนึ่งที่จะช่วยให้เครื่องคอมพิวเตอร์ที่ใช้ Private IP Address สามารถเชื่อมต่อเครือข่ายอินเทอร์เน็ต ได้และมีความปลอดภัยในระดับหนึ่ง ถึงแม้ว่าการทำเน็ตเวิร์คแอดเดรสทรานเลชั่น (Network Address Translation : NAT) จะไม่ใช่ทางเลือกที่ดีสำหรับการรักษาความปลอดภัยให้กับ ระบบเครือข่ายขนาดใหญ่ แต่ก็สามารถป้องกันข้อมูลด้าน Internal Network ได้ ไฟร์วอลล์ (Firewall) คือซอฟต์แวร์หรือฮาร์ดแวร์ ทำหน้าที่ ตรวจสอบและควบคุมระบบ ข้อมูลที่มาจากอินเทอร์เน็ตหรือเครือข่าย โดยคุณสามารถกำหนดว่าข้อมูลนั้น อนุญาตให้เพื่อนๆหรือ พนักงานเข้าถึงข้อมูลไหนบ้าง หากเป็นผู้บุกรุกจะไม่มีสิทธิเข้าถึงข้อมูลนั้นได้ ทั้งนี้ การมี ไฟร์วอลล์ (Firewall) จะตรวจสอบผู้ใช้ก่อนเข้าถึงข้อมูล การมี ไฟร์วอลล์ (Firewall) นี้ จะช่วยให้คอมพิวเตอร์ใน เครือข่าย ได้รับการป้องกันไม่ให้ แฮกเกอร์ (Hacker) หรือซอฟต์แวร์อันตราย โจมตี เข้าถึง คอมพิวเตอร์ของคุณผ่านทางเครือข่ายหรืออินเทอร์เน็ต นอกจากนี้ ไฟร์วอลล์ (Firewall) ยังช่วย ป้องกันไม่ให้คอมพิวเตอร์ที่เป็นเหยื่อมัลแวร์นั้น ส่งซอฟต์แวร์อันตรายไปยังคอมพิวเตอร์เครื่องอื่นอีก ด้วย

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

6. 5. ประเภทของไฟร์วอลล์(Firewall) ไฟร์วอลล์ (Firewall) โดยทั่วไปจะถูกแบ่งออกเป็น 2 ประเภทคือ ไฟร์วอลล์ (Firewall) ระดับ Network (Network Level Firewall) และไฟร์วอลล์ (Firewall) ระดับ Application (Application Level Firewall) ไฟร์วอลล์ (Firewall) ระดับ Network จะตัดสินใจยอมให้ Traffic ใดผ่านนั้นจะดูที่ Address ผู้ส่งและผู้รับ และ Port ในแต่ละ IP Packet เมื่อพิจารณาแล้วเห็นว่า Traffic สามารถผ่านไปได้ก็จะ Route Traffic ผ่านตัวมันไปโดยตรง Router โดยทั่วไปแล้วก็จะถือว่าเป็น Firewall ระดับ Network ชนิดหนึ่ง Firewall ประเภทนี้จะมีความเร็วสูงและจะ Transparent ต่อผู้ใช้ (คือผู้ใช้มองไม่เห็นความ แตกต่างระหว่างระบบที่ไม่มี Firewall กับระบบที่มี Firewall ระดับ Network อยู่) การที่จะใช้ Firewall ประเภทนี้โดยมากผู้ใช้จะต้องมี IP Block (ของจริง) ของตนเอง ไฟร์วอลล์ (Firewall) ระดับ Application นั้นโดยทั่วไปก็คือ Host ที่ Run Proxy Server อยู่ Firewall ประเภทนี้สามารถให้รายงานการ Audit ได้อย่างละเอียดและสามารถบังคับใช้นโยบาย ความปลอดภัยได้มากกว่า Firewall ระดับ Network แต่ Firewall ประเภทนี้ก็จะมีความ Transparent น้อยกว่า Firewall ระดับ Network โดยที่ผู้ใช้จะต้องตั้งเครื่องของตนให้ใช้กับ Firewall ประเภทนี้ได้ นอกจากนี้ Firewall ประเภทนี้จะมีความเร็วน้อยกว่า Firewall ระดับ Network บางแหล่งจะกล่าวถึง Firewall ประเภทที่สามคือประเภท Stateful Inspection Filtering ซึ่งใช้การพิจารณาเนื้อหาของ Packets ก่อนๆในการที่จะตัดสินใจให้ Packet ที่กำลังพิจารณาอยู่เข้า มา 5.1 ขีดความสามารถของไฟร์วอลล์ (Firewall) ขีดความสามารถของ ไฟร์วอลล์ (Firewall) ทั่ว ๆ ไปนั้นมีดังต่อไปนี้ 5.1.1 ป้องกันการ Login ที่ไม่ได้รับอนุญาตที่มาจากภายนอกเครือข่าย 5.1.2 ปิดกั้นไม่ให้ Traffic จากนอกเครือข่ายเข้ามาภายในเครือข่ายแต่ก็ยอมให้ผู้ที่อยู่ ภายในเครือข่ายสามารถติดต่อกับโลกภายนอกได้ 5.1.3 เป็นจุดรวมสำหรับการรักษาความปลอดภัยและการทำ Audit (เปรียบเสมือนจุด รับแรงกระแทกหรือ \"choke\" ของเครือข่าย) 5.2 ข้อจำกัดของไฟร์วอลล์ (Firewall) ข้อจำกัดของ Firewall มีดังต่อไปนี้ 5.2.1 ไฟร์วอลล์ (Firewall) ไม่สามารถป้องกันการโจมตีที่ไม่ได้กระทำผ่านไฟร์วอลล์ (Firewall) เช่น การโจมตีจากภายในเครือข่ายเอง 5.2.2 ไม่สามารถป้องกันการโจมตีที่เข้ามากับ Application Protocols ต่าง ๆ (เรียกว่า การ Tunneling) หรือกับโปรแกรม Client ที่มีความล่อแหลมและถูกดัดแปลงให้กระทำการโจมตีได้ (โปรแกรมที่ถูกทำให้เป็น Trojan horse) 5.2.3 ไม่สามารถป้องกันไวรัส (Virus) ได้อย่างมีประสิทธิภาพเนื่องจากจำนวน ไวรัส (Virus) มีอยู่มากมาย จึงจะเป็นการยากมากที่ไฟร์วอลล์ (Firewall) จะสามารถตรวจจับ Pattern ของไวรัส (Virus) ทั้งหมดได้

7. 6. การตั้งค่า Firewall สิ่งที่เปลี่ยนไปอีกอย่างในเซ็นโอเอส 7 (CentOS 7) หรือ เรคแฮทเอ็นเตอร์ไพรส์ 7 (Red Hat Enterprise 7) เมื่อเทียบกับเวอร์ชันเดิม (5, 6) คือเปลี่ยนมาใช้ firewalld เพื่อช่วยให้การคอนฟิก firewall ในลีนุกซ์ทำได้ง่ายขึ้น โดยมีการจัดแบ่งเป็นโซน (zone) จัดกลุ่มพอร์ต (port) เป็นเซอร์วิส (service) และอื่นๆ เบื้องหลัง firewalld ก็ไปเรียกคำสั่ง iptables เพื่อใช้คอนฟิก Netfilter ซึ่งเป็นโมดูลอยู่ใน เคอร์เนลลีนุกซ์ ในการจัดการควบคุมแพ็กเกจ (packet filtering) เข้าออกเครื่อง ในที่นี้ขอยกตัวอย่างการใช้คำสั่ง firewall-cmd เพื่อเพิ่มเซอร์วิสเช่น http ให้เครื่องอื่น สามารถมาเรียกใช้เซอร์วิสเว็บในเครื่องได้ firewalld จะติดตั้งมาให้โดยดีฟอลต์อยู่แล้ว และโดยคอนฟิกดีฟอลต์จะอนุญาตให้เครื่อง อื่นๆ เรียกใช้เซอร์วิสที่รันอยู่ในเครื่องได้แค่ ssh เท่านั้น คือให้เครื่องอื่น ๆ สามารถรีโมดเข้ามาเครื่อง เราโดยใช้คำสั่งหรือโปรแกรมประเภท ssh เท่านั้น 6.1 วิธีการคอนฟิก firewalld สามารถทำได้โดยสองแบบคือ firewall-config เป็นโปรแกรมกราฟฟิกรันบน X Window จำเป็นต้องลง GNOME หรือ KDE firewall-cmd รันเป็นคำสั่งรูปแบบเท็กซ์ ซึ่งจะใช้ในบทความนี้ก่อนอื่น ลองตรวจสอบ สถานะการรัน firewalld บนเครื่อง ใช้คำสั่ง systemctl status เพื่อดูสถานะการรันของ firewalld # systemctl status firewalld ใช้คำสั่ง firewall-cmd ระบุออปชัน –list-services เพื่อดูสถานะการอนุญาตให้มีการ เรียกใช้เซอร์วิสของโซนที่ระบุในออปชัน –zone # firewall-cmd --zone=public --list-services dhcpv6-client ssh โดยดีฟอลต์จะอนุญาตให้ใช้เซอร์วิส ssh เข้ามาทางอินเตอร์เฟซที่อยู่ในโซน public เท่านั้น เพิ่มให้สามารถใช้เซอร์วิส http ของเครื่องเราในโซนที่ระบุได้ ก็สามารถทำได้โดยระบุ ออปชัน –add-service หากต้องการกำหนดเซอร์วิสอื่น ๆ ก็สามารถทำได้โดยการระบุ ชื่อเซอร์วิส # firewall-cmd --zone=public --add-service=http Success คอนฟิก firewall ที่แก้ไขไป จะอยู่ชั่วคราวเท่านั้น ถ้ามีการรีสตาร์ตเครื่องใหม่ คอนฟิก ที่เพิ่ม จะหายไปต้องระบุออปชัน –permanent เพื่อให้บันทึกการคอนฟิกลงในไฟล์ # firewall-cmd --permanent --zone=public --add-service=http Success