Network
น้องๆ เคยสงสัยไหมว่าทำไมร้านเน็ตสมัยผมถึงไม่ค่อยโดนแฮก? เคล็ดลับอย่างนึงก็คือ Firewall นี่แหละ! pfSense เนี่ย มันคือ Firewall แบบ Open Source ที่โคตรเจ๋ง สมัยก่อนแพงๆ ทั้งนั้น เดี๋ยวนี้ของฟรีดีๆ เพียบ
Firewall มันก็เหมือนยามหน้าประตูบ้านนั่นแหละ คอยสกรีนว่าใครเข้าได้ ใครเข้าไม่ได้ pfSense มันทำหน้าที่นี้ให้ Network ของเรา ป้องกันพวก Hacker, Malware หรือแม้กระทั่งคนในบ้านที่โหลดบิทเยอะเกินไป (อันนี้เรื่องจริง!)
Firewall ที่แถมมากับ Router ตามบ้านเนี่ย มันก็พอได้แหละ แต่มันเหมือนยามที่หลับๆ ตื่นๆ น่ะน้อง pfSense มันเหมือนยามที่กินกาแฟมา 10 แก้ว ตรวจเข้มทุกฝีก้าว แถมยังปรับแต่งได้เยอะแยะมากมาย ตามใจเราเลย
สมัยผมทำร้านเน็ต ผมต้องดูแลเครื่องเป็นร้อยๆ pfSense ช่วยผมได้เยอะมาก ทั้งเรื่อง Traffic Shaping, VPN Server, Intrusion Detection เรียกได้ว่า "จบครบในตัวเดียว"
การติดตั้ง pfSense ไม่ยากอย่างที่คิดนะน้อง ถึงจะดู Command Line เยอะแยะ แต่จริงๆ แล้วมันมี GUI ให้ใช้สบายๆ เลย
แค่นี้เอง! pfSense ก็พร้อมใช้งานแล้ว ที่เหลือก็แค่ตั้งค่าตามความต้องการของเรา
# ตัวอย่าง Command Line (ไม่ต้องตกใจ ถ้าไม่เข้าใจ)
# pfSsh.php playback installpfSense
พอติดตั้งเสร็จแล้ว ทีนี้ก็ถึงเวลาปรับแต่งให้ pfSense ทำงานตามที่เราต้องการ ผมจะยกตัวอย่างการตั้งค่าที่สำคัญๆ ให้ดูนะ
Firewall Rules คือหัวใจสำคัญของ pfSense มันคือชุดคำสั่งที่บอกว่า Traffic แบบไหน Allowed Traffic แบบไหน Denied
สมัยผมทำร้านเน็ต ผมต้อง Block พวกโปรแกรมโกงเกม, BitTorrent, หรือ Website ที่ไม่เหมาะสม Firewall Rules นี่แหละช่วยชีวิตผมไว้
ตัวอย่างการสร้าง Firewall Rule:
จำไว้ว่า Firewall Rules จะถูกประมวลผลจากบนลงล่าง ดังนั้น Rule ที่สำคัญที่สุดควรอยู่บนสุด
NAT คือการแปลง IP Address ภายใน (Private IP) เป็น IP Address ภายนอก (Public IP) ทำให้เครื่องในบ้านสามารถเข้า Internet ได้ โดยใช้ Public IP เดียว
Router ตามบ้านก็ทำ NAT ให้เราอยู่แล้ว แต่ pfSense ทำได้ดีกว่าเยอะ เพราะเราสามารถกำหนด Port Forwarding ได้อย่างละเอียด
Port Forwarding คือการกำหนดว่า Traffic ที่เข้ามาที่ Port ไหน จะถูกส่งต่อไปยังเครื่องไหนใน Network ภายใน
ตัวอย่างการทำ Port Forwarding:
Port Forwarding มีประโยชน์หลายอย่าง เช่น การเปิด Web Server, Game Server หรือ Remote Desktop
VPN คือการสร้าง Connection ที่ปลอดภัยระหว่าง Network สองแห่ง ทำให้เราสามารถเข้าถึง Network ภายในจากภายนอกได้ เหมือนมีอุโมงค์ลับส่วนตัว
pfSense สามารถเป็นได้ทั้ง VPN Server และ VPN Client ผมใช้ VPN บ่อยมาก เวลาไปต่างประเทศ อยากเข้าถึง File Server ที่บ้าน
การตั้งค่า VPN Server:
Client Configuration คือไฟล์ที่เราต้องเอาไปใส่ใน VPN Client บนเครื่องที่เราต้องการเชื่อมต่อ VPN
ในตลาด Firewall มันมีให้เลือกเยอะแยะมากมาย แต่ละตัวก็มีข้อดีข้อเสียต่างกัน มาดูตารางเปรียบเทียบกันหน่อย
| Firewall | ข้อดี | ข้อเสีย | เหมาะกับใคร |
|---|---|---|---|
| pfSense | Open Source, ปรับแต่งได้เยอะ, Feature ครบ, Community ใหญ่ | ต้องมีความรู้ทาง Network บ้าง, อาจจะ Config ยากสำหรับมือใหม่ | ผู้ที่ต้องการ Firewall ที่มีประสิทธิภาพสูง, ผู้ที่ชอบปรับแต่ง |
| OPNsense | Open Source, User Interface สวยงาม, ใช้งานง่ายกว่า pfSense | Feature อาจจะไม่เยอะเท่า pfSense, Community เล็กกว่า | ผู้ที่ต้องการ Firewall ที่ใช้งานง่าย, ผู้เริ่มต้น |
| Sophos XG Firewall Home Edition | ฟรีสำหรับใช้ส่วนตัว, Feature ครบ, มี Antivirus ในตัว | ต้องลงทะเบียน, จำกัด Hardware | ผู้ที่ต้องการ Firewall ที่มี Feature ครบ, ใช้ส่วนตัว |
| Firewalla | ใช้งานง่ายมาก, มี App บนมือถือ, เหมาะกับผู้ที่ไม่ค่อยมีความรู้ | ราคาค่อนข้างสูง, ปรับแต่งได้ไม่เยอะ | ผู้ที่ต้องการ Firewall ที่ใช้งานง่าย, ผู้ที่ไม่ค่อยมีความรู้ |
เลือก Firewall ที่เหมาะกับความต้องการและงบประมาณของเรานะน้อง ไม่มีอะไรดีที่สุด มีแต่ "เหมาะที่สุด"
ถ้าอยากอ่านเรื่อง Network สนุกๆ แบบนี้อีก แวะไป SiamCafe Blog นะ มีให้อ่านเพียบ!
Q: pfSense กิน Resource เยอะไหม?
A: ขึ้นอยู่กับการตั้งค่าและ Traffic ถ้าตั้งค่าเยอะๆ ก็กินเยอะหน่อย แต่โดยรวมแล้วไม่กิน Resource มากเท่าไหร่ เครื่องเก่าๆ ก็ยังพอไหว
Q: pfSense ปลอดภัยแค่ไหน?
A: pfSense ปลอดภัยมาก ถ้าตั้งค่าถูกต้อง และ Update Patch อย่างสม่ำเสมอ ที่สำคัญคือต้องเปลี่ยน Password Default ด้วยนะ!
Q: pfSense รองรับ Hardware อะไรบ้าง?
A: pfSense รองรับ Hardware หลากหลาย ตั้งแต่ PC ทั่วไป ไปจนถึง Server ระดับ Enterprise แต่แนะนำให้ใช้ Hardware ที่มี Network Interface อย่างน้อย 2 Port (WAN และ LAN)
หวังว่าบทความนี้จะเป็นประโยชน์กับน้องๆ นะ ถ้ามีคำถามอะไรเพิ่มเติม ถามมาได้เลย เดี๋ยวพี่ตอบให้! และอย่าลืมแวะไปอ่านบทความอื่นๆ ที่ SiamCafe Blog นะครับ!
ดูวิดีโอเพิ่มเติมเกี่ยวกับpfSense Firewall ติดตั้งและตั้:
เรื่องนี้สำคัญมาก! สมัยผมทำร้านเน็ตนี่เจอบ่อย ลูกค้าโดนแฮกเพราะไม่ได้อัพเดทซอฟต์แวร์ pfSense ก็เหมือนกัน ต้องอัพเดทตลอดเพื่อปิดช่องโหว่ความปลอดภัย
อย่าขี้เกียจ! Backup config ไว้เสมอ เกิดอะไรขึ้นมาจะได้ restore กลับมาได้ง่ายๆ ผมเคยเจอฮาร์ดดิสก์พัง config หายหมด ต้องมานั่ง config ใหม่ เสียเวลามากๆ
# ตัวอย่างการ backup config ผ่าน SSH
pfSsh.php playback backup
อย่าให้ใครก็เข้าถึง pfSense Web Interface ได้ กำหนดสิทธิ์ให้เฉพาะคนที่จำเป็นเท่านั้น และใช้รหัสผ่านที่คาดเดายาก
ผมเคยเจอเด็กในร้านแอบเข้าไปแก้ config firewall จนเน็ตล่มทั้งร้าน ต้องตามตัวกันวุ่นวาย
Snort หรือ Suricata ช่วยตรวจจับและป้องกันการโจมตีได้ดี แต่ต้องปรับแต่ง rule ให้เหมาะสมกับ network ของเราด้วย ไม่งั้นอาจจะ false positive เยอะเกินไป
สมัยก่อนผมใช้ Snort ช่วยบล็อกพวก port scan ได้เยอะเลย ลดความเสี่ยงที่จะโดนแฮกได้มาก
pfSense กิน CPU สูงได้จากหลายสาเหตุ เช่น มี traffic เยอะ, เปิดใช้งาน package หลายตัว, หรือ hardware ไม่แรงพอ ลองเช็คดูว่ามี process อะไรที่กิน CPU เยอะผิดปกติ
pfSense รองรับ VPN หลายแบบ เช่น OpenVPN, IPsec, WireGuard เลือกใช้ตามความเหมาะสม
สมัยก่อนผมชอบใช้ OpenVPN เพราะมัน config ง่ายและ secure ดี
NAT Loopback ทำให้เครื่องภายใน network เข้าถึง public IP ของตัวเองไม่ได้ แก้ได้โดยการเปิดใช้งาน NAT Reflection ใน pfSense
ผมเคยเจอปัญหานี้ตอนทำ web server ในร้าน ต้องไปแก้ NAT Reflection ถึงจะเข้าเว็บตัวเองได้
ใช้ package เช่น ntopng หรือ pfTop ช่วย Monitor Traffic ได้แบบ real-time เห็นเลยว่าใครใช้ bandwidth เยอะสุด
ผมชอบใช้ ntopng เพราะมันมี graphic สวยๆ ดูง่ายดี
pfSense เป็น firewall ที่ทรงพลังและยืดหยุ่น แต่ก็ต้องใช้เวลาศึกษาและทำความเข้าใจพอสมควร หวังว่าบทความนี้จะเป็นประโยชน์กับเพื่อนๆ ที่กำลังเริ่มต้นใช้งาน pfSense นะครับ ถ้ามีคำถามอะไรเพิ่มเติม ถามมาได้เลย
อย่าลืมแวะไปดูบทความอื่นๆ ที่น่าสนใจได้ที่ SiamCafe Blog นะครับ และถ้าใครสนใจเรื่อง Forex ลองดูที่ iCafeForex ได้เลย