Nandevil’s Blog











{พฤษภาคม 15, 2009}   การทำ VPN Server โดย OpenVPN บน Windows

Download OpenVPN
ตอน Download ให้เลือกตัวที่เป็น Windows Installer ครับ


ขั้นตอนการติดตั้ง โปรแกรม OpenVPN
ทั้ง Server และ Client ใช้วีธีเดียวกันครับ
การติดตั้งเหมือนโปรแกรมทั่วๆไปครับ Next Step ครับ แนะนำให้ใช้ Path ตามที่เขา Default มาเลยครับจะได้ไม่ต้องแก้ Batch files ครับ

ตรงนี้ตอบ Continue Anyway เป็นการติดตั้ง Driver Netwrok Adapter สำหรับ VPN Server ครับ ชื่อ TAP-Win32 Adapter

เมื่อ ติดตั้งเสร็จแล้วใน Network Connections จะมี Local Area Connection เพิ่มมาอีก 1 ตัวซึ่งเป็นของ OpenVPN ครับ จะใช้ Driver ชื่อ TAP-Win32 Adapter

และบน Desktop จะมี Icon OpenVPN GUI ตัวนี้ใช้สำหรับเป็นตัว Connect ไปยัง
VPN Server ครับ


การสร้าง CA,DH และ Key ต่างๆของฝั่ง Server
เราจะสร้าง CA (Certificate Authority) เพื่อใช้งานทั้ง Server และ Client ทุกๆเครื่อง และ สร้าง Key สำหรับฝั่ง Server
และก็ไฟล์ Diffie Hellman (dh) ที่ใช้ได้ทั้ง Server และ Client ทุกๆเครื่อง
1.เปิด Command Prompt  Start,Run “cmd”
2.ใช้คำสั่ง “cd” ไปที่ “ C:\Program Files\OpenVPN\easy-rsa\”

– พิมพ์ init-config
– พิมพ์ vars
– พิมพ์ clean-all
– พิมพ์ build-ca (จะได้ไฟล์ ca.crt, ca.key)


ตัวอย่างแบบง่ายๆ build-ca (build the certificate authority (CA))

Country Name (2 letter code) [US]: Enter ผ่านครับ
State or Province Name (full name) [CA]: Enter ผ่านครับ
Locality Name (eg, city) [SanFrancisco]: Enter ผ่านครับ
Organization Name (eg, company) [FortFunston]: Enter ผ่านครับ
Organizational Unit Name (eg, section) []:Enter ผ่านครับ
Common Name (eg, your name or your server’s hostname) []:OpenVPN-CA (พิมพ์)
Email Address [mail@host.domain]: Enter ผ่านครับ

– พิมพ์ build-key-server server (จะได้ไฟล์ server.crt, server.csr, server.key)


ตัวอย่างแบบง่ายๆ build-key-server server

Country Name (2 letter code) [US]: Enter ผ่านครับ
State or Province Name (full name) [CA]: Enter ผ่านครับ
Locality Name (eg, city) [SanFrancisco]: Enter ผ่านครับ
Organization Name (eg, company) [FortFunston]: Enter ผ่านครับ
Organizational Unit Name (eg, section) []: Enter ผ่านครับ
Common Name (eg, your name or your server’s hostname) []:Server (พิมพ์)
A challenge password []: Enter ผ่านครับ
An optional company name []: Enter ผ่านครับ
Sign the certificate? [y/n]:y (พิมพ์ y)
1 out of 1 certificate requests certified, commit? [y/n]:y (พิมพ์ y)

– พิมพ์ build-dh (Diffie Hellman อันนี้รอนานนิดนึ่งครับ จะได้ไฟล์ dh1024.pem)


C:\Program Files\OpenVPN\easy-rsa\build-dh
Loading ‘screen’ into random state – done
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
……………..+…………………………………….
……………….+………….+……………..+………
………………………………..


3.ใช้ Windows Explorer Copy ไฟล์ “ca.crt, ca.key, server.crt, server.csr server.key และ dh1024.pem”
จาก “C:\Program Files\OpenVPN\easy-rsa\keys” ไปที่ Folder C:\Program Files\OpenVPN\config\
4.สร้าง config ไฟล์ชื่อ server.ovpn เก็บไว้ที่ C:\Program Files\OpenVPN\config\ ใช้ Notepad สร้างก็ได้ครับ
รายละเอียดตามนี้ครับ การใส่หมายเหตุ ใช้ “;”หรือ”#”

