Showing posts with label OpenVPN. Show all posts
Showing posts with label OpenVPN. Show all posts

Monday, March 16, 2009

Openvpn Got the same ip address on PC Client

OpenVPN ได้หมายเลขไอพีกลุ่มเดียวกับ PC client

ปัญหา :

แต่ก่อนใช้คอมพิวเตอร์ต่ออินเทอร์เน็ตโดยใช้ Mobile Internet และต่อ OpenVPN ไปที่บริษัท ก็มองเห็น server และใช้ข้อมูลในบริษัทได้ เป็นปกติ ต่อมาเปลี่ยนไปเป็นอินเทอร์เน็ตแบบ ADSL โดยต่อคอมพิวเตอร์เข้ากับตัว ADSL Modem และได้รับแจกหมายเลขไอพีมาจากตัว ADSL modem นั้น เข้าอินเทอร์เน็ตได้ปกติ แต่เมื่อคอนเนค OpenVPN ไปที่บริษัทได้แล้ว กลับมองไม่เห็น server ของบริษัท มีรายละเอียดเกี่ยวกับหมายเลขไอพี ดังนี้
--- Samba File server ที่่บริษัทหมายเลข 192.168.1.9
--- EWF ที่เป็น OpenVPN Server มีหมายเลขไอพี ของ Green คือ 192.168.1.5
--- OpenVPN Client ที่เครื่่อง XP นี้หลัง connect ได้แล้วจะได้รับหมายเลข 192.168.1.252
--- ADSL Modem มีหมายเลขไอพี 192.168.1.1

นี่เป็นตัวอย่าง ของลูกค้ารายหนึ่งที่ใช้ระบบ VPN ทำงานจากที่่บ้าน เมื่อเปลี่ยนมาใช้ ADSL กลับมองไม่เห็น server

ปัญหานี้แก้ได้โดยให้ config หมายเลขไอพีของ adsl modem ใหม่ให้เป็นเน็ตวงอื่นอย่าให้เหมือนกับเน็ตของบริษัทในที่นี้ต้องเปลี่ยน ADSL Modem ให้เป็น net กลุ่ม 192.168.0.0 เป็นต้น เพื่อให้ตารางเราท์ของ windows ทำงานได้อย่างถูกต้อง

Link เพิ่มเติม :
OpenVPN - creating a routed VPN
OpenVPN "Routing" –versus– "Bridging"

---

Saturday, March 7, 2009

OpenVPN ต่อได้ 1-2 นาทีก็หลุด

OpenVPN Client ต่อเข้า Endian firewall ได้ 1-2 นาทีก็หลุด ตัวไอคอนเป็นสีเหลือง แถมมี error log แบบนี้

Sat Mar 07 18:26:00 2009 RESOLVE: Cannot resolve host address: it3mac.gotdns.com: [NO_DATA] The requested name is valid but does not have an IP address.
Sat Mar 07 18:26:12 2009 RESOLVE: Cannot resolve host address: it3xxx.gotdns.com: [NO_DATA] The requested name is valid but does not have an IP address.


ดูๆแล้วเหมือนกับว่าติดต่อเครื่อง OpenVPN Server ไม่ได้ แต่ทำไม connect ครั้งแรกกลับได้ แล้วอยู่ไม่ถึงหนึ่งนาทีก็หลุด
เราเห็นปัญหานี้เพราะต้องเซ็ตระบบให้ลูกค้ารายหนึ่งที่ต่างจังหวัด และ Endian Server ที่ตั้งไว้นั้นก็รองรับการเชื่อมโยงจากสาขาด้วย จึงได้สอบถามไปที่ลูกค้าว่าที่สาขามีปัญหา VPN หลุดบ่อยหรือเปล่า คำตอบคือปกติ ก็ได้พิเคราะห์อยู่พอสมควร และก็ถึงบางอ้อ
สำหรับปัญหานี้ เราใช้ username สำหรับ login เป็นชื่อที่เขา connect ได้อยู่แล้ว ซึ่งชื่อที่เข้าไปภายหลัง จะได้รับหมายเลขไอพีเหมือนกัน ฉะนั้นมันจึงหลุดและพยายามต่อเข้าไปใหม่ ดูเหมือนว่าจะหา server ไม่เจอ นั้นเอง...

