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

ถ้า ($answer_counter == 1): ?> endif; ?>

อัปเดต. สำหรับ Sierra แล้ว macOS ไม่รองรับ PPTP vpn อีกต่อไป คำตอบนี้ใช้ไม่ได้กับไคลเอนต์ macOS Sierra และอื่นๆ

PPTP ผ่าน PoPToP นั้นง่าย

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

ตัวอย่างเช่น.

vpnuser pptpd vpn รหัสผ่าน*

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

ตอบโดย Jay _silly_evarlast_ Wren เมื่อ 04/06/2012 เวลา 23:24

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

ตอบโดย Qasim เมื่อ 06/10/2013, 16:09

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

sudo apt-get ติดตั้ง 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

Uncomment บรรทัดนี้

sudo sysctl -p /etc/sysctl.conf

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

# ความลับสำหรับการตรวจสอบสิทธิ์โดยใช้ CHAP # เซิร์ฟเวอร์ไคลเอนต์ที่อยู่ IP ลับชื่อผู้ใช้ pptpd supersecretpassword *

รีสตาร์ท PPTP

บริการ pptpd เริ่มใหม่

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

iptables สำรอง

iptables-save > ~/iptables.save

ตอนนี้มีการเปลี่ยนแปลง iptables โดยใช้อินเทอร์เฟซเริ่มต้นดังที่แสดงโดย ifconfig

การตั้งค่าการเชื่อมต่อ VPN บน Debian

นี่คือตัวอย่างการตั้งค่าการเชื่อมต่อ VPN สำหรับ Debian Linux ผ่านบรรทัดคำสั่ง แต่จะมีประโยชน์ไม่น้อยสำหรับเจ้าของการแจกจ่ายตาม Debian เช่น Ubuntu

  1. ก่อนอื่นคุณต้องมีแพ็คเกจ pptp:
    # apt-get ติดตั้ง pptp-linux
  2. แก้ไข (หรือสร้าง หากไม่มีอยู่) ไฟล์ /etc/ppp/options.pptp ควรมีพารามิเตอร์ต่อไปนี้:
    ล็อค
    noauth
    nobsdcomp
    nodeflate
  3. ถัดไป คุณต้องเพิ่มบรรทัดแบบนี้ในไฟล์ /etc/ppp/chap-secrets:
    “ชื่อผู้ใช้” PPTP “รหัสผ่าน” *
  4. สร้างไฟล์ /etc/ppp/peers/XXX (XXX คือชื่อเครือข่าย) ป้อนข้อมูลต่อไปนี้ลงไป:
    pty "pptp vpn.XXX.ru --nolaunchpppd"
    ชื่อ "ชื่อผู้ใช้"
    ชื่อระยะไกล PPTP
    ไฟล์ /etc/ppp/options.pptp
    เส้นทางเริ่มต้น
    “ชื่อผู้ใช้” และ “รหัสผ่าน” จะต้องถูกแทนที่ด้วยชื่อผู้ใช้และรหัสผ่านของคุณโดยไม่มีเครื่องหมายคำพูด ตามที่ระบุไว้ในสัญญาของคุณ vpn.XXX.ru - ที่อยู่เซิร์ฟเวอร์ VPN - ถามผู้ให้บริการของคุณ
  5. หากต้องการแทนที่เส้นทางเริ่มต้นโดยอัตโนมัติ ให้สร้างไฟล์ /etc/ppp/ip-up.d/routes-up:
    # su touch /etc/ppp/ip-up.d/routes-up
    # su chown a+x /etc/ppp/ip-up.d/routes-up

    และป้อนข้อมูลต่อไปนี้ลงไป:
    #!/bin/sh
    /sbin/route del default
    /sbin/route เพิ่ม dev เริ่มต้น ppp0
    สร้างไฟล์ /etc/ppp/ip-down.d/routes-down:
    # su touch /etc/ppp/ip-down.d/routes-down
    # su chown a+x /etc/ppp/ip-down.d/routes-down
    และป้อนข้อมูลต่อไปนี้ลงไป:
    #!/bin/sh
    /sbin/route del default
    /sbin/route เพิ่ม dev เริ่มต้น eth0

  6. ตอนนี้คุณสามารถเชื่อมต่อกับคำสั่ง:
    #สุพรรณXXX
    สำหรับข้อมูลโดยละเอียดเกี่ยวกับกระบวนการเชื่อมต่อ ให้พิมพ์:
    # su pon XXX ดีบักดัมพ์ logfd 2 nodetach
    คุณสามารถตรวจสอบว่าคุณเชื่อมต่อกับ VPN หรือไม่โดยพิมพ์คำสั่ง ifconfig หากเอาต์พุตมีส่วน ppp0 แสดงว่าคุณเชื่อมต่อแล้วและสามารถเริ่มทำงานกับอินเทอร์เน็ตได้ หากต้องการปิดใช้งาน ให้กด ctrl+c หรือพิมพ์:
    # su poff XXX
  7. เพื่อให้คอมพิวเตอร์ของคุณรับเส้นทางจากเซิร์ฟเวอร์ของเรา บรรทัดต่อไปนี้ต้องอยู่ในไฟล์ /etc/dhcp3/dhclient.conf:
    #
    ตัวเลือก rfc3442-classless-static-routes รหัส 121 = อาร์เรย์ของจำนวนเต็มที่ไม่ได้ลงนาม 8;
    ตัวเลือก ms-classless-static-routes รหัส 249 = อาร์เรย์ของจำนวนเต็มที่ไม่ได้ลงนาม 8;
    #
    ขอ subnet-mask, broadcast-address, time-offset, เราเตอร์, ชื่อโดเมน, ชื่อโดเมน-เซิร์ฟเวอร์, ค้นหาโดเมน, ชื่อโฮสต์, netbios-name-servers, netbios-scope, interface-mtu, static-route , rfc3442-classless-static-routes, ms-classless-static-routes;
    #
  8. หากต้องการเชื่อมต่ออินเทอร์เน็ตโดยอัตโนมัติเมื่อระบบปฏิบัติการบู๊ต ให้สร้างไฟล์ /etc/init.d/XXX
    # แตะ /etc/init.d/XXX
    # ซู่ chown a+x /etc/init.d/XXX
    # su ln -s /etc/init.d/XXX /etc/rc2.d/S99XXX
    ลองเขียนดังนี้:
    #!/bin/sh
    su /usr/bin/ponXXX

