วิธีที่ง่ายที่สุดในการติดตั้ง Ubuntu เป็นเซิร์ฟเวอร์ VPN


68

ฉันรู้ว่ามีบทเรียนมากมายในเน็ตสำหรับการตั้งค่าไคลเอนต์ VPN และเซิร์ฟเวอร์

ฉันพบว่าง่าย / สั้นฉันสนใจเฉพาะในส่วนของเซิร์ฟเวอร์

สำหรับลูกค้าฉันจะใช้ OS X ดังนั้นฉันชอบโซลูชันที่ใช้L2TP over IPsecหรือPPTPเพราะฉันคิดว่า Cisco IPsec จะต้องเสียค่าใช้จ่าย

ฉันไม่ต้องการใช้เวลาหลายชั่วโมงในการตั้งค่า คุณรู้ไหมว่ามีคนสร้างสคริปต์การตั้งค่าแล้ว :)

หมายเหตุ: ฉันกำลังใช้อินสแตนซ์ขนาดเล็กของ EC2 ที่ใช้งาน Ubuntu 12.04


3
หมายเหตุ: CISCO IPSec สามารถทำได้ผ่าน StrongSwan และการกำหนดค่าจำนวนมาก แต่มันยุ่งยาก PPTP ไม่ปลอดภัยอีกต่อไป AN2 L2TP ผ่าน IPSec ต้องการทั้งการกำหนดค่า L2TP และ IPSec เลือกเวลาว่างแม้ว่าคำตอบของฉันจะอธิบาย PPTP
Thomas Ward

คำตอบ:


24

UPDATE : ในฐานะของ Sierra macOS ไม่สนับสนุน PPTP vpn อีกต่อไป คำตอบนี้ไม่ถูกต้องสำหรับลูกค้า macOS Sierra และเกิน

PPTP ผ่าน PoPToP เป็นเรื่องง่าย

  1. apt-get install pptpd
  2. แก้ไข/etc/pptpd.confและตั้งค่าตัวเลือก remoteip เป็นช่วงในเครือข่ายของคุณที่ไม่ได้ให้บริการโดยเซิร์ฟเวอร์ DHCP ของคุณ
  3. แก้ไข/etc/ppp/chap-secretsและเพิ่มชื่อผู้ใช้และรหัสผ่าน

เช่น

vpnuser pptpd vpnpassword *

นี่คือทั้งหมดที่ใช้ในการตั้งค่า pptp ตอนนี้ทดสอบกับลูกค้า OS X ของคุณ


ฉันยังสงสัยว่าค่า localip และ remoteip ใดที่ปลอดภัยที่สุดโดยพิจารณาว่าฉันจะเชื่อมต่อกับเซิร์ฟเวอร์นี้จากที่ใดก็ได้ แน่นอนค่าเริ่มต้นด้วย192.168.0.และ192.168.1.อาจเป็นหนึ่งในที่เลวร้ายที่สุดที่เป็นไปได้
โซริน

12 พฤษภาคม 13:28:06 zork pppd [9447]: ปลั๊กอิน /usr/lib/pptpd/pptpd-logwtmp.so โหลด 12 พฤษภาคม 13:28:06 zork pppd [9447]: pppd 2.4.5 เริ่มโดย root, uid 0 12 พฤษภาคม 13:28:06 zork pppd [9447]: การใช้อินเตอร์เฟส ppp0 12 พฤษภาคม 13:28:06 zork pppd [9447 ]: เชื่อมต่อ: ppp0 <--> / dev / pts / 3 พฤษภาคม 12 13:28:36 zork pppd [9447]: Hangup (SIGHUP) 12 พฤษภาคม 13:28:36 zork pppd [9447]: โมเด็ม hangup พฤษภาคม 12 13 : 28: 36 zork pppd [9447]: การเชื่อมต่อถูกยกเลิก 12 พฤษภาคม 13:28:36 zork pppd [9447]: ออกไปมันยังใช้งานไม่ได้! คำแนะนำของคุณไม่สมบูรณ์ (ยัง);)
โซริน

