คำเตือน: PPTP เป็นโพรโทคอลที่ไม่ปลอดภัย! ไม่เพียง แต่การเข้ารหัสจะถูกละเมิด แต่ยังส่งการตรวจสอบความถูกต้องของคุณเป็นข้อความที่ชัดเจนและถูกดักจับได้ง่าย มีการประเมินว่าจำนวนเวลาที่ต้องใช้ในการเดรัจฉานบังคับให้รหัสผ่านนั้นใกล้เคียงกับเวลาที่ต้องใช้ในการเดรัจฉานบังคับคีย์ DES เดี่ยว พิจารณาใช้ OpenVPN หรือสถาปัตยกรรม VPN อื่นแทน PPTP!
ฉันใช้คู่มือนี้เพื่อตั้งค่าเซิร์ฟเวอร์ PPTP VPN บนเซิร์ฟเวอร์ Ubuntu 12.04 ของฉัน
หากต้องการสรุปประเด็นหลักในลิงก์ให้ทำดังนี้:
1: ติดตั้งและ pptpd
สามารถนำมาใช้ในสถานที่ของ ufw แต่เพื่อประโยชน์ของความสะดวกสบายที่ดีกว่าถ้าคุณไม่ทราบว่าufw
iptables
ufw
iptables
sudo apt-get install pptpd ufw
2: เปิดพอร์ตที่จำเป็น คู่มือแนะนำ 22 (SSH) และ 1723 สำหรับ pptp vpn
sudo ufw อนุญาต 22
sudo ufw อนุญาต 1723
sudo ufw เปิดใช้งาน
3: /etc/ppp/pptpd-options
แก้ไข เปิดไฟล์ด้วยโปรแกรมแก้ไขที่คุณชื่นชอบ (ของฉัน nano ดังนั้นคำสั่งสำหรับฉันคือsudo nano /etc/ppp/pptpd-options
) และคอมเม้นท์บรรทัดเหล่านี้โดยใส่คำสั่งไว้ข้าง#
หน้าพวกเขาหากคุณต้องการให้มันใช้งานได้กับทุกระบบปฏิบัติการ:
ปฏิเสธ-PAP
ปฏิเสธ-CHAP
ปฏิเสธ-MSCHAP
คุณสามารถแสดงความคิดเห็นบรรทัดนี้หากคุณต้องการปิดการเข้ารหัส require-mppe-128
4: ขณะแก้ไข/etc/ppp/pptpd-options
ให้เพิ่มเซิร์ฟเวอร์ DNS สำหรับ VPN ตัวอย่างนี้ใช้เซิร์ฟเวอร์ OpenDNS:
ms-dns 208.67.222.222
ms-dns 208.67.220.220
5: /etc/pptpd.conf
แก้ไข เปิดไฟล์ด้วยเครื่องมือแก้ไขที่คุณชื่นชอบ (ของฉันนาโนดังนั้นคำสั่งสำหรับฉันคือsudo nano /etc/pptpd.conf
) คุณต้องเพิ่ม IP VPN ท้องถิ่นสำหรับระบบดังนั้นเพิ่ม:
localip 10.99.99.99
remoteip 10.99.99.100-199
หากระบบของคุณเป็น VPS ให้ใช้ IP สาธารณะสำหรับ "localip" หากไม่ได้อยู่ในเครือข่ายท้องถิ่นให้ใช้ IP เครือข่ายของคอมพิวเตอร์ของคุณ ใช้ IP และช่วงที่แตกต่างกันหาก IP เหล่านี้มีอยู่ในซับเน็ตของคุณ! หากคุณไม่รู้จัก IP สาธารณะของ VPS ของคุณให้ค้นหาโดยใช้dig +short myip.opendns.com @resolver1.opendns.com
6: /etc/ppp/chap-secrets
แก้ไข เปิดไฟล์ด้วยโปรแกรมแก้ไขที่คุณชื่นชอบ (ของฉันนาโนดังนั้นคำสั่งสำหรับฉันคือsudo nano /etc/ppp/chap-secrets
) และเพิ่มข้อมูลรับรองความถูกต้อง
รูปแบบสำหรับ/etc/ppp/chap-secrets
คือ:
[ชื่อผู้ใช้] [บริการ] [รหัสผ่าน] [ที่อยู่ IP ที่อนุญาต]
ตัวอย่างจะเป็น: sampleuser pptpd samplepassword *
7: รีสตาร์ท pptpd รันคำสั่งนี้ในเทอร์มินัล:sudo /etc/init.d/pptpd restart
8: /etc/sysctl.conf
แก้ไข เปิดไฟล์ด้วยเครื่องมือแก้ไขที่คุณชื่นชอบ (ของฉันนาโนดังนั้นคำสั่งสำหรับฉันคือsudo nano /etc/sysctl.conf
) ยกเลิกการคอมเม้นท์บรรทัดต่อไปนี้ (โดยการลบ#
ที่จุดเริ่มต้นของมัน) ใน/etc/sysctl.conf
: รีnet.ipv4.ip_forward=1
โหลดการกำหนดค่า: sudo sysctl -p
9: ขั้นตอนนี้จะถือว่าคุณมี ufw
แก้ไข/etc/default/ufw
และเปลี่ยนตัวเลือกDEFAULT_FORWARD_POLICY
จากDROP
เป็นACCEPT
10: ขั้นตอนนี้จะถือว่าคุณมี ufw
แก้ไข/etc/ufw/before.rules
และเพิ่มสิ่งต่อไปนี้ในตอนต้น/etc/ufw/before.rules
หรือก่อนหน้า*filter
กฎ (แนะนำ):
# กฎตาราง NAT
* NAT
: การยอมรับการโพสต์ [0: 0]
# อนุญาตให้ส่งต่อไปยัง eth0
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE
# ประมวลผลกฎตาราง NAT
COMMIT
หากคุณมีเคอร์เนลเวอร์ชัน 3.18 และใหม่กว่า (คุณสามารถตรวจสอบได้โดยการรันuname -r
) ให้เพิ่มบรรทัดต่อไปนี้ก่อน# drop INVALID packets ...
บรรทัด:
-A ufw-before-input -p 47 -j ACCEPT
11: รีสตาร์ทไฟร์วอลล์เพื่อรีเฟรชชุดกฎและใช้กฎที่เราเพิ่มใน/etc/ufw/*.rules
ไฟล์: sudo ufw disable && sudo ufw enable
คำเตือน:หากคุณมีพอร์ตอื่นที่คุณต้องการเปิดเช่นสำหรับ HTTPS ถ้าเซิร์ฟเวอร์ของคุณโฮสต์เว็บไซต์คุณจะต้องเพิ่มพอร์ตเหล่านั้นในรายการที่อนุญาตด้วยsudo ufw allow <PORT>