ในทุกคำสั่ง XXX คือชื่อเครือข่ายของคุณ

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

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

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

ทั้งสองเครื่องควรติดตั้ง OpenVPN เป็นโปรแกรมยอดนิยม ดังนั้นคุณจึงสามารถติดตั้งได้จากที่เก็บอย่างเป็นทางการ นอกจากนี้เรายังต้องการ Easy-RSA เพื่อทำงานกับคีย์ลับ ในการติดตั้งโปรแกรมใน Ubuntu ให้ใช้คำสั่งต่อไปนี้:

sudo apt ติดตั้ง openvpn easy-rsa

ต้องติดตั้งแพ็คเกจทั้งสองบนทั้งเซิร์ฟเวอร์และไคลเอนต์ พวกเขาจะต้องใช้ในการกำหนดค่าโปรแกรม ขั้นตอนแรกของบทความในการติดตั้งและกำหนดค่า openvpn เสร็จสมบูรณ์แล้ว

การจัดตั้งหน่วยงานออกใบรับรอง

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

โปรดทราบว่ากุญแจลับทั้งหมดต้องอยู่ในที่ปลอดภัย ใน OpenVPN คีย์สาธารณะจะเรียกว่าใบรับรองและมีนามสกุล .crt และคีย์ส่วนตัวเรียกว่าคีย์ ส่วนต่อขยายคือ .key

ขั้นแรก ให้สร้างโฟลเดอร์เพื่อจัดเก็บใบรับรอง Easy-RSA อันที่จริง การกำหนดค่า OpenVPN ทำได้ด้วยตนเอง จึงสามารถวางโฟลเดอร์ไว้ที่ใดก็ได้:

sudo mkdir /etc/openvpn/easy-rsa

จากนั้นคัดลอกสคริปต์ easy-rsa ที่จำเป็นทั้งหมดลงในโฟลเดอร์นี้:

cd /etc/openvpn/easy-rsa/

sudo -i
# ที่มา ./vars
# ./ลบทั้งหมด
# ./build-ca

ด้วยคำสั่งแรก เราจะเปลี่ยนไปใช้คอนโซลในนามของ superuser โดยคำสั่งที่สองเราจะโหลดตัวแปรสภาพแวดล้อมจากไฟล์ ./vars คำสั่ง ./clear-all จะสร้างโฟลเดอร์คีย์หากไม่มีอยู่และล้างเนื้อหาในนั้น และคำสั่งสุดท้ายเริ่มต้นผู้ออกใบรับรองของเรา ตอนนี้คีย์ที่จำเป็นทั้งหมดได้ปรากฏในโฟลเดอร์ .keys แล้ว:

การตั้งค่าใบรับรองไคลเอ็นต์

sudo cp -R /usr/share/easy-rsa /etc/openvpn/

ตอนนี้ เราต้องคัดลอกใบรับรอง ไฟล์ .crt ไปยังโฟลเดอร์ /etc/openvpn บนไคลเอนต์ทั้งหมด ตัวอย่างเช่น ดาวน์โหลดไฟล์นี้สำหรับลูกค้าของเราโดยใช้ scp:

sudo scp user@host: /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys

เฉพาะตอนนี้เท่านั้นที่คุณสามารถสร้างคีย์ส่วนตัวตามใบรับรอง CA:

cd /etc/openvpn/easy-rsa/

sudo -i
# ที่มา ./vars
# build-req Sergiy

โปรดทราบว่า ca.crt ต้องอยู่ในโฟลเดอร์คีย์ ไม่เช่นนั้นจะใช้งานไม่ได้ ตอนนี้ยูทิลิตี้จะสร้างคีย์ซึ่งคุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ OpenVPN ได้ แต่คุณยังต้องลงชื่อเข้าใช้บนเซิร์ฟเวอร์ ส่งไฟล์ .csr ที่เป็นผลลัพธ์ไปยังเซิร์ฟเวอร์โดยใช้ scp เดียวกัน:

scp /etc/openvpn/easy-rsa/keys/Sergiy.csr user@host:~/

จากนั้น บนเซิร์ฟเวอร์ในโฟลเดอร์ /etc/openvpn/easy-rsa คุณต้องดำเนินการคำสั่งการลงนามใบรับรอง:

./sign-req ~/Sergiy

ต้องตรวจสอบลายเซ็นของใบรับรอง จากนั้นโปรแกรมจะแจ้งว่าได้ลงนามและเพิ่มลงในฐานข้อมูลแล้ว ไฟล์ .crt จะปรากฏในโฟลเดอร์ที่มีใบรับรอง csr ซึ่งต้องส่งคืนกลับไปยังเครื่องไคลเอ็นต์:

sudo scp user@host:/home/Sergiy.crt /etc/openvpn/easy-rsa/keys

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

การกำหนดค่า OpenVPN

ตอนนี้กำลังกำหนดค่าเซิร์ฟเวอร์ OpenVPN ตามค่าเริ่มต้น ไม่มีอะไรในโฟลเดอร์ไฟล์การกำหนดค่า OpenVPN คุณต้องสร้างด้วยตนเอง ขึ้นอยู่กับสิ่งที่คุณวางแผนจะกำหนดค่า เซิร์ฟเวอร์หรือไคลเอนต์ ไฟล์การกำหนดค่า OpenVPN ที่จำเป็นสามารถพบได้ที่ /usr/share/doc/openvpn/examples/sample-config-files/ ขั้นแรก ให้สร้างไฟล์การกำหนดค่าสำหรับเซิร์ฟเวอร์:

zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf

ที่นี่คุณต้องปรับการตั้งค่าบางอย่าง:

ท่าและ โปรโต- พอร์ตและโปรโตคอลที่โปรแกรมจะทำงาน

พอร์ต 1194
โปรโต udp

คีย์ที่สร้างขึ้นทั้งหมดจะต้องลงทะเบียนในไฟล์การกำหนดค่า คีย์ของเราถูกเก็บไว้ที่ /etc/openvpn/easy-rsa/keys:


