วิธีสร้างเซิร์ฟเวอร์ IPsec VPN ของคุณเองใน Linux
มีประโยชน์มากมายของการใช้ VPN (Virtual Private Network) ซึ่งบางส่วนรวมถึงการรักษาความปลอดภัยบนอินเทอร์เน็ตด้วยการเข้ารหัสการรับส่งข้อมูลของคุณและช่วยให้คุณเข้าถึงเนื้อหา/ไซต์/เว็บแอปพลิเคชันที่ถูกบล็อกได้จากทุกที่ ไม่ต้องพูดถึง VPN ยังช่วยให้คุณท่องอินเทอร์เน็ตโดยไม่เปิดเผยตัวตนอีกด้วย
ในบทความนี้ คุณจะได้เรียนรู้วิธีตั้งค่าเซิร์ฟเวอร์ IPsec/L2TP VPN ของคุณเองอย่างรวดเร็วและอัตโนมัติใน CentOS/RHEL, Ubuntu และ การกระจาย Debian Linux
ข้อกำหนดเบื้องต้น:
- 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 โปรดดูคำแนะนำของเรา:
- วิธีตั้งค่า VPN ที่ใช้ IPSec ด้วย Strongswan บน Debian และ Ubuntu
- วิธีตั้งค่า VPN ที่ใช้ IPSec ด้วย Strongswan บน CentOS/RHEL 8
ณ จุดนี้ เซิร์ฟเวอร์ VPN ของคุณเองก็เปิดใช้งานแล้ว คุณสามารถแบ่งปันข้อสงสัยหรือให้ข้อเสนอแนะโดยใช้แบบฟอร์มความคิดเห็นด้านล่าง