วิธีสร้าง VPN ฟรีด้วย Amazon Web Services

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

หากต้องการเรียนรู้วิธีสร้าง VPN ของคุณเองคุณสามารถดูวิดีโอหรืออ่านบทความ โปรดทราบว่าบทความมีคำสั่งที่มีประโยชน์และข้อความการกำหนดค่าที่คุณสามารถคัดลอกและวางเพื่อความสะดวกของคุณ. ปรับปรุง: วิดีโอใช้ easy-rsa เวอร์ชันเก่าที่ไม่สามารถใช้งานได้อีกต่อไป เมื่อคุณไปถึงเครื่องหมาย 8 นาทีโปรดอ้างอิงบทความนี้สำหรับการกำหนดค่า easy-rsa 3.

เริ่มต้นใช้งาน

Amazon Web Services เสนอพื้นที่เซิร์ฟเวอร์เสมือนฟรีหนึ่งปีให้คุณใช้แบนด์วิดท์เวลาและพื้นที่น้อยกว่าที่กำหนดไว้ล่วงหน้า แม้ว่าคุณจะเกินขีด จำกัด นั้นค่าใช้จ่ายในการเรียกใช้อิมเมจเซิร์ฟเวอร์บน Elastic Compute Cloud ของ Amazon อาจน้อยกว่าที่คุณจะจ่ายสำหรับการสมัคร VPN.

ที่นี่เราจะอธิบายสองวิธีที่แตกต่างกันในการใช้บริการ Elastic Cloud ของ Amazon หรือที่เรียกว่า EC2 เพื่อโอนการเชื่อมต่อของคุณผ่านสถานที่ส่วนตัวที่คุณเลือก: SSH Tunneling และ OpenVPN แต่ละคนมีข้อดีและข้อเสียดังนั้นใช้สิ่งที่คุณคิดว่าเหมาะสมกับความต้องการของคุณ ไม่ว่าคุณจะเลือกแบบใดคุณจะต้องการสิ่งต่อไปนี้:

  • บัญชี Amazon Web Services สิ่งนี้ต้องใช้บัตรเครดิต แต่คุณจะถูกเรียกเก็บเงินสำหรับสิ่งที่คุณใช้เท่านั้นซึ่งอาจไม่เป็นเช่นนั้นหากคุณระมัดระวังเกี่ยวกับสิ่งที่คุณทำ.
  • PuTTy ถ้าคุณอยู่บน Windows OpenSSH ผ่าน Cygwin เป็นอีกทางเลือกหนึ่ง แต่ฉันคิดว่ามันเป็นความเจ็บปวด คอมพิวเตอร์ Linux และ Mac มีพรอมต์ SSH ในกล่องและเทอร์มินัลแล้ว คุณจะต้องมีโปรแกรมสร้างรหัสน้องสาวของ PuTTy นั่นก็คือ PuttyGen.
  • WinSCP หรือไคลเอนต์ FTP ที่เทียบเท่าเพื่อย้ายไฟล์ระหว่างเครื่องคอมพิวเตอร์และอินสแตนซ์ EC2 ของคุณ.
  • ความรู้พื้นฐานในการทำงานของคำสั่ง Unix และการทำงานของเซิร์ฟเวอร์กับลูกค้าจะมีประโยชน์อย่างมากในการแก้ไขปัญหาหากมีบางอย่างไม่เป็นไปตามที่วางแผนไว้.
  • OpenVPN GUI ติดตั้งในตำแหน่งเริ่มต้นและด้วยการตั้งค่าเริ่มต้นบนพีซีของคุณ

การตั้งค่า AWS

เมื่อคุณลงชื่อสมัครใช้บัญชี Amazon Web Services ต่อไปนี้เป็นวิธีเปิดเซิร์ฟเวอร์ที่เราจะใช้สำหรับ VPN ของเรา ::

  1. ลงชื่อเข้าใช้บัญชี Amazon Web Service ของคุณและมุ่งหน้าไปยังแดชบอร์ด EC2.
    aws ปรับปรุง VPN 1
  2. ด้านขวาบนคุณสามารถเลือกตำแหน่งที่เราจะตั้งค่า VPN ของคุณ คลิกเรียกใช้อินสแตนซ์.ec2 vpn 1
  3. เลือกสิ่งใดก็ตามที่ Linux AMI ถูกระบุว่าเป็น“ ระดับสิทธิ์ฟรี” ในขณะที่เขียนบทความนี้นั่นคือ Amazon Linux AMI ไปที่ขั้นตอนต่อไป.ec2 vpn 2
  4. ที่นี่เลือกอินสแตนซ์ t2.micro ที่มีสิทธิ์ในระดับฟรี คลิก “ตรวจสอบและเปิดตัว”ec2 vpn 3
  5. ในหน้าถัดไปให้คลิก แก้ไขกลุ่มความปลอดภัย.
  6. คุณจะต้องแก้ไขกลุ่มความปลอดภัยเพื่ออนุญาตการรับส่งข้อมูลจากคอมพิวเตอร์ของคุณเพื่อเข้าถึง VPN หรือพร็อกซี คุณควรมีกฎหนึ่งข้อสำหรับเชื่อมต่อกับเซิร์ฟเวอร์ของคุณผ่าน SSH ซึ่งเราจะใช้ในภายหลัง เราจะต้องเพิ่มรายการอื่นเพื่ออนุญาตการเชื่อมต่อ OpenVPN ซึ่งใช้พอร์ต 1194 เป็นค่าเริ่มต้น เพื่อความเรียบง่ายภายใต้ ขาเข้า คลิกแท็บ เพิ่มกฎ ปุ่ม. ตั้ง ชนิด ถึง UDP ที่กำหนดเอง,  ช่วงพอร์ต ถึง 1194, และแหล่งที่มาของ ทุกแห่ง.ปุ่ม EC2 เพิ่มกฎความปลอดภัยกลุ่ม
  7. ตี บันทึก.กลุ่มความปลอดภัย EC2 ทุกที่ที่พอร์ต 1194
  8. คลิก “ตรวจสอบและเปิดตัว” จากนั้นคลิก “เปิดตัว” ในหน้าถัดไป.
  9. ตอนนี้คุณต้องการสร้างคู่กุญแจซึ่งงานประเภทใดเช่นรหัสผ่านที่คุณจะใช้เชื่อมต่อกับเซิร์ฟเวอร์เสมือนที่คุณกำลังสร้าง เลือก “สร้างคู่คีย์ใหม่” จากเมนูแบบเลื่อนลงและตั้งชื่อตามที่คุณต้องการ คลิกที่ปุ่มเพื่อดาวน์โหลดคู่กุญแจ เก็บไว้ในที่ปลอดภัย.ec2 vpn 5
  10. หน้าถัดไปควรเตือนคุณว่ามีการเปิดตัวอินสแตนซ์ เลื่อนไปที่ด้านล่างและกด “ดูอินสแตนซ์” ที่นี่คุณจะเห็นรายการของอินสแตนซ์ใด ๆ ที่คุณเปิดใช้ซึ่งหากนี่เป็นครั้งแรกที่คุณใช้ EC2 เพียงครั้งเดียว.

