ตัวอย่างการติดตั้งใช้งาน OpenVPN แบบ Host-to-Net บน IPCop

โดย อดิศร  ขาวสังข์
เขียนเมื่อ 02/10/2006
ทดลองบน IPCop 1.4.11      
อ้างอิง : http://thinkhole.org/wp/2006/03/28/ipcop-openvpn-howto/ , http://www.zerina.de/?q=documentation/howto-roadwarrior  


บทนำ
การติดตั้ง OpenVPN บน IPCop จะมีสองแบบคือ

  1. Host-to-Net Virtual Private Network (RoadWarrior)
  2. Net-to-Net Virtual Private Network

ซึ่งในที่นี้เราจะใช้โปรแกรม ZERINA OpenVPN addon ซึ่งเป็น addon สำหรับ IPCop และในส่วนของ VPN Client ใช้ OpenVPN GUI for Windows

การติดตั้งและคอนฟิก OpenVPN บน IPCop แบบ Host-to-Net Virtual Private Network (RoadWarrior)
ในการทดลองครั้งนี้  ผู้เขียนได้เชื่อมต่อเครือข่ายดังรูปที่ 1 ซึ่งจุดประสงค์ก็เพื่อที่จะให้เครื่องที่อยู่ที่ ณ เครือข่ายอินเตอร์เน็ตสามารถเชื่อมต่อเข้ามายังเครือข่ายภายใน (172.24.51.0/24) ได้