(server.ovpn)
####################
# OpenVPN Server config file
####################
lport 1194
proto tcp-server
dev tap
tls-server
ca ca.crt
cert server.crt #สังเกตุว่าจะเป็นเดียวกันกับ file ที่ได้จากการ build-server ครับ ถ้าใช้ชื่ออื่นก็เปลียนให้ตรงกันครับ
key server.key #สังเกตุว่าจะเป็นเดียวกันกับ file ที่ได้จากการ build-server ครับ ถ้าใช้ชื่ออื่นก็เปลียนให้ตรงกันครับ
dh dh1024.pem
mode server

ifconfig 192.168.25.1 255.255.255.0 #กำหนด IP / Subnet ของเครื่องVPN Server
ifconfig-noexec
ifconfig-pool 192.168.25.121 192.168.25.151 255.255.255.0

#;push “dhcp-option DOMAIN ccm.com” # push the DNS domain suffix
push “dhcp-option DNS 192.168.25.1” # push DNS entries to openvpn client
#;push “dhcp-option WINS 192.168.25.1” # push DNS entries to openvpn client
push “route 192.168.25.1 255.255.255.0

;duplicate-cn #use this for testing only
client-to-client
ping 10
ping-restart 120
push “ping 10”
push “ping-restart 60”
verb 4


การสร้าง Key ต่างๆของฝั่ง Client
การสร้าง Key ของ Client ให้ทำที่เครื่อง Server ครับ เพราะเราจำเป็นต้องใช้ data ต่างๆที่ถูกสร้างขึ้นไว้ก่อนแล้ว
เช่น ca ต่างๆและ dh ครับ และเมื่อสร้างทุกอย่างครบแล้วถึงจะ copy ไปเครื่อง client
1.เปิด Command Prompt  Start,Run “cmd”
2.ใช้คำสั่ง “cd” ไปที่ “ C:\Program Files\OpenVPN\easy-rsa\”

– พิมพ์ init-config
– พิมพ์ vars
– พิมพ์ build-key Client1 (จะได้ไฟล์ Client1.crt, Client1.csr, Client1.key)


ตัวอย่างแบบง่ายๆ (build-key Client1)

Country Name (2 letter code) [US]: Enter ผ่านครับ
State or Province Name (full name) [CA]: Enter ผ่านครับ
Locality Name (eg, city) [SanFrancisco]: Enter ผ่านครับ
Organization Name (eg, company) [FortFunston]: Enter ผ่านครับ
Organizational Unit Name (eg, section) []: Enter ผ่านครับ
Common Name (eg, your name or your server’s hostname) []:Client1(พิมพ์)
A challenge password []: Enter ผ่านครับ
An optional company name []: Enter ผ่านครับ
Sign the certificate? [y/n]:y (พิมพ์ y)
1 out of 1 certificate requests certified, commit? [y/n]:y (พิมพ์ y)


ถ้าคุณต้องการสร้าง key ของเครื่อง Client อื่นๆก็ให้ทำซ้ำแบบเดิมจนครบทุกๆเครื่องครับ แต่ต้องไม่ให้ชื่อ( hostname )
ซ้ำกันนะครับเช่น client1,client2,client3,…,client n หรือ pc1,pc2pc3,…,pc n

3. สร้าง config ไฟล์ชื่อ client.ovpn ใช้ Notepad สร้างก็ได้ครับ รายละเอียดตามนี้ครับ การใส่หมายเหตุ ใช้ “;”หรือ”#”

(client.ovpn)
####################
# OpenVPN Client config file
####################
remote vpnserver.dyndns.biz #ให้ใส่ DNS หรือ IP ของ VPN Server ที่เราจะเชื่อมต่อ
lport 1194
proto tcp-client
dev tap
tls-client
ca ca.crt
cert Client1.crt #สังเกตุว่าจะเป็นเดียวกันกับ file ที่ได้จากการ build-key client ครับ ถ้าใช้ชื่ออื่นก็เปลียนให้ตรงกันครับ
key Client1.key #สังเกตุว่าจะเป็นเดียวกันกับ file ที่ได้จากการ build-key client ครับ ถ้าใช้ชื่ออื่นก็เปลียนให้ตรงกันครับ
dh dh1024.pem
tun-mtu 1492
tun-mtu-extra 32
mssfix 1450
pull
ifconfig-noexec
ping 10
ping-restart 120
push “ping 10”
push “ping-restart 60”
verb 4

การ Start VPN Server
1.แบบ Manual การ start แบบนี้จะต้องทำทุกๆครั้งที่มีการเปิดเครื่อง Server ใหม่
ให้ไปที่ Control Panel และก็เปิด Administrative Tools ขึ้นมาแล้วก็เปิด Services ขึ้นมา

ลดขนาด: 93% จากขนาดเดิม [ 684 x 375 ] – คลิกเพื่อดูภาพขยาย

