ติดตั้ง OpenVPN Server บน Pfsense
Table of Contents
ติดตั้ง OpenVPN Server บน Pfsense
ภาพรวมการดำเนินการทั้งหมด
- สร้าง Authorities (หากเป็นรุ่นเก่าจะเรียกว่า CAs)
- ปรับแต่ง Authorities
- สร้าง Certificates
- ปรับแต่ง Certificate
- Configuring OpenVPN on PFSense
- General OpenVPN Server Information
- Cryptographic Settings
- Tunnel Settings and Client Settings
- Client Settings
- ติดตั้ง Exports client
- ส่งไฟล์ ให้ผู้ที่ต้องการเชื่อมต่อ
Creating a Certificate Authority on PFSense
เริ่มจากการเข้าไปยังหน้า Certificates เพื่อสร้าง Authorities ก่อน ตามเส้นทางดังภาพ System>Certificates (หากเป็นรุ่นเก่า จะเป็นการสร้าง CAs หลักการคล้ายกัน แต่เมนูจะชื่อ Cert,manager)
สร้าง Authorities
วิธีการสร้าง ในขณะที่เราคลิกเลือก Authorities ให้คลิก Add ซึ่งอยู่ด้านล่าง เพื่อเข้าไปปรับแต่ง ค่ารายละเอียดตามที่เราต้องการ (หากเป็นรุ่นเก่า จะเป็นการสร้าง CAs)
จากภาพด้านบน จะเห็นว่า มีการสร้างไว้แล้ว มีชื่อว่า PFsense_RootCA หากต้องการสร้างตัวใหม่ ให้คลิก Add ด้านล่าง (ในภาพไม่โชว์ เพราะจำภาพไม่ได้) หรือหากต้องการแก้ไขรายละเอียด รวมทั้งการจัดการเกี่ยวกับคีย์หรือการ Export ต่างๆๆ สามารถดำเนินการได้
การกำหนดค่า ใน Authorities
- ในกรอบหน้าต่าง Create/Edit CA กำหนดได้ตามรายละเอียดภาพข้างล่าง
Descriptive name = ตั้งชื่ออะไร ก็ได้ แต่ต้องจำให้ได้ เพราะไว้อ้างอิงในขั้นตอนต่างๆๆ ทางที่ดีจดไว้หรือสร้างให้เหมือนเขาแนะนำ จะได้เข้าใจ ตามตัวอย่าง ตั้งชื่อว่า PFSenst_RootCA
Method = ให้เลือก Create an internal Certificate Authority
- ในกรอบ Internal Certificate Authority
กำหนดรายละเอียดดังนี้ ส่วนรายละเอียดอื่นสามารถกำหนดได้ตามข้อมูลของเรา ได้ตามความต้องการ บางตัวเป็นตัวเลือก อาจจะไม่ต้องกำหนดก็ได้
- Key length =2048
- Digest Algorithm =sha256
- Lifetime(days)=3650
- ส่วนรายละเอียดอื่น กำหนดได้ตามต้องการ
ตัวอย่างการกำหนดค่า ในกรณีที่เป็นรุ่นเก่า ซึ่งแตกต่างกันไม่มาก
- Descriptive name=ตั้งชื่ออะไร ก็ได้ แต่ต้องจำให้ได้ เพราะไว้อ้างอิงในขั้นตอนต่างๆๆ ทางที่ดีจดไว้หรือสร้างให้เหมือนเขาแนะนำ จะได้เข้าใจ ตามตัวอย่าง ตั้งชื่อว่า PFSenst_RootCA
- Method = ให้เลือก Create an internal Certificate Authority
- Key length =2048
- Digest Algorithm =sha256
- ที่เหลือกำหนดรายละเอียดได้ตามความต้องการ เป็นอันว่าเสร็การสร้าง CAs
สร้าง Certificates
คลิกตรง Certificates ตามภาพ ซึ่งอยู่ถัดจาก Authorities ให้คลิก Add/Sign ซึ่งอยู่ด้านล่าง เพื่อสร้าง Certificates อย่าสับสนนะครับ ตัวแรกคือการสร้าง Authorities (หากเป็นรุ่นเก่าจะเรียกว่า CAs) จากภาพด้านล่างจะเห็นว่ามีการสร้างไว้แล้วในชื่อ VpnServerCert
ในกรณีที่เป็น Pfsense รุ่นเก่าจะเป็นดังภาพข้างล่าง
การปรับแต่ง Certificates
ในการปรับแต่งในขั้นตอนนี้ หากดูภาพจะมาก แต่จริงๆ แล้วแก้ไขเพิ่มแค่ 2 ขั้นตอนคือ
ในกรอบหน้าต่าง Add/Sign a New Certificate
- Method ให้เลือก Create an Internal Certificate
- Descriptive name ให้กำหนดชื่อตามที่เราต้องการ แต่ ต้องจำไว้ด้วยเพราะต้องไปอ้างอิงในการกำหนดค่าส่วนอื่น
ในส่วนของหน้าต่าง Internal Certificate และ Certificate Attributes
ในหน้าต่าง Certificate Attributes อย่าลืม ให้กำหนดค่า Certificate type ให้เป็น Server Certificate
ตัวอย่างในการกำหนดค่า กรณีที่เป็น pfsense รุ่นเก่า
- Method ให้เลือก Create an internal Certificates
- Certficates ให้เลือก Server Certificates
คลิก Save
Configuring OpenVPN on PFSense
ขั้นตอนนี้ จะเป็นการปรับแต่งเพื่อใช้งาน Openvpn Server บน Pfsens โดยใช้ wizard ของ OpenVpn คลิกเลือกเส้นทางเพื่อเปิด OpenVpn ตามภาพ
- เลือกเมนูแทบ ตรง Wizards
- Type of server ให้เลือก Local User Access คลิก Next
- ในกรอบ Choose a Certificate Authority (CA)
ขั้นตอนนี้ ให้เราเลือก Certificates Authority =PFSense_RootCA คือตัวที่เราสร้างตัวแรกสุด ขั้นตอนการสร้าง Authorities (หรือหากเป็นรุ่นเก่าจะเรียกว่า CAs) หากคลิกแล้วไม่เจอ ก็ต้องกลับไปดูหรือสร้างใหม่ หรือใครที่ตั้งชื่อเป็นอย่างอื่นก็เลือกตามชื่อที่ตั้ง
- Choose a Server Certificate
ให้เลือก VPNServerCert ตัวนี้ คือชื่อ Descriptive Name ในขั้นตอนที่เราสร้าง Certificates ในภาพเป็นชื่อ VPNServer_Cert เนื่องจากเป็นภาพเก่า แต่ให้จำหลักไว้ว่าในขั้นตอนที่เราสร้าง Certificates แล้วเรากำหนดชื่อ Descriptive Name ไว้ว่าอย่างไร ให้เลือกตัวนั้น
ขั้นตอนการปรับแต่งค่า
หลังจากที่เราได้กำหนดหรือเลือกค่า Authority และ Certificate เรียบร้อยเข้าก็จะเข้าสู่ขั้นตอนการปรับแต่งค่า ส่วนมากแล้วจะยังคงค่าเดิมไว้ แก้ไขเฉพาะในส่วนที่เราต้องการใช้งานเพิ่มเติมเท่านั้น ดูรายละเอียดตามภาพด้านล่าง
ในกรอบหน้าต่าง General Information เอาตามที่โปรแกรมกำหนดไว้ก็ได้ หรือเราอาจจะเปลี่ยนตรง Description แต่ส่วนอื่นให้คงค่าเดิมไว้
การกำหนดค่าในกรอบ Tunnel Setting
IPv4 Tunnel Network กำหนดค่า IP Network อะไรก็ได้ เพื่อเป็น Ip กลางในการเชื่อมต่อ Ip ตัวนี้ จะอยู่ระหว่างไอพีของเครื่องลูกข่ายและIp ของ Pfsense ดังนั้นในการกำหนดจะต้องไม่ต้องกับ Ip ที่อยู่ในวงเครื่องลูก หรือ Ip ที่อยู่ในเครือข่ายของ Pfsense
IPv4 Local Network(s) กำหนดค่า Ip Network ของขา Lan
อย่าลืม การกำหนดค่า ไม่ใช่กำหนดค่า Ip Address แต่ให้ กำหนดค่า IP Network ของแต่ละเครือข่าย
การกำหนดค่าในกรอบ Advanced Client Setting.
การกำหนดค่าในส่วนนี้ เป็นการกำหนด Dns Server เพื่อให้เครื่องลูกข่ายที่เชื่อมต่อ Openvpn เมื่อเชื่อมต่อแล้วยังสามารถใช้งานอินเตอร์เน็ตที่เชื่อมต่อได้ปกติ แต่หากเราไม่ต้องการให้เครื่องลูกข่ายที่เชื่อมต่อกับ Openvpn เข้าอินเตอร์เน็ตได้ ก็ให้ปรับเปลี่ยนในกรอบนี้
ส่วนนี้ เป็นการกำหนดเพิ่มต่อว่า เมื่อเชื่อมต่อ Openvpn แล้วให้สามารถเข้ามายังเครือข่ายของวงแลนได้ โดยการกำหนด IP Network ของขาแลน
ในกรณีที่เป็น Pfsense รุ่นเก่า สามารถปรับแต่งได้ดังนี้
General OpenVPN Server Information
ในหัวข้อนี้ เพิ่มเติมในส่วนเดียวคือในส่วนคำอธิบาย Description ซึ่งจะใส่อะไรก็ได้ แต่ให้จำไว้ด้วย
Cryptographic Settings
ในหัวข้อนี้ ปล่อยให้เหมือนเดิม เลือกเฉพาะ
- Auth Digest Algorithm =SHA256
Tunnel Settings and Client Settings
ในหัวข้อนี้ ให้แก้ไขโดยกำหนดค่าดังนี้
- Tunnel Network ให้กำหนด ip ของ Network สำหรับ ip ที่กำหนดนี้ จะจ่ายให้กับเครื่องลูก เพราะฉะนั้น จะต้องไม่ให้ตรงกับวง Lan Dmz ของเรา จะเป็น ip อะไรก็ได้
- Redirect Gateway คลิกเลือก เป็นการกำหนดว่า เครื่องลูกจะต้องวิ่งผ่าน Tunnel
- Local Network คือ ip ของขา Lan คือไอพีของ Pfsense
- Concurrent Connecttion คือกำหนดว่า จะให้เครื่องลูกใช้ได้กี่เครื่อง
Client Settings
ปล่อยไว้เหมือนเดิม แต่ ตรงนี้ หากต้องการให้เครื่องลูกขณะเชื่อม vpn เข้าอินเตอร์เน็ตผ่าน VPN ได้ ก็สามารถกำหนด DNS Server เพิ่มเติมได้
หรือต้องการปรับแต่งรายละเอียดเพิ่มเติมก็ปรับแต่งได้
ขั้นตอนการเพิ่ม Rule ไปยัง Firewall
ในขั้นตอนนี้ เราเลือกได้ว่า จะให้ Pfsense เพิ่มให้ หรือเราต้องการเพิ่มเอง
Next the wizard will want to create the Firewall rule configuration. Select the Firewall rule and the OpenVPN rule as per the example below and click ‘Next‘
Finally, the configuration is complete. Click ‘Finish‘.
เมื่อปรับแต่ง OpenVpn บน Pfsense เสร็จจะปรากฏดังภาพด้านบน ให้คลิก Finish
ติดตั้ง Client Export Package
เป็นการติดตั้งเพื่อให้สามารถส่งไฟล์ติดตั้ง Openvpn ให้กับผู้ใช้ที่ต้องการจะเชื่อมต่อกับ Openvpn Server ที่เราจัดสร้างขึ้นตามบทความนี้ วิธีการติดตั้งไม่ขอนำเสนอด้วยภาพนะครับเพราะไม่ยาก แค่เข้าไปตามเส้นทางนี้ครับ
- System /Package Manager/ Available Packages
- เลือก openvpn-client-export package. แล้ว สั่ง Install
การส่งออกไฟล์คอนฟิก ให้กับผู้ใช้ (Client.Export)
เมื่อเราติดตั้ง Client Export Package จะปรากฏมีคำสั่งตามภาพ ที่วงสีเหลือง จริงๆ แล้วในเว็บที่อ้างอิงได้แนะนำให้ คอนฟิก ตรงผู้ใช้ด้วย (Clients) แต่ได้ทดลองแล้ว จะมีปัญหาตอน บูตระบบ จะมีการถามรหัสตลอด ทำให้เสียเวลาต้องเอาจอไปต่อกับเครื่อง Pfsense และได้ทดลองไม่เข้าเพิ่มผู้ใช้ผ่าน เมนู Clients ระบบ ก็ยังทำงานได้ปกติ แต่เข้าไปจัดการใน User Manager แทน
ขั้นตอนนี้ คือการ Export ไฟล์เพื่อส่งให้เครื่องลูกติดตั้งหรือแก้ไขเฉพาะค่าคอนฟิกเพื่อเชื่อมต่อมายัง Pfsense ที่เรากำลังดำเนินการ จะเห็นว่า สามารถ Exports ออกมาได้หลายรูปแบบ สำหรับการดำเนินการ แบ่งได้ดังนี้
- ติดตั้ง Client Export Package (Installing the OpenVPN Client Export Package) (ตามขั้นตอนที่ผ่านมา)
- เข้าไปจัดการเกี่ยวกับผู้ใช้ โดยเพิ่มผู้ใช้เข้ามาในระบบ
- กลับมายัง ที่ Client Export เพื่อเอาไฟล์ออกมาส่งให้ผู้ใช้ตามชื่อที่ปรากฏ และรูปแบบตามที่เขาต้องการ หรือคอมพิวเตอร์ อุปกรณ์ต่างๆๆ ที่ผู้ใช้รองรับ
การเพิ่มผู้ใช้ เพื่อให้ใช้งาน OpenVpn
การเพิ่มผู้ใช้งานธรรมดา กับการเพิ่มผู้ใช้งานเพื่อใช้ OpenVpn แตกต่างกันนิดเดียว ตรง การกำหนด Certificates ตามเส้นทาง
System/User Manager/Users
- เพิ่ม Username ,passwd
- คลิก เลือก Certificate เพื่อสร้าง Certificates ให้กับผู้ใช้ หากไม่เลือกตรงนี้ หน้าต่างด้านล่าง ที่เขียนว่า Create Certificate for User จะไม่โชว์ขึ้นมา
- อย่าลืมคลิกเลือก create a user certificate แล้วเข้าไปกำหนดค่า
- Descriptive คือการสร้างคำอธิบายหรืออ้างอิง (ใส่ไว้นะครับ มันสะดวกในการจัดการ)
- Certificate Authority = pfsense_RootCa ตัวนี้ หากใครเป็นชื่ออื่น ก็เลือกให้ตรงชื่อนะครับ (ตัวนี้คือขั้นตอนที่เราสร้าง CAS ลองย้อนขึ้นไปดูนะครับ )
- หลังจากนั้น ก็คลิก Save เป็นอันว่าเสร็จ
เข้าไปกำหนดค่า และ Export ไฟล์คอนฟิก เพื่อส่งให้ผู้ใช้
ให้ไปคลิกตรง Client Export แล้วกำหนดค่าตรง Client Connection Behavior
- Client Connection Behavior ตรงนี้ กำหนดชื่อ Host หรือชื่อ Pfsense หรือ ip กรณีเราใช้ ip Public ตามตัวอย่างเป็นการกำหนดค่า Fix Ip
- OpenVPN Clients เลือกชื่อผู้ใช้ แล้ว Export ส่งไปให้
เลือกชนิดของ OS ที่ใช้
เป็นอันว่าเสร็จสิ้นในการส่งการเชื่อม Vpn หลังจากนั้นให้ส่งข้อมูลให้กับผู้ที่ต้องการเข้ามาใช้งานผ่าน ระบบ Vpn Server