ใช่สิ่งนี้ไม่ทำงาน
bkerensa

1
ไม่ได้ผลสำหรับฉัน
Tyler Gillies

@SorinSbarnea ips เหล่านั้นเป็นส่วนตัวและไม่เคยผ่านอินเทอร์เน็ตดังนั้นฉันจึงไม่ทราบว่าคุณหมายถึงอะไรโดย "ปลอดภัยที่สุด" คุณจะโชคดีถ้าพวกเขาไม่ได้อยู่ในช่วง IP เดียวกันกับร้านกาแฟหรือที่ทำงานที่คุณเชื่อมต่ออยู่ ลอง 192.168.42. * :)
Jay _silly_evarlast_ Wren

86

คำเตือน: PPTP เป็นโพรโทคอลที่ไม่ปลอดภัย! ไม่เพียง แต่การเข้ารหัสจะถูกละเมิด แต่ยังส่งการตรวจสอบความถูกต้องของคุณเป็นข้อความที่ชัดเจนและถูกดักจับได้ง่าย มีการประเมินว่าจำนวนเวลาที่ต้องใช้ในการเดรัจฉานบังคับให้รหัสผ่านนั้นใกล้เคียงกับเวลาที่ต้องใช้ในการเดรัจฉานบังคับคีย์ DES เดี่ยว พิจารณาใช้ OpenVPN หรือสถาปัตยกรรม VPN อื่นแทน PPTP!

ฉันใช้คู่มือนี้เพื่อตั้งค่าเซิร์ฟเวอร์ PPTP VPN บนเซิร์ฟเวอร์ Ubuntu 12.04 ของฉัน


หากต้องการสรุปประเด็นหลักในลิงก์ให้ทำดังนี้:

1: ติดตั้งและ pptpd สามารถนำมาใช้ในสถานที่ของ ufw แต่เพื่อประโยชน์ของความสะดวกสบายที่ดีกว่าถ้าคุณไม่ทราบว่าufwiptablesufwiptables

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>


4
ตอนนี้ฉันต้องทำยังไงดี: D ฉันทำงานบนเซิร์ฟเวอร์แล้วไม่รู้จะเชื่อมต่อกับมันได้อย่างไร
Jamie Hutber

1
@Jamie มีเอกสารและรายการอื่น ๆ อีกมากมายที่นี่ใน Ask Ubuntu เกี่ยวกับการเชื่อมต่อ VPN ไม่ต้องพูดถึงเอกสารภายใน Network Manager คำถามนี้ครอบคลุมเฉพาะการตั้งค่า VPN และฝั่งเซิร์ฟเวอร์ ไม่ใช่การเชื่อมต่อกับมันเป็นส่วนหนึ่ง
Thomas Ward

: D การตอบสนองที่เร็วมาก: DI คิดว่าฉันอาจใช้งานได้แล้วฉันต้องตั้งค่าบางอย่างไม่ถูกต้อง สิ่งนี้กล่าวว่า ufw ทำงานและอนุญาตพอร์ตส่วนใหญ่ ฉันจะเล่นกับ iptables เพื่อดูว่าสิ่งนี้ทำให้ฉันอยู่ดีหรือไม่
Jamie Hutber

@Jamie ฉันสามารถให้คุณใช้คำสั่ง iptables เมื่อฉันกลับบ้านคุณชอบ iptables เพื่อ ufw
Thomas Ward

1
iptables / netfilter ใช้กับ ufw, ufw เป็นเพียง nicer กับกฎและคำสั่งที่จัดการสำหรับผู้ใช้
Thomas Ward

19

PPTP VPN บน Ubuntu 12.04 ตัวอย่าง

นี่คือบทแนะนำสั้น ๆ เกี่ยวกับการตั้งค่าเซิร์ฟเวอร์ PPTP VPN พื้นฐานบน Ubuntu 12.04

