การเลือกโปรแกรม VPN - Type สำหรับ Mathnet

Monday, November 28, 2011

การเลือกโปรแกรม VPN - Type สำหรับ Mathnet

เจมส์ F. คาร์เตอร์ , UCLA - Mathnet, 2003/09/26

ความต้องการ

  • ผู้ใช้สามารถเชื่อมต่อจากสถานที่นอกมหาวิทยาลัยโดยพลการไปยังสถานี VPN (เครื่อง) ใน DMZ ของเรา ปัจจุบัน Harlech เป็นเจ้าภาพป้อมปราการที่กำหนด เราไม่ต้องการให้ผู้ใช้เปลือก acounts เกี่ยวกับ Harlech (เชื่อมต่อโดยตรงไปยังเครื่องภายในจะถูกโดยเฉพาะ SSH.)
  • การเชื่อมต่อ VPN ควรจะได้รับอนุญาตเท่านั้นสำหรับคนที่"มีอำนาจ"ซึ่งโดยทั่วไปหมายถึงทุกคนที่มี loginid Mathnet ที่ถูกต้อง
  • เครื่องภายในควรให้บริการแก่ผู้ใช้ VPN เกินกว่าสิ่งที่พวกเขาให้ไปที่อินเทอร์เน็ตทั่วโลก (พวกเขากำลังถูกปิดกั้นโดยสิ้นเชิง) แต่อาจจะน้อยกว่าพวกเขาให้ไปยังเครื่องภายในที่เกิดขึ้นจริง นี้เป็นส่วนใหญ่การทำงานของกฎไฟร์วอลล์ภายใน
  • ผู้ใช้ VPN ควรจะสามารถไปยังเส้นทางไปยังเว็บไซต์ที่นอกมหาวิทยาลัยและได้รับการ NAT (แปลที่อยู่เครือข่าย) ที่สถานี VPN เพื่อการเชื่อมต่อจะปรากฏขึ้นมาจากเครื่องที่ UCLA - Mathnet นี้เป็นสำหรับการเข้าถึงเว็บไปที่เนื้อหาได้รับใบอนุญาตการป้องกันโดยการตรวจสอบตามโฮสต์ (ตัวอย่าง :. AMS วารสารออนไลน์) อีกครั้งนี้เป็นหน้าที่ของกฎไฟร์วอลล์และเส้นทาง
  • การเชื่อมต่อ VPN ควรจะเข้ารหัส
  • การปกครองที่เราจะไม่ได้ไปกำหนดค่าอุโมงค์เป็นรายบุคคลสำหรับผู้ใช้แต่ละ; มันมีการทำงานบนพื้นฐานทั่วไป
  • มีจะต้องมีลูกค้าสำหรับ Linux, Windows, Mac และควร พวกเขาต้องทำงานผ่าน NAT กล่อง
  • Pre - มอบหมายให้ที่อยู่ IP ที่ไม่เป็นไปได้; ซอฟต์แวร์ที่ต้องให้แน่ใจว่าแต่ละคนมีอุโมงค์ที่อยู่ IP ที่ไม่ซ้ำกันจากระยะไกล เครื่องหลังกล่อง NAT จะถูกกำหนดโดยปกติ 192.168.1.1 หรือ 192.168.1.100, ขึ้นอยู่กับยี่ห้อของกล่อง NAT และเพื่อให้ประชาชน IP ของไคลเอ็นต์มีแนวโน้มที่จะไม่ซ้ำกัน; จึง IP อุโมงค์ที่มีให้มาจากซอฟต์แวร์ VPN ไม่ได้รับเลือกโดยลูกค้า
  • ส่วนใหญ่ผลิตภัณฑ์ VPN มีไว้สำหรับเส้นทางแบบคงที่ระหว่างที่ disjoint subnets, เว็บไซต์ บริษัท เช่นในเมืองต่างๆ สำหรับของเราใช้ IP ที่ระยะไกลจะไม่สามารถคาดเดาได้และอุโมงค์มาและไปแบบสุ่ม -- ที่"Road Warrior"สถานการณ์

ผู้สมัครโปรแกรม VPN

ปัญหาอิสระ / WANvtuncipeOpenVPNPoPToP
โปรโตคอลIPSec (ESP, AH)ของตัวเองของตัวเองTLS + ของตัวเองPPTP (GRE)
การเข้ารหัสลับยอดเยี่ยมอ่อนแอ (3)อ่อนแอ (3)ยอดเยี่ยมดู (7)
การอนุญาตX.509 (4)kludge SSHคีย์แบบคงที่X.509ของ Windows
  (คีย์ Pre - จัดยังทำงานสำหรับโปรแกรมส่วนใหญ่)
เฉพาะกิจผู้ใช้ใช่kludge (1)ไม่มีใช่ (8)ใช่
ทนทานต่อการชนกันของ IPไม่มีkludge (1)ไม่มีใช่ (8)ใช่
สำหรับลูกค้า :L, W, M (2)L, SL, WL, S, W, MXL, S, W (6)
  (L = ลินุกซ์, S = Solaris, W = Windows, M = Mac)
ทำงานผ่าน NATแพทช์ (4)ใช่ใช่ใช่ใช่
เราใช้นานเท่าไหร่?1 ปี0.5 ปีไม่0.1 ปีไม่
ที่ถูกบล็อกโดย BOLทำงานการทำงาน (SSH)prob ที่ถูกบล็อกขอยกเลิกการปิดกั้นอาจจะทำงาน
พร้อมกับ SuSEใช่ใช่ใช่ใช่ (8)ไม่มี
ลิ้งค์ปกติ, 
ซูเปอร์
vtuncipeOpenVPNpoptop
คุณสมบัติที่ดีที่ได้รับความน่าเชื่อถือที่เชื่อถือได้ (มี 1 ผู้ใช้)สุทธิฉวัดเฉวียนหินแข็ง, การติดตั้งง่ายไมโครซอฟท์จะใช้มัน
คุณสมบัติที่ไม่ดียากที่จะตั้งขึ้น โรคอุจจาระร่วงของล็อกไฟล์ต้องใช้สคริปต์ kludge TCP วิกฤต (5) บัญชีเชลล์ในพื้นที่ป้อมปราการไม่มีโหมด Ad - hocไม่มี (8)ไมโครซอฟท์จะใช้มัน
  1. สำหรับ vtun ผู้ใช้แต่ละคนจะต้อง preassigned ที่อยู่ IP สำหรับอุโมงค์ สคริปต์ได้รับการเขียนแบบไดนามิกกำหนดที่อยู่เหล่านี้เมื่อเริ่มต้นการเชื่อม แต่มัน kludge
  2. การดำเนินการใด ๆ IPSec ควรจะสามารถพูดคุยกับอิสระ / WAN และการทดสอบที่ประสบความสำเร็จ interoperation เป็นที่กว้างขวาง ว่ากันว่า Windows XP สามารถทำเช่นนี้ natively เคอร์เนลโมดูลที่จำเป็นและฉันไม่ทราบว่าสามารถใช้ได้สำหรับ Solaris หรือ Mac OS - X หรือไม่ว่าจะทำงานร่วมกับระบบ UNIX ที่ไม่ใช่ของ MAC OS : มีลูกค้า IPsec ในเชิงพาณิชย์สำหรับ Mac OS - X คือ VPN ติดตามโดย Equinux .
  3. Vtun ใช้อัลกอริธึมการเข้ารหัสลับ (ปักเป้า) จากห้องสมุด SSL แต่ไม่ได้ใช้ SSL เต็มเป่าในการเข้ารหัสช่องทาง มีเพิ่งได้รับการอภิปรายในรายการจดหมาย vtun เกี่ยวกับความอ่อนแอในวิธีการที่เวกเตอร์เริ่มต้นที่จะเลือก(ปัญหาที่คล้ายกันนำไปสู่​​การใช้ประโยชน์กับ 802.11b WEP.) กับปัญหาเดิมมีการกล่าวถึงนำไปใช้กับ cipe
  4. การพัฒนาอิสระ / WAN แบ่งออกเป็นสองสาขา :"บริสุทธิ์"อิสระ / WAN (ซึ่งเป้าหมายทางการเมืองที่มีความสำคัญที่จำเป็นต้องใช้โค้ดที่อาจจะมีข้อ จำกัด ในการส่งออกประเทศสหรัฐอเมริกาที่จะหลีกเลี่ยง), และ"Super"อิสระ / WAN ซึ่งมีแพทช์ สำหรับ (ในหมู่สิ่งอื่น ๆ ) การแลกเปลี่ยนคีย์ X.509 และการตรวจสอบและ NAT traversal แพทช์ NAT เป็นปัจจุบันใน SuSE Linux 8.2 แต่โชคร้ายที่มีความขัดแย้งทางด้านเทคนิคในชุมชนเคอร์เนลเพื่อให้ผู้พิพากษา SuSE มันไม่ฉลาดที่จะนำแพทช์ ESP - in - UDP ที่จำเป็นใน kernel หุ้น คุณจะต้อง recompile kernel ด้วยตัวคุณเองถ้าคุณต้องการมัน
  5. เมื่อ Tunneling TCP ใน TCP เช่นเดียวกับการขุดเจาะอุโมงค์ vtun (หรือสิ่งอื่น) มากกว่าการส่งต่อพอร์ต SSH เมื่อโหลดสูงพอที่จะทำให้แพ็กเก็ตที่ตายในการชนกันของทั้งสองชั้น TCP จะลองใหม่อีกครั้งและผลที่ได้จะเป็นเกินหนีหมายถึง ที่เป็นวิกฤตของ TCP . การดูแลเป็นพิเศษเป็นสิ่งจำเป็นเพื่อต่อต้านการนี้ซึ่ง SSH ไม่ได้ออกแบบสำหรับ สันนิษฐานระดับ kernel อุโมงค์ IP - in - IP ที่สามารถทำดีกว่า ดูที่ลิงค์นี้ สำหรับข้อมูลเพิ่มเติม
  6. ในขณะที่เป็น PoPToP สำหรับ UNIX, Windows (95 และต่อมา) รวมถึงลูกค้า PPTP พื้นเมืองที่ PoPToP interoperates HOWTO กล่าวถึงลูกค้า Mac แต่คุณจะต้องซื้อมัน
  7. ดูที่ลิงค์นี้ เพื่อวิพากษ์วิจารณ์การรักษาความปลอดภัยในการดำเนินการของ Microsoft PPTP ปัญหาไม่ได้การเข้ารหัสที่อ่อนแอ แต่การตรวจสอบอ่อนแอ ไมโครซอฟท์ได้นำออกใหม่โปรโตคอลการตรวจสอบการปรับปรุงที่ PoPToP interoperates กับ
  8. OpenVPN รุ่น 2.0beta $ N เพิ่งได้รับการปล่อยออกมาเราได้ติดตั้ง N = 5 ในรุ่นนี้เซิร์ฟเวอร์ที่มีสระว่ายน้ำของที่อยู่ IP ที่จะผลักดันให้กับลูกค้าที่ ที่อยู่ IP ของลูกค้าในท้องถิ่นที่ไม่ได้ใช้ โปรโตคอลเป็นภูมิคุ้มกันเพื่อ NAT รุ่น 1.x ต้องอุโมงค์แต่ละที่จะจัดแจงไว้ก่อนโดยใช้ที่อยู่ IP ของลูกค้า รวมถึง SuSE 9.1 - 1.6 OpenVPN ดังนั้นเรากระจาย RPM ของเราเอง 2.0