Wednesday, March 4, 2009

OpenVPN Connection reset by peer

วันหนึ่งมีลูกค้าองค์กรแจ้งเข้ามาว่าเครื่อง client ที่เป็น windows XP เข้าเมล์ที่สำนักงานใหญ่ผ่าน OpenVPN ไม่ได้
ไอคอน vpn ที่ taskbar โชว์เป็นสีเหลือง ก็ชักใจไม่ดีเหมือนกันแฮะ เพราะ endian firewall เพิ่งติดตั้งได้ไม่ถึงเดือนเอง
บางครั้งการที่จะหาคำตอบให้ลูกค้าแบบรวบรัด และใช้ได้เลยก็เป็นเรื่องยากเหมือนกัน เพราะถ้าให้คำตอบที่ผิด โดยที่ยังไม่รู้สาเหตุที่แท้จริง และยังไม่เห็น error ต่าง ๆ แทนที่จะแก้กันได้ตรงจุด กลับแก้ให้เสียหนักเข้าไปอีก ..ก็แจ้งกลับไปว่า เข้า office แล้วจะดูปัญหานี้ให้อย่างเร่งด่วนครับ

ทดสอบใช้ OpenVPN จาก office ของบริษัทไปที่ server ของลูกค้ามันโชว์อย่างนี้

Mon Jan 08 13:53:29 2007 UDPv4 link local (bound): [undef]:1194
Mon Jan 08 13:53:29 2007 UDPv4 link remote: xxx.xxx.xxx.xxx:1194
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Mon Jan 08 13:53:52 2007 SIGTERM[hard,] received, process exiting


เริ่มวิเคราะห์ปัญหา
1. configuration ต่าง ๆ ไม่ถูกต้อง เป็นไปไม่ได้แน่ เพราะใช้ได้อยู่ แล้วอยู่กลับใช้ไม่ได้ การ config จึงตกไป
2. endian firewall ที่ไซต์ลูกค้าดับหรือมีปัญหาหรือไม่ คำตอบคือฝั่งนั้นยังใช้ internet ได้เหมือนเดิมทรั้ง
ส่งและรับเมล์ ทั้งเครื่องลูกก็มีหมายเลขไอพีกันถ้วนหน้า (ยังไงก็น่าคิดอยู่ดีว่าจะเป็นที่ server ไหม)
3. โปรเซสบางตัวที่ server โดยเฉพาะ process OpenVPN จะตายหรือไม่ ตัว server ประเด็นที่โปรเซสใดโปรเซสหนึ่ง
จะตายตัวเดียวก็เป็นไปได้ แต่ไอ้ปัญหา reset by peer คือน่าจะยังติดต่อ server ไม่ได้ด้วยซ้ำไป
4. ที่ไซต์ของลูกค้าใช้ internet เป็น adsl 1.5 ของ True และเป็น dynamic ไม่ได้ fixed ซึ่ง adsl อาจจะหลุดแล้วตัว router ได้หมายเลขไอพีใหม่ โดยที่ตัว endian ยังไม่ได้ update แน่ๆ เลย เออน่าคิด งั้นทดสอบกันเลยดีกว่า

ทดสอบ
4.1 ping it3xxx.gotdns.com
ได้หมายเลขไอพีกลับมาก และมี replay from ด้วย ( คิดว่าไง ปกติเราจะ set ตัว endian ไม่ได้รับคำสั่ง ping จากภายนอกซึ่งจะต้องไม่มี teplay from แต่ควรจะมีหมายเลข ip เข้าเค้าหล่ะ)
4.2 โทรไปบอก admin ของลูกค้าให้เข้า endian firewall โดยด่วนและเช็คตามนี้
* หมายเลข IP คืออะไร ?
คำตอบคือ ไม่ใช่หมายเลข IP เดียวกับที่เราได้จากคำสั่ง ping
OK ปัญหานี้ได้คำตอบแล้ว router ADSL ได้หมายเลข IP ใหม่ตัว Endian ยังไม่ได้ Update DynDNS จึงทำให้หมายเลข IP ไม่ตรงกัน มีทางแก้แล้วซินะ.... ด้วยการบังคับให้ DynDNS ที่ Endian firewalll update IP ไปที่
Service -> Dynsns -> Force Updated
เท่านี้ปัญหานี้ก็หมดไป ...