ใบรับรอง /etc/openvpn/easy-rsa/keys/ca.crt
คีย์ /etc/openvpn/easy-rsa/keys/ca.key
dh /etc/openvpn/easy-rsa/keys/dh.pem

เราตั้งค่าช่วงที่อยู่สำหรับเครือข่ายเสมือนเซิร์ฟเวอร์ของเราจะพร้อมใช้งานในช่วงแรก - 10.8.0.1:

เซิร์ฟเวอร์ 10.8.0.0 255.255.255.0

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

พอร์ต 1194
โปรโต udp
คอมพ์ lzo
dev tune
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
ใบรับรอง /etc/openvpn/easy-rsa/2.0/keys/ca.crt
dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem
ซับเน็ตโทโพโลยี
เซิร์ฟเวอร์ 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client.conf

คุณสามารถสร้างไฟล์การกำหนดค่าไคลเอนต์หลายไฟล์เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ที่แตกต่างกัน เปิดไฟล์การกำหนดค่าและเปลี่ยนพารามิเตอร์ต่อไปนี้:

ระยะไกลคือที่อยู่เซิร์ฟเวอร์ OpenVPN ของคุณ ที่อยู่และพอร์ตต้องตรงกับที่กำหนดค่าไว้บนเซิร์ฟเวอร์ เช่น:

รีโมท 194.67.215.125 1194

ca- คีย์ที่คุณได้รับจากผู้ออกใบรับรอง เราพบมันในโฟลเดอร์ /etc/openvpn/

ใบรับรองและคีย์- นี่คือกุญแจสาธารณะและกุญแจส่วนตัวของลูกค้า ด้วยความช่วยเหลือจากคีย์เหล่านี้ คุณจะเชื่อมต่อกับเซิร์ฟเวอร์ อย่างที่คุณจำได้ เราได้บันทึกไว้ในโฟลเดอร์ /etc/openvpn/easy-rsa/keys/

ca /etc/openvpn/easy-rsa/keys/ca.crt

การตั้งค่าที่เหลือสามารถปล่อยไว้ตามเดิม นี่คือไฟล์การกำหนดค่าที่สมบูรณ์ ซึ่งคุณสามารถคัดลอกได้:

ลูกค้า
dev tune
โปรโต udp
รีโมท 194.67.215.125 1194
แก้ไข-ลองใหม่ไม่สิ้นสุด
nobind
ยืนยันคีย์
ถาวร-tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
ใบรับรอง /etc/openvpn/easy-rsa/keys/Sergiy.crt
คีย์ /etc/openvpn/easy-rsa/keys/Sergiy.key
tls-auth ta.key 1
คอมพ์ lzo
กริยา 3

บันทึกการตั้งค่า ขณะนี้ไคลเอ็นต์พร้อมที่จะเชื่อมต่อแล้ว โปรดทราบว่าไฟล์การกำหนดค่าควรตรงกันมากที่สุด การไม่มีตัวเลือกบางอย่างในไฟล์ใดไฟล์หนึ่งอาจทำให้เกิดข้อผิดพลาดได้ นี่ไม่ได้หมายความว่าไฟล์จะเหมือนกัน แต่พารามิเตอร์ openvpn พื้นฐานควรเหมือนกัน สิ่งที่คุณต้องทำคือเรียกใช้ OpenVPN บนเครื่องนี้โดยใช้ไฟล์กำหนดค่านี้:

openvpn /etc/openvpn/client.conf

เสร็จสิ้น ตอนนี้ทุกอย่างใช้งานได้ หากคุณเรียกใช้ ifconfig คุณจะเห็นว่ามีการเพิ่มอินเทอร์เฟซ tun0:

คุณยังสามารถลอง ping ที่อยู่ 10.8.0.1 ซึ่งเป็นที่อยู่ที่เรากำหนดค่าไว้สำหรับเซิร์ฟเวอร์ OpenVPN ของเรา แพ็กเก็ต ping จะถูกส่งตามปกติ หากแพ็กเก็ตไม่มาหรืออย่างอื่นไม่ทำงาน ให้ใส่ใจกับผลลัพธ์ของทั้งสองโปรแกรม อาจมีข้อผิดพลาดหรือคำเตือนบางอย่าง ตรวจสอบให้แน่ใจด้วยว่าไฟร์วอลล์ของเซิร์ฟเวอร์อนุญาตการเข้าถึงจากภายนอกผ่าน udp บนพอร์ต 1194 คุณสามารถ เริ่มต้นเซิร์ฟเวอร์หรือไคลเอนต์ด้วยการตั้งค่าระดับการใช้คำฟุ่มเฟือยเป็นกริยาสูงสุด 9 ในการกำหนดค่า บ่อยครั้งที่สิ่งนี้ช่วยให้เข้าใจว่าเหตุใดบางสิ่งจึงไม่ทำงาน แต่คุณยังกำหนดเส้นทางการจราจรผ่านอุโมงค์ไม่ได้ ในการดำเนินการนี้ คุณต้องเปิดใช้งานการส่งต่อและเพิ่มกฎ iptables สองสามข้อ ขั้นแรก เราอนุญาตให้ส่งแพ็กเก็ตบนเซิร์ฟเวอร์:

sysctl -w net.ipv4.ip_forward=1

จากนั้นเพิ่มกฎเหล่านี้ เราอนุญาตให้ทุกคนเชื่อมต่อกับเซิร์ฟเวอร์ของเรา:

iptables -A INPUT -p udp --dport 1194 -j ACCEPT

เราอนุญาตให้ผู้ใช้ OpenVPN เข้าถึงอินเทอร์เน็ต:

iptables -I ไปข้างหน้า -i tun0 -o eth0 -j ACCEPT
# iptables -I FORWARD -i eth0 -o tun0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

ข้อสรุป

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

คำแนะนำ

ตรวจสอบว่ามีการสนับสนุน PPP ในเคอร์เนลของระบบปฏิบัติการของคุณหรือไม่ วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการดูค่าของตัวเลือกที่นำหน้าด้วย CONFIG_PPP ในไฟล์การกำหนดค่าเคอร์เนลปัจจุบัน โดยปกติจะถูกติดตั้งในไดเร็กทอรี /boot และมีชื่อขึ้นต้นด้วย config ค้นหาชื่อไฟล์นี้ด้วยคำสั่ง
ls /boot
หรือ
ls /boot | grep conf
พิมพ์บรรทัดที่ต้องการด้วยคำสั่ง cat กรองด้วย grep ตัวอย่างเช่น:
cat /boot/config-2.6.30-std-def-alt15 | grep PPP
แยกวิเคราะห์บรรทัดที่มีตัวเลือก CONFIG_PPP, CONFIG_PPP_ASYNC, CONFIG_PPP_SYNC_TTY หากไม่มีอักขระ # อยู่ข้างหน้า จะรองรับฟังก์ชันที่เกี่ยวข้อง (สำหรับค่า m - ในรูปแบบของโมดูลภายนอก สำหรับค่า y - รวมอยู่ในเคอร์เนล)

ตรวจสอบว่ามีการติดตั้งซอฟต์แวร์ไคลเอนต์สำหรับสร้างการเชื่อมต่อ VPN ในระบบหรือไม่ แพ็คเกจที่ต้องการมักจะมีชื่อขึ้นต้นด้วย pptp ใช้ apt-cache กับอ็อพชันการค้นหาเพื่อค้นหาแพ็กเกจที่ต้องการในที่เก็บที่มี และใช้ rpm ด้วยอ็อพชัน -qa เพื่อตรวจสอบว่าแพ็กเกจได้รับการติดตั้งแล้วหรือไม่ เมื่อทำงานในสภาพแวดล้อมแบบกราฟิก การใช้โปรแกรมต่างๆ เช่น synaptic อาจเป็นเรื่องที่สมเหตุสมผล

ติดตั้งซอฟต์แวร์ที่ขาดหายไป ใช้ตัวจัดการแพ็คเกจที่เหมาะสม (apt-get, rpm ในคอนโซล, synaptic ในสภาพแวดล้อมแบบกราฟิก ฯลฯ) หากคุณได้ติดตั้งแพ็คเกจ ppp ด้วยโมดูลเคอร์เนลเพื่อรองรับโปรโตคอลที่เหมาะสม ให้รีสตาร์ทคอมพิวเตอร์ของคุณ