พูดคุยเพิ่มเติม

อิสระ / WAN
IPSec ถูกแบ่งออกเป็นสนับสนุน kernel สำหรับ AH และ ESP โปรโตคอล (พร้อมรหัส tunneling ที่เกี่ยวข้อง) และคีย์ (ISAKMP) daemon การกระจายอิสระ / WAN ให้เคอร์เนลโมดูลและ hacks SuSE 8.2 (kernel 2.4.20) รวมถึงเหล่านี้ (ยกเว้นเห็นข้างต้นเกี่ยวกับ ESP - in - UDP) IPSec เป็นหลักในขณะนี้ใน kernel เป็น 2.5 ภูต ISAKMP สำหรับอิสระ / WAN เรียกว่า"ดาวพลูโต" คนบอกว่าเป็นคู่แข่งที่"สัตว์คล้ายหมีเล็ก ๆ "(sic) เป็นเพียงที่ดีเป็นและง่ายต่อการตั้งค่า นักพัฒนาอิสระ / WAN จะไม่เห็นด้วย
vtun
ในขณะที่ vtun มีจำนวนของผู้ใช้และสมัครพรรคพวกเกี่ยวกับรายชื่อผู้รับจดหมายของนักพัฒนาที่อยู่ในเสร็จสิ้นโหมดและการตอบสนองต่อการรักษาความปลอดภัยการวิพากษ์วิจารณ์ดังกล่าวข้างต้นไม่ได้รับการรวดเร็ว สำหรับเราแล้วปัญหาที่ใหญ่ที่สุดกับ vtun เป็นโอกาสในการชนกันของ IP ระยะไกลซึ่งไม่สามารถจัดการ natively มันเป็นที่มุ่งหมายสำหรับใช้กับการเชื่อมต่อไว
cipe
เป็นที่กล่าวถึงมักจะเป็นคล้ายกับ vtun แต่ ดีขึ้นหรือมากขึ้นเหมาะกับความจริง sysadmins จะอธิบายโดยทั่วไปในบริบทของการเชื่อมต่อไว
OpenVPN
มันเป็นมักจะกล่าวถึงในบริบทของคุณจริงๆควรที่จะดูที่ OpenVPN . พวกเขากำลังถูกเราควรและจะ จะใช้ OpenSSL สำหรับ TLS การเข้ารหัสลับที่เกี่ยวกับช่องทางควบคุมป้องกันที่มีการเข้ารหัสช่องทางหลักผ่านทาง UDP และ TUN / TAP สำหรับขุดเจาะอุโมงค์ (หลักใน kernel ที่เขียนขึ้นสำหรับ vtun) สนับสนุน kernel ไม่มีอื่น ๆ เป็นสิ่งจำเป็น อ้างผลการดำเนินงาน : Pentium - 2 266 MHz, TLS/Blowfish/SHA1 ไฟล์ precompressed ขนาดใหญ่ที่อัตราการส่งข้อมูลคือ 1.455 Mby / วินาที ก็สามารถทำ chroot และ / หรือไม่ได้ทำงานเป็นรากและสามารถล็อคข้อมูลที่สำคัญในหน่วยความจำ รุ่น 1.x มีไว้สำหรับอุโมงค์จากจุดหนึ่งไปยังอีกจุดหนึ่งที่คงที่และจึงถูกออกแบบมาเพื่อมันจะต้องมีการกำหนดค่าส่วนบุคคลสำหรับผู้ใช้แต่ละ เวอร์ชัน 2.0 ประกอบด้วยRoad Warriorการตั้งค่าผู้ใช้หลายคนที่เราต้องการ
PoPToP
PPTP ได้รับการพัฒนาโดย Microsoft และเป็นปัจจุบัน natively ใน Windows ตั้งแต่ Win98 (แพทช์สำหรับ Win95) มันดูเหมือนถูกใช้โดยคนจำนวนมาก ถ้าเซสชัน PPTP มากกว่าหนึ่งจะต้องเข้าไปในกล่อง NAT เดียวกัน (ไม่ได้เป็นสถานการณ์ทั่วไป), มันต้องการการจัดการเป็นพิเศษ; iptables ลินุกซ์รวมถึงโมดูลช่วย PPTP Microsoft จะให้พนักงานของตนกับลูกค้า PPTP ซึ่งไม่เกินกว่าหนึ่งพื้นเมือง; มันสามารถใช้บัตรสมาร์ทสำหรับการตรวจสอบและปฏิเสธที่จะเชื่อมต่อจนกว่าเครื่องจะถึงวันที่แพทช์

สรุปผลการวิจัย