ติดตั้งแพคเกจที่จำเป็น

                          sudo apt-get install ppp pptpd

กำหนดค่า PPTP IP Ranges บนเซิร์ฟเวอร์

                          sudo nano /etc/pptpd.conf

เพิ่มบรรทัดต่อไปนี้ในตอนท้าย

                          localip 10.89.64.1
                          remoteip 10.89.64.100-150

สิ่งนี้ตั้งค่าเซิร์ฟเวอร์ PPTP เพื่อใช้ IP 10.89.64.1 ในขณะที่กระจายช่วง IP 10.89.64.100 ถึง 10.89.64.150 ไปยังไคลเอนต์ PPTP เปลี่ยนสิ่งเหล่านี้ตามที่คุณต้องการตราบเท่าที่เป็นที่อยู่ IP ส่วนตัวและไม่ขัดแย้งกับที่อยู่ IP ที่เซิร์ฟเวอร์ของคุณใช้ไปแล้ว

กำหนดค่าเซิร์ฟเวอร์ DNS ที่จะใช้เมื่อลูกค้าเชื่อมต่อกับเซิร์ฟเวอร์ PPTP นี้

                          sudo nano /etc/ppp/pptpd-options

แก้ไขหรือเพิ่มบรรทัดต่อไปนี้ในที่สุด

                          ms-dns 8.8.8.8
                          ms-dns 8.8.4.4

สร้างผู้ใช้ PPTP

                          sudo nano /etc/ppp/chap-secrets

ต่อท้ายบรรทัดที่ด้านล่างเพื่อให้ไฟล์ของคุณมีลักษณะดังนี้:

                          # client    server  secret          IP addresses
                          test        pptpd   abcd1234        *

กำหนดค่า NAT สำหรับการเชื่อมต่อ PPTP

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

                          sudo nano /etc/rc.local

เพิ่มรายการต่อไปนี้ที่ด้านล่างขวาก่อนบรรทัด“ exit 0”:

                          iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

สมมติว่า eth0 คุณสามารถใช้ifconfigเพื่อตรวจสอบชื่อเครือข่าย

เปิดใช้งาน IPv4 forwading:

                          sudo nano /etc/sysctl.conf

ยกเลิกหมายเหตุบรรทัดต่อไปนี้:

                          net.ipv4.ip_forward=1

จากนั้นโหลดการกำหนดค่าใหม่:

                          sudo sysctl -p

รีบูต VPS ของคุณและทุกอย่างจะทำงานได้อย่างราบรื่นจากไคลเอนต์ PPTP ใด ๆ


การกำหนดค่าฝั่งไคลเอ็นต์

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

สำหรับ Linux, NetworkManager เพื่อเพิ่มการเชื่อมต่อ VPN ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มการเชื่อมต่อ PPTP VPN และการกำหนดค่าที่ฉันใช้อยู่ที่นี่:

วิธีการดีบักและแก้ไขการเชื่อมต่อไคลเอนต์ PPTP / VPN

ป้อนคำอธิบายรูปภาพที่นี่

และสำหรับ Windows

ป้อนคำอธิบายรูปภาพที่นี่


วิธีนี้ใช้ได้กับ Ubuntu รุ่นที่ไม่ใช่เซิร์ฟเวอร์ 12.04 หรือไม่ หมายเลข IP ใดที่ไคลเอ็นต์ต้องใช้เพื่อเชื่อมต่อกับเครือข่าย VPN นี้
Rasoul

ใช่มันเป็นรุ่นที่ไม่ใช่เซิร์ฟเวอร์ด้วยคุณต้องใช้เซิร์ฟเวอร์ ip บนไคลเอนต์เพื่อเชื่อมต่อกับ vpn @Rasoul
Qasim

ไม่ทำงานเซิร์ฟเวอร์ Ubuntu 13.04 ไคลเอ็นต์กำลังค้นหา DNS
knutole