ลองตั้งค่า VPN โดยใช้สคริปต์การกำหนดค่า เช่น pptp-command หรือ pptpsetup มักมาพร้อมกับซอฟต์แวร์ไคลเอ็นต์สำหรับสร้างการเชื่อมต่อ VPN หากต้องการความช่วยเหลือเกี่ยวกับพารามิเตอร์บรรทัดคำสั่งของยูทิลิตี้เหล่านี้ ให้เรียกใช้ด้วยตัวเลือก --help ตัวอย่างเช่น:
pptpsetup --help
หากยังไม่ได้ติดตั้งสคริปต์การกำหนดค่า ให้ทำตามขั้นตอนถัดไปเพื่อกำหนดค่า VPN ด้วยตนเอง

สร้างไดเร็กทอรี /etc/ppp และในนั้นไฟล์ชื่อ chap-secrets เปิดไฟล์ในโปรแกรมแก้ไขข้อความ เพิ่มบรรทัดแบบนี้ลงไป:
เข้าสู่ระบบเซิร์ฟเวอร์รหัสผ่าน *
ค่า LOGIN และ PASSWORD คือชื่อผู้ใช้และรหัสผ่าน ผู้ให้บริการการเข้าถึง VPN ต้องจัดเตรียมสิ่งเหล่านี้ แทนที่จะเป็น SERVER ให้ระบุชื่อการเชื่อมต่อที่กำหนดเองหรือ *

สร้างไดเร็กทอรี /etc/ppp/peers สร้างไฟล์ที่มีชื่อเดียวกับค่า SERVER จากขั้นตอนก่อนหน้า (หรือชื่อที่กำหนดเองหากระบุ *) แก้ไขไฟล์นี้เพื่อเพิ่มข้อมูลเช่น:
pty "เซิร์ฟเวอร์ pptp --nolaunchpppd"
ชื่อเข้าสู่ระบบ
ipparam SERVER
เซิร์ฟเวอร์ชื่อระยะไกล
ล็อค
noauth
nodeflate
nobsdcomp
ค่า LOGIN และ SERVER ที่นี่เหมือนกับในขั้นตอนที่ 5 ซึ่งจะทำให้การตั้งค่า VPN บน Linux เสร็จสมบูรณ์

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

เมื่อใช้ร่วมกับการใช้การเชื่อมต่อ HTTPS การตั้งค่าที่อธิบายไว้ด้านล่างจะช่วยให้คุณสามารถรักษาความปลอดภัยข้อมูลส่วนตัวของคุณ เช่น การเข้าสู่ระบบและรหัสผ่าน ตลอดจนการซื้อของคุณ ยิ่งไปกว่านั้น คุณยังสามารถเลี่ยงการจำกัดภูมิภาคและการเซ็นเซอร์ ตลอดจนซ่อนตำแหน่งของคุณและการรับส่งข้อมูล HTTP ที่ไม่ได้เข้ารหัสจากเครือข่ายที่ไม่ปลอดภัย

คุณสามารถถ่ายโอนโปรไฟล์จากคอมพิวเตอร์ไปยังโทรศัพท์ได้โดยเชื่อมต่ออุปกรณ์ Android กับคอมพิวเตอร์ผ่าน USB และคัดลอกไฟล์ คุณยังสามารถย้ายไฟล์โปรไฟล์โดยใช้การ์ด SD โดยคัดลอกโปรไฟล์ไปยังการ์ดแล้วใส่การ์ดลงในอุปกรณ์ Android

เปิดแอปพลิเคชัน OpenVPN และคลิกที่เมนูเพื่อนำเข้าโปรไฟล์

สารประกอบ

เพื่อสร้างการเชื่อมต่อ ให้กดปุ่ม เชื่อมต่อ. ระบบจะถามว่าคุณเชื่อถือแอป OpenVPN หรือไม่ ตอบกลับ ตกลงเพื่อสร้างการเชื่อมต่อ หากต้องการหยุดการเชื่อมต่อ ให้ไปที่แอป OpenVPN แล้วเลือก ตัดการเชื่อมต่อ.