เชื่อมต่อกับเซิร์ฟเวอร์ด้วย PuTTy

เราสามารถเชื่อมต่อกับอินสแตนซ์ EC2 ของเราด้วย PuTTy แต่ก่อนอื่นเราจะต้องมีไฟล์คีย์ที่เหมาะสมในการเชื่อมต่อ เมื่อคุณติดตั้ง PuTTy คุณควรติดตั้ง PuTTygen เช่นกัน ไปข้างหน้าและเรียกใช้ทันที PuTTy และ PuTTygen ทั้งคู่วิ่งออกจากกล่องทันทีเป็นไฟล์. exe โดยไม่จำเป็นต้องติดตั้ง.ec2 vpn 7

  1. เปิด PuTTygen คลิกโหลด.
  2. นำทางไปยังไฟล์คู่คีย์. pem ที่คุณดาวน์โหลดมาก่อนและโหลดลงใน Puttygen คุณจะต้องเลือกตัวเลือกเพื่อแสดงไฟล์ทุกประเภทสำหรับคีย์. pem ที่จะแสดง กด“ บันทึกคีย์ส่วนตัว” ชื่อไฟล์จะต้องเหมือนกับคีย์. pem คุณสามารถสร้างวลีรหัสผ่านสำหรับคีย์ส่วนตัวได้หากต้องการ.ec2 vpn 6
  3. ตอนนี้ปิด PuTTygen แล้วเปิด PuTTy คัดลอก IP สาธารณะของอินสแตนซ์ของคุณจากคอนโซล EC2 ไปยัง PuTTy พิมพ์ชื่อเซสชันของคุณแล้วกดบันทึก.ec2 vpn 8
  4. ในบานหน้าต่างด้านซ้ายนำทางไปยัง“ Auth” ภายใต้ SSH คลิกปุ่มเรียกดูที่ด้านล่างและไปที่คีย์ส่วนตัวที่คุณเพิ่งสร้างขึ้น.
  5. กลับไปที่หน้าเซสชันหลักตั้งชื่อและบันทึกโปรไฟล์เซสชันเพื่อให้คุณสามารถเชื่อมต่อได้อย่างรวดเร็วในครั้งต่อไปที่คุณใช้ PuTTy จากนั้นคลิกเปิด.
  6. ข้อความแจ้งจะปรากฏขึ้นเพื่อขอชื่อผู้ใช้ของคุณ สิ่งนี้จะแตกต่างกันไปตามประเภทของเซิร์ฟเวอร์ที่คุณตั้งค่าไว้ที่จุดเริ่มต้น สำหรับ Amazon Linux AMI เป็น“ ผู้ใช้ ec2”.

SSH Tunneling (อุปกรณ์เสริม)

ในการเริ่มต้นเราจะเปลี่ยนเส้นทางการรับส่งข้อมูลเว็บผ่านอินสแตนซ์ที่เราสร้างขึ้นโดยใช้ SSH tunneling และ proxy นี่เป็นวิธีที่รวดเร็วและสกปรกในการหลีกเลี่ยงไฟร์วอลล์หรือการล็อกทางภูมิศาสตร์ มันไม่ได้เป็น VPN – มันเป็นวิธีที่ดีที่สุดสำหรับการเข้าชมเว็บที่มีแสงน้อยและจะไม่ทำงานกับทุกอย่าง แต่มันง่ายกว่ามากในการตั้งค่า อย่างไรก็ตาม, การตั้งค่า SSH tunneling เป็นทางเลือกทั้งหมด, ดังนั้นอย่าลังเลที่จะข้ามไปยังส่วนถัดไป.

ec2 vpn 9

เปิด PuTTy และไปที่ Tunnels ด้วยความเจ็บปวดทางซ้าย เพิ่มพอร์ต 8080 ด้วย Auto และ Dynamic ที่เลือก กลับไปที่หน้าเซสชันแล้วกดบันทึกอีกครั้งเพื่อให้คุณไม่ต้องดำเนินการทั้งหมดอีกครั้ง จากนั้นคลิกเปิด.

ec2 vpn 10

ตอนนี้คุณเชื่อมต่อกับเซิร์ฟเวอร์แล้ว แต่คุณยังต้องกำหนดเส้นทางการรับส่งข้อมูลผ่านเว็บเบราว์เซอร์ของคุณ หากคุณใช้ Firefox สิ่งนี้สามารถทำได้ในการตั้งค่าเบราว์เซอร์ของคุณ หากคุณใช้ Chrome ให้ดาวน์โหลดส่วนขยาย Proxy Switchy. หากคุณต้องการสร้าง VPN ที่ทำงานได้อย่างสมบูรณ์แทนที่จะเป็นเพียงพร็อกซีสำหรับเบราว์เซอร์ของคุณให้ข้ามไปยังส่วนถัดไปทันที.

ใน Firefox:

  • ไปที่เครื่องมือ > ตัวเลือก > สูง > เครือข่าย > สัมพันธ์ > การตั้งค่า > การกำหนดค่าพร็อกซีด้วยตนเอง
  • ตั้งค่า SOCKS Host เป็น 127.0.0.1 และพอร์ตเป็น 8080 (หรืออะไรก็ตามที่คุณตั้งค่าช่องสัญญาณอุโมงค์เป็นบน PuTTy).
  • คลิกตกลงเพื่อบันทึก

