I tener varios perfiles de protección de cables en Linux. ¿Hay alguna forma de importar el perfil WireGuard (/etc/wireguard/wg{0,1,2}.conf archivos) usando nmcli en Linux? No quiero convertirme en root y ejecutar systemctl start wg-quick @ wg0. ¿Cómo puedo importar un perfil WireGuard existente desde la interfaz de tangente de comandos de NetworkManager?
WireGuard es obvio de configurar y utiliza técnicas de red privada aparente (VPN) de código franco para crear conexiones seguras punto a punto en varias configuraciones. Funciona en Linux, * BSD, macOS y dispositivos móviles. Sin secuestro, esta página explica cómo importar el archivo de perfil de WireGuard existente usando nmcli en un escritorio Linux.
Tabla de Contenidos
Cómo importar el perfil WireGuard usando nmcli en Linux
Podemos importar /etc/wireguard/wg0.conf escribiendo el sucesivo comando:
- Configure la variable de entorno de shell: file = "/ etc / wireguard / wg0.conf"
- Ahora impórtelo usando el comando nmcli: sudo nmcli tipo de importación de conexión archivo wireguard "$ file"
- Cambie el nombre del perfil wg0 como mum-office-vpn: conexión nmcli modificar wg0 connection.id "mum-office-vpn"
- Puede repetir este procedimiento para todos los perfiles WireGuard en Linux cuando utilice la interfaz CLI de NetworkManager indicación nmcli.
Use ver WireGuard en NetworkManager en detalles. Tenga en cuenta que debe tener instalado y configurado el servidor WireGuard. Vea cómo instalar WireGuard en Alpine Linux, CentOS 8, Debian 10 y Ubuntu 20.04 LTS.
Importación del perfil WireGuard
WireGuard viene con un wg-quick para configurar túneles WireGuard rápidamente. Así es como se ve la muestra wg0.conf:
# MUM OFFICE VPN [Interface] PrivateKey = {private-key-here} Address = 10.8.1.2/24 DNS = 10.8.1.1 [Peer] PublicKey = {Pub-key-here} PresharedKey = {Pre-shared-key-here} AllowedIPs = 0.0.0.0/0 Endpoint = $Linux_SERVER_IP_HERE:$Port PersistentKeepalive = 15
No conozco una opción de GUI en Linux que pueda importar archivos de configuración como wg0.conf. Por lo tanto, terminé usando nmcli. Es una utensilio de tangente de comandos para controlar NetworkManager y reportar el estado de la red.
Sintaxis del comando de importación nmcli
La opción de importación permite a los usuarios importar una configuración externa / ajena como un perfil de conexión de NetworkManager. La opción de tipo especifica el tipo de archivo de entrada. Tenga en cuenta que en este momento solo se admiten configuraciones de VPN. La sintaxis es:nmcli connection import type wireguard file "/path/to/wg0.conf"
Podemos importar wg0.conf, wg1.conf y wg2.conf de la sucesivo guisa usando un ciclo bash for:
#!/usr/bin/env bash configs="wg0.conf|mum-office-vpn wg1.conf|del-office-vpn wg2.conf|aws-ec2-vpn" wgpath="/etc/wireguard" for c in $configs do IFS='|' set -- $c echo "Importing ${wgpath}/$1 ... " sudo nmcli connection import type wireguard file "${wgpath}/$1" echo "Renaming ${1%%.conf} as $2 ..." nmcli connection modify "${1%%.conf}" connection.id "$2" done
Ejecute su script de shell de la sucesivo guisa:bash /path/to/script
Visualización de información sobre configuraciones WireGuard importadas
Valer:nmcli connection show
Ver información detallada sobre el perfil wg0 llamado mum-office-vpnnmcli connection show mum-office-vpn
nmcli connection show mum-office-vpn | more
Activar WireGuard VPN desde la CLI
Podemos activar una conexión. La conexión se identifica por su nombre, como oficina-madre-vpn. Por lo tanto, podemos escribir el sucesivo comando para desplegar la interfaz VPN:nmcli connection up mum-office-vpn
Elimine o desactive WireGuard VPN con la sucesivo sintaxis:nmcli connection down mum-office-vpn
Podemos conectarnos a múltiples interfaces VPN siempre que tengamos el enrutamiento correcto y la configuración de IP esté implementada. Por ejemplo, puedo trabajar con material de oficina y la nimbo de AWS ec2 al mismo tiempo:nmcli connection up mum-office-vpn
nmcli connection up aws-ec2-vpn
ping -c4 ec2-server-wg-ip
ping -c4 mum-office-ssh-gateway-wg-ip
Utilice el comando ip y el comando wg para ver el enrutamiento IP y otra información:ip -c r
sudo wg
Cómo ver las opciones de perfil de WireGuard
Ejecute el sucesivo comando pegado con el comando grep / comando egrep:nmcli connection show mum-office-vpn
nmcli connection show mum-office-vpn | more
nmcli connection show mum-office-vpn | grep 'dns'
nmcli connection show mum-office-vpn | grep -E -i 'dns|autoconnec'
Aquí vemos opciones:
connection.autoconnect: no connection.autoconnect-priority: 0 connection.autoconnect-retries: -1 (default) connection.autoconnect-slaves: -1 (default) connection.mdns: -1 (default) ipv4.dns: -- ipv4.dns-search: -- ipv4.dns-options: -- ipv4.dns-priority: 0 ipv4.ignore-auto-dns: no ipv6.dns: -- ipv6.dns-search: -- ipv6.dns-options: -- ipv6.dns-priority: 0 ipv6.ignore-auto-dns: no
Por ejemplo, puedo habilitar la opción de conexión cibernética para el oficina-madre-vpn pero desactívelo para aws-ec2-vpn de la sucesivo guisa:$ nmcli connection modify mum-office-vpn connection.autoconnect yes
$ nmcli connection modify aws-ec2-vpn connection.autoconnect no
Cambie incluso el nombre de la interfaz de WirdeGuard:# interface name must not be longer than 15 characters #
$ nmcli connection modify sg-wg2 connection.interface-name sg-nixcraft-vpn
$ nmcli connection up sg-wg2
$ ip a s sg-nixcraft-vpn
Y esto es lo que vemos:
26: sg-nixcraft-vpn: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 172.16.0.2/24 brd 172.16.0.255 scope entero noprefixroute sg-nixcraft-vpn valid_lft forever preferred_lft forever
Asegúrese de acertar la página man de nmcli escribiendo el sucesivo comando man:man nmcli
¿Qué pasa con la opción GUI?
Creo que están trabajando para juntar compatibilidad con WireGuard a otros clientes de NetworkManager, como nm-connection-editor. Una vez colaborador, podemos colocar el subprograma como una interfaz gráfica de favorecido descubierta del editor de conexión de red.
Resumiendo
Espero que este pequeño tutorial le resulte útil para tratar con WireGuard usando nmcli, especialmente al importar el perfil de WireGuard para su computadora de escritorio o portátil Linux.