แล้ว ก็เปิด Services ขึ้นมาแล้วให้หา OpenVPN Service แล้วก็ Click Start the Service ตรงด้านซ้ายมือเพื่อที่จะทำการ Start Service OpenVPN

ลดขนาด: 89% จากขนาดเดิม [ 714 x 362 ] – คลิกเพื่อดูภาพขยาย

ถ้าไม่มีปัญหาอะไรจะขึ้นมาว่า Stop กับ Restart เอาไว้ ปิด Service กับ Restart Service

ลดขนาด: 79% จากขนาดเดิม [ 804 x 335 ] – คลิกเพื่อดูภาพขยาย

2.แบบ Auto แบบ นี้เมื่อทำการเปิดเครื่อง Server ตัว OpenVPN Service จะทำการ Start Service เองโดยที่เราไม่ต้องไปกดให้มัน Start ให้ไปที่ Control Panel และก็เปิด Administrative Tools ขึ้นมาแล้วก็เปิด Services ขึ้นมา เหมือนแบบที่ 1 แล้วให้ 2click ที่ OpenVPN Service แล้วเปลี่ยน ตรง Startup Type เป็น Automatic แล้วกด OK ก็เสร็จแล้วครับ

หมายเหตุ
คุณยังสามารถสั่ง Start/Stop Servervice ได้จาก คำสั่งจาก Command prompt (net)
หรือจะสร้างเป็น Batch File ก็ได้ครับ

net start openvpnservice
net stop openvpnservice

การ Config IP ให้กับตัว VPN Server
โดยปกติแล้วหลังจาก Start Service ของ OpenVPN ในครั้งแรกแล้วเราต้องทำการกำหนดค่า IP ให้กับตัว
VPN Adepter (TAP-Win32 Adapter) ให้ไปที Start,Settings,Network Connections

ให้เปิดตัว Local Area Connection 1 (TAP-Win32 Adapter) ขึ้นมา แล้วclick ปุ่ม Properties
แล้วเลือก Internet Potocol (TCP/IP) แล้ว click ปุ่ม Properties ให้กำหนดค่า IP ให้ตรงกับที่กำหนดไว้ใน
ไฟล์ server.ovpn ในตัวอย่างนี้ Gateway / DNS. ของผมเป็น 192.168.1.1

รูป Status ก่อน และหลัง ที่เรากำหนดค่า IP ให้ VPN Adapter อยู่ที่ TaskBar ด้านขวาของ Windows

—>

การติดตั้ง และใช้งาน OpenVPN ที่เครื่อง Client
1. ให้ทำการ Install OpenVPN ลงในเครื่อง Client (ทำเหมือนเครื่อง Server)
2. ให้นำไฟล์ที่สร้างขึ้นมา (ca.crt,ca.key,Client1.crt,Client1.csr,Client1.key,dh1024.pem และ client.ovpn ) เอาไปไว้ที่เครื่อง Client1 ที่ C:\Program Files\OpenVPN\config\ ถ้าไม่มี folder config ให้สร้างขึ้นมาครับ
3. Run ตัว OpenVPN GUI ที่อยู่บน Desktop

4. ทำการเชื่อมต่อVPN Server โดย R.click ที่ icon สีแดง ที่ด้านล่างขวาของ Task Bar แล้วเลือก Connect

5. จะขึ้นห้านจอแบบนี้ขึ้นมาครับ ให้รอสักพักครับ

6. ถ้าไม่มี Error อะไร icon VPN ที่ TaskBar จะเป็นสีเขียวครับ

7.ให้คุณ config IP ของเครื่อง Client เป็น 192.168.25.121 Subnet 255.255.255.0
วีธีเหมือนที่ทำกับ Server ครับ เมื่อ config IP เสร็จแล้ว icon ของ
Local Area Connection 1 จะเป็นรูปแบบนี้ครับ

8.เสร็จแล้วทำการทดสอบโดยการ ping ไปที่เครื่อง VPN Server ให้ click start,Run แล้ว
พิมพ์ “ping 192.168.25.1 –t” กด OK ถ้าขึ้น Reply แบบนี้ แปลว่าเราสามารถเชื่อมต่อเข้ากับ VPN Serverได้ครับ

Reply from 192.168.25.1: bytes=32 time=125ms TTL=254
Reply from 192.168.25.1: bytes=32 time=150ms TTL=254

9.เมื่อ เสร็จแล้วเครื่อง Client ก็จะสามารถต้องเข้ากับ VPN Server ได้ไม่ว่าอยู่ที่ไหนขอให้ ต่อInternet ได้ ก็สามารถทำงานได้เหมือนอยู่บน Lan วงเดียวกันเลย

เอามาจาก http://www.thaikore.com/forum/index.php?showtopic=27189



ใส่ความเห็น

et cetera