Re: new VPN service



On Sat, 2014-06-14 at 12:22 +0200, RoboMod wrote:
Hello,

last week I found a nice peer to peer VPN Project [1]. I managed first 
tests and started to compile it to rpm package. Now I want to integrate 
the connection process into the system. And which tool comes to my mind 
first: Networkmanager.
But now I'm a bit confused cause I can't find any advice how I create a 
new vpn service integrated to NM. Do you have any tutorial or something 
else?

Unfortunately there is not...  but there are quite a few existing
implementations out there:

https://git.gnome.org/browse/network-manager-openswan/
https://git.gnome.org/browse/network-manager-iodine/
https://git.gnome.org/browse/network-manager-openconnect/
https://git.gnome.org/browse/network-manager-openvpn/
https://git.gnome.org/browse/network-manager-pptp/
https://git.gnome.org/browse/network-manager-vpnc/
https://github.com/danfruehauf/NetworkManager-ssh

NetworkManager and the VPN "plugin" service communicate via the D-Bus
protocol, and NetworkManager provides a C language glib-based
convenience library (libnm-glib-vpn) that plugin services can use.
There are a few things that the service provides:

1) takes a list of settings/configuration from NetworkManager and
transforms it into something the actual VPN program (ssh, vpnc, openvpn,
etc) can use to start the connection

2) monitors the actual VPN program and tells NetworkManager when it
quits unexpectedly

3) handles NetworkManager requests for "are the secrets/passwords the
user provided sufficient to continue the connection?"

4) sends the IP configuration details of the connection back to
NetworkManager so that NM can configure routing and DNS

5) GTK-based UI for configuring the VPN plugin with nm-connection-editor
and GNOME Shell

6) GTK-based "auth dialog" that handles requesting passwords from the
user when they haven't been provided, or are incorrect

We're happy to explain more details if you like, and the VPN services
I've listed above are fairly complete examples of how it's typically
done.  If you have more questions, please ask!

Dan



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]