ขั้นตอนการเซ็ตเป็นดังนี้

  1. ติดตั้ง IPCop ซึ่งในที่นี้ผู้เขียนใช้ IPCop 1.4.11 (ใช้เวอร์ชันเก่ากว่านี้ก็ได้) และผู้เขียนทดลองใช้แค่ 2 Interfaces คือ Red กับ Green เท่านั้น ในการใช้งานจริงอาจจะใช้ Interface มากว่านี้ และจะไม่ขอกล่าววิธีการติดตั้งในที่นี้

  2. ทำการ  Enable ssh access บนเครื่อง IPCop ด้วยการคอนฟิกผ่านเว็บ ซึ่งในที่นี้เครื่องที่ใช้ในการคอนฟิกของผู้เขียนวางอยู่ในเครือข่าย 172.24.51.0/24 ก็ให้เรียกใช้งานไปที่ http://172.24.51.253:81  จากนั้นจะถูก redirect ไปที่ https://172.24.51.253:445/ โดยให้เืืลือกเมนู System --> SSH Access และให้เลือก Checkbox ดังรูปที่ 2 แล้วคลิ๊กปุ่ม Save



  3. ทำการติดตั้งโปรแกรม ZERINA OpenVPN addon ซึ่งเป็น OpenVPN for IPCop แบบ GUI โดยมีขั้นตอนดังนี้
    1. ดาวน์โหลดโปรแกรม ZERINA OpenVPN addon (ZERINA-0.9.4d-Installer.tar.tar) ได้ที่ http://www.zerina.de/  โดยให้วางไว้ที่เครื่อง PC ที่ใช้สำหรับการคอนฟิกก่อน

    2. ดาวน์โหลดโปรแกรม WinSCP (หรือโปรแกรม SCP ของค่ายอื่น) ซึ่ง SCP เป็น Secure Copy ที่ใช้ SSH Protocol ในที่นี้ใช้สำหรับถ่ายโอนไฟล์จากเครื่องที่ใช้สำหรับการคอนฟิก (Window) ไปยังเครื่อง IPCop โดยดาวน์โหลดได้ที่ http://winscp.net/

    3. ติดตั้ง WinSCP และอัพโหลดไฟล์ ZERINA-0.9.4d-Installer.tar.tar จากเครื่อง PC ไปยังเครื่อง IPCop โดยการติดต่อไปยัง IPCop ให้ใช้พอร์ต 222 ซึ่งในที่นี้ผู้เขียนได้สร้างไดเร็คทอรี่บน IPCop ชื่อว่า ZERINA ดังรูป





    4. เข้าไปที่เครื่อง IPCop อาจจะ Remote ผ่าน ssh โดยใ้ช้พอร์ต 222 ซึ่งในที่นี้ผู้เขียนใช้โปรแกรม PuTTY และทำการแตกไฟล์ ZERINA-0.9.4d-Installer.tar.tar (uppack) ด้วยคำสั่ง :
      tar -xzvf ZERINA-0.9.4d-Installer.tar.tar

      และจะได้ไฟล์ออกมาดังรูป



    5. ติดตั้งโปรแกรมด้วยคำสั่ง
      ./install

  4. ทำการสร้าง Configuration file ซึ่งเป็นขั้นตอนที่สำคัญ ห้ามข้ามขั้นตอนนี้เด็ดขาด วิธีการคือ ที่หน้าเว็บเพจของ IPCop ให้เลือกเมนู VPNs --> OpenVPN ที่ส่วนของ Global settings ให้คลิ๊กที่ปุ่ม Advanced Server options และให้คลิ๊กปุ่ม Save Advanced options โดยไม่ต้องเปลี่ยนแปลงค่าใด ๆ





  5. ทำการคอนฟิกค่าของ VPN ตามขั้นตอนต่อไปนี้
    1. ส่วนของ Global settings ให้ใส่ค่าข้อมูลดังรูป และคลิ๊กปุ่ม Save โดย :
      - Local VPN Hostname/IP ในที่นี้ผู้เขียนเลือกเป็น IP ซึ่งเป็น Public IP  ของ IPCop นั่นเอง
      - OpenVPN Subnet : OpenVPN ต้องการ extra virtual subnet ซึ่งต้องเป็น subnet ที่ต้องไม่ตรงกับที่ใช้บน IPCop หรือที่ใช้กับ Client side ในที่นี้ผู้เขียนเลือกเป็น 192.168.10.0/24 โดย IP ในชุดนี้จะถูกจ่ายให้กับเครื่องที่เป็น Remote user (VPN Client) เมื่อมีการ connect เข้ามา ไม่ต้องเป็นห่วงนะครับ ถึงแม้เครื่อง Remote จะได้รับ IP ที่ไม่เป็นชุดเดียวกันกับ Green Interface แต่มันก็สามารถที่จะคุยกับ Green Interface ได้



    2. ในส่วนของ Certificate Authorities ดังรูปข้างล่างให้คลิ๊กปุ่ม Generate Root/Host Certificates



      แล้วให้ทำการป้อนข้อมูลคล้ายกับรูปล่า่งนี้  โดยในส่วนของ PKCS12 ซึ่งอยู่ส่วนล่างของรูป ไม่ต้องป้อน  ซึ่งจะใช้ในกรณีที่มี Certificate อยู่แล้ว   แล้วให้คลิ๊กปุ่ม Generate Root/Host Certificates



      จากนั้นจะได้ผลดังรูปล่างนี้



    3. ต่อไปเป็นส่วนของ Client Certificate ให้ทำการคลิ๊กที่ปุ่ม Add ของส่วน Client status and control ดังรูป



      จากนั้นให้เลือก Host-to-Net ดังรูป แล้วคลิ๊กปุ่ม Add



      จากนั้นให้ป้อนข้อมูลคล้ายกับรูปข้างล่าง  แล้วคลิ๊กปุ่ม Save




      จากนั้นจะได้ผลดังรูปข้างล่าง



    4. จากรูปข้างบนให้คลิ๊กที่รูป (Download Client Package (zip)) เพื่อดาวน์โหลดไปไว้ที่เครื่อง VPN Client เพื่อจะได้นำไปใส่ไว้ในตำแหน่ง config ของโปรแกรม VPN Client ต่อไป

    5. Start OpenVPN ด้วยการคลิ๊กปุ่ม Start OpenVPN Server แล้วสถานะของ Current OpenVPN Server Status จะ RUNNING ดังรูํป




  6. ติดตั้งโปรแกรม OpenVPN GUI for Windows (VPN Client)  ตามขั้นตอนดังนี้
    1. ดาวน์โหลดโปรแกรมจาก http://openvpn.se/

    2. ติดตั้งโปรแกรมก็ไม่ยากครับแค่ ทำตามคำแนะนำจนจบ และเมื่อติดตั้งเสร็จแ้ล้วจะมีรูป icon แบบนี้ --> อยู่ที่ Taskbar ด้านล่างขวาของหน้าจอ


  7. ให้ทำการแตกไฟล์ (unzip) client package ที่ดาวน์โหลดมาในขั้นตอนก่อนนี้  ไว้ในตำแหน่ง C:\Program Files\OpenVPN\config

  8. ทำการเืชื่อมต่อ VPN Client ไปยัง VPN Server ด้วยการคลิ๊กขวาที่ไอคอน แล้วเลือกเมนู Connect ดังรูป



  9. ให้ทำการป้อนรหัสผ่านตามที่ได้กำหนดไว้ในขั้นตอนก่อนหน้านี้ (PKCS12 File password) และเมื่อ connect ได้แล้ว icon ของ VPN Client ที่ taskbar จะเป็นดังรูป



  10. เมื่อใช้คำสั่ง ipconfig จะได้ผลดังรูป  ซึ่งในที่นี้ผู้เขียนทดลองใช้งานเครื่อง VPN  Client ผ่านบริการ ADSL เชื่อมต่อเข้าไปยัง VPN Server โดย IP ที่ได้จาก ADSL Modem เป็น 192.168.4.33 และเมื่อเชื่อมต่อ VPN ได้แล้วจะได้ IP เพิ่มมาอีก IP เป็น 192.168.10.6/255.255.255.252



  11. จากรูปแรกของบทความนี้  เรามีจุดประสงค์เพื่อที่จะให้เครื่องที่อยู่ ณ เครือข่ายอินเตอร์เน็ตสามารถเชื่อมต่อเข้าไปยังเครือข่ายภายในขององค์กร ที่มี IP เป็น 172.24.51.0/24 ฉะนั้นตอนนี้เราลองมาทดสอบดูว่าเราสามารถ ping เ้้ข้าไปยังเครือข่ายภายในดังกล่าว ได้หรือไม่ อย่าลืมนะครับว่าเครื่องที่เราจะติดต่อเข้าไปได้ต้องเป็นเครื่องที่ชี้ Gateway มาที่เครื่อง VPN Server นะครับ  แล้วก็ได้ผลดังรูปครับ


จบครับ