@ Knutole ตรวจสอบว่ากฎ IPTables ของคุณกำหนดเส้นทางอย่างเหมาะสม ตรวจสอบให้แน่ใจว่าคุณมีอินเตอร์เฟซ en0 และไม่มีการตั้งชื่ออย่างอื่น คุณควรเห็นที่อยู่ IP สาธารณะในรายการ
Nick Woodhams

ตกลงดังนั้นในตัวอย่างของคุณซึ่ง ip คือเซิร์ฟเวอร์ ip 10.89.64.1? จากนั้นในตัวจัดการเครือข่ายอูบุนตูไคลเอนต์จะระบุ 10.89.64.1 เป็นเกตเวย์หรือไม่
dranxo

9

คำตอบอื่น ๆ ในหัวข้อนี้เป็นเพียงคำตอบบางส่วนในกรณีของฉัน นี่คือสิ่งที่ใช้ได้กับฉันใน Ubuntu 12.04.3

sudo apt-get install pptpd

ผนวกต่อไปนี้เพื่อ /etc/pptpd.conf (ที่อยู่ IP ไม่สำคัญนี่เป็นเพียงที่อยู่ IP สำหรับอินเตอร์เฟส ppp0 ของคุณ)

localip 10.0.0.1
remoteip 10.0.0.100-200

เพิ่มเซิร์ฟเวอร์ DNS ให้กับ / etc / ppp / pptpd-options

ms-dns 8.8.8.8
ms-dns 8.8.4.4

เปิดใช้งานการส่งต่อ IP

sudo vim /etc/sysctl.conf

ไม่แสดงข้อคิดเห็นบรรทัดนี้

net.ipv4.ip_forward=1

บันทึกการเปลี่ยนแปลง

sudo sysctl -p /etc/sysctl.conf

แก้ไข / etc / ppp / chap-secret เพิ่มผู้ใช้ VPN ในรูปแบบนี้:

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
username pptpd supersecretpassword *

รีสตาร์ท PPTP

service pptpd restart

เรียกใช้ifconfigและค้นหาอินเทอร์เฟซเริ่มต้นของคุณในกรณีของฉันมันเป็นbr0 (ฉันเปลี่ยนเป็นอนุญาตให้เครื่องเสมือนในเครื่องทางกายภาพของฉันแบ่งปันอินเทอร์เฟซของคุณอาจจะเป็นen0 )

ป้อนคำอธิบายรูปภาพที่นี่

สำรองข้อมูล iptables

iptables-save > ~/iptables.save

ตอนนี้ทำการเปลี่ยนแปลง iptables ของคุณใช้อินเทอร์เฟซเริ่มต้นของคุณตามที่เปิดเผยโดย ifconfig

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface br0 -j ACCEPT

เพื่อให้มันคงอยู่เมื่อระบบของคุณรีบูต

sudo apt-get install iptables-persistent

เพิ่ม VPN บนคอมพิวเตอร์ไคลเอนต์ (Mac)

ค่ากำหนดของระบบ> เครือข่าย> [+]> VPN

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นเลือกการตั้งค่าการรับรองความถูกต้อง> รหัสผ่านจากนั้นกรอกรหัสผ่านของคุณที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


7

นี่เป็นโครงการที่ค่อนข้างหวานที่กำจัดความเจ็บปวดของ OpenVPN:

https://github.com/Nyr/openvpn-install

เพียงแค่เรียกใช้และมันจะติดตั้ง Open VPN และกำหนดค่า ในตอนท้ายมันจะปรากฎไฟล์ client.ovpn ที่คุณสามารถใช้เพื่อตั้งค่าไคลเอนต์ของคุณ ดูเหมือนว่าจะทำงานได้ค่อนข้างดี


วัวศักดิ์สิทธิ์ มันใช้งานได้ ฉันสงสัยว่าทำไมมันไม่ได้รับการยอมรับอย่างกว้างขวาง
Marcus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.