เกิดข้อผิดพลาดขณะพยายามเชื่อมต่อ VPN เมื่อเริ่มต้น


13

คำถามนี้ได้รับการปรับปรุงแล้ว โปรดดูส่วนท้ายของโพสต์นี้

ฉันกำลังพยายามตั้งค่าคอมพิวเตอร์ Mythbuntu เพื่อเชื่อมต่อกับบริการ VPN เมื่อเปิดเครื่อง ฉันหวังว่าคอมพิวเตอร์ Mythbuntu จะใช้ VPN สำหรับการเชื่อมต่ออินเทอร์เน็ตทุกครั้ง

ฉันพบสคริปต์ที่ควรจะทำและดูเหมือนว่า:

#!/bin/bash
while [ "true" ]
do
    VPNCON=$(nmcli con status)
    if [[ $VPNCON != "*MyVPNConnectionName*" ]]; then
        echo "Disconnected, trying to reconnect..."
        (sleep 1s && nmcli con up uuid df648abc-d8f7-4ce4-bdd6-3e12cdf0f494)
    else
        echo "Already connected !"
    fi
    sleep 30
done

เมื่อฉันเรียกใช้สคริปต์นี้บนเครื่องของฉันฉันได้รับข้อผิดพลาดต่อไปนี้:

$ /home/mythbuntu/VPN_start.sh
Disconnected, trying to reconnect...
Error: Connection activation failed: Not authorized to control networking.

ฉันคิดว่าอาจเป็นปัญหาสิทธิ์ดังนั้นฉันจึงลองเรียกใช้ด้วย sudo:

$ sudo /home/mythbuntu/VPN_start.sh
[sudo] password for mythbuntu: 
Disconnected, trying to reconnect...
Active connection state: unknown
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/1
state: VPN connecting (need authentication) (2)
Error: Connection activation failed: no valid VPN secrets.

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

หากใครมีสคริปต์หรือวิธีที่ดีกว่านั่นก็จะเป็นคำตอบ


นี่คือเนื้อหาของไฟล์ / etc / NetworkManager / system-connections / MyVPN ของฉัน (รายละเอียดบางอย่างถูกแทนที่ด้วยอักขระ x เพื่อความเป็นส่วนตัว):

[connection]
id=MyVPN
uuid=xxxxxxxxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxxxxx
type=vpn

[vpn]
service-type=org.xxxxxxxxxxxxxx.xxxxxxxxxxxxxxx.openvpn
username=xxxxxxxxxx
comp-lzo=yes
remote=us-xxxxxx.xxxxxxx.com
connection-type=password
password-flags=0
ca=/etc/openvpn/xxxxxxx.crt

[vpn-secrets]
password=xxxxxxxxxxx

[ipv4]
method=auto
never-default=true

นอกจากนี้ฉันต้องการเพิ่มว่าเมื่อฉันเปิด VPN โดยใช้แอปเพล็ตที่มุมบนขวาของแผง Xfce มันเชื่อมต่อได้อย่างไม่มีปัญหา ดังนั้นปัญหาดูเหมือนว่าฉันจะไม่ได้รับอนุญาตอย่างใดอย่างหนึ่ง แต่การกำหนดค่าเมื่อพยายามทำจากบรรทัดคำสั่ง

ปรับปรุง:

ฉันไม่แน่ใจทั้งหมดว่ามีการเปลี่ยนแปลง - อาจเป็นสิ่งที่อัพเกรดเป็น 12.10 - แต่ตอนนี้ฉันสามารถเริ่มบริการ VPN จากบรรทัดคำสั่งได้แล้ว sudoอย่างไรก็ตามคำสั่งนี้ทำงานเพียงครั้งเดียวเมื่อฉันเป็นอย่างแรกเริ่มคอมพิวเตอร์และยังจะต้องมีการทำงานกับ

mythbuntu@mythbuntu:~$ nmcli con up id "Private Internet Access SSL"
Error: Connection activation failed: Not authorized to control networking.
mythbuntu@mythbuntu:~$ sudo nmcli con up id "Private Internet Access SSL"
[sudo] password for mythbuntu: 
mythbuntu@mythbuntu:~$

เนื่องจากฉันต้องใช้sudoเพื่อเรียกใช้สิ่งนี้ฉันจึงไม่สามารถเรียกใช้โดยอัตโนมัติเมื่อเริ่มต้น

