วิธีตั้งค่า Proton VPN บน pfSense โดยใช้ OpenVPN
- เวลาอ่าน
- 2 นาที
- หมวดหมู่
- เราเตอร์
ในคู่มือนี้ จะแสดงวิธีตั้งค่า Proton VPN บน pfSense 23.09 และ pfSense 2.7.x โดยใช้โปรโตคอล VPN OpenVPN ซึ่งจะช่วยให้เราเตอร์ปกป้องทุกอุปกรณ์ที่เชื่อมต่ออยู่ด้วยการเชื่อมต่อ Proton VPN
เรียนรู้เพิ่มเติมเกี่ยวกับ OpenVPN
หากใช้งาน pfSense 2.7.x ขอแนะนำให้ใช้โปรโตคอล WireGuard® แทน
โปรดทราบว่าไม่แนะนำให้ใช้การเชื่อมต่อหลายรายการร่วมกับ OpenVPN สำหรับกรณีการใช้งานนี้ ขอแนะนำให้ใช้ WireGuard เช่นกัน
สิ่งที่ต้องเตรียมก่อนเริ่มต้น:
- การติดตั้ง pfSense 23.09 หรือ pfSense 2.7.x ใหม่
- คอมพิวเตอร์ที่เชื่อมต่อกับเครือข่าย LAN เพื่อให้สามารถเข้าถึงหน้าควบคุม pfSense
- ชื่อผู้ใช้และรหัสผ่าน OpenVPN ข้อมูลนี้จะแตกต่างจากชื่อผู้ใช้และรหัสผ่าน Proton VPN ปกติ หากต้องการค้นหา ให้เข้าสู่ระบบที่ account.protonvpn.com แล้วไปที่ บัญชี → ชื่อผู้ใช้ OpenVPN

1. สร้างไฟล์การกำหนดค่า OpenVPN
เข้าสู่ระบบ Proton VPN โดยใช้ชื่อผู้ใช้และรหัสผ่านบัญชี Proton ที่ account.protonvpn.com จากนั้นไปที่ ดาวน์โหลด → ไฟล์การกำหนดค่า OpenVPN แล้วดาวน์โหลดไฟล์การกำหนดค่า OpenVPN ตรวจสอบให้แน่ใจว่าได้เลือก เลือกแพลตฟอร์ม: เราเตอร์
เรียนรู้วิธีดาวน์โหลดไฟล์การกำหนดค่า OpenVPN จาก Proton VPN
ในการตั้งค่า pfSense จำเป็นต้องใช้ ใบรับรอง TLS(หน้าต่างใหม่) จากไฟล์กำหนดค่านี้ หากต้องการค้นหา ให้เปิดไฟล์กำหนดค่า OpenVPN ที่ดาวน์โหลดมาในโปรแกรมแก้ไขข้อความ แล้วมองหาข้อความที่ขึ้นต้นด้วย —–BEGIN CERTIFICATE—- และสิ้นสุดด้วย –—-END CERTIFICATE—–

นอกจากนี้ยังจำเป็นต้องใช้ หมายเลขไอพี และ หมายเลขพอร์ต ของเซิร์ฟเวอร์ VPN ซึ่งสามารถค้นหาได้ในบรรทัด remote แรกที่ระบุในใบรับรอง โดย ตัวเลขแรกคือหมายเลขไอพี และ ตัวเลขที่สองคือหมายเลขพอร์ต ในตัวอย่างด้านล่าง หมายเลขไอพีคือ 185.159.157.6 และหมายเลขพอร์ตคือ 51820

และสุดท้าย จำเป็นต้องใช้ OpenVPN Static key ซึ่งจะขึ้นต้นด้วย —–BEGIN OpenVPN Static key V1—- และสิ้นสุดด้วย —–END OpenVPN Static key V1—–

