ค้นหาเว็บไซต์

วิธีสร้างเซิร์ฟเวอร์ IPsec VPN ของคุณเองใน Linux


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

ในบทความนี้ คุณจะได้เรียนรู้วิธีตั้งค่าเซิร์ฟเวอร์ IPsec/L2TP VPN ของคุณเองอย่างรวดเร็วและอัตโนมัติใน CentOS/RHEL, Ubuntu และ การกระจาย Debian Linux

ข้อกำหนดเบื้องต้น:

  1. CentOS/RHEL หรือ Ubuntu/Debian VPS (Virtual Private Server) ใหม่จากผู้ให้บริการใดๆ เช่น Linode

การตั้งค่าเซิร์ฟเวอร์ IPsec/L2TP VPN ใน Linux

ในการตั้งค่าเซิร์ฟเวอร์ VPN เราจะใช้คอลเลกชันเชลล์สคริปต์ที่ยอดเยี่ยมที่สร้างโดย Lin Song ซึ่งจะติดตั้ง Libreswan เป็นเซิร์ฟเวอร์ IPsec และ xl2tpd ในฐานะผู้ให้บริการ L2TP ข้อเสนอนี้ยังรวมถึงสคริปต์สำหรับเพิ่มหรือลบผู้ใช้ VPN อัปเกรดการติดตั้ง VPN และอื่นๆ อีกมากมาย

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

อย่างไรก็ตาม หากคุณต้องการใช้ข้อมูลประจำตัวของคุณเอง ขั้นแรกคุณต้องสร้าง รหัสผ่าน และ PSK ที่รัดกุมดังที่แสดง

openssl rand -base64 10
openssl rand -base64 16

จากนั้น ตั้งค่าที่สร้างขึ้นเหล่านี้ตามที่อธิบายไว้ในคำสั่งต่อไปนี้ ค่าทั้งหมดจะต้องอยู่ใน 'เครื่องหมายคำพูดเดี่ยว' ดังที่แสดง

  • VPN_IPSEC_PSK – คีย์ IPsec ที่แชร์ล่วงหน้าของคุณ
  • VPN_USER – ชื่อผู้ใช้ VPN ของคุณ
  • VPN_PASSWORD – รหัสผ่าน VPN ของคุณ
---------------- On CentOS/RHEL ---------------- 
wget https://git.io/vpnsetup-centos -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sh vpnsetup.sh

---------------- On Debian and Ubuntu ----------------
wget https://git.io/vpnsetup -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sudo sh vpnsetup.sh

แพ็คเกจหลักที่จะติดตั้งคือ bind-utils, net-tools, bison, flex, gcc, libcap-ng-devel, libcurl-devel, libselinux-devel, nspr-devel, nss-devel, pam-devel, xl2tpd, iptables-services, systemd-devel, fipscheck-devel, libevent-devel และ failed2ban (เพื่อปกป้อง SSH) และการขึ้นต่อกันตามลำดับ จากนั้นจะดาวน์โหลด คอมไพล์ และติดตั้ง Libreswan จากแหล่งที่มา เปิดใช้งานและเริ่มบริการที่จำเป็น

เมื่อการติดตั้งเสร็จสมบูรณ์ รายละเอียด VPN จะแสดงดังภาพหน้าจอต่อไปนี้

ถัดไป คุณต้องตั้งค่าไคลเอนต์ VPN สำหรับเดสก์ท็อปหรือแล็ปท็อปที่มีอินเทอร์เฟซผู้ใช้แบบกราฟิก โปรดดูคำแนะนำนี้: วิธีตั้งค่าไคลเอนต์ L2TP/Ipsec VPN บน Linux

หากต้องการเพิ่มการเชื่อมต่อ VPN ในอุปกรณ์เคลื่อนที่ เช่น โทรศัพท์ Android ให้ไปที่ การตั้งค่า –> เครือข่ายและอินเทอร์เน็ต (หรือ ไร้สายและเครือข่าย –> เพิ่มเติม) –> ขั้นสูง –> VPN เลือกตัวเลือกเพื่อเพิ่ม VPN ใหม่ ควรตั้งค่าประเภท VPN เป็น IPSec Xauth PSK จากนั้นใช้เกตเวย์ VPN และข้อมูลรับรองด้านบน