ฉันจะรับมันเพื่อให้ฉันสามารถเริ่มต้น VPN ของฉันโดยไม่ได้รับอนุญาตจากผู้ใช้ขั้นสูง?

คำตอบ:


8

ปัญหาดูเหมือนว่ารหัสผ่านของคุณในพวงกุญแจไม่สามารถเข้าถึงได้

แหล่ง

วิธีแก้ปัญหาที่กล่าวถึงคือการเปิดไฟล์/ etc / NetworkManager / system-connections / ConnectionNameและตั้งค่า

password-flags=0

และเพิ่มบรรทัดด้านล่างลงในไฟล์

 [vpn-secrets]
 password=YourPassword

จากนั้นรีสตาร์ทผู้จัดการเครือข่ายเพื่อรับการเปลี่ยนแปลง:

 sudo restart network-manager

สำหรับข้อมูลเพิ่มเติมอ้างอิงแหล่งที่มา


ขอบคุณสำหรับข้อมูลที่เป็นประโยชน์ ส่วนหนึ่งที่ฉันติดอยู่คือฉันไม่มี/etc/NetworkManager/system-connections/ConnectionNameไฟล์ดังนั้นเมื่อมีข้อความแจ้งว่า "แก้ไขภายใต้ [vpn]" ฉันไม่แน่ใจว่าจะจัดการอย่างไร ฉันสามารถสร้างไฟล์ได้หรือไม่
ถามคำถาม

ใช่ / etc / NetworkManager / system-connections / <name-of-your-vpn-connection> และเปลี่ยนpassword-flagsฟอร์ม 1 เป็น 0 ใช้nmcli conเพื่อแสดงรายการการเชื่อมต่อ
devav2

โอเคฉันเข้าใจแล้ว ฉันรู้ว่าฉันทำผิดพลาดในการค้นหาไฟล์ที่ถูกต้อง อย่างไรก็ตามตอนนี้ฉันได้ทำการแก้ไขทั้งหมดแล้ว แต่น่าเสียดายที่ฉันยังได้รับNot authorized to control networkingข้อผิดพลาดเดียวกัน
ถามคำถาม

ลองเปิดตัวแก้ไขการเชื่อมต่อ NetworkManager อีกครั้งและป้อนรหัสผ่าน VPN หรือความลับอีกครั้ง
devav2

ฉันเปิดตัวจัดการเครือข่ายและป้อนรหัสผ่านใหม่ (มันว่างเปล่าเมื่อฉันเปิดอินเทอร์เฟซ) ฉันไม่เห็นสิ่งใดที่เกี่ยวข้องกับ "ความลับ" ฉันบันทึกแล้วลองสคริปต์อีกครั้ง ยังคงเป็นข้อความข้อผิดพลาดเดียวกัน
ถามคำถาม

2

ในการเริ่มต้น VPN โดยอัตโนมัติเมื่อเริ่มต้น

สมมติว่าคุณมีไฟล์ข้อมูลรับรองของคุณทำงานอยู่คุณควรจะสามารถใช้dispatcher.dสคริปต์เหมือนเดิมที่คุณต้องเริ่มต้น VPN ฉันได้ปรับเปลี่ยนสคริปต์ของคุณเล็กน้อยเพื่อให้สามารถใช้งานได้กับ 2 การเชื่อมต่อ (เราเตอร์ไร้สายที่บ้านและการเชื่อมต่อผ่านสายในที่ทำงาน) เหตุผลนี้คือฉันต้องการให้เริ่มต้น VPN หากไม่ได้เริ่มต้นเมื่อการเชื่อมต่ออินเทอร์เน็ตที่ต้องการอย่างใดอย่างหนึ่งของฉันยังมีชีวิตอยู่ ในตัวอย่างของฉันฉันได้กำหนดค่าด้วยชื่อเริ่มต้น แต่คุณควรเปลี่ยนให้ตรงกับชื่อของคุณ

วางสิ่งนี้ลงในไฟล์/etc/NetworkManager/dispatcher.d/vpn-upและทำให้สามารถเรียกใช้งานได้chmod +x

#! /bin/bash

REQUIRED_CONNECTION1_NAME="linksys"
REQUIRED_CONNECTION2_NAME="Wired connection 1"
VPN_CONNECTION_NAME="My VPN"


activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION1_NAME}\|${REQUIRED_CONNECTION2_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

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

หากคุณใช้ใบรับรองไคลเอ็นต์พร้อมรหัสผ่านเพื่อตรวจสอบสิทธิ์กับ VPN ของคุณมันเป็นบิตที่ไม่มีเอกสาร

หลังจากเรียกดูข้อมูลจำเพาะการตั้งค่า NetworkManager 0.9ฉันไม่สามารถระบุวิธีระบุ vpn cert pass ในไฟล์ config ฉันเปิดขึ้นseahorseและพบ ' ความลับ VPN ' ของฉัน(รหัสผ่านใบรับรอง)

มันถูกระบุว่าเป็น ' ความลับ VPN pass-pass สำหรับ My VPN / org.freedesktop.NetworkManager.openvpn / vpn ' คลิกที่แท็บรายละเอียดให้ฉันเบาะแสสำหรับsetting-keyชื่อ:

setting-name: vpn
setting-key: cert-pass
connection-uuid: 0badcafe-f00d-dead-beef-feedfacef00d

ในการเริ่มต้น VPN โดยอัตโนมัติในฐานะรูทบน Ubuntu 12.04 (Precise Pangolin) โดยใช้ NetworkManager 0.9.4.0:

เปิด/etc/NetworkManager/system-connections/My VPNและเพิ่มcert-passความลับ VPN เพื่อให้ไฟล์มีลักษณะดังนี้:

[connection]
id=My VPN
uuid=0badcafe-f00d-dead-beef-feedfacef00d
type=vpn
timestamp=1234567890

[vpn]
service-type=org.freedesktop.NetworkManager.openvpn
key=/home/<your-user>/path/to/certs/your.secure.key
ca=/home/<your-user>/path/to/certs/your.vpnca.crt
connection-type=tls
cert=/home/<your-user>/path/to/certs/your.crt
remote=your.vpn-server.com
cert-pass-flags=0
[vpn-secrets]
cert-pass=your-vpn-pass

[ipv4]
method=auto
never-default=true

ขอบคุณสำหรับคำตอบนี้ อย่างไรก็ตามฉันsystem-connectionsแตกต่างจากของคุณดังนั้นฉันไม่แน่ใจเกี่ยวกับการแก้ไขของคุณ ฉันไม่ได้มีkeyหรือtimestampและประเภทการเชื่อมต่อของฉันคือไม่password tlsฉันได้เพิ่มไฟล์ของฉันไปยังคำถามของฉัน
ถามคำถาม

หากคุณกำลังใช้งานconnection-type=passwordคุณควรใช้password-flags=0และpassword=YourPasswordภายใต้[vpn-secrets]หัวข้อตามที่แนะนำโดย devav2
TrinitronX

อย่างไรก็ตามข้อผิดพลาดที่คุณได้รับแสดงให้เห็นว่าผู้ใช้ที่คุณกำลังทำงานอยู่VPN_start.shเนื่องจากไม่มีสิทธิ์ในการจัดการเครือข่าย หากคุณต้องการจัดการการเชื่อมต่อ VPN ในฐานะผู้ใช้ที่ไม่ใช่รูทซึ่งไม่มีสิทธิ์คุณอาจต้องเพิ่มนโยบายบางอย่างลงใน/etc/dbus-1/system.d/org.freedesktop.NetworkManager.confไฟล์
TrinitronX

ถ้ามันเป็นแค่การอนุญาตสคริปต์จะไม่ทำงานถ้าฉันใช้มันด้วยsudoเหรอ? ตามที่ระบุไว้ในคำถามของฉันมันล้มเหลวเมื่อฉันเรียกใช้ด้วยsudoเช่นกัน
ถามคำถาม

จุดดี! ฉันไม่แน่ใจว่าทำไมมันถึงทำให้คุณมีข้อผิดพลาดนี้ถ้าคุณกำลังทำงานกับ sudo ฉันไม่สามารถทดสอบประเภท VPN ของคุณเองได้เนื่องจากเราเตอร์ของฉันไม่สามารถกำหนดค่าได้อย่างง่ายดาย หากการเชื่อมต่อ VPN ทำงานได้ดีเมื่อเริ่มต้นผ่านแอปเพล็ต NetworkManager ฉันไม่รู้จะตรวจสอบอะไรอีก
TrinitronX
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.