ขั้นตอนที่ 13การทดสอบการเชื่อมต่อ VPN

หลังจากติดตั้งและกำหนดค่าทุกอย่างแล้ว ตรวจสอบให้แน่ใจว่าทุกอย่างทำงานอย่างถูกต้อง โดยไม่ต้องสร้างการเชื่อมต่อ VPN ให้เปิดเบราว์เซอร์และไปที่ DNSLeakTest

ไซต์นี้จะส่งคืนที่อยู่ IP ที่กำหนดให้กับคุณโดย ISP ของคุณ หากต้องการตรวจสอบว่าเซิร์ฟเวอร์ DNS ใดใช้งานอยู่ ให้คลิกที่ การทดสอบเพิ่มเติม.

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

ขั้นตอนที่ 14: เพิกถอนใบรับรองไคลเอ็นต์

ในบางครั้ง คุณอาจต้องเพิกถอนใบรับรองไคลเอ็นต์เพื่อป้องกันการเข้าถึงเซิร์ฟเวอร์ VPN

โดยไปที่ไดเร็กทอรีผู้ออกใบรับรองของคุณและป้อนคำสั่ง:

  • cd ~/openvpn-ca
  • แหล่งที่มาvars
  • ./revoke-full client3

ผลลัพธ์ของคำสั่งนี้จะจบลงด้วยข้อผิดพลาด 23 ซึ่งถือเป็นเรื่องปกติ จากการทำงาน ไฟล์ crl.pem จะถูกสร้างขึ้นในไดเร็กทอรีคีย์พร้อมข้อมูลที่จำเป็นสำหรับการเพิกถอนใบรับรอง

ย้ายไฟล์นี้ไปที่ไดเร็กทอรี /etc/openvpn:

  • sudo cp ~/openvpn-ca/keys/crl.pem /etc/openvpn
  • sudo nano /etc/openvpn/server.conf

เพิ่ม crl-verify ที่ส่วนท้ายของไฟล์ เซิร์ฟเวอร์ OpenVPN จะตรวจสอบ CRL ทุกครั้งที่มีคนสร้างการเชื่อมต่อกับเซิร์ฟเวอร์

/etc/openvpn/server.conf

crl-verify crl.pem

บันทึกและปิดไฟล์

รีสตาร์ท OpenVPN เพื่อให้กระบวนการเพิกถอนใบรับรองเสร็จสมบูรณ์:

ตอนนี้ไคลเอนต์จะไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ OpenVPN โดยใช้ใบรับรองเก่าได้

หากต้องการเพิกถอนใบรับรองเพิ่มเติม ให้ทำตามขั้นตอนต่อไปนี้:

    สร้างรายการใบรับรองที่ถูกเพิกถอนใหม่โดยใช้คำสั่ง source vars ในไดเร็กทอรี ~/openvpn-ca และออกคำสั่ง revoke-full ด้วยชื่อไคลเอ็นต์

    คัดลอกรายการใบรับรองที่ถูกเพิกถอนใหม่ไปยังไดเร็กทอรี /etc/openvpn ดังนั้นจึงเขียนทับรายการเก่า

    เริ่มบริการ OpenVPN ใหม่

ขั้นตอนนี้สามารถใช้เพื่อเพิกถอนใบรับรองใด ๆ ที่คุณได้สร้างไว้ก่อนหน้านี้

บทสรุป

ยินดีด้วย! ตอนนี้คุณสามารถเข้าถึงอินเทอร์เน็ตได้อย่างปลอดภัย การรับส่งข้อมูลทั้งหมดของคุณได้รับการป้องกันจากการดักฟังโดยเซ็นเซอร์และผู้บุกรุก

ในการกำหนดค่าไคลเอนต์เพิ่มเติม ทำซ้ำขั้นตอน 6 และ 11-13 สำหรับอุปกรณ์ใหม่แต่ละเครื่อง หากต้องการเพิกถอนการเข้าถึงของลูกค้า ให้ใช้ขั้นตอน 14 .