อิสระ / WAN (Super)
ซูเปอร์อิสระ / WAN มีจำนวนคุณสมบัติที่ดีมาก : Crypto เชื่อ; การกำหนดค่าฉันท์เดียวสามารถใช้บนเซิร์ฟเวอร์สำหรับอุโมงค์ทั้งหมดของผู้ใช้; การรักษาความปลอดภัยโดยอัตโนมัติสมาคมจัดตั้งขึ้นใหม่ถ้าแล็ปท็อปถูกระงับชั่วคราวและ reawakened; การตรวจสอบปลายทางคือ ทั้งที่มีประสิทธิภาพและมีความยืดหยุ่น เมื่อเร็ว ๆ นี้เคอร์เนล Harlech ถูกคอมไพล์กับ NAT traversal แพทช์ และที่คาดคะเนมัน interoperates กับ Win2k และ WinXP natively เว็บอินเตอร์เฟสในการผลิตที่เป็นใบรับรอง X.509 (still. .. ) ในการทดสอบเบต้า แมลงวันเท่านั้นที่เหลือในครีมที่มีในการกำหนดค่าเริ่มต้นในพื้นที่ห่างไกลจะใช้ที่อยู่ IP ที่สาธารณะ (192.168.1.100) เมื่อเชื่อมต่อระยะไกล งานวิจัยที่ได้ทำเพื่อเรียนรู้วิธีการกำหนดค่า WinXP สำหรับ IPSec และเป็นจริงทำงาน แต่ขั้นตอนจะน่ากลัวเพื่อที่จะดูไม่น่าเชื่อถือที่คาดหวังของผู้ใช้ที่จะทำมัน กว่าปีที่ Mathnet ใช้อิสระ / WAN เฉพาะเป็นวิธีการแก้ปัญหา VPN ของเรา แต่สำหรับในปัจจุบันให้ดูที่การอภิปรายของ OpenVPN ด้านล่าง
vtun
vtun พื้นเมืองต้องกำหนดค่าส่วนบุคคลของอุโมงค์ของลูกค้าแต่ละราย สคริปต์ได้ถูกสร้างขึ้นเพื่อ kludge ขึ้นกำหนดที่อยู่แบบไดนามิก ในขณะที่ประสบการณ์ของฉันกับ vtun เป็นสิ่งที่ดีผมกลัวว่ามันจะไม่แข็งแกร่งพอที่เราจะปรับใช้ในการผลิต
cipe
เพราะมันต้องตั้งค่าส่วนบุคคลของอุโมงค์ของลูกค้าแต่ละราย, cipe จะต้องมีการปฏิเสธ
OpenVPN
เราเป็นกำลังใจโดยรุ่น 1.x เพราะแต่ละคนมีอุโมงค์ที่จะกำหนดค่ารายบุคคล แต่เราได้พบว่า v2.0beta5 เป็นเรื่องง่ายที่จะตั้งค่าสำหรับลูกค้าทั่วไปและเซิร์ฟเวอร์ของเราและมีความน่าเชื่อถือโดยสิ้นเชิง ไคลเอ็นต์ของ Windows โดยเฉพาะอย่างยิ่งเป็นเลิศ Mathnet ได้ตัดสินเมื่อ OpenVPN เป็นไคลเอนต์ VPN ที่เราจะให้การสนับสนุนกับผู้ใช้ของเรา
PoPToP
PoPToP จะปรากฏขึ้นเพื่อให้การเข้ารหัสที่แข็งแกร่งและที่เคยเป็นโซลูชั่นเดียวที่ natively สามารถหลีกเลี่ยงการปะทะที่อยู่ IP ของลูกค้าระยะไกล (รุ่นใหม่ OpenVPN นอกจากนี้ยังสามารถทำเช่นนี้.) แต่การตรวจสอบจะกระทำผ่าน PPP, โดยเฉพาะการตรวจสอบไปยังตัวควบคุมโดเมนที่ใช้ Windows (ซึ่ง Mathnet ไม่ได้) สคริปเสริมที่กว้างขวางมีความจำเป็นที่ส่วนท้ายของเซิร์ฟเวอร์เพื่อให้การทำงานในการเชื่อมต่อเช่นการกรอกข้อมูลในตาราง ARP ด้วยตนเอง ดังนั้นจึงน่าเสียดายที่มี PoPToP ที่จะปฏิเสธ

OpenVPN เมื่อแอปพลิเคชั่นจะตามคุณไปทุกที่



"ในโลกที่ปกคลุมไปด้วยอินเตอร์เนตบรอดแบนด์ VPN หรือ Virtual Private Network กำลังจะทำให้แอปพลิเคชั่นในสำนักงานสามารถติดตามคุณไปได้ทุกที่ OpenVPN คือโซลูชั่นที่จะทำให้ฝันของคุณเป็นจริง"
ในยุคก่อนที่จะมีอินเตอร์เนตความเร็วสูง การใช้ VPN ( Virtual Private Network ) ผ่านเครือข่ายอินเตอร์เนตเพื่อเข้ามาใช้งานภายในองค์กรคงเป็นเรื่องที่ต้องทำใจพอสมควร ยิ่งถ้าต้องติดต่ออินเตอร์เนตโดยผ่านโมเด็มแบบ 56K ด้วยแล้ว การใช้งานที่ต้องการใช้แบนด์วิดสูงๆ แทบเป็นไปไม่ได้เลย แต่ในยุคปัจจุบันอินเตอร์เนตความเร็วสูงโดยเฉพาะ ADSL ที่มีการพัฒนาอย่างต่อเนื่อง และในอนาคตจะมี ADSL2 และ ADSL2+ ซึ่งความเร็วจะสูงกว่าปัจจุบันอีกมาก ( ADSL2+ มีความเร็วสูงสุดถึง 24 Mbps ) ประกอบกับค่าบริการที่ถูกลง ทำให้ลดช่องว่างระหว่างการนั่งทำงานภายในออฟฟิศ กับการเข้ามาใช้งานจากระยะไกลลงได้ โดยเฉพาะอย่างยิ่ง การใช้งานแอพพลิเคชันที่ไม่ได้ออกแบบมาเพื่อให้ทำงานผ่านอินเตอร์เนต VPN นับว่าเป็นหนทางหนึ่งที่จะช่วยแก้ปัญหานี้ได้ ในโลกของซอฟต์แวร์เสรีมีซอฟต์แวร์ VPN รอให้ท่านผู้อ่านนำไปประยุกต์ใช้ซึ่งแบ่งได้เป็น 3 กลุ่มดังนี้
  1. VPN แบบ pptp ซอฟต์แวร์ในกลุ่มนี้ได้แก่ Poptop เป็น VPN Server บนลีนุกซ์ที่ใช้ 
    โปรโตคอล pptp ( Point-to-Point Tunneling Protocol ) ในการติดต่อกัน ซึ่งนับได้ว่า Poptop เป็น VPN Server ซึ่งมีความเข้ากันได้ดีกับไคลเอนต์บนวินโดวส์ โดยสามารถใช้ VPN Client ของวินโดวส์ได้ทันที
  2. VPN แบบ IPSec ซอฟต์แวร์ในกลุ่มนี้ได้แก่ FreeS/WAN และ Openswan VPN บน
    โปรโตคอล IPSec ( IP Security Protocol ) ถือได้ว่าเป็น VPN ที่ได้รับความนิยมไม่ว่าจะเป็น ซอฟต์แวร์แบบเปิดเผยรหัสหรือไม่เปิดเผยรหัส เนื่องจากว่ามีความปลอดภัยสูง แต่ด้วยความซับซ้อนทำให้การติดตั้งค่อนข้างลำบากโดยเฉพาะการติดตั้ง IPSec ผ่านระบบ NAT ( Network Address Translation ) นอกจากนี้การติดตั้ง VPN แบบ IPSec บนลีนุกซ์จำเป็นต้องมีการ Patch Kernel ด้วย
  3. VPN แบบ tun/tap ได้แก่ OpenVPN ,Vtune ,tinc และ CIPE โดยในบทความครั้งนี้จะกล่าวถึง OpenVPN โดยเฉพาะ ซึ่งเป็น VPN Server ที่ทำงานบนโปรโตคอล SSL ( Secure Socket Layer ) การติดตั้งเหมือนการใช้งานแอพพลิเคชันทั่วไปที่ทำงานร่วมกับ SSL ซึ่งมีผลให้การติดตั้งไม่ยุ่งยากและที่สำคัญสามารถวิ่งได้หลายแพลตฟอร์มไม่ว่าจะเป็น Linux, Windows 2000/XP (หรือสูงกว่า), OpenBSD, FreeBSD, NetBSD, Mac OS X, และ Solaris