Link เพิ่มเติม :
OpenVPN - creating a routed VPN
OpenVPN "Routing" –versus– "Bridging"

Sunday, February 8, 2009

OpenVPN บน Endian Firewall บทสรุปเพิ่มเติม

หลังจากที่ได้ set OpenVPN ด้วย Endian ที่ site แห่งหนึ่งตามบันทึกเรื่อง setup OpenVPN กับ Endian Firewall ง่ายอย่างที่เขาว่าจริงๆ ก็มีโอกาสได้ set อีก 2 site ซึ่งมีสภาพแวดล้อมต่างกันออกไป จึงมีข้อสังเกตุเพิ่มเติม ดังนี้

1. กรณีทำ endian ไว้ด้านหลัง XyZel ADSL แบบ PPoE แลนการ์ดฝั่ง RED ของ Endian ชี้ Gateway ไปที่ IP ของ XyZEL เช่น 192.168.2.1 ด้านหน้าของ XyZEL ได้หมายเลข Dynamic IP จาก ISP




1.1 set DyDNS ที่ตัว XyZEL
1.2 set NAT หรือ Port Forward ที่ตัว XyZEL ให้ชี้ไปที่ หมายเลข IP ของ Red Interface ของ Endian
โดยระบุ port เป็น 1194



1.3 Firewall ที่ Endian ยังคงค่าปกติไม่ต้องเปลี่ยนแปลงแต่อย่างใด



1.4 กรณี OpenGUI Client อยู่หลัง Endian firewall ตัว Endian ต้องเปิด firewall port 1194 ด้วย
เครื่อง client จึงจะสามารถต่อ OpenVPN ได้

Wednesday, January 28, 2009

setup OpenVPN กับ Endian Firewall ง่ายอย่างที่เขาว่าจริงๆ

จากที่ได้ลองผิดลองถูกอยู่ระยะหนึ่ง ก็พอจะทำให้เราเข้าใจการ set OpenVPN บน endian firewall ขึ้นมาบ้าง วันนี้จึงขอบันทึกไว้เพื่ออ้างอิงในภายหลัง

รูปแบบของเน็ตเวิร์กและการเชื่อมต่อ

Endian เป็น gateway มี ZyXel เป็น ADSL เซตแบบ bridge mode เพื่อให้ตัว endian ทำหน้าที่คอนโทรล network ทุกอย่าง ZyXel ทำหน้าที่เป็น ADSL Modem หมุนเข้า internet เท่านั้น และได้เป็น dynamic IP address จาก True มา หมายเลข IP จะเปลี่ยนแปลงทุกครั้งที่่ต่อเข้าใหม่ ซึ่งใช้ dyndns เป็น domain เน็ตเวิร์กภายในหลัง endian ต่อผ่าน GREEN interface มี server samba อยู่ หมายเลข IP คือ 192.168.0.22 admin อยู่ที่บ้านและต้องการ manage เซิร์ฟเวอร์เครื่องนี้ผ่าน notebook ซึ่งใช้ vista โดยจะใช้ vpn เป็นท่อเชื่อมต่อเข้ามา ซึ่งชาวบ้านเขาเรียกการเชื่อมต่อแบบนี้ว่า Host-to-Net Virtual Private Network (Roadwarrior)


ขั้นตอนการ setup ประกอบด้วย

1. set ค่า OpenVPN server ที่ Endian Firewall ให้เรียร้อยทั้งส่วน server และ add user
2. set ค่า VPN client ที่ฝั่ง vista โดยใช้ OpenVPN GUI


1.1 set OpenVPN ที่ฝั่ง Endian โดยคลิกหัวข้อ VPN
** OpenVPNserver
*** Server configuration



Global settings

OpenVPN server enabled: ต้องเลือกก่อนเลย เพื่อรัน OpenVPN Server
Dymanic IP pool start address: 192.168.0.10
Dynamic IP pool end address: 192.168.0.99


