시작시 VPN에 연결하려고 할 때 오류


13

이 질문이 업데이트되었습니다. 이 게시물의 꼬리 끝을 참조하십시오.

VPN 서비스가 시작될 때 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

또한 Xfce 패널의 오른쪽 상단에있는 애플릿을 사용하여 VPN을 켤 때 아무런 문제가 없음을 추가하고 싶습니다. 따라서 문제는 잘못된 인증 중 하나가 아닌 명령 줄 에서이 작업을 수행하려고 할 때의 구성으로 보입니다.

최신 정보:

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

문제는 열쇠 고리의 암호에 액세스 할 수없는 것 같습니다.

출처

솔루션 열린 파일에이 언급 등 / / 네트워크 매니저 / 시스템 연결 / connectionName에 및 설정

password-flags=0

아래 줄을 파일에 추가하십시오.

 [vpn-secrets]
 password=YourPassword

그런 다음 네트워크 관리자를 다시 시작하여 변경 사항을 적용하십시오.

 sudo restart network-manager

자세한 내용은 소스를 참조하십시오


유용한 정보를 주셔서 감사합니다. 내가 붙어있는 한 부분은 /etc/NetworkManager/system-connections/ConnectionName파일 이 없다는 것입니다. 따라서 "[vpn]에서 편집"이라고 말하면 어떻게 처리해야할지 모르겠습니다. 파일을 만들 수 있습니까?
— Questioner

예 / etc / NetworkManager / system-connections / <name-of-your-vpn-connection> 및 password-flags형식 1을 0으로 변경 nmcli con합니다. 연결을 나열하는 데 사용합니다.
— devav2

알았어, 지금 알았어 올바른 파일을 찾는 데 실수하고 있다는 것을 깨달았습니다. 그러나 이제 모든 수정 제안을 제안했지만 불행히도 여전히 동일한 Not authorized to control networking오류가 발생합니다.
— Questioner

NetworkManager 연결 편집기를 다시 열고 VPN 비밀번호 또는 비밀번호를 다시 입력하십시오.
— devav2

Network Manager를 열고 비밀번호를 다시 입력했습니다 (인터페이스를 열 때 비 었음). 나는 "비밀"과 관련된 다른 것을 보지 못했습니다. 스크립트를 저장 한 다음 다시 시도했습니다. 여전히 같은 오류 메시지입니다.
— Questioner

2

시작시 VPN을 자동으로 시작하려면

자격 증명 파일이 작동한다고 가정하면 dispatcher.d원래 VPN을 시작해야했던 것처럼 스크립트 를 사용할 수 있어야합니다 . 2 개의 연결 (집에서 무선 라우터, 직장에서 유선 연결)로 작동하도록 스크립트를 약간 수정했습니다. 필요한 인터넷 연결 중 하나가 살아있을 때 VPN이 시작되지 않으면 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 settings specification을 탐색 한 후 구성 파일에 VPN 인증서 패스를 지정하는 방법을 판별 할 수 없습니다. 나는 seahorse' VPN 비밀 '(인증서 암호)을 열고 찾았 습니다 .

' VPN cert-pass secret for My VPN / org.freedesktop.NetworkManager.openvpn / vpn ' 과 같은 이름으로 표시되었습니다 . 세부 정보 탭을 클릭하면 setting-key이름에 대한 실마리가 나옵니다 .

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

NetworkManager 0.9.4.0을 사용하여 Ubuntu 12.04 (Precise Pangolin)에서 루트로 VPN을 자동으로 시작하려면 다음을 수행하십시오.

파일을 다음과 같이 보이도록 VPN 비밀을 열고 /etc/NetworkManager/system-connections/My VPN추가하십시오 cert-pass.

[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. 내 파일을 질문에 추가했습니다.
— Questioner

사용하는 경우 devav2에서 제안한 제목 아래에 connection-type=password사용 password-flags=0하고 있어야합니다 . password=YourPassword[vpn-secrets]
— TrinitronX

그러나 오류로 인해 실행중인 사용자에게 VPN_start.sh네트워킹 관리 권한이 없음을 나타냅니다. 권한이없는 루트가 아닌 사용자로 VPN 연결을 관리하려면 /etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf파일에 일부 정책을 추가해야 합니다.
— TrinitronX

권한 문제 일 경우 스크립트를 실행하면 스크립트가 작동하지 sudo않습니까? 내 질문에 언급했듯이 그것을 실행할 때 실패 sudo합니다.
— Questioner

좋은 지적! sudo로 실행하면 왜이 오류가 발생하는지 잘 모르겠습니다. 라우터가 쉽게 구성 할 수 없기 때문에 VPN 유형을 직접 테스트 할 수 없었습니다. NetworkManager 애플릿을 통해 VPN 연결이 제대로 작동하면 확인할 것이 무엇인지 모릅니다.
— TrinitronX
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.