วันพุธที่ 2 ธันวาคม พ.ศ. 2558

ติดตั้ง Openvpn 2.3.2 บนโอเอส Ubuntu Desktop 14.04.3 LTS

หลังจากหายหน้าหายตาไปหลายสัปดาห์ ก็เป็นโอกาสอันดีอีกครั้งหนึ่งที่ผู้เ่ขียนได้เริ่มจับงานด้านการสร้างระบบเครือข่ายเสมือนส่วนตัว(virtual private network) สำหรับงานการทำ VPN นี้ตั้งใจจะนำมาทดสอบระบบกล้องวงจรปิดที่ต้องการรีโมตและบันทึกข้อมูลผ่านเครือข่ายที่มีความซับซ้อน ปัญหาหลักของกล้องวงจรปิดแบบไอพี (ip camera) ก็คือตัวเครื่องบันทึกข้อมูลสามารถรับสัญญาณภาพภายในเครือข่ายแลนเท่านั้นหากต้องการส่งข้ามเน็ตเวิร์คหรือผ่านอุปกรณ์ nat ย่อมไม่สามารถทำงานได้

ด้วยเหตุของความสลับซับซ้อนของระบบเครือข่ายโดยเฉพาะอย่างยิ่งหากต้องการดูภาพจากกล้องแบบเวลาจริงผ่านเครือข่ายมือถือแบบ 3G/4G ด้วยแล้วโอกาสที่จะทำงานได้ย่อมเป็นไปไม่ได้เลย ด้วยเหตุนี้การใช้งานเครือข่ายแบบเสมือนส่วนตัวน่าจะช่วยแก้ปัญหาในเรื่องนี้ได้ แต่ข้อนี้ผู้เขียนยังไม่เคยได้ทดสอบ เพื่อป้องกันการสับสนวันนี้เรามาสร้างเครื่องเซิร์ฟเวอร์หรือเครื่องลูกข่ายสำหรับใช้งานโปรแกรม openvpn กัน

ขั้นตอนที่ 1 ดำเนินการติดตั้งโปรแกรม openvpn และโปรแกรมสร้างคีย์สาธารณะ easy-rsa
#apt-get install openvpn easy-rsa

ขั้นตอนที่ 2 หลังจากติดตั้งโปรแกรมเสร็จสิ้นสมบูรณ์ตามขั้นตอนที่ 1 แล้วให้แก้ไขไฟล์ vars อยู่ในโฟลเดอร์ /etc/openvpn/easy-rsa
export KEY_COUNTRY="TH"
export KEY_PROVINCE="Nonthaburi"
export KEY_CITY="Saima"
export KEY_ORG="Thai Prosperous IT Co.,Ltd."
export KEY_EMAIL="             @gmail.com"

ขั้นตอนที่ 3 จากนั้นให้ดำเนินการตามขั้นตอนต่อไปนี้ source vars เป็นการบอกสคริปให้รู้จักตัวแปรที่ได้แก้ไขใหม่ ส่วน clean-all เป็นการลบค่าเก่าของโฟลเดอร์ keys
#source vars
#./clean-all

ขั้นตอนที่ 4 เป็นการสร้าง Certificate Authority(CA) หรือคีย์หลักในการให้ใบรับรองดิจิตอล
#./build-ca

Generating a 2048 bit RSA private key
....................................................................................................+++
......................................................................+++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [TH]:
State or Province Name (full name) [NONTHABURI]:
Locality Name (eg, city) [SAIMA]:
Organization Name (eg, company) [OpenVpn IP Camera Server]:
Organizational Unit Name (eg, section) [OpenVpnDevelopmentUnit]:
Common Name (eg, your name or your server's hostname) [OpenVpn IP Camera Server CA]:
Name [EasyRSA]:
Email Address [me@myhost.mydomain]:             @gmail.com

ขั้นตอนที่ 5 จากนั้นสร้าง Public Keys สำหรับเครื่องเซิร์ฟเวอร์
# ./build-key-server OpenVpnServer
# ./build-dh

ขั้นตอนที่ 6 ให้ทำการคัดลอกคีย์ต่อไปนี้ไปยังโฟลเดอร์ /etc/openvpn
#cd keys/
#cp myservername.crt myservername.key ca.crt dh2048.pem /etc/openvpn/

ขั้นตอนที่ 7 สำหรับเครื่องเซิร์ฟเวอร์ที่ต้องการสร้างเราเตอร์จากอินเตอร์เฟส Tunnel ไปยังเครือข่ายอื่นในระบบให้แก้ไขไฟล์ /etc/sysctl.conf เพื่อทำการฟอร์เวิร์ดไอพี

net.ipv4.ip_forward=1

เป็นอันสิ้นสุดการติดตั้ง Openvpn 2.3.2 บนโอเอส Ubuntu Desktop 14.04.3 LTS สำหรับไฟล์ server.conf คอนฟิกตัวอย่างสำหรับ server สามารถคัดลอกมาได้จากโฟลเดอร์ /usr/share/doc/openvpn/examples/sample-config-files/

สำหรับการดำเนินการติดตั้ง Openvpn นั้นสามารถทำได้โดยไม่ยุ่งยาก ส่วนการนำไปใช้งานนั้นต้องค่อยๆ เรียนรู้และศึกษากันไป หากผู้เขียนได้ทดลองได้ผลประการใดจะรีบนำเสนอทันที การนำไปประยุกต์ใช้งานนั้นค่อนข้างกว้างขวาง หากลองสังเกตดีๆ มือถือแอนดอร์ยเองก็มีแอพพลิเคชั้นประเภทนี้ให้ลองใช้งานกันอย่างมากมายทีเดียว

สำหรับเนื้อหาในวันนี้ต้องขอขอบพระคุณ บจก.ไทย พรอสเพอรัส ไอที ผู้นำด้านการให้บริการระบบ GPS TRACKING ครบวงจรด้วยอุปกรณ์ชั้นนำนำเข้าจากยุโรปโดยตรง พร้อมระบบจีพีเอสเซิร์ฟเวอร์ออนไลน์ใช้งานได้ในประเทศไทย ไม่ต้องเปลืองทราฟฟิกไปยังต่างประเทศ