การทำ Port Forward ใน pfSense

Port forwards เป้นการอนุญาตให้พอร์ต ช่วงของพอร์ต หรือโปรโตคอลให้สามารถเข้าถึงอุปกรณ์ที่อยู่ในเน็ตเวิรคภายในของคุณ คำว่า port forward เป็นคำที่คนส่วนใหญ่ใช้และเข้าใจกัน แต่ในทางเทคนิคแล้วคำว่า Inbound NAT น่าจะเหมาะสมกว่า เพราะว่าโปรโตคอลที่ใช้ไม่ใช้เพียงแค่ TCP หรือ UDP เท่านั้น ยังรวมไปถึง GRE และ ESP ด้วย การทำ NAT ส่วนใหญ่ใช้กับเซิร์ฟเวอร์ หรือ application อื่นๆที่จำเป็นต้องมีการเข้าถึงจากอืินเตอร์เน็ต

ความเสี่ยงของการทำ Port forward

โดยปกติ pfSense จะไม่อนุญาตให้มีการเชื่อมต่อจากอินเตอร์เน็ตเข้ามา เพื่อป้องกันไม่ให้ใครก็แล้วแต่ที่จะสแกนระบบเพื่อหาช่องว่างในการโจมตี เมื่อคุณเพิ่ม port forward เข้าไป pfSense จะอนุญาตให้ traffic ใดก็แล้วแต่ที่ตรงกับ Firewall Rule มันไม่สามารถแยกความแตกต่างกับ packet ที่เป็นอันตรายได้ ถ้าตรงกันมันก็อนุญาตให้ผ่านไป

Port Forwarding and Local Services

Port forward มีความสำคัญสูงสุดในการทำงานบน pfSense สำคัญกว่า Web interface, SSH และ Service อื่นๆที่คุณสั่งให้ทำงาน ตัวอย่างเช่น ถ้าคุณอนุญาตให้เข้า Web interface ของ pfSense เพื่อจัดการ pfSense ผ่านทาง WAN โดยใช้ HTTPS, TCP port 443 ถ้าคุณเพิ่ม port forward เข้าไปใน WAN สำหรับ TCP port 443 คุณจะไม่สามารถเข้าหน้าเว็บของ pfSense ได้อีก แต่จะไม่ส่งผลกระทบต่อ interface อื่นๆ ส่งผลเฉพาะ interface ที่มี port forward เท่านั้น

การเพิ่ม Port Forwards

Port Foward สามารถจัดการได้จาก Firewall --> NAT แท็บ Port Forward, Rule ในหน้านี้มีวิธีการจัดการเหมือนกับ การ Config Firewall Rules
เริ่มต้นการเพิ่ม port forward ด้วยการคลิกที่ add-button ด้านบนสุดหรือล่างสุดของลิสต์ ดังรูปที่ 1

port-forward
รูปที่ 1 การเพิ่มรายการ port forward

คุณจะได้เห้นหน้าของการแก้ไข port forward ดังรูปที่ 2

edit-port-forward
รูปที่ 2 หน้าสำหรับแก้ไข Port Forward

หลังจากคลิกปุ่ม Save คุณจะกลับไปที่หน้าลิสต์ของ port forward แล้วคุณจะได้เห็น

port-forward-list
รูปที่ 3 รายการ port forward

เพื่อ ให้แน่ใจ คุณอาจจะตรวจสอบที่ Firewall Rule ยน interface ที่ได้ทำ port forward ไว้ ดังรูปที่ 4 คุณอาจจะกำหนด Source ที่อาจจะเข้ามาโดยใช้ Firewall Rule นี้ สำหรับเมล์เซิร์ฟเวอร์ที่มีการส่งเข้ามาจากทั่วโลก การกำหนด Source ดูจะใช้ไม่ได้ในทางปฏิบัติ แต่ SSH หรือ VNC การระบุโฮสต์ที่จะเข้าถึงเซิร์ฟเวอร์ที่ต้องการจึงเป็นสิ่งสำคัญ ดังนั้น จึงควรสร้าง alias สำหรับโฮสต์ดังกล่าวและเปลี่ยน Source จาก any เป็น alias ที่ได้สร้างไว้จึงมีความปลอดภัยมากกว่าการเปิดให้เครื่องใดๆก็ได้เข้ามา ตอนแรกคุณอาจจะทดสอบจากโฮสต์ทั่วๆไปก่อน หลังจากสำเร็จแล้วให้กำหนดโฮสต์ที่จะเข้าถึงตามต้องการ ถ้าทุกอย่างถูกต้อง port forward ควรจะใช้งานได้จากเน็ตเวิร์คภายนอก

ข้อจำกัดของการทำ Port Forward

คุณสามารถ forward 1 port ของ public IP ไปยัง 1 port ของโฮสต์ภายใน (internal host)  ตัวอย่างเช่น คุณมีหนึ่ง public IP คุณสามารถมีหนึ่งเว็บเซิร์ฟเวอร์ที่ใช้ TCP port 80 เพื่อให้บริการเว็บ เซิร์ฟเวอร์อื่นจำเป็นต้องใช้พอร์ตอื่น เช่น 8080 แต่ถ้าคุณมี 5 public IP คุณสามารถมีเว็บเซิร์ฟเวอร์ที่ทำงานที่ TCP port 80 ได้ 5 เซิร์ฟเวอร์ ดูรายละเอียดเพิ่มเติมเกี่ยวกับการทำ Virtual IP
เพื่อให้เครื่องที่อยู่ภายในเข้าถึงเซิร์ฟเวอร์ที่ได้ทำ port forward (เครื่องภายใน) จาก WAN Address อย่างเหมาะสม จำเป้นต้องทำ NAT Reflection ซึ่งจะได้อธิบายในหัวข้อ NAT Reflection คุณควรจะทดสอบ port forward ของคุณอินเตอร์เน็ตที่ต่างที่กัน ไม่ใช่จากเน็ตเวิร์คภายในของคุณ

การ Redirect Port ด้วย Port Forward

ประโยชน์อีกอย่างของการทำ port forward คือการ redirect traffic จาก internal network, port forward ที่ได้ระบุไว้ LAN interface หรือ internal interface อื่นๆ จะ redirect traffic ที่ตรงกันไปยังปลายทางที่ต้องการ เหมือนกับการทำ web transparent proxy ที่คนส่วนใหญ่ทำกัน หรือการทำ SMTP redirect outbound ไปยังเซิร์ฟเวอร์เดียว
หมายเหตุ
ระบบที่คุณจะทำ redirect ต้องอยู่ต่าง interface กันแต่ในไฟร์วอลล์เดียวกัน ในกรณีของ HTTP Proxy Server  ที่มีการทำ redirect port บน LAN, traffic จะออกไปใหนไม่ได้ถ้าไม่มี OPT interface
ตัวอย่าง NAT ใน รูปที่ 5 เป็นการ config ให้ HTTP traffic ทั้งหมดที่เข้ามายัง LAN ทำการ redirect ไปยัง 192.168.10.10 port 3129

redirect http to squid
รูปที่ 5 ตัวอย่างการทำ Redirect โดย Port Forward

โปรดจำไว้ว่าเซร์ฟเวอร์ที่จะทำ redirect ต้องอยู่ต่าง interface กันกับ interface ที่ทำ port forward ตามที่ได้อธิบายไปแล้วข้างต้น

0 comments:

Post a Comment

 

Pfsense Thailand Copyright © 2011-2012 | Powered by Blogger