การใส่ Dymanic IP pool นั้นต้องใส่หมายเลข IP ของ GREEN interface และกำหนดช่วง IP ให้เหมาะสม เนื่องจากว่า openvpn server จะสร้างแลนชื่อ tap ซึ่งเป็น bridge กับ green interface ฉะนั้นจึงเป็นหมายเลขเดียวกัน โดยปกติหากเราใช้ endian ให้แจกหมายเลข IP ด้วยตัว green จะเป็นตัวแจกหมายเลข IP ให้กับระบบ ฉะนั้นควรจัดกลุ่มหมายเลขให้เหมาะสม ตามแบบของเราคือ ให้ green แจกตั้งแต่ 100 - 250 ส่วนต่ำกว่าร้อยลงมากำหนดให้ VPN เป็นต้น


จากนั้น คลิกปุ่ม Save and restart ซึ่งจะรัน openvpn server และสร้างแลนชื่อ tap ขึ้นมารองรับ

OpenVPN ควรจะรันได้แล้วให้ตรวจสอบสถานะดู

1.2 สร้าง Accounts ในการเชื่อมต่อแบบ VPN

- ต่อเลยที่ Accouts
Username : it3ps
Password: xxxxxxxx
Verify password:

จากนั้นคลิก Save

แบบธรรมดาที่สุด set เพียงเท่านี้ก่อน






3. อย่าลืม set Endian ให้เป็น Dyndns ด้วย
-> Service -> Dynamic DNS set ตามค่าที่เราลงทะเบียนไว้กับ dyndns นั่นแหละ
ตัวนี้สำคัญที่เราจะเอาไปใส่เป็นค่าของ remote สำหรับ VPN client

4. Download CA certificate จากหน้า setup VPN ของ endian มาเก็บไว้ก่อน เพื่อจะนำไปติดตั้งต่อไปที่เครื่อง client ซึ่งจะได้ไฟล์นามสกุล .cer

ขั้นตอน set ที่ฝั่ง client windows vista ด้วย OpenVPN GUI


1. ดาวน์โหลดไฟล์ จาก http://openvpn.se/download.html

Installation Package (Both 32-bit and 64-bit TAP driver included):
openvpn-2.0.9-gui-1.0.3-install.exe

ได้มาแล้วก็ติดตั้งในแบบฉบับของ windows คือ next ไฟล์จะถูกเก็บไว้ที่
c:\Program File\Openvpn

2. สร้างไฟล์ต่าง ๆ ประกอบด้วย certificated และ client.opvn
- ให้ copy ไฟล์ .cer ที่เราดาวน์โหลดมาจาก endian ไปเก็บไว้ที่ c:\Program file\Openvpn\config
- สร้างไฟล์ client.opvn โดย copy มาจาก sample-config และปรับปรุงแก้ไข option ต่าง ๆ ดังนี้
(ผมใช้วิธีเขียนใหม่ทั้งไฟล์โดยใช้ notepad )

client
dev tap
proto udp
remote it3ps.gotdns.com
resolv-retry infinite
nobind
persist-key
persist-tun
ca efwps.cer
auth-user-pass
comp-lzo

ที่สำคัญมากคือ remote ใส่ชื่อ dyndns ที่เรา set ให้กับ endian ของเรา
ca ให้ระบุชื่อไฟล์ .cer ที่ดาวน์โหลดมากจาก endian

3. ให้ดับเบิลคลิกเปิดไฟล์ OpenVPN GUI จะขึ้นไอคอนที่ taskbar คลิกขวาที่ไอคอนเพื่อเปิด popup เมนูขึ้นมา



ให้คลิก Connect จะปรากฏ หน้าต่างสำหรับกรอก username ให้ใส่ตามที่ set ไว้ในโหมด Account ที่ endian

เพียงเท่านี้ก็สามารถเชื่อมต่อแบบ VPN ได้แล้ว


เรื่องราวเพิ่มเติม

OpenVPN บน Endian Firewall บทสรุปเพิ่มเติม

Twitter Delicious Facebook Digg Stumbleupon Favorites More