ใน Chrome Proxy Switchy

  • หน้าการตั้งค่าควรปรากฏขึ้นทันทีที่คุณติดตั้งส่วนขยายหรือคลิกที่ไอคอนที่ด้านบนขวาของ Chrome แล้วคลิกตัวเลือก.
  • ตั้งชื่อโปรไฟล์ตามที่คุณต้องการ ภายใต้การกำหนดค่าด้วยตนเองตั้งค่าโฮสต์ SOCKS เป็น 127.0.0.1 และพอร์ตเป็น 8080 (หรืออะไรก็ตามที่คุณตั้งค่าพอร์ตอุโมงค์เป็น PuTTy ปล่อยให้ทุกอย่างว่างเปล่า.
  • กดปุ่มบันทึกจากนั้นคลิกที่ไอคอนอีกครั้งเพื่อเลือกโปรไฟล์พร็อกซีของคุณ.

ec2 vpn 11

Voila! ปริมาณการใช้เบราว์เซอร์ของคุณกำลังถูกส่งผ่านช่องทางผ่านอินสแตนซ์ EC2 ของคุณ สิ่งนี้จะทำงานได้ดีสำหรับการเรียกดูขั้นพื้นฐาน แต่บางเว็บไซต์อาจพบปัญหาและแอพอื่น ๆ นอกเหนือจากเว็บเบราว์เซอร์ของคุณจะยังคงใช้การเชื่อมต่อโดยตรง หากต้องการสร้าง VPN เต็มรูปแบบที่เปลี่ยนเส้นทางการรับส่งข้อมูลอินเทอร์เน็ตทั้งหมดของคุณให้อ่าน.

ตั้งค่า OpenVPN บนเซิร์ฟเวอร์และไคลเอนต์

OpenVPN เป็นเครื่องมือโอเพ่นซอร์สฟรีที่จะช่วยให้คุณเรียกใช้ VPN แบบเต็มผ่านอินสแตนซ์ Amazon EC2 ของคุณ นั่นหมายถึงปริมาณการใช้งานอินเทอร์เน็ตทั้งหมดของคุณไม่เพียง แต่ปริมาณการใช้งานเว็บเบราว์เซอร์ของคุณเท่านั้น โปรแกรมเดสก์ท็อปเช่น Steam หรือ Spotify ทำงานได้ดีขึ้นด้วยวิธีนี้.

ec2 vpn 12

เชื่อมต่ออินสแตนซ์ EC2 ของคุณโดยใช้ PuTTy ตามคำแนะนำด้านบน คุณควรมีพรอมต์คำสั่งต่อหน้าคุณที่ระบุว่า Amazon Linux AMI รันคำสั่งต่อไปนี้ (พิมพ์หรือคัดลอก / วางและกด Enter):

sudo yum install -y openvpn
sudo modprobe iptable_nat
echo 1 | sudo tee / proc / sys / net / ipv4 / ip_forward
sudo iptables -t nat-POSTROUTING -s 10.4.0.1/2 -o eth0 -j MASQUERADE
sudo iptables -t nat-POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

เพียงบันทึกย่อที่นี่ คุณอาจสังเกตเห็นในภาพหน้าจอที่ฉันพยายามดาวน์โหลดและติดตั้ง OpenVPN อย่างไม่ถูกต้องโดยใช้คำสั่ง“ apt-get” แทน“ yum” Linux รุ่นอื่น ๆ ยังคงใช้ apt-get ดังนั้นถ้า yum ไม่ได้ผลสำหรับคุณลองคำสั่งนี้แทน:

sudo apt-get install -y openvpn

ข้อความจำนวนมากจะกะพริบบนพรอมต์คำสั่งขณะติดตั้ง OpenVPN อีกสามคำสั่งตั้งค่าการส่งต่อ IP ซึ่งจำเป็นสำหรับ VPN ในการทำงาน.

วิธีที่ # 1: การตั้งค่าการตรวจสอบ PKI ด้วย easy-rsa (แนะนำ)

ในเวอร์ชันดั้งเดิมของบทช่วยสอนนี้เราตั้งค่า OpenVPN ด้วยการเข้ารหัสแบบคงที่และไฟล์. vpn ในขณะที่ใช้งานได้จะอนุญาตให้เชื่อมต่ออุปกรณ์ได้ครั้งละหนึ่งอุปกรณ์เท่านั้นและความจริงที่ว่าคุณใช้กุญแจเพียงครั้งเดียวหมายความว่าปลอดภัยน้อยกว่า ตอนนี้เราขอแนะนำให้ผู้อ่านใช้ easy-rsa เพื่อตั้งค่าการตรวจสอบความปลอดภัยซึ่งมีความปลอดภัยมากขึ้นและอนุญาตให้มีการเชื่อมต่ออุปกรณ์จำนวนเท่าใดก็ได้ อย่างไรก็ตามหากคุณต้องการเวอร์ชั่นเก่าที่มีการเข้ารหัสแบบคงที่ให้ข้ามไปโดยคลิกที่นี่.

อัปเดตพฤษภาคม [year]: บทความนี้ได้รับการอัปเดตสำหรับใช้กับ easy-rsa 3.

การตั้งค่าเซิร์ฟเวอร์ OpenVPN และ easyrsa

เป็นการดีที่คุณจะสร้างคีย์และใบรับรองทั้งหมดที่คุณต้องการบนอุปกรณ์แยกจากเซิร์ฟเวอร์ VPN เพื่อความปลอดภัยสูงสุด อย่างไรก็ตามสิ่งนี้อาจค่อนข้างน่าเบื่อดังนั้นเราจะสร้างข้อมูลประจำตัวลูกค้าและเซิร์ฟเวอร์บนเซิร์ฟเวอร์จากนั้นย้ายไฟล์ที่เราต้องการจากที่นั่น.

  1. Easy-rsa ไม่สามารถใช้ได้ในรายการแพคเกจ yum เริ่มต้นดังนั้นเราจะต้องเปิดใช้งาน repo ของ EPEL เพื่อติดตั้ง พิมพ์ต่อไปนี้ในเทอร์มินัล PuTTy และกด Enter:
    • sudo yum ติดตั้ง easy-rsa -y –enablerepo = epel
  2. สร้างไดเรกทอรีอย่างง่ายในไดเรกทอรีติดตั้ง OpenVPN ของคุณ คัดลอกไฟล์จากการติดตั้ง easy-rsa ของคุณ (เวอร์ชันล่าสุดคือ 3.0.3 ณ เวลาที่เขียน) ไปยังไดเรกทอรีใหม่:
    • sudo mkdir / etc / openvpn / easy-rsa
      cd / etc / openvpn / easy-rsa
      sudo cp -Rv /usr/share/easy-rsa/3.0.3/*
  3. ตอนนี้เราพร้อมที่จะตั้งค่าหน่วยงานออกใบรับรองของเราแล้ว เริ่มต้นด้วยการเริ่มต้นไดเรกทอรี PKI ใหม่ (โครงสร้างพื้นฐานคีย์สาธารณะ) จากนั้นสร้างคีย์คู่ของหน่วยงานออกใบรับรอง.
    • sudo ./easyrsa init-pki
      sudo ./easyrsa build-ca
  4. ป้อนข้อความรหัสผ่าน PEM สิ่งนี้ไม่จำเป็น แต่แนะนำ หากมีใครได้รับ CA ของคุณอย่างใดอย่างหนึ่งพวกเขาจะไม่สามารถสร้างคีย์หรือลงชื่อใบรับรองโดยไม่ต้องใช้รหัสผ่าน.
  5. คุณจะได้รับแจ้งให้ป้อนชื่อสามัญ เรียกมันว่าสิ่งที่คุณต้องการหรือเพียงแค่กด เข้าสู่ เพื่อปล่อยให้เป็นค่าเริ่มต้น.
  6. ต่อไปเราจะสร้างคีย์ Diffie-Hellman ซึ่งให้การรักษาความลับล่วงหน้าที่สมบูรณ์แบบ:
    • sudo ./easyrsa gen-dh
  7. คำสั่งนี้อาจใช้เวลาสักครู่ มันจะสร้างไฟล์ที่เรียกว่า dh.pem. เมื่อเสร็จแล้วเราจะไปยังข้อมูลรับรองเซิร์ฟเวอร์ เพื่อความสะดวกเราจะไม่ป้องกันรหัสผ่านเหล่านี้ แต่คุณยินดีอย่างแน่นอนหากคุณต้องการความปลอดภัยที่สูงขึ้น.
    • sudo ./easyrsa เซิร์ฟเวอร์ gen-req ไม่สนับสนุน
  8. ตี เข้าสู่ เพื่อปล่อยให้ชื่อสามัญเป็น เซิร์ฟเวอร์. เมื่อสร้างคู่คีย์แล้วให้ลงนามใบรับรอง:
    • sudo ./easyrsa เซิร์ฟเวอร์เซิร์ฟเวอร์ sign-req
  9. ชนิด ใช่ เพื่อยืนยันและป้อนรหัสผ่าน CA หากคุณตั้งไว้ก่อนหน้านี้.
  10. ตอนนี้เราจะตั้งค่าลูกค้า อีกครั้งเราจะไม่ตั้งรหัสผ่านในสิ่งนี้ แต่คุณยินดีต้อนรับ โปรดทราบว่าหากคุณต้องการกำหนดค่าเริ่มต้น VPN อัตโนมัติวิธีที่ดีที่สุดคืออย่าตั้งรหัสผ่าน.
    • ./ easyrsa nopass ไคลเอนต์ gen-req
  11. ตี เข้าสู่ เพื่อปล่อยให้ชื่อสามัญเป็น ลูกค้า. ตอนนี้เซ็นชื่อ:
    • sudo ./easyrsa ลูกค้าลูกค้าที่ลงชื่อเข้าใช้
  12. ชนิด ใช่ เพื่อยืนยันและป้อนรหัสผ่าน CA หากคุณตั้งค่าไว้.
  13. ต่อไปเราจะสร้างคีย์ TLS สำหรับการส่งต่อความลับอย่างสมบูรณ์แบบใน OpenVPN ซึ่งทำให้มั่นใจได้ว่าข้อมูลเซสชันที่ผ่านมาไม่สามารถถอดรหัสแม้ว่าผู้โจมตีจะได้รับรหัสส่วนตัวของเรา.
    • cd / etc / openvpn
      openvpn –genkey –secret pfs.key
  14. ตอนนี้เราได้สร้างไฟล์ข้อมูลรับรองทั้งหมดที่เราต้องการ ต่อไปเราจะสร้างไฟล์กำหนดค่าเซิร์ฟเวอร์ OpenVPN เราได้เขียนบทความให้คุณด้านล่างดังนั้นสิ่งที่คุณต้องทำคือคัดลอกและวางหากคุณได้ติดตามตั้งแต่ต้น เริ่มต้นโดยไปที่ไดเรกทอรี OpenVPN และสร้างไฟล์ใหม่:
    • cd / etc / openvpn
      sudo nano server.conf
  15. ตอนนี้คุณอยู่ในเครื่องมือแก้ไขข้อความนาโน คัดลอกและวางการกำหนดค่าต่อไปนี้จากนั้นกด CTRL + O เพื่อบันทึก, เข้าสู่ เพื่อยืนยันและ CTRL + X เพื่อออก (คำแนะนำ: คุณสามารถวางข้อความจากคลิปบอร์ดลงใน PuTTy เพียงแค่คลิกขวา)
    • พอร์ต 1194
      proto udp
      dev tun
      ca /etc/openvpn/easy-rsa/pki/ca.crt
      ใบรับรอง /etc/openvpn/easy-rsa/pki/issued/server.crt
      คีย์ /etc/openvpn/easy-rsa/pki/private/server.key
      dh /etc/openvpn/easy-rsa/pki/dh.pem
      รหัส AES-256-CBC
      รับรองความถูกต้อง SHA512
      เซิร์ฟเวอร์ 10.8.0.0 255.255.255.0
      ดัน "redirect-gateway def1 bypass-dhcp"
      ดัน "dhcp-option DNS 8.8.8.8"
      ดัน "dhcp-option DNS 8.8.4.4"
      ifconfig-pool-persist ipp.txt
      keepalive 10 120
      comp-LZO
      ยังคงมีอยู่ที่สำคัญ
      ยังคงมีอยู่-TUN
      สถานะ openvpn-status.log
      บันทึกต่อท้าย openvpn.log
      กริยา 3
      TLS เซิร์ฟเวอร์
      tls-auth /etc/openvpn/pfs.key
  16. เซิร์ฟเวอร์ได้รับการกำหนดค่าแล้ว เราแค่ต้องเริ่มต้น OpenVPN เราจะเริ่มเป็นบริการเพื่อให้แม้หลังจากที่คุณปิด PuTTy มันจะยังคงทำงานต่อไปจนกว่าเซิร์ฟเวอร์จะปิดตัวเองหรือคุณสิ้นสุดบริการ.
    • บริการ sudo openvpn เริ่มต้น

แก้ไข: ผู้อ่านบางคนชี้ให้เห็นว่าเซิร์ฟเวอร์ VPN หยุดทำงานหลังจากรีบูตเซิร์ฟเวอร์หรือบำรุงรักษา สิ่งนี้เกิดขึ้นเป็นครั้งคราวด้วยอินสแตนซ์ของชั้น EC2 ขนาดเล็ก เพื่อป้องกันสิ่งนี้เราจะใช้คำสั่งและทุบตีมารยาทสคริปต์ของ Matt Doyle ในส่วนความคิดเห็น เริ่มต้นด้วยคำสั่งนี้:

sudo chkconfig openvpn บน

ในขณะที่คุณยังอยู่ใน etc / openvpn ให้ใช้ เซิร์ฟเวอร์นาโน เพื่อสร้างไฟล์ข้อความใหม่และวางต่อไปนี้ลงในมัน:

#! / bin / ดวลจุดโทษ
echo 1 | sudo tee / proc / sys / net / ipv4 / ip_forward
sudo iptables -t nat-POSTROUTING -s 10.4.0.1/2 -o eth0 -j MASQUERADE
sudo iptables -t nat-POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

ใช้ CTRL + O เพื่อบันทึกและ CTRL + X เพื่อออก.

คำสั่งจะตรวจสอบให้มั่นใจว่า OpenVPN เริ่มต้นขึ้นเมื่อเซิร์ฟเวอร์บู๊ตและสคริปต์จะตรวจสอบให้แน่ใจว่ามีการตั้งค่าเส้นทางที่จำเป็นใน iptables เพื่ออนุญาตการรับส่งข้อมูลของ OpenVPN.

การตั้งค่าไคลเอนต์ OpenVPN และ easyrsa

ตอนนี้เซิร์ฟเวอร์ได้รับการกำหนดค่าแล้วเราจำเป็นต้องตั้งค่าไคลเอนต์ ในการดำเนินการดังกล่าวเราจะต้องย้ายใบรับรองและไฟล์สำคัญที่จำเป็นจากเซิร์ฟเวอร์ของเราไปยังอุปกรณ์ลูกค้าของเรา ด้วย PuTTy ยังคงเปิดและรันเป็น root อันดับแรกเราต้องเปลี่ยนการอนุญาตไฟล์เหล่านี้เพื่อให้เราสามารถเข้าถึงได้ เราจะทำให้พวกเขาทั้งหมดอยู่ในที่เดียวเพื่อทำให้สิ่งต่าง ๆ ง่ายขึ้น.

  1. ในการเข้าถึงไฟล์เหล่านี้เราจำเป็นต้องเป็นผู้ใช้รูท หากต้องการทำเช่นนั้นให้พิมพ์:
    • sudo su
  2. สิ่งนี้จะทำให้คุณเป็นผู้ใช้รูทและให้สิทธิ์การดูแลระบบแก่คุณ ตอนนี้ป้อนคำสั่งต่อไปนี้ คำสั่งสุดท้ายลดสิทธิ์ที่จำเป็นในการเข้าถึงไฟล์เหล่านี้ โปรดทราบว่าการเปลี่ยนกลับเป็นสิ่งสำคัญเมื่อเสร็จสิ้น.
    • cd / etc / openvpn
      คีย์ mkdir
      cp pfs.key keys
      คีย์ cp /etc/openvpn/easy-rsa/pki/dh.pem
      cp /etc/openvpn/easy-rsa/pki/ca.crt คีย์
      cp /etc/openvpn/easy-rsa/pki/private/ca.key คีย์
      cp /etc/openvpn/easy-rsa/pki/private/client.key
      cp /etc/openvpn/easy-rsa/pki/issued/client.crt คีย์
      chmod 777 *
  3. ในการลบไฟล์ออกจากเซิร์ฟเวอร์ของเราและไปยังพีซีเราจะใช้โปรแกรมฟรีที่เรียกว่า WinSCP เพียงใช้ตัวเลือกการติดตั้งเริ่มต้น เมื่อดำเนินการเสร็จสิ้นหน้าต่างจะปรากฏขึ้นพร้อมท์ให้คุณนำเข้ารายละเอียดการตรวจสอบสิทธิ์เซิร์ฟเวอร์ของคุณจาก PuTTy เลือกรายการที่เราทำด้านบนและดำเนินการต่อ.ec2 vpn 14
  4. เลือก myvpn (หรือสิ่งที่คุณตั้งชื่อของคุณ) และกดปุ่มแก้ไข พิมพ์ใน EC2 ผู้ใช้ ภายใต้ชื่อผู้ใช้ คลิกที่เข้าสู่ระบบ.
  5. หากนี่ไม่ใช่ครั้งแรกที่คุณใช้ WinSCP คุณสามารถตั้งค่าไฟล์. pkk ที่คุณใช้ใน PuTTy ได้โดยคลิก แก้ไข และ สูง. ไปที่ SSH > การรับรอง > ไฟล์รหัสส่วนตัว และนำทางไปยังไฟล์ PPK ของคุณ.
  6. ในฟิลด์ชื่อโฮสต์บนหน้าหลักคุณสามารถป้อนที่อยู่ IP หรือโดเมนของอินสแตนซ์ EC2 ของคุณ อย่าลืมบันทึกการตั้งค่าของคุณแล้วกด เข้าสู่ระบบ.easyrsa 6
  7. ในบานหน้าต่างด้านขวานำทางไปยังไดเรกทอรีที่มีไฟล์สำคัญของคุณในกรณีนี้ / etc / OpenVPN / คีย์easyrsa 7
  8. เน้นหกไฟล์ที่คุณต้องการ: client.crt, client.key, ca.crt, dh.pempfs.key, และ ca.key (ไม่แสดงเนื่องจากการอัปเดตบทความ) ตีสีเขียว ดาวน์โหลด ปุ่ม. ไม่สำคัญว่าพวกเขาจะไปที่ใดในบานหน้าต่างด้านซ้ายตราบใดที่คุณไม่ต้องการสิทธิ์ผู้ดูแลระบบในการเข้าถึง เราวางไฟล์ไว้บนเดสก์ท็อปเพื่อความเรียบง่าย อย่างไรก็ตามคุณจะต้องเก็บไฟล์ ca.key ไว้ในที่ปลอดภัยเช่นไดรฟ์ USB.
  9. จุดจบสุดท้ายที่เราต้องทำคือ ลบไฟล์ ca.key ออกจากเซิร์ฟเวอร์. CA หรือผู้มีสิทธิ์ออกใบรับรองจะใช้ในการลงนามใบรับรองลูกค้าและหากมีการบุกรุกคุณจะไม่สามารถเชื่อถือใบรับรองที่ออกโดย CA นั้นอีกครั้ง แม้ว่าสิ่งนี้ไม่จำเป็นสำหรับ VPN ในการทำงาน แต่เราขอแนะนำอย่างยิ่งให้ทำ, โดยเฉพาะอย่างยิ่งหากคุณไม่ได้ตั้งรหัสผ่านสำหรับ CA. ตรวจสอบให้แน่ใจว่าคุณได้คีย์และใบรับรองทั้งหมดสำหรับทุกอุปกรณ์ที่คุณต้องการเชื่อมต่อก่อนที่จะลบไฟล์ หากคุณต้องการเพิ่มมากขึ้นในภายหลังคุณจะต้องย้ายไฟล์ ca.key กลับไปที่เซิร์ฟเวอร์.
  10. เมื่อคุณมีคีย์ CA เก็บไว้อย่างปลอดภัยที่อื่นนอกเหนือจากเซิร์ฟเวอร์ไปที่ PuTTy และลบทั้ง ca.key ดั้งเดิมและสำเนาที่เราทำจากเซิร์ฟเวอร์:
    • sudo rm /etc/openvpn/easy-rsa/pki/private/ca.key
      sudo rm /etc/openvpn/keys/ca.key
  11. เมื่อไฟล์ดาวน์โหลดแล้วเราจำเป็นต้องเรียกคืนการอนุญาตที่เข้มงวดกว่าบนเซิร์ฟเวอร์ดังนั้นไม่ใช่ทุกคนที่สามารถเข้าถึงได้ ย้อนกลับไปใน PuTTy:
    • cd / etc / openvpn / keys
      sudo chmod 600 *
  12. บนพีซีของคุณตัดและวางไฟล์ห้าไฟล์จากที่ใดก็ตามที่คุณดาวน์โหลดลงในโฟลเดอร์กำหนดค่า OpenVPN ของคุณ ในกรณีนี้ C: // ไฟล์โปรแกรม // OpenVPN // config.
  13. สุดท้ายเราต้องสร้างไฟล์กำหนดค่าไคลเอนต์ เปิดโปรแกรมแก้ไขข้อความธรรมดาที่ชอบ (Notepad ทำงานได้ดี) โดยคลิกขวาและเลือก ทำงานในฐานะผู้ดูแลระบบ และวางการกำหนดค่าต่อไปนี้แทนที่ YOUR.EC2.INSTANCE.IP ด้วยที่อยู่ IP ของอินสแตนซ์ EC2 ของคุณ:
    • ลูกค้า
      dev tun
      proto udp
      ห่างไกล YOUR.EC2.INSTANCE.IP 1194
      ca ca.crt
      ใบรับรองลูกค้า
      คีย์ลูกค้าคีย์
      tls-version-min 1.2
      tls-cipher TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256: TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256: TLS-ECDHE-RSA-พร้อม -AES-256-GCM-SHA384 : TLS-DHE-อาร์เอสที่มีการเข้ารหัส AES-256-CBC-SHA256
      รหัส AES-256-CBC
      รับรองความถูกต้อง SHA512
      resolv-retry อนันต์
      รับรองความถูกต้องลองอีกครั้งไม่มี
      nobind
      ยังคงมีอยู่ที่สำคัญ
      ยังคงมีอยู่-TUN
      เซิร์ฟเวอร์ ns-cert-type
      comp-LZO
      กริยา 3
      TLS-ลูกค้า
      tls-auth pfs.key
  14. นี่เป็นไฟล์กำหนดค่า Windows สำหรับ OpenVPN GUI ดังนั้นเราจะบันทึกเป็น client.ovpn. ไคลเอนต์ OpenVPN อื่น ๆ อาจใช้ส่วนขยาย. config แทน ไม่ว่าในกรณีใดโปรดตรวจสอบให้แน่ใจว่าเครื่องมือแก้ไขข้อความของคุณไม่ได้เพิ่มส่วนขยาย. txt หลังจากบันทึก บันทึกลงในตำแหน่งเดียวกับไฟล์คีย์และไฟล์รับรองของคุณ: C: \\ โปรแกรมไฟล์ \\ OpenVPN \\ configeasyrsa 8
  15. ตอนนี้รัน OpenVPN GUI ในโหมดผู้ดูแลระบบโดยคลิกขวาและเลือก ทำงานในฐานะผู้ดูแลระบบ. คลิกขวาที่ไอคอนในซิสเต็มเทรย์ของคุณและเชื่อมต่อกับ ลูกค้า การกำหนดค่าเราเพิ่งตั้งค่า หน้าจอสถานะพร้อมข้อความจำนวนมากจะกระพริบไปทั่วหน้าจอจากนั้นไอคอนจะเปลี่ยนเป็นสีเขียว.

ขอแสดงความยินดี! ตอนนี้คุณเชื่อมต่อกับ VPN แบบโฮมเมดของคุณแล้ว.

วิธีที่ # 2: การเข้ารหัสแบบคงที่ (ง่ายกว่า แต่ไม่แนะนำ)

ในวิธีนี้เราจะสร้างรหัสแชร์สำหรับการตรวจสอบสิทธิ์ มันเป็นเหมือนไฟล์ที่ทำหน้าที่เป็นรหัสผ่าน การตั้งค่าทำได้ง่ายขึ้น แต่อนุญาตให้เชื่อมต่ออุปกรณ์เดียวกับ VPN ได้ตลอดเวลาและมีความปลอดภัยน้อยกว่าวิธี easy-rsa ด้านบน.

  1. ใน PuTTy Type ในคำสั่งต่อไปและกด Enter:
    • cd / etc / openvpn
      sudo openvpn –genkey –secret ovpn.key
  2. ตอนนี้เรากำลังจะสร้างไฟล์กำหนดค่าเซิร์ฟเวอร์สำหรับ VPN ของเรา พิมพ์คำสั่งต่อไปนี้เพื่อสร้างไฟล์ข้อความเปล่าในเท็กซ์เอดิเตอร์ขั้นพื้นฐานภายในเทอร์มินัล:
    • sudo nano openvpn.conf
  3. พิมพ์การกำหนดค่าต่อไปนี้ คุณสามารถค้นหาตัวเลือกเพิ่มเติมได้จากเว็บไซต์ OpenVPN หากคุณต้องการเล่นกับสิ่งนี้ในภายหลัง แต่ให้แน่ใจว่าคุณรู้ว่าคุณกำลังทำอะไรก่อน.ec2 vpn 13
    • พอร์ต 1194
      proto tcp-server dev tun1
      ifconfig 10.4.0.1 10.4.0.2
      สถานะเซิร์ฟเวอร์ -tcp.log
      กริยา 3
      secret ovpn.key
  4. ตอนนี้กด CTRL + O (นั่นคือตัวอักษร ‘O’ ไม่ใช่ศูนย์) และกด Enter เพื่อบันทึกไฟล์ จากนั้นกด CTRL + X เพื่อออกจากโปรแกรมแก้ไขข้อความ กลับไปที่พรอมต์คำสั่งถึงเวลาที่จะเปิดใช้งาน OpenVPN:
    • บริการ sudo openvpn เริ่มต้น
  5. ต่อไปเราต้องรับรหัสที่ใช้ร่วมกันจากเซิร์ฟเวอร์ไปยังเครื่องคอมพิวเตอร์ของคุณ ก่อนอื่นเราต้องเปลี่ยนการอนุญาตในไฟล์นั้นเพื่อให้เราสามารถเข้าถึงได้โดยใช้คำสั่งต่อไปนี้:
    • sudo chmod 777 ovpn.key
  6. หาก ณ จุดใดก็ตามที่คุณปิด PuTTy โดยไม่ตั้งใจหรือเพิ่งออกมาคุณสามารถนำทางกลับไปยังไดเรกทอรีการติดตั้ง VPN ที่เปิดอยู่หลังจากเชื่อมต่อใหม่โดยใช้คำสั่งนี้:
    • cd / etc / openvpn
  7. เพื่อให้ง่ายที่สุดเท่าที่จะเป็นไปได้ดาวน์โหลดและติดตั้งแอปพลิเคชั่นฟรีนี้ WinSCP (ผู้ใช้ Mac จะต้องค้นหาไคลเอนต์ FTP อื่นไม่ต้องกังวลมีจำนวนมาก) เพียงใช้ตัวเลือกการติดตั้งเริ่มต้น เมื่อดำเนินการเสร็จสิ้นหน้าต่างจะปรากฏขึ้นพร้อมท์ให้คุณนำเข้ารายละเอียดการตรวจสอบสิทธิ์เซิร์ฟเวอร์ของคุณจาก PuTTy เลือกรายการที่เราทำด้านบนและดำเนินการต่อ.ec2 vpn 14
  8. เลือก myvpn (หรือสิ่งที่คุณตั้งชื่อของคุณ) และกดปุ่มแก้ไข พิมพ์“ ผู้ใช้ ec2” ภายใต้ชื่อผู้ใช้ คลิกที่เข้าสู่ระบบ.ec2 vpn 15
  9. ตอนนี้คุณสามารถย้ายไฟล์ระหว่างเซิร์ฟเวอร์อินสแตนซ์ EC2 ของคุณและเครื่องคอมพิวเตอร์ของคุณ ที่แผงด้านขวานำทางขึ้นไปให้ไกลที่สุดจากนั้นไปที่ etc / openvpn ที่นี่คุณจะพบไฟล์ ovpn.key ที่เราต้องการ คลิกและลากลงในโฟลเดอร์ที่คุณเลือก แต่จำไว้ว่าคุณวางไว้ที่ไหนเพราะเราต้องการย้ายในภายหลัง.ec2 vpn 16
  10. ตอนนี้คุณมีรหัสแล้วเราจำเป็นต้องใช้สิทธิ์เดิมอีกครั้งดังนั้นไม่ใช่ทุกคนที่สามารถคว้ามันได้ กลับไปที่เทอร์มินัล PuTTy ของคุณป้อน:
    • sudo chmod 600 ovpn.key
  11. ได้เวลาดาวน์โหลดไคลเอนต์และ GUI ของ OpenVPN สำหรับคอมพิวเตอร์ของคุณ ไปที่หน้าดาวน์โหลด OpenVPN และเลือกรุ่นที่เหมาะสมสำหรับระบบปฏิบัติการของคุณ ติดตั้งด้วยการตั้งค่าเริ่มต้น.
  12. เรียกใช้ OpenVPN และควรปรากฏเป็นไอคอนในซิสเต็มเทรย์ของคุณ เปิดไฟล์ explorer และนำทางไปยังตำแหน่งที่คุณติดตั้ง OpenVPN ซึ่งอาจอยู่ในโฟลเดอร์ Program Files ของคุณ ย้ายไฟล์ opvn.key ที่เราดาวน์โหลดจากเซิร์ฟเวอร์ไปยังโฟลเดอร์ config ที่นี่ (C: / Program Files / OpenVPN / config …หากคุณใช้ไดเรกทอรีการติดตั้งเริ่มต้นบน Windows).
  13. ต่อไปเราต้องสร้างไฟล์กำหนดค่าสำหรับเครื่องในท้องถิ่นเพื่อให้ตรงกับที่เราทำบนเซิร์ฟเวอร์ของเรา เปิด Notepad และวางสิ่งต่อไปนี้แทนที่ที่อยู่ IP หลังจาก “remote” ด้วย IP ของอินสแตนซ์ EC2 ของคุณ (หากคุณลืมให้ค้นหาในคอนโซล AWS ของคุณภายใต้ EC2 อินสแตนซ์) ตรวจสอบอีกครั้งว่าพา ธ ไฟล์เต็มชี้ไปที่คีย์ของคุณถูกต้อง.
    • proto tcp-client
      ห่างไกล
      พอร์ต 1194
      dev tun
      ความลับ "C: \\ โปรแกรมไฟล์ \\ OpenVPN \\ config \\ ovpn.key"
      redirect-gateway def1
      ifconfig 10.4.0.2 10.4.0.1
  14. บันทึกเป็น myconfig.ovpn (ตรวจสอบให้แน่ใจว่าเครื่องมือแก้ไขข้อความของคุณไม่ได้ผนวกเป็น myconfig.ovpn.txt โดยไม่ได้ตั้งใจ) ในโฟลเดอร์ config ของการติดตั้ง OpenVPN ของคุณซึ่งเป็นตำแหน่งเดียวกับไฟล์ opvn.key ของคุณ.ec2 vpn 17
  15. คลิกขวาที่ไอคอน OpenVPN ในซิสเต็มเทรย์ของคุณแล้วคลิกออกเพื่อออก ตอนนี้เริ่มต้นขึ้นอีกครั้ง – จากทางลัดบนเดสก์ท็อปหรือจากโฟลเดอร์ Program Files – แต่คราวนี้ใช้คลิกขวาแล้วกด“ Run as administrator” หากคุณไม่ได้ใช้ OpenVPN ในฐานะผู้ดูแลระบบของ Windows อาจเป็นไปได้ว่ามันจะไม่ทำงาน.ec2 vpn 18
  16. คลิกขวาที่ไอคอนถาดระบบแล้วคลิกเชื่อมต่อ OpenVPN GUI จะปรากฏขึ้นเพื่อแสดงสถานะการเชื่อมต่อของคุณ หากใช้งานได้ไอคอนถาดระบบจะเปลี่ยนเป็นสีเขียว ไปที่ Google แล้วพิมพ์“ IP ของฉันคืออะไร” และควรส่งคืนที่อยู่ IP ของ Amazon EC2 Instance ของคุณ.ec2 vpn 19

ขอแสดงความยินดีคุณเพิ่งสร้าง VPN ของคุณเอง!

หมายเหตุเพิ่มเติม

หากคุณต้องการปกป้อง VPN ของคุณจากการตรวจสอบแพ็คเก็ตลึกเทคนิคที่ใช้โดยระบบการเซ็นเซอร์ในสถานที่เช่นจีนและซีเรียในการบล็อกการเชื่อมต่อ OpenVPN ลองดูบทแนะนำการตั้งค่า Obfsproxy โปรดสังเกตว่าบทช่วยสอนนี้เขียนขึ้นเป็นภาคต่อของวิธีที่เก่ากว่า # 2 ในบทความนี้ดังนั้นหากคุณใช้ easy-rsa จะต้องมีการกำหนดค่าเพิ่มเติมบางอย่าง.

อย่าลืมรักษาแบนด์วิดท์ของคุณให้อยู่ในระดับที่ จำกัด ของ Amazon ฟรี วิธีที่ง่ายที่สุดในการทำเช่นนี้คือคลิกขวาบนอินสแตนซ์ของคุณในคอนโซล AWS และคลิกที่ลิงค์“ เพิ่ม / แก้ไขสัญญาณเตือน” คุณสามารถตั้งค่าเซิร์ฟเวอร์ของคุณให้หยุดหรือยกเลิกหลังจากไม่มีการใช้งานสองสามชั่วโมง เทียร์ฟรีอนุญาตให้ 750 ชั่วโมงต่อเดือน (ซึ่งครอบคลุมทั้งเดือน) ดังนั้นคุณไม่จำเป็นต้องทำเช่นนี้ ผู้ใช้เหล่านั้นผ่านปีที่ว่างในการให้บริการครั้งแรกหรือทำสิ่งต่างๆกับเซิร์ฟเวอร์ได้มากขึ้นสามารถป้องกันการเรียกเก็บเงินที่ไม่จำเป็นสำหรับเวลาเซิร์ฟเวอร์ที่ไม่ได้ใช้.

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

เข้ารหัสเซิร์ฟเวอร์ DNS ลงใน VPN ของคุณ

หากคุณต้องการตั้งค่าเซิร์ฟเวอร์ DNS เฉพาะให้ใช้กับ VPN ของคุณมีตัวเลือกสองสามตัว.

ในการ“ พุช” เซิร์ฟเวอร์ DNS ไปยังไคลเอนต์ให้เพิ่มบรรทัดนี้ในการกำหนดค่าเซิร์ฟเวอร์ สิ่งนี้จะมีผลกับอุปกรณ์ทั้งหมดที่เชื่อมต่อกับ VPN ของคุณ (รวมเครื่องหมายคำพูด):

ดัน "dhcp-option DNS 45.56.117.118"

หรือคุณสามารถตั้งค่า DNS ในการกำหนดค่าไคลเอนต์แต่ละรายการโดยใช้:

dhcp-option DNS 45.56.117.118

ในตัวอย่างเหล่านี้ฉันใช้เซิร์ฟเวอร์ DNS สาธารณะ OpenNIC ที่มีการบันทึกที่ไม่ระบุชื่อในสหรัฐอเมริกา คุณสามารถค้นหาเซิร์ฟเวอร์ OpenNIC ในประเทศที่คุณเลือกและกรองตามคุณสมบัติเช่นการบันทึกที่ไม่ระบุชื่อและ DNSCrypt ที่นี่.

ขอขอบคุณเป็นพิเศษกับบล็อกของ Dctr Watson ซึ่งฉันพึ่งพาเป็นแหล่งข้อมูลเมื่อเขียนบทความนี้.

Jon Watson (ไม่มีความสัมพันธ์ฉันคิดว่า) มีส่วนทำให้บทความนี้.

About the author