ท่านสามารถดูตารางเปรียบเทียบ VPN Server ทั้ง 3 กลุ่มได้ที่ 
http://www.math.ucla.edu/~jimc/documents/vpn.html สำหรับบทความนี้จะพูดถึงการใช้งาน OpenVPN โดยให้ VPN Server ทำงานบนลีนุกซ์และใช้ VPN Client ซึ่งทำงานอยู่บนวินโดวส์
นิยามศัพท์ของ VPN


TUN    ( Virtual Point-to-Point network device ) ไดร์เวอร์ TUN ผูกติดกับ Kernel ของลีนุกซ์ซึ่งพร้อมใช้งานได้ ทันทีใน Fedora Core แต่ถ้าเป็นตระกูล RedHat Clone จะไม่ได้คอมไพล์ TUN มาให้ จึงต้องคอมไพล์ Kernel ใหม่ TUN device มีหน้าที่สร้างอุโมงค์ไอพี ( IP tunneling ) แอพพลิเคชันจะทำการอ่านและเขียน IP Frame ผ่าน TUN

ข้อดี สำหรับการทำงานผ่าน TUN
  • ทำงานได้รวดเร็ว

    ข้อเสีย สำหรับการทำงานผ่าน TUN



  • สนับสนุน IP Frame เท่านั้น



  • VPN Client ที่ติดต่อเข้ามาจะอยู่คนละ Subnet Mask กับ VPN Server TAP ( Virtual Ethernet network device ) ทำหน้าที่คล้ายกับ TUN เพียงแต่แอปพลิเคชันจะทำหน้าที่อ่านและเขียน Ethernet Frame ผ่าน TAP device

    ข้อดี สำหรับการทำงานผ่าน TAP



  • สนับสนุน Ethernet Frame จึงสามารถใช้โปรโตคอลอื่นๆ นอกเหนือจากไอพีได้ เช่น IPX



  • VPN Client ที่ติดต่อเข้ามาจะมี Subnet Mask เดียวกับ VPN Server

    ข้อเสีย สำหรับการทำงานผ่าน TAP



  • ทำงานช้ากว่า TUN



  • Passive Attack คือ ผู้แอบดูข้อมูลระหว่างเครื่องคอมพิวเตอร์ 2 เครื่องที่กำลังติดต่อกัน วิธีการป้องกันคือ การเข้ารหัสข้อมูล 
    Active Attack คือ ผู้ที่มีความสามารถเข้ามาแทรก หรือเพิ่มเติมแก้ไขข้อมูลระหว่างทางที่เครื่องคอมพิวเตอร์กำลังติดต่อกัน วิธีการป้องกันคือ พิสูจน์ตัวตน ( authentication ) OpenVPN ใช้ HMAC ในการพิสูจน์ตัวตนในการแลกเปลี่ยนแพ็กเก็ต
    แนวคิดของ OpenVPNOpenVPN พัฒนาโดย James Yonan ซึ่งมีแนวคิดการออกแบบให้สามารถใช้งานได้หลากหลายแพล็ตฟอร์ม การติดตั้งต้องสามารถทำได้ง่าย ปลอดภัย รวมถึงความรวดเร็วทำงาน ดังนั้น OpenVPN จึงนำแนวคิดเหล่านี้ถ่ายทอดออกมาเป็นในรูปแบบการส่งข้อมูลที่เข้ารหัสแล้วผ่านโปรโตคอล UDP ( User Datagram Protocol ) ซึ่ง James Yonan ได้บอกว่าการนำข้อมูลที่เข้ารหัส ห่อหุ้มด้วย IP Frame และวิ่งไปบนโปรโตคอล UDP เป็นทางเลือกที่ดีที่สุด ( ในกรณีที่ต้องการให้ IP Frame วิ่งบน TCP ก็สามารถทำได้แต่ค่าปรกติที่กำหนดไว้คือ UDP ) ดังรูปที่ 1



    รูปที่ 1 การส่งข้อมูลผ่าน OpenVPN โดยส่งผ่านโพรโตคอลผ่าน UDP


    หมายเหตุ :

    ท่านสามารถอ่านเหตุผลการทำ VPN ซึ่งส่งข้อมูลผ่าน tun/tap วิ่งไปบน
    โปรโตคอล UDP ได้ที่

    http://sites.inka.de/bigred/devel/tcp-tcp.html
    http://openvpn.sourceforge.net/papers/BLUG-talk/


    OpenVPN รุ่นก่อนหน้าเวอร์ชัน 2.0 จะต้องทำการติดตั้งอินเตอร์เฟส TUN/TAP ที่ VPN Server ตามจำนวนที่ VPN Client ที่ติดต่อเข้ามา เช่น มี VPN Client จำนวน10 เครื่องที่ต้องการติดต่อกับเครื่อง VPN Server จะต้องติดตั้ง TUN/TAP ไว้ 10 อินเตอร์เฟส (TUN0/TAP0-9) บนเครื่อง VPN Server แต่ OpenVPN 2.0 ขึ้นไป สามารถใช้งานหลาย VPN Client ผ่านอินเตอร์เฟส TUN/TAP เพียงอินเตอร์เฟสเดียวได้ ดังนั้นในบทความนี้จะพูดถึง OpenVPN 2.0 ขึ้นไปคุณสมบัติของ OpenVPN
  • ทำอุโมงค์แบบ IP Frame และแบบ Ethernet Frame ได้



  • มีความปลอดภัยในระดับป้องกันทั้ง Passive Attack และ Active Attack



  • ทำ chroot environment และสามารถวิ่งในสิทธิ์ของยูสเซอร์ธรรมดาได้ หลังจาก Initialize สำเร็จแล้ว



  • ทำ Load Balance กรณีที่มี VPN เซิร์ฟเวอร์หลายตัว



  • สนับสนุนการเข้ารหัสในรูปแบบ Pre-shared Keys และ Certficated Keys



  • สนับสนุนการทำงานในรูปแบบ HMAC Authentication



  • สนับสนุนการบีบอัดข้อมูลเพื่อลดปริมาณการจราจรบนเครือข่าย



  • ทำ DHCP เพื่อแจกจ่ายไปยัง VPC ไคลเอนต์ ไม่ว่าจะเป็นการกำหนด route, DNS, WINS ซึ่งเหมาะกับการใช้งานแบบ road-warrior



  • ทำอุโมงค์ผ่าน NAT ได้



  • ไม่ต้องแก้ไข kernel โดยปกติ kernel ของลีนุกซ์จะสนับสนุนการใช้งาน tun/tap อยู่แล้ว



  • ใช้ได้หลากหลายแพล็ตฟอร์มดังที่ได้กล่าวไปแล้วข้างต้น



  • OpenVPN เป็น GPL






  • ผังเน็ตเวิร์กตัวอย่างสำหรับการติดตั้ง VPN






    รูปที่ 2 ผังเน็ตเวิร์กตัวอย่างสำหรับการทดสอบ OpenVPN


    ข้อมูลเพิ่มเติมจากเน็ตเวิร์กตัวอย่าง



    VPN ServerVPN Client
    Local Address192.168.0.254From VPN Server
    Tunnel Endpoint192.168.100.1192.168.100.2
    OpenVPN Gateway (Router)DHCP From ISPDHCP From ISP

    เตรียมแพกเกจก่อนการติดตั้ง

    แหล่งที่มาของซอฟต์แวร์ OpenVPN คือ http://openvpn.sourceforge.net ไปที่เมนู Download จะพบไฟล์ 3 ไฟล์ดังนี้
  • Windows Installer: openvpn-2.0_rc1-install.exe



  • Source (Tarball): openvpn-2.0_rc1.tar.gz



  • Source (Zip): openvpn-2.0_rc1.zip



  • ให้ดาวน์โหลด openvpn-2.0_rc1.tar.gz เพื่อที่จะทำ VPN Server ( บนเครื่องลีนุกซ์ ) และ openvpn-2.0_rc1-install.exe สำหรับ VPN client ( บนเครื่องวินโดวส์ )กรณีที่ต้องการใช้การบีบอัดข้อมูลเพื่อความรวดเร็วในการทำงานต้องเตรียมแพกเกจ lzo ด้วย สามารถดาวน์โหลดได้ที่ http://dag.wieers.com/packages/lzo/ โดยให้เลือกไฟล์ rpm ให้เหมาะสมกับระบบปฏิบัติการของท่านในกรณีต้องการใช้งานในแบบ GUI ผ่าน VPN Client ท่านสามารถดาวน์ VPN GUI ได้ที่http://www.nilings.se/openvpn/download.htmlโดยเลือกไฟล์ openvpn-gui-1.0.exeการติดตั้ง VPN Server บนลีนุกซ์


  • ติดตั้งแพกเกจ
    1. ติดตั้ง lzo ด้วยคำสั่ง rpm -i lzo-1.08-3.1.xxx.rpm
    2. ติดตั้ง openvpn ด้วยคำสั่ง rpm -tb openvpn-2.0_rc1.tar.gz จะได้แพกเกจ openvpn-2.0_rc1-1.rpm
    3. ติดตั้ง openvpn อีกครั้งด้วยคำสั่ง rpm -i openvpn-2.0_rc1-1.rpm



  • สร้างคีย์เพื่อทำ SSL
    1. เปลี่ยนไดเรกทอรีไปที่ /usr/share/openvpn/easy-rsa
    2. สร้างค่าตัวแปรโดยการเรียก . vars
    3. ลบข้อมูลเดิมด้วยคำสั่ง ./clean-all
    4. สร้าง Certificate Authority (CA) ด้วยคำสั่ง ./build-ca ( ตอบคำถามการสร้าง CA )
    5. สร้างกุญแจสำหรับเครื่อง VPN Server ด้วยคำสั่ง ./build-key server (ตอบคำถามตามความเหมาะสมสำหรับการสร้างกุญแจ)
    6. สร้างกุญแจสำหรับเครื่อง VPN Client ด้วยคำสั่ง ./build-key client (ตอบคำถามตามความเหมาะสมสำหรับการสร้างกุญแจ)
    7. สร้างคีย์ Diffie-hellman ด้วยคำสั่ง ./build-dh
    8. นำคีย์ที่ได้จากการสร้างคือ ca.crt, server.key, server.crt, dh1024.pem ไปไว้ที่ /etc/openvpn
    9. กรณีต้องการใช้งาน auth-pam.pl ให้ทำสำเนาจาก /usr/share/openvpn/sample-scripts/auth-pam.pl ไปที่ /etc/openvpn



  • สร้างไฟล์ /etc/openvpn/server.conf 
    port 1194
    dev tun
    #dev tap

    tls-server

    dh dh1024.pem
    ca ca.crt
    cert server.crt
    key server.key

    auth-user-pass-verify ./auth-pam.pl via-file
    #client-disconnect ./logoff.sh

    #up ./openvpn.up

    mode server
    duplicate-cn
    ifconfig 192.168.100.1 192.168.100.2 #(tun)
    #ifconfig 192.168.100.1 255.255.255.0 #(tap)

    ifconfig-pool 192.168.100.100 192.168.100.200 # (tun)IP range for openvpn client
    #ifconfig-pool 192.168.100.100 192.168.100.200 255.255.255.0 # (tap)IP range fomtu-test
    tun-mtu 1500
    tun-mtu-extra 32
    mssfix 1450
    ping 10
    ping-restart 120

    push "ping 10"
    push "ping-restart 60"

    push "dhcp-option DOMAIN ccm.com"    # push the DNS domain suffix
    push "dhcp-option DNS 192.168.0.254"     # push DNS entries to openvpn client
    push "dhcp-option WINS 192.168.0.254"    # push DNS entries to openvpn client
    push "route 192.168.0.0 255.255.255.0" # (tun)add route to to protected network
    push "route 192.168.100.1" # (tun)add route to to protected network
    #push "route 192.168.0.0 255.255.255.0 192.168.100.1" # (tap)add route to to pro tected network
    ;user nobody
    ;group nobody
    comp-lzo
    status-version 2
    status openvpn-status.log
    verb 3

    หมายเหตุไฟล์ server.conf สามารถดูตัวอย่างพร้อมคำอธิบายได้ที่ไดเรกทอรี
    /usr/share/openvpn/sample-config-files จากตัวอย่างไฟล์ server.conf ข้างต้นจะเห็นเครื่องหมายคอมเมนต์ของการใช้งานผ่าน TAP ในกรณีผู้อ่านต้องการใช้ VPN ผ่าน TAP ให้ทำเครื่องหมายคอมเมนต์ที่ TUN และนำเครื่องหมายคอมเมนต์หน้าบรรทัด TAP ออก






  • สั่งให้ openvpn ทำงานด้วยคำสั่ง service openvpn start ถ้าระบบพร้อมที่จะทำงานผู้อ่านควรตรวจสอบด้วยคำสั่งเหล่านี้ก่อนที่เริ่มติดตั้ง VPN Client
  • ใช้คำสั่ง ifconfig จะพบ tun devicetun0     Link encap:Point-to-Point Protocol
    inet addr:192.168.100.1 P-t-P:192.168.100.2 Mask:255.255.255.255
    UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
    RX packets:689 errors:0 dropped:0 overruns:0 frame:0
    TX packets:735 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:100
    RX bytes:87131 (85.0 Kb) TX bytes:105585 (103.1 Kb)




  • ใช้คำสั่ง ifconfig จะพบ tap device (กรณีใช้ tap)tap0     Link encap:Ethernet HWaddr 00:FF:30:23:39:94
    inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:1293 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1355 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:100
    RX bytes:161389 (157.6 Kb) TX bytes:468689 (457.7 Kb)




  • ใช้คำสั่ง netstat -na | grep 1194 udp      0      0 0.0.0.0:1194       0.0.0.0:*





  • กรณีที่ระบบของท่านมีไฟล์วอลล์กรุณาให้ไฟร์วอลล์ของท่านเปิดรับ UDP Port 1194 และเปิดรับแพกเก็ตที่มาจากอุปกรณ์ TUN หรือ TAP ด้วย และในกรณีที่ต้องการใช้งานผ่าน Samba อย่าลืมกำหนดให้ Samba รับไอพีแอดเดรสของ VPN Client ด้วย สำหรับตัวอย่างการเปิดไฟร์วอลล์เพื่ออนุญาตการใช้งาน OpenVPN สามารถดูได้ดังนี้

  • http://openvpn.sourceforge.net/howto.html ( กรณีใช้ Iptables )



  • http://www.shorewall.net/OPENVPN.html ( กรณีใช้ Shorewall )





  • การติดตั้ง VPN Client บนวินโดวส์

  • ติดตั้งโปรแกรม
    1. openvpn-2.0_rc1-install.exe
    2. openvpn-gui-1.0-beta26.exe ( เป็นไฟล์เดี่ยวๆ ไม่ต้องติดตั้ง สามารถเรียกใช้งานได้เลย )




  • หลังจากติดตั้งโปรแกรมเรียบร้อยเราจะได้ Local Connection ที่เป็น TAP-Win32 Adapter สามารถตรวจสอบได้ที่ Network Connections ดังรูปที่ 3 



    รูปที่ 3 TAP Adapter ถูกสร้างขึ้นหลังจากติดตั้ง OpenVPN


    ในกรณีที่ติดตั้งแล้วยังไม่ได้ TAP-Win32 Adapter ให้ไปที่เมนู /Start/Openvpn/Add a new TAP-Win32 virtual ethernet adapter 



  • สร้างคีย์เพื่อทำ SSL เราได้มีการสร้างคีย์ไว้ในช่วงของการติดตั้ง VPN Server ให้ทำการสำเนาไฟล์ที่เกี่ยวข้อง 3 ไฟล์มายังผู้ใช้ VPN Client คือ ca.crt, client.crt, client.key หลังจากนั้นให้นำคีย์ทั้ง 3 ไปไว้ที่ไดเรกทอรี \Program Files\OpenVPN\config 



  • สร้างไฟล์ client.ovpn ไฟล์นี้จะคล้ายกับไฟล์คอนฟิกเกอเรชันที่อยู่บนเครื่องเซิร์ฟเวอร์ แต่ถ้าวิ่งอยู่บนวินโดวส์เราจะใช้นามสกุลเป็น ovpn ซึ่งเราจะต้องกำหนดดังนี้

    #dev tap
    dev tun
    port 1194

    remote <ชื่อของ VPN Server หรือจะใช้เป็นไอพีแอดเดรสก็ได้>

    tls-client 
    auth-user-pass 

    ca ca.crt
    cert client.crt
    key client.key

    mtu-test 
    tun-mtu 1500 
    tun-mtu-extra 32 
    mssfix 1450
    pull 

    comp-lzo 
    verb 4




  • สั่งให้ OpenVPN ทำงานด้วยการคลิกขวาที่ไฟล์ client.ovpn เลือก Start OpenVPN on this config file หรือจะใช้ openvpn-gui ให้ดับเบิ้ลคลิกที่ openvpn-gui หลังจากนั้นจะปรากฏ openvpn-gui เป็น Tray Icon อยู่ด้านล่างให้คลิกขวาเลือก Connect เพื่อทำการเชื่อมต่อกับ VPN Server ที่เราได้กำหนดในไฟล์ client.ovpn เมื่อเชื่อมต่อเรียบร้อย open-gui ที่ Tray Icon จะมีสีเขียว หลังจากนั้นให้ทดสอบการทำงานผ่าน VPN ได้ตามต้องการ จากนั้นเรามาตรวจสอบค่าของของการเชื่อมต่อของ Local Area Connection 4 จะปรากฏข้อมูลดังรูปที่ 4 และรูปที่ 5 



    รูปที่ 4 ข้อมูล TAP Adapter หลังจากเชื่อมต่อแบบ TUN




    รูปที่ 5 ข้อมูล TAP Adapter หลังจากเชื่อมต่อแบบ TAP


    นำ VPN ไปประยุกต์ใช้
    OpenVPN เป็น VPN ที่มีความสามารถค่อนข้างครบครันในระดับหนึ่ง ไม่ว่าจะเป็นเรื่องความง่ายในการใช้งาน ระบบความปลอดภัย การใช้งานได้หลากหลายแพลตฟอร์ม ประกอบกับเอกสารที่มีมากมายซึ่งหาได้จากเว็บไซต์ของ OpenVPN ทำให้ผู้ที่จะเริ่มต้นการลงระบบ VPN คงเป็นเรื่องไม่ยากนัก ตัวผู้เขียนหลังจากทดสอบการใช้งานผ่าน Windows Explorer พบว่ามีความเร็วในระดับที่น่าพอใจทั้งในรูปแบบการติดต่อผ่าน TUN และ TAP หลังจากนั้นลองทดสอบเรียกไฟล์ Northwind.mdb ซึ่งมีขนาด 2 MB ด้วยโปรแกรม MS Access ใช้เวลาประมาณ 5 วินาที ( บน ADSL ความเร็ว 1 Mbps ) สำหรับท่านที่มีอินเตอร์เนตความเร็วสูงกว่านี้ ( ประมาณ 2 MB ขึ้นไป ) ลองทดสอบกับแอพพลิเคชันที่เขียนในรูปแบบ Client/Server อาจทำให้แอพลิเคชันจากเดิมที่สามารถใช้งานภายเพียงแค่ในออฟฟิศ เปลี่ยนมาใช้งานผ่าน VPN ซึ่งมีความปลอดภัย โดยที่ท่านไม่จำเป็นต้องไปเขียนแอพพลิเคชันใหม่เพื่อวิ่งบนอินเตอร์เนต

    แหล่งข้องมูลอ้างอิง
    http://openvpn.sourceforge.net/howto.html 
    http://openvpn.sourceforge.net/papers/openvpn-101.pdfhttp://www.math.ucla.edu/~jimc/documents/vpn.htmlhttp://www.linuxjournal/article/7949 http://www.sans.org/rr/papers/20/1459.pdf http://fedoranews.org/contributors/florin_andrei/openvpn/ 



  • การทำ VPN แบบ PPTP Server บน LinkSys RV042

    Point to Point Tunneling Protocol (PPTP) อ้างอิง

    PPTP เป็นโปรโตคอลสำหรับสร้าง Tunnel ที่ใช้รับส่งข้อมูลผ่านเครือข่ายสาธารณะ เช่น Internet พัฒนาขึ้นโดยกลุ่มบริษัท Microsoft, 3Com และ Ascend Communication โดย PPTP สามารถผนึกเฟรมของข้อมูลได้หลายชนิด เช่น IP, IPX หรือ NetBEUI แล้วส่งเฟรมเหล่านี้ผ่านเฟรม PPP ตามปกติ เมื่อตรวจดูข้อมูลที่ถูกส่งออกไปจะเสมือนกับการรับส่งเฟรม PPP ตามธรรมดาของคอมพิวเตอร์สองระบบ ซึ่งแท้ที่จริงแล้วข้อมูลที่รับส่งอาจจะเป็นเฟรม IP, IPX หรือ NetBEUI ที่คอมพิวเตอร์ทำการรับส่งข้อมูลกันจริงๆก็ได้ เมื่อใช้การเข้ารหัสและการลดข้อมูลเข้าไปอีก การรับส่งข้อมูลก็จะปลอดภัยมากยิ่งขึ้นPPTP จะใช้โปรโตคอล TCP ในการสร้าง Tunnel และแลกเปลี่ยนข้อมูลต่างๆที่เกี่ยวกับ Tunnel และใช้ PPP เป็นตัวรับส่งข้อมูลที่ต้องการติดต่อระหว่างผู้รับและผู้ส่ง ซึ่งการเชื่อมต่อของ PPTP จะมีอยู่สองชนิดแตกต่างกันคือ วิธีแรกใช้ PPTP ติดต่อกันจากผู้รับถึงผู้ส่งตลอดเส้นทาง ส่วนวิธีที่สองใช้ PPTP เฉพาะส่วนที่ติดต่อกับ Internet Service Provider (ISP) ไปยังปลายทางเท่านั้นโดยในกรณีแรก ทั้งผู้รับและผู้ส่งข้อมูลจะมีซอฟต์แวร์ PPTP อยู่ในคอมพิวเตอร์ทั้งคู่ เมื่อคอมพิวเตอร์ต้นทางติดต่อไปยังปลายทางผ่าน ISP ในชั้นแรกจะติดต่อโดยใช้ PPP ตามปกติก่อน หลังจากนั้นเมื่อคอมพิวเตอร์ทั้งสองเชื่อมต่อรับส่งข้อมูลกันได้แล้ว ก็จะตกลงกันรับส่งส่งข้อมูลโดยใช้ PPTP ซึ่งกรณีคอมพิวเตอร์ของ ISP ก็ไม่จำเป็นต้องมีซอฟต์แวร์ PPTP อยู่ และจะไม่ยุ่งเกี่ยวกับคอมพิวเตอร์ของ ISP ในการรับส่งข้อมูลโดยใช้ PPTP ระหว่างต้นทางกับคอมพิวเตอร์ปลายทางเลย
    ทราบความหมาย PPTP กันแล้วน่ะครับมาเริ่มการตั้งค่ากันเลย
    1. ทำการเชื่อมต่อ linksys RV042 ให้ออกอินเตอร์เน็ต  เพื่อให้คอมพิวเตอร์ที่เป็น Public สามารถเชื่อมต่อเข้ามาได้ โดยอินเตอร์เน็ตที่ผมขอใช้บริการเป็นแบบ Static IP (Fix IP ) แต่ถ้าใครไม่เปิดบริการนี้แสดงว่าเป็น Dynamic IP คือ IP ไม่คงที่เปลี่ยนไปเรื่อยๆ ทำให้เราไม่สามารถระบุ IP ที่อยู่ที่แท้จิงได้ ต้องไปสมัครสมาชิกกับผู้ให้บริการ DNS เช่น DYNDNS  เป็นต้น ว่ากันง่ายก็คือ บริการที่ทำให้ IP ที่ไม่คงที่ ไปเป็นชื่อ [ Domain Name ] ที่สามารถอ้างอิงบนระบบอินเตอร์เน็ตได้
    2.หากเชื่อมต่อเรียบร้อย จะมี IP Address จากผู้ให้บริการ ISP แสดงขึ้นมา ดังรูป

    RV042_PPTP
    3. ตั้งค่า PPTP Server โดยไปที่ เมนู VPN > PPTP Server ทำเครื่องหมายหน้า Enable PPTP Server ตรง IP Address Range ให้เรากำหนดหมายเลข IP Address ให้กับเครื่องที่ VPN  เข้ามาอย่างอัตโนมัติ หมายความว่าไม่ว่าเครื่องใดเชื่อมต่อเข้าจะได้รับ IP Address เหล่านี้ไปครับ ผมตั้งให้เป็น 192.89.1.200 -192.89.1.204 จำนวน 5 IP ครับ พร้อมสร้าง Username และ Password สำหรับการเชื่อมต่อ ดังรูป

    RV042_PPTP_1
    4. ไปที่เมนู VPN Pass Through เพื่อเปิดให้โปรโตคอล PPTP ทำงาน การตั้งค่า PPTP Server เสร็จเรียบร้อยน่ะครับ

    RV042_PPTP_2
    5. ตั้งค่าการเชื่อมต่อจากเครื่อง Client ในที่นี้ผมใช้ Windows XP ดังนี้ครับ

      ไปที่ Network Connections ที่ Create a new connections เลือกเป็น Virtual private Network connection

    rv042_pptp_4
     ตั้งชื่อการเชื่อมต่อ
    rv042_pptp_5
    ใส่ IP Address ที่เราต้องการจะเชื่อมต่อไปหา ก็คือ IP PPTP Server ที่ได้รับจากผู้ให้บริการ ISP ซึ่งขอใช้เป็นแบบ Fix IP
    rv042_pptp_6
    rv042_pptp_7
    rv042_pptp_8
    ใส่ UserName และ PassWord ที่เราสร้างไว้ใน PPTP Server
    rv042_pptp_9
    หากเชื่อมต่อได้สามารถดูสถานะการเชื่อต่อได้ดังนี้ จะเห็นว่ามันจ่าย IP Address มาให้ด้วยตรงตามที่เรากำหนด
    rv042_pptp_10
    OK

    การทำ VPN แบบ PPTP Server บน pfSense

    ต่อจากการทำ VPN แบบ PPTP บน Linksys RV042 วันนี้มาแนะนำการทำ VPN บน pfSense กันต่อเลยน่ะครับ pfSense เป็นระบบที่ใช้ในการจัดการ firewall ให้ง่ายขึ้น พัฒนามาจาก FreeBSD จากที่ทดลองใช้งานจนถึงวันนี้ 1 ปีกว่าๆ ยังไม่เกิดปัญหาใดๆ นับว่าเป็น Open firewall ที่มีความเสถียรตัวหนึ่งเลยที่เดียว โดยส่วนตัวผมทดลองใช้อยู่หลายตัวเหมือนกัน แต่ขอบเขตของความต้องการโดยส่วนตัว pfSense สามารถตอบได้ตรงใจผมได้ดีในขณะนั้น จนวันนี้อะไรๆ มันเปลี่ยน ความต้องการมีมากขึ้นทุกวัน แต่อย่างน้อย pfSense ก็สามารถช่วยเราได้ในระดับหนึ่ง จริงๆแล้วไม่เกี่ยวอะไรกับ VPN หรอก แต่อยากบอกว่า pfSense มีประสิทธิถาพไม่น้อยกว่า  open linux ตัวอื่นๆเลย สิ่งสำคัญอยู่ที่การนำไปใช้ และการจัดการที่ดีมากกว่า เข้าเรื่องเลยแล้วกัน การทำ VPN มีธีดังนี้
    1. เข้าไปโหมด admin ของ pfSense เลือก เมนู  VPN -> PPTP

    vpn_pptp_pfsense1
    2. เลือก Enable PPTP Server

    vpn_pptp_pfsense2
    Max.Current Connections คือ Client สามารถเชื่อมต่อเข้ามาได้พร้อมกันสูงสุด 16 connections

    Server Address คือ IP address ที่ใช้เชื่อมต่อ ของผมเป็นแบบ Fix IP เพื่อให้ Client เชื่อมผ่าน IP นี้เข้ามา
    Remote Address Range คือ IP Pool ที่ต้องการจ่ายให้ client ที่เชื่อมต่อเข้ามาแล้ว ให้เริ่มใช้ IP 192.89.0.32 เป็นต้นไป

    3. สร้าง User account เลือกที่ Users

    vpn_pptp_pfsense3
    4. การสร้าง Network connection ในเครื่อง Client ดูได้

    เทคโนโลยี VPN คืออะไร

    เทคโนโลยี VPN คืออะไร

     VPN ย่อมาจาก Virtual Private Network เป็นเทคโนโลยีการเชื่อมต่อเครือข่ายนอกอาคาร (WAN - Wide Area Network) เป็นระบบเครือข่ายภายในองค์กร ซึ่งเชื่อมเครือข่ายในแต่ละสาขาเข้าด้วยกัน โดยอาศัย Internet เป็นตัวกลาง มีการทำ Tunneling หรือการสร้างอุโมงค์เสมือนไว้รับส่งข้อมูล มีระบบเข้ารหัสป้องกันการลักลอบใช้ข้อมูล เหมาะสำหรับองค์กรขนาดใหญ่ซึ่งต้องการความคล่องตัวในการติดต่อรับส่งข้อมูลระหว่างสาขา
    มีประสิทธิภาพเช่นเดียวกับ Private Network 
    นอกจากนี้ยังสามารถกำหนดหมายเลข  IP เป็นเครือข่ายเดียวกัน และเจ้าหน้าที่ ที่ปฏิบัตินอกบริษัทฯ ยังสามารถ login เข้ามาใช้เครือข่ายภายในองค์กรได้

                PN : Private Network  คือเครือข่ายภายในของแต่ละบริษัท, Private Network เกิดจากการที่บริษัทต้องการเชื่อมเครือข่ายของแต่ละสาขาเข้าด้วยกัน (กรณีพวกที่เชื่อมต่อด้วย TCP / IP เลขที่  IP ก็จะกำหนดเป็น 10.xxx.xxx.xxx หรือ 192.168.xxx.xxx หรือ 172.16.xxx.xxx) ในสมัยก่อนจะทำการเชื่อมต่อด้วย leased line หลังจากที่เกิดการเติบโตของการใช้งาน Internet และการพัฒนาเทคโนโลยีที่เกี่ยวข้อง การปรับปรุงในเรื่อง ความเร็วของการเชื่อมต่อ ทำให้เกิดแนวคิดในการแทนที่ leased line หรือ Frame Relay  ซึ่งมีราคาแพง  ด้วย Internet ที่มีราคาถูกกว่า แล้วตั้งชื่อว่า Virtual Private Network

    และจากการที่มีคนได้กำหนดความหมายของ VPN เป็นภาษาอังกฤษไว้ว่า "VPN is Private Communications Network Existing within a Shared or Public network Especially the Internet" จะสามารถสรุปความหมาย ได้ดังนี้
    •        เทคโนโลยี VPN จะทำการเชื่อมต่อองค์ประกอบข้อมูลและทรัพยากรต่างๆ ของระบบเครือข่ายหนึ่ง ให้เข้ากับระบบเครือข่ายหนึ่ง
    •        เทคโนโลยี VPN จะทำงานโดยยอมให้ผู้ใช้งานสร้างท่ออุโมงค์ เสมือนเพื่อใช้ในการรับส่งข้อมูลผ่านระบบ เครือข่ายอินเตอร์เน็ต
    •        ส่วนประกอบที่สำคัญหรือหัวใจหลักในการทำ VPN  ก็คือการใช้งานอินเตอร์เน็ต
    เทคโนโลยี วีพีเอ็นเปรียบเสมือนการสร้างอุโมงค์เพื่อการสื่อสาร

    ทำไมถึงต้องใช้ VPN?


                    เนื่องจากปัจจุบันการติดต่อสื่อสารถือว่าเป็นสิ่งที่มีความจำเป็นมากขึ้นเรื่อยๆ โดยถ้าเราต้องการการเชื่อมต่อที่มีประสิทธิภาพ มีความปลอดภัยระหว่าง Network บริการที่ดีที่สุดคือ การเช่าสายสัญญาณ (leased line) ซึ่งจะทำการเชื่อมต่อระบบเน็ตเวิร์คของเราด้วยการใช้สายสัญญาณตรงสู่ปลายทาง ทำให้มีความปลอดภัยสูงเพราะไม่ต้องมีการใช้สื่อกลางร่วมกับผู้อื่น และมีความเร็วคงที่ แต่การเช่าสาสัญญาณนั้นใข้อเสียคือ ค่าใช้จ่ายในการใช้บริการนั้นสูงมาก เมื่อเทียบกับความเร็วที่ได้รับ ซึ่งบริษัทขนาดเล็กนั้นคงไม่สามารถทำได้
                    เทคโนโลยี VPN ได้เข้ามาเป็นอีกทางเลือกหนึ่ง เนื่องจากได้ใช้สื่อกลางคือ Internet ที่มีการติดตั้งอยู่อย่างแพร่หลายเข้ามาสร้างระบบเน็ตเวิร์คจำลอง โดยมีการสร้างอุโมงค์ข้อมูล (Tunnel) เชื่อมต่อกันระหว่างต้นทางกับปลายทาง ทำให้เสมือนว่าเป็นระบบเน็ตเวิร์คเดียวกัน สามารถส่งข้อมูลต่างๆที่ระบบเน็ตเวิร์คทำได้ โดยข้อมูลที่ส่งนั้นจะถูกส่งผ่านไปในอุโมงค์ข้อมูล ทำให้มีความปลอดภัยสูง ใกล้เคียงกับ leased line แต่ค่าใช้จ่าในการทำ VPN นั้นต่ำกว่าการเช่าสายสัญาณมาก

    pfSense 2.0 Release Now Available!

    ในที่สุดเวอร์ชั่น 2.0 Release ก็ออกมาสักที หลักจากที่รอคอยมานานนับปี โดยเวอร์ชั่นดังกล่าวมี Feature ที่เปลี่ยนไปดังนี้
    Operating System
    Based on FreeBSD 8.1 release.
    i386 and amd64 variants for all install types (full install, nanobsd/embedded, etc.)
    USB memstick installer images available
    Interfaces
    GRE tunnels
    GIF tunnels
    3G support
    Dial up modem support
    Multi-Link PPP (MLPPP) for bonding PPP connections (ISP/upstream must also support MLPPP)
    LAGG Interfaces
    Interface groups
    IP Alias type Virtual IPs
    IP Alias VIPs can be stacked on CARP VIPs to go beyond the 255 VHID limit in deployments that need very large numbers of CARP VIPs.
    QinQ VLANs
    Can use Block Private Networks / Block Bogon Networks on any interface
    All interfaces are optional except WAN
    All interfaces can be renamed, even LAN/WAN
    Bridging enhancements – can now control all options of if_bridge, and assign bridge interfaces
    Gateways/Multi-WAN
    Gateways, including dynamic gateways, are specified under System > Routing
    Gateways can have custom monitor IPs
    Gateways can have a custom weight, allowing load balancing to have ratios between WANs of different speeds
    Gateways can have custom latency, loss, and downtime trigger levels.
    Gateway monitoring via icmp is now configurable.
    You can have multiple gateways per interface
    Multi-WAN is now handled via gateway groups
    Gateway groups can include multiple tiers with any number of gateways on each, for complex failover and load balancing scenarios.
    General Web GUI
    Set to HTTPS by default, HTTP redirects to HTTPS port
    Dashboard and widgets added
    System > Advanced screen split into multiple tabs, more options available.
    SMTP email alerts and growl alerts
    New default theme – pfsense_ng
    Some community-contributed themes added
    Contextual help available on every page in the web interface, linking to a webpage containing help and documentation specific to that page.
    Help menu for quick access to online resources (forum, wiki, paid support, etc.)
    Aliases
    Aliases may be nested (aliases in aliases)
    Alias autocomplete is no longer case sensitive
    IP Ranges in Aliases
    More Alias entries supported
    Bulk Alias importing
    URL Aliases
    URL Table Aliases – uses a pf persist table for large (40,000+) entry lists
    Firewall
    Traffic shaper rewritten – now handles any combination of multi-WAN and multi-LAN interfaces. New wizards added.
    Layer7 protocol filtering
    EasyRule – add firewall rules from log view (and from console!)
    Floating rules allow adding non-interface specific rules
    Dynamically sized state table based on amount of RAM in the system
    More Advanced firewall rule options
    FTP helper now in kernel
    TFTP proxy
    Schedule rules are handled in pf, so they can use all the rule options.
    State summary view, report shows states grouped by originating IP, destination IP, etc.
    NAT
    All of the NAT screens were updated with additional functionality
    Port forwards can now handle create/update associated firewall rules automatically, instead of just creating unrelated entries.
    Port forwards can optionally use “rdr pass” so no firewall rule is needed.
    Port forwards can be disabled
    Port forwards can be negated (“no rdr”)
    Port forwards can have source and destination filters
    NAT reflection improvements, including NAT reflection for 1:1 NAT
    Per-entry NAT reflection overrides
    1:1 NAT rules can specify a source and destination address
    1:1 NAT page redesigned
    Outbound NAT can now translate to an address pool (Subnet of IPs or an alias of IPs) of multiple external addresses
    Outbound NAT rules can be specified by protocol
    Outbound NAT rules can use aliases
    Improved generation of outbound NAT rules when switching from automatic to manual.
    IPsec
    Multiple IPsec p2′s per p1 (multiple subnets)
    IPsec xauth support
    IPsec transport mode added
    IPsec NAT-T
    Option to push settings such as IP, DNS, etc, to mobile IPsec clients (mod_cfg)
    Mobile IPsec works with iOS and Android (Certain versions, see Mobile IPsec on 2.0)
    More Phase 1/2 options can be configured, including the cipher type/strength
    ipsec-tools version 0.8
    User Manager
    New user manager, centralizing the various user configuration screens previously available.
    Per-page user access permissions for administrative users
    Three built-in authentication types – local users, LDAP and RADIUS.
    Authentication diagnostics page

    Certificate Manager

    Certificate manager added, for handling of IPsec, web interface, user, and OpenVPN certificates.
    Handles creation/import of Certificate Authorities, Certificates, Certificate Revocation lists.
    Eliminates the need for using command line tools such as EasyRSA for managing certificates.
    OpenVPN
    OpenVPN wizard guides through making a CA/Cert and OpenVPN server, sets up firewall rules, and so on. Greatly simplifies the process of creating a remote access OpenVPN server.
    OpenVPN filtering – an OpenVPN rules tab is available, so OpenVPN interfaces don’t have to be assigned to perform filtering.
    OpenVPN client export package – provides a bundled Windows installer with certificates, Viscosity export, and export of a zip file containing the user’s certificate and configuration files.
    OpenVPN status page with connected client list — can also kill client connections
    User authentication and certificate management
    RADIUS and LDAP authentication support
    Captive Portal
    Voucher support added
    Multi-interface capable
    Pass-through MAC bandwidth restrictions
    Custom logout page contents can be uploaded
    Allowed IP addresses bandwidth restrictions
    Allowed IP addresses supports IP subnets
    “Both” direction added to Allowed IP addresses
    Pass-through MAC Auto Entry – upon successful authentication, a pass-through MAC entry can be automatically added.
    Ability to configure calling station RADIUS attributes
    Wireless
    Virtual AP (VAP) support added
    more wireless cards supported with the FreeBSD 8.1 base
    Server Load Balancing
    relayd and its more advanced capabilities replace slbd.
    Other
    L2TP VPN added
    DNS lookup page added
    PFTop and Top in GUI – realtime updates
    Config History now includes a diff feature
    Config History has download buttons for prior versions
    Config History has mouseover descriptions
    CLI filter log parser (/usr/local/bin/filterparser)
    Switched to PHP 5.2.x
    IGMP proxy added
    Multiple Dynamic DNS account support, including full multi-WAN support and multi-accounts on each interface.
    DynDNS Account Types supported are:
    DNS-O-Matic
    DynDNS (dynamic)
    DynDNS (static)
    DynDNS (custom)
    DHS
    DyNS
    easyDNS
    No-IP
    ODS.org
    ZoneEdit
    Loopia
    freeDNS
    DNSexit
    OpenDNS
    Namecheap.com
    More interface types (VPNs, etc) available for packet capture
    DNS Forwarder is used by the firewall itself for DNS resolution (configurable) so the firewall benefits from faster resolution via multiple concurrent queries, sees all DNS overrides/DHCP registrations, etc.
    DHCP Server can now handle arbitrary numbered options, rather than only options present in the GUI.
    Automatic update now also works for NanoBSD as well as full installs
    More configuration sections can be synchronized via XMLRPC between CARP nodes.
    Download New Installation
    pfSense Upgrade Guide
     

    Pfsense Thailand Copyright © 2011-2012 | Powered by Blogger