2. เพิ่มใบรับรอง TLS ไปยัง pfSense
ป้อน 192.168.1.1 ในแถบ URL ของเบราว์เซอร์เพื่อเปิดหน้าเว็บอินเตอร์เฟส pfSense เข้าสู่ระบบแล้วไปที่ System → Certificates → Add → Import certificate.

กำหนดค่าต่อไปนี้:
สร้าง / แก้ไข CA ไปที่ Authorities → Add และเปลี่ยนการตั้งค่าต่อไปนี้:
- Descriptive name: สามารถตั้งเป็นชื่อใดก็ได้ที่เป็นประโยชน์ต่อการอธิบายใบรับรอง TLS ของ Proton
- Method: นำเข้า Certificate Authority ที่มีอยู่
Certificate Authority ที่มีอยู่
- คัดลอก ใบรับรอง TLS จากไฟล์กำหนดค่า OpenVPN แล้ววางที่นี่

คลิก บันทึก เมื่อเสร็จสิ้น
3. กำหนดค่า OpenVPN Client
จากนี้จะเพิ่ม OpenVPN client เพื่อเข้ารหัสข้อมูลและส่งผ่านทันเนลไปยังเซิร์ฟเวอร์ VPN
ไปที่ VPN → OpenVPN → Clients คลิก Add และ กำหนดค่าต่อไปนี้:
ข้อมูลทั่วไป:
- Description: เลือกชื่อที่แสดงสำหรับการกำหนดค่านี้
- Disabled: ไม่เลือก
การกำหนดค่าโหมด
- Server Mode: Peer to Peer (SSL/TLS)
- Device mode: tun – Layer 3 Tunnel Mode
การกำหนดค่าเอนด์พอยต์
- Protocol: เลือก UDP on IPv4 only หรือ TCP on IPv4 only อย่างใดอย่างหนึ่ง (ขึ้นอยู่กับความต้องการ แต่ต้องตรงกับไฟล์การกำหนดค่าที่ดาวน์โหลดมา) เรียนรู้เพิ่มเติมเกี่ยวกับ UDP กับ TCP
- Interface: WAN
- Local Port: –
- Server host or address: โปรดดู ขั้นตอนที่ 1 เพื่อค้นหาข้อมูลนี้
- Server port: โปรดดูขั้นตอนที่ 1 เพื่อค้นหาข้อมูลนี้เช่นกัน
- Proxy host or address: –
- Proxy port: –
- Proxy Authentication: none

การตั้งค่าการยืนยันตัวตนผู้ใช้
- Username: ชื่อผู้ใช้ OpenVPN ของ Proton VPN
- Password: รหัสผ่าน OpenVPN ของ Proton VPN
- Authentication Retry: ไม่เลือก
ข้อควรจำ: ข้อมูลนี้จะแตกต่างจากชื่อผู้ใช้และรหัสผ่าน Proton VPN ปกติ หากต้องการเปิดใช้งานคุณสมบัติเพิ่มเติม ให้เพิ่มส่วนต่อท้ายต่อไปนี้ในชื่อผู้ใช้ OpenVPN
- NetShield Ad-blocker: +f1
- NetShield Ad-blocker ขั้นสูง (มีให้บริการสำหรับแผนแบบชำระเงินเท่านั้น และยังบล็อกมัลแวร์และตัวติดตามด้วย): +f2
ตัวอย่างเช่น หากต้องการเปิดใช้งาน NetShield Ad-blocker ให้ป้อน ชื่อผู้ใช้+f1

