nmcli에서 VPN 연결을 설정하는 방법은 무엇입니까?

nmcli에서 VPN 연결을 설정하는 방법은 무엇입니까?

nmcliCisco Anyconnect를 사용하여 평소 VPN에 연결하는 데 사용하고 싶습니다 .

(Arch에) 패키지를 설치했고 networkmanager-openconnect이제 살펴보고 싶습니다 nmcli. 그러나 nmcli인터페이스가 너무 복잡해 보입니다.

살펴 본 후에는 nmcli c add help다음과 같아야 합니다.

Usage: nmcli connection add { ARGUMENTS | help }

ARGUMENTS := COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS [-- ([+|-]<setting>.<property> <value>)+]

그리고:

TYPE_SPECIFIC_OPTIONS:
...
    vpn:          vpn-type vpnc|openvpn|pptp|openconnect|openswan|libreswan|ssh|l2tp|iodine|...
                  [user <username>]

하지만 도움말 메시지의 설명이 너무 간결해서 온라인에서 예제를 찾을 수 없습니다.

nmcli비슷한 목적을 가진 사람이 여기에 그들의 예를 공유할 수 있습니까?


실패한 시도

구성 예가 있습니다여기. 사용 가능한 매뉴얼 페이지를 탐색해 보았지만 form:main:group_list=CLIENTGROUP무엇을 해야 하는지 조차 찾지 못했습니다 .

실패하다:

Error: Connection activation failed: No valid secrets

가장 간단한 옵션을 찾는 경우 openconnect다음을 사용할 수 있습니다.

sudo openconnect my.vpn.gateway

이 접근 방식은 Sudo 사용자가 아닌 사용자에게 제공할 필요가 없는 한 작동합니다. 이런 일이 발생하면 이름 확인을 둘러싼 플롯이 복잡해집니다(참조:여기).

nmcli차라리 이 문제를 다루고 싶습니다 .

답변1

Debian 11의 cisco anyconnect 구성 구성을 보여드리겠습니다. 파일 .nmconnection/etc/NetworkManager/system-connetictions.

[connection]
id=CONNECTION_NAME
uuid=528f01b5-111e-4f9c-848f-b3234c0d733a
type=vpn
autoconnect=false
permissions=

[vpn]
authtype=password
autoconnect-flags=0
certsigs-flags=0
cookie-flags=2
enable_csd_trojan=no
gateway=VPN_URL
gateway-flags=2
gwcert-flags=2
lasthost-flags=0
pem_passphrase_fsid=no
prevent_invalid_cert=no
protocol=anyconnect
stoken_source=disabled
xmlconfig-flags=0
service-type=org.freedesktop.NetworkManager.openconnect

[vpn-secrets]
autoconnect=yes
form:main:group_list=GROUP
form:main:username=USERNAME
lasthost=VPN_URL
save_passwords=yes

,,, 을(를) 바꿔야 합니다 CONNECTION_NAME.VPN_URLGROUPUSERNAME

그날 그것을 성공시키려면 많은 노력이 필요했습니다. 그래서 제가 어떻게 했는지 잘 모르겠습니다. 텍스트 편집기에서 nmtui파일을 생성했는지 아니면 NetworkManager-GUI를 통해 생성했는지 더 이상 알 수 없습니다. 나는 그것을 사용한 적이 없습니다 nmcli. nmtuiVPN을 처리할 수 없기 때문에 NetworkManager GUI를 사용하여 연결을 생성한다고 가정합니다 . 특히 eduroam인터넷에는 많은 예가 있습니다.

답변2

다음을 실행하여 단서를 찾았습니다.

nmcli connection show CONNECTION_NAME

이미 작동 중인 연결의 경우.

VPN 연결을 설정하는 스크립트는 다음과 같습니다.

# Helper error function
fail()
{
    echo "$*" 1>&2
    exit 1
}

name="Connection Name"
gateway="my.gateway.com"
group_name="VpnGroup"
group_passwd="GroupSecret"
username="remoteuser"
local_user="localuser"

nmcli connection add con-name "$name" type vpn vpn-type vpnc ||
    fail "Unable to create the connection"

nmcli connection modify "$name" \
    "autoconnect" "false" \
    "connection.permissions" "user:$local_user" \
    "vpn.data" "IKE DH Group=dh2,
                IPSec ID=$group_name,
                IPSec gateway=$gateway,
                IPSec secret-flags=0,
                Local Port=0,
                NAT Traversal Mode=natt,
                Perfect Forward Secrecy=server,
                Vendor=cisco,
                Xauth password-flags=2,
                Xauth username=$username,
                ipsec-secret-type=save,
                xauth-password-type=ask" \
     "vpn.secrets" "IPSec secret=$group_passwd" \
     "ipv6.ip6-privacy" "0" 

관련 정보