OpenVPN สำหรับทำงานที่บ้าน (work from home)

     สวัสดีชาว Developer ทุกคน ช่วงนี้เดือนมีนาคม 2563 มีการระบาดของเชื้อ Covid-19 ทำให้บริษัท Tech Company ต่างๆได้มีการปรับเปลี่ยนให้พนักงานทำงานที่บ้าน ซึ่งในหลายบริษัทมีการ setup software ให้มีการแยก Environment ต่างๆ เช่น Dev, Staging, UAT, Prod และมีการใช้งาน CI/CD ในรูปแบบที่เป็น local network ที่เข้าถึงได้เฉพาะเครื่องที่อยู่ในวงแลนของบริษัทเท่านั้น ทำให้เมื่อต้องทำงานที่บ้านจะพบปัญหาไม่สามารถนำไปทดสอบใน Environment ที่ได้ setup ไว้ได้ ซึ่งทำให้บริษัทต้องเสียงบไปเปิด cloud เพื่อ setup environment ไว้สำหรับทดสอบเพิ่มอีก ซึ่งอาจจะมีปัญหาในเรื่อง security เพิ่มเข้าให้ดูแลอีก

วันนี้ผมจึงขอเสนอทางเลือกหนึ่ง คือ การทำให้เครื่องที่บ้านเชื่อมต่อกับ network ของบริษัทเสมือนว่านั่งทำงานบนเครื่องที่บริษัทด้วย OpenVPN และที่สำคัญคือ ฟรี!!!!

สิ่งที่ต้องมี

  • Docker
  • Ubuntu หรือ OS อะไรก็ได้ที่ลง Docker ได้
  • DDNS
  • Router

เนื่องด้วยมีเวลาในการเตรียมการ setup OpenVPN Server ที่จำกัด จึงเลือกใช้ OpenVPN Server docker image เพื่อประหยัดเวลาในการ setup

 

ติดตั้ง OpenVPN Server ขั้นตอนดังนี้

  • เครื่องสำหรับ OpenVPN Serverในรอบนี้ผมเลือก OS Ubuntu เพราะว่ามีอยู่แล้ว จากนั้นทำการ fix static ip ให้กับเครื่องเพื่อป้องกัน ip เปลี่ยน
  • สมัคร DNS Host (A) ที่ noip ฟรี ใช้สำหรับทำ DDNS ให้กับ OpenVPN Server
  • ตั้งค่า DDNS router ให้อัพเดท ip ที่ไปที่ noip
    อ่านที่นี่เพิ่มเติม https://swiftlet.co.th/ddns-setting-on-router/
  • forward port router ที่ไป ip เครื่องที่จะใช้รัน OpenVPN Server ไปที่ port 1194
  • ติดตั้ง Docker ดูขั้นตอนจาก https://docs.docker.com/install/
  • รันคำสั่งที่ terminal เพื่อเตรียม volume สำหรับเก็บ passphase และ key
  • จากนั้นจะได้ file .ovpn มาเป็นอันเสร็จสิ้น
มาทดสอบด้วยการ OpenVPN Client

วิธีใช้งานจริงจะใช้ OpenVPN Client เชื่อมต่อไปที่ OpenVPN Server ที่ได้ setup ไว้

https://openvpn.net/vpn-client/
  • Connect OpenVPN สำหรับ Ubuntu/Linux จากนั้นรอสักครู่ (ส่วน Mac กับ Windows กด import file ovpn ผ่าน GUI ได้เลย)
openvpn3 session-start --config ${MY_CONFIGURATION_FILE}

เพียงเท่านี้ก็จะทำให้เครื่องที่บ้านนั้นเสมือนว่าต่อสายแลนที่บริษัทเป็นอันเสร็จสิ้น

บริการ พัฒนาซอฟต์แวร์ แอปพลิเคชัน ตามความต้องการ!

เราเป็นผู้นำในด้านการให้บริการ พัฒนาซอฟต์แวร์ แอปพลิเคชัน และโซลูชันด้านไอที แบบครบวงจร (Full-stack) ตั้งแต่การให้คำปรึกษาไปจนถึงการ Maintenace ระบบ เรามีความตั้งใจที่จะเปลี่ยนให้ นวัตกรรม และไอเดีย ระดับโลกของคุณให้กลายเป็นซอฟต์แวร์ที่มีคุณภาพ โดยที่บริษัทรับพัฒนาซอฟต์แวร์ เขียนโปรแกรม และ แอปพลิเคชัน ตามความต้องการทางธุรกิจคุณได้ ทุกรูปแบบ ทุกประเภท ทุกความต้องการทางธุรกิจ หากคุณมีไอเดียดีๆ ที่ต้องการพัฒนา Software หรือ พัฒนา Application สามารถปรึกษาเราได้ที่นี่!