การตั้งค่าการเข้ารหัสลับ
- Use a TLS Key: เลือก
- Automatically generate a TLS Key: ไม่เลือก
- TLS Key: วาง OpenVPN Static key จากไฟล์การกำหนดค่า OpenVPN (ดูขั้นตอนที่ 1)
- TLS Key Usage Mode: การเข้ารหัสลับและการยืนยันตัวตน TLS
- TLS keydir direction: ใช้ทิศทางค่าเริ่มต้น
- Peer Certificate Authority: Proton AG (หรือชื่อที่ใช้อธิบายใน ขั้นตอนที่ 2)
- Peer Certificate Revocation List: ไม่ต้องเปลี่ยนแปลง
- Client Certificate: ไม่มี (ต้องใช้ชื่อผู้ใช้และ/หรือรหัสผ่าน)
- Data Encryption Negotiation: เลือกไว้
- Data Encryption Algorithms: AES-256-GCM, CHACHA20-POLY1305
- Fallback Data Encryption Algorithm: AES-256-GCM
- Auth digest algorithm: SHA256 (256 บิต)
- Hardware Crypto: การรองรับคุณสมบัตี้จะขึ้นอยู่กับอุปกรณ์ หากรองรับ จะต้องเปิดใช้งานก่อนโดยไปที่ System → Advanced → Miscellaneous หากไม่แน่ใจ ให้เลือก No hardware crypto acceleration
- Server Certificate Key Usage Validation: เลือกไว้

การตั้งค่าอุโมงค์เชื่อมต่อ
- IPv4 Tunnel Network: –
- IPv6 Tunnel Network:-
- IPv4 Remote network(s): –
- IPv6 Remote network(s): –
- Limit outgoing bandwidth: – (เว้นแต่จะต้องการกำหนดเป็นอย่างอื่น)
- Allow Compression: Refuse any non-stub compression (ปลอดภัยที่สุด)
- Topology: Subnet — หนึ่งหมายเลขไอพีต่อไคลเอนต์ในซับเน็ตเดียวกัน
- Type of service: ปล่อยว่างไว้
- Don’t pull routes: เลือก
- Don’t add/remove routes: ปล่อยว่างไว้
- Pull DNS: เลือก

การตั้งค่า Ping
- ปล่อยค่าทั้งหมดไว้เป็นค่าเริ่มต้น

การกำหนดค่าขั้นสูง
- Custom Options: เพิ่มข้อมูลต่อไปนี้:
tun-mtu 1500;
mssfix 0;
reneg-sec 0;
remote-cert-tls server;
หมายเหตุ: การตั้งค่าการกำหนดค่าเหล่านี้จะแทนที่การตั้งค่าที่แสดงในภาพหน้าจอด้านล่าง
เพื่อปรับปรุงความเสถียรของการเชื่อมต่อ ให้เปิดไฟล์กำหนดค่า OpenVPN ที่ดาวน์โหลดมาด้วยโปรแกรมแก้ไขข้อความ และค้นหาบรรทัดที่เริ่มต้นด้วย remote จากนั้นให้คัดลอกแต่ละบรรทัดที่เริ่มต้นด้วย remote ตั้งแต่บรรทัด remote ลำดับที่สองลงไป ไปยัง ช่องข้อมูล Custom Options ใน pfSense แล้วตามด้วยเครื่องหมายอัฒภาค

- UDP Fast I/O: เลือกไว้
- Exit Notify: ปิดใช้งาน
- Send/Receive Buffer: ค่าเริ่มต้น
- Gateway creation: เฉพาะ IPv4
- Verbosity level: 3 (แนะนำ)

คลิก บันทึก และไปที่ Status → OpenVPN จะเห็นไคลเอนต์ VPN ใหม่พร้อมมี Status แสดงเป็น up

4. กำหนดค่าอินเทอร์เฟซ OpenVPN
ขณะนี้ไคลเอนต์ VPN กำลังทำงาน แต่ยังไม่มีการกำหนดเส้นทางทราฟฟิกผ่านระบบ ในการกำหนดเส้นทางทราฟฟิกเครือข่ายทั้งหมดผ่านอุโมงค์ Proton VPN ที่ปลอดภัย จำเป็นต้องกำหนดค่าอินเทอร์เฟซและกฎไฟร์วอลล์
ไปที่ Interfaces → Interface Assignments → Available network ports และเลือกไคลเอนต์ VPN ที่เพิ่งเพิ่มจากเมนูดรอปดาวน์ → เพิ่ม
การดำเนินการนี้จะสร้างอินเทอร์เฟซชื่อ OPTx (โดยที่ x จะขึ้นอยู่กับจำนวนอินเทอร์เฟซทางกายภาพที่มีในเราเตอร์) คลิกอินเทอร์เฟซที่สร้างขึ้นใหม่เพื่อกำหนดค่า