วิธีเพิ่มหรือลบผู้ใช้ VPN ใน Linux

หากต้องการสร้างผู้ใช้ VPN ใหม่หรืออัปเดตผู้ใช้ VPN ที่มีอยู่ด้วยรหัสผ่านใหม่ ให้ดาวน์โหลดและใช้สคริปต์ add_vpn_user.sh โดยใช้คำสั่ง wget ต่อไปนี้

wget -O add_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/add_vpn_user.sh
sudo sh add_vpn_user.sh 'username_to_add' 'user_password'

หากต้องการลบผู้ใช้ VPN ให้ดาวน์โหลดและใช้สคริปต์ del_vpn_user.sh

wget -O del_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/del_vpn_user.sh
sudo sh del_vpn_user.sh 'username_to_delete'

วิธีอัปเกรดการติดตั้ง Libreswan ใน Linux

คุณสามารถอัปเกรดการติดตั้ง Libreswan ได้โดยใช้สคริปต์ vpnupgrade.sh หรือ vpnupgrade_centos.sh ตรวจสอบให้แน่ใจว่าได้แก้ไขตัวแปร SWAN_VER เป็นเวอร์ชันที่คุณต้องการติดตั้งภายในสคริปต์

---------------- On CentOS/RHEL ---------------- 
wget https://git.io/vpnupgrade-centos -O vpnupgrade.sh && sh vpnupgrade.sh

---------------- On Debian and Ubuntu ----------------
wget https://git.io/vpnupgrade -O vpnupgrade.sh && sudo sh  vpnupgrade.sh

วิธีถอนการติดตั้งเซิร์ฟเวอร์ VPN ใน Linux

หากต้องการถอนการติดตั้งการติดตั้ง VPN ให้ทำดังต่อไปนี้

บน RHEL/CentOS

yum remove xl2tpd

จากนั้นเปิดไฟล์การกำหนดค่า /etc/sysconfig/iptables และลบกฎที่ไม่จำเป็นออก และแก้ไข /etc/sysctl.conf และ /etc/rc.local และลบบรรทัดหลังความคิดเห็น # เพิ่มโดยสคริปต์ hwdsl2 VPN ในทั้งสองไฟล์

บนเดเบียน/อูบุนตู

sudo apt-get purge xl2tpd

จากนั้น แก้ไขไฟล์ /etc/iptables.rules configuration และลบกฎที่ไม่จำเป็นออก นอกจากนี้ ให้แก้ไข /etc/iptables/rules.v4 หากมีอยู่

จากนั้นแก้ไขไฟล์ /etc/sysctl.conf และ /etc/rc.local ลบบรรทัดหลังความคิดเห็น # เพิ่มโดยสคริปต์ hwdsl2 VPN ในทั้งสองไฟล์ อย่าลบ ทางออก 0 หากมีอยู่

หรือคุณสามารถลบไฟล์และไดเร็กทอรีบางรายการที่สร้างขึ้นระหว่างการตั้งค่า VPN ได้

rm -f /etc/ipsec.conf* /etc/ipsec.secrets* /etc/ppp/chap-secrets* /etc/ppp/options.xl2tpd* /etc/pam.d/pluto /etc/sysconfig/pluto /etc/default/pluto 
rm -rf /etc/ipsec.d /etc/xl2tpd

หากต้องการตั้งค่า VPN แบบ site-to-site IPSec ด้วย Strongswan โปรดดูคำแนะนำของเรา:

  1. วิธีตั้งค่า VPN ที่ใช้ IPSec ด้วย Strongswan บน Debian และ Ubuntu
  2. วิธีตั้งค่า VPN ที่ใช้ IPSec ด้วย Strongswan บน CentOS/RHEL 8

ณ จุดนี้ เซิร์ฟเวอร์ VPN ของคุณเองก็เปิดใช้งานแล้ว คุณสามารถแบ่งปันข้อสงสัยหรือให้ข้อเสนอแนะโดยใช้แบบฟอร์มความคิดเห็นด้านล่าง