ไปที่แท็บ Interfaces คลิกที่ OPTx และป้อนการตั้งค่าการกำหนดค่าดังต่อไปนี้
การกำหนดค่าทั่วไป:
- Enable: เลือกแล้ว
- Description: เลือกชื่ออธิบายสำหรับอินเทอร์เฟซ
เครือข่ายที่สำรองไว้:
- Block bogon networks: เลือก
ปล่อยช่องข้อมูลที่เหลือไว้ตามเดิม
คลิก บันทึก และ นำการเปลี่ยนแปลงไปใช้

5. กำหนดค่ากฎไฟร์วอลล์
ใช้กฎไฟร์วอลล์เพื่อกำหนดเส้นทางทราฟฟิกทั้งหมดผ่านอินเทอร์เฟซ Proton VPN ที่เพิ่งตั้งค่า โดยไปที่ Firewall → NAT → Outbound และเลือก Manual Outbound NAT rule generation จากนั้นคลิก บันทึก และ นำการเปลี่ยนแปลงไปใช้

ภายใต้ Mappings จะเห็นกฎหกข้อที่ระบุไว้ ในคอลัมน์ Source มีกฎ 4 ข้อที่แสดงที่อยู่ 127.0.0.0/8 และ ::1/128 ให้ข้ามกฎเหล่านี้ไป และ แก้ไข (คลิกไอคอนรูปดินสอในคอลัมน์ Actions) กฎอีกสองข้อที่เหลือ

สำหรับกฎทั้งสองข้อ ให้เปลี่ยน Interface เป็นอินเทอร์เฟซ Proton VPN ที่สร้างขึ้นในขั้นตอนที่ 4 คลิก บันทึก และ นำการเปลี่ยนแปลงไปใช้

หมายเหตุ: การดำเนินการนี้จะสร้าง เกตเวย์ ที่มีชื่อเดียวกันกับอินเทอร์เฟซโดยอัตโนมัติด้วย

การตั้งค่า Mappings ควรมีลักษณะดังนี้:

ไปที่ ไฟร์วอลล์ → กฎ → LAN คลิกไอคอน ✓ ถัดจาก Default allow LAN IPv6 to any rule เพื่อปิดใช้งาน

ไปที่ Default allow LAN to any rule → แก้ไข (ไอคอนดินสอ).

คลิก Display advanced → เกตเวย์ และเลือกเกตเวย์ที่สร้างในขั้นตอนที่ 5 คลิก บันทึก และ นำไปใช้

คราวนี้ให้ไปที่ สถานะ → OpenVPN แล้วคลิกไอคอน บริการ → เริ่มใหม่ เพื่อเริ่มการทำงานของไคลเอนต์ OpenVPN ใหม่ด้วยการตั้งค่าใหม่

กำหนดค่าการตั้งค่า DNS
ทราฟฟิกอินเทอร์เน็ตทั้งหมดที่ผ่านไฟร์วอลล์ pfSense จะได้รับการกำหนดเส้นทางผ่านเซิร์ฟเวอร์ Proton VPN แต่คำขอ DNS จะไม่ถูกส่งผ่าน เพื่อแก้ไขปัญหานี้ จำเป็นต้องเปลี่ยนการตั้งค่า DNS ใน pfSense
ไปที่ ระบบ → การตั้งค่าทั่วไป → เซิร์ฟเวอร์ DNS → เซิร์ฟเวอร์ DNS และป้อนการตั้งค่าต่อไปนี้:
- เซิร์ฟเวอร์ DNS → ที่อยู่: 10.2.0.1
- เซิร์ฟเวอร์ DNS → เกตเวย์: เลือกอินเทอร์เฟซ VPN ที่สร้างใน ขั้นตอนที่ 4
- DNS Server Override: ติ๊กเลือก
- DNS Resolution Behavior: ใช้เซิร์ฟเวอร์ DNS ระยะไกล ละเว้น DNS ท้องถิ่น

คราวนี้ให้ไปที่ บริการ → DNS Resolver → อินเทอร์เฟซเครือข่ายขาออก และป้อนการตั้งค่าต่อไปนี้:
- อินเทอร์เฟซเครือข่ายขาออก: เลือกอินเทอร์เฟซ VPN ที่สร้างใน ขั้นตอนที่ 4
- DNS Query Forwarding: ติ๊กเลือก
หากเปิดใช้งานคุณสมบัติ NetShield Ad-Blocker โดยการเพิ่มคำต่อท้าย +f1 หรือ +f2 ในชื่อผู้ใช้ OpenVPN (ดูขั้นตอนที่ 3) จะต้อง ปิดใช้งาน การสนับสนุน DNSSEC

คลิก บันทึก และ นำไปใช้
การตั้งค่าเสร็จสมบูรณ์แล้ว ทราฟฟิกทั้งหมดจากเครือข่ายจะได้รับการกำหนดเส้นทางอย่างปลอดภัยผ่านเซิร์ฟเวอร์ Proton VPN ที่เลือก สามารถทดสอบได้โดยไปที่ เครื่องมือสแกน IP ที่ปลอดภัยและฟรี จากอุปกรณ์ใดก็ได้ในเครือข่าย
การปรับแต่งเพิ่มเติม
สามารถยกเว้นคอมพิวเตอร์บางเครื่องในเครือข่ายไม่ให้ใช้อินเทอร์เฟซ VPN ได้ ตัวอย่างเช่น อาจต้องการให้เครื่องคอนโซลเกมเข้าถึงอินเทอร์เน็ตโดยไม่ต้องเชื่อมต่อกับ VPN วิธีดำเนินการ:
1. ไปที่ ไฟร์วอลล์ → กฎ → LAN → เพิ่ม

2. กำหนดค่าการตั้งค่าดังนี้:
- การดำเนินการ: Pass
- Disabled: ไม่เลือก
- อินเทอร์เฟซ: LAN
- ตระกูลที่อยู่: IPv4
- โปรโตคอล: ใดๆ
- ต้นทาง: Single Host or Alias และเพิ่ม IP ของอุปกรณ์ที่ต้องการยกเว้น
- ปลายทาง: ใดๆ
- บันทึก: ไม่เปลี่ยนแปลง
- รายละเอียด: เพิ่มรายละเอียด

3. คลิกที่ Display Advanced และเปลี่ยน เกตเวย์ เป็น WAN

4. คลิก บันทึก และ นำไปใช้

5. ไปที่ ไฟร์วอลล์ → NAT → ขาออก และสลับ โหมด เป็น อัตโนมัติ จากนั้นคลิก บันทึก และ นำไปใช้ จากนั้นสลับ โหมด กลับเป็น ด้วยตนเอง แล้วคลิก บันทึก และ นำไปใช้

การดำเนินการนี้จะสร้างกฎใหม่สองข้อเพื่ออนุญาตให้อุปกรณ์ที่เลือกเข้าถึงเครือข่าย WAN ท้องถิ่นได้

ตอนนี้อุปกรณ์จะได้รับยกเว้นจากอินเทอร์เฟซ VPN และจะเข้าถึงอินเทอร์เน็ตโดยใช้หมายเลขไอพีที่กำหนดโดย ISP อย่างไรก็ตาม อุปกรณ์จะยังคงใช้ เซิร์ฟเวอร์ DNS ของ Proton VPN