Re: Allow Single connection only via networkmanager-openvpn (reuse tun0?)

2016-04-15 Thread Dan Williams
On Fri, 2016-04-15 at 15:24 +0200, Dave Conroy wrote:
> You are right, a Pre Activaition would solve the issue. I spent the
> past
> 2 hours working with the pre-up and vpn-up statuses and found that
> the
> tun0 device wouldn't release properly as the openvpn binary is
> launched
> before the hook is triggered.
> 
> Fun exercise though. However, all is not lost:
> 
> /usr/lib/NetworkManager/VPN/nm-openvpn-service.name
> 
> supports-multiple-connections=false *does* actually enforce a single
> connection rule, forcing the user to disconnect from the VPN first
> before launching another one. I can live with that.
> 
> Out of curiousity I'm going to try giving latest gnome3 a spin and
> see
> if I can solve my (perceived) interface quirks.
> 
> Thanks for your time,

Which desktop environment are you using?  Can you screenshot the place
that you think the disconnect option should be showing up but isn't?
 There are a bunch of different UIs for NM, and only one is actually
written by NM developers :)  Know which UI would help us direct the bug
report to the right place, or fix it ourselves if it's in nm-applet.

Thanks!
Dan

> Dave
> 
> 
> On 15/04/16 03:09 PM, Thomas Haller wrote:
> > 
> > On Fri, 2016-04-15 at 13:13 +0200, Dave Conroy wrote:
> > > 
> > > Hi Thomas, 
> > > That explains it, thank you very much - you are correct in what I
> > > am
> > > looking after.
> > > There doesn't seem to be a working disconnect option in my
> > > version of
> > > NetworkManager (1.193). I will try different GTK themes to see if
> > > it
> > > is a problem with the theme itself. 
> > Certainly NetworkManager, its D-Bus API, and `nmcli connection
> > disconnect` support disconnecting a VPN connection. If your UI
> > doesn't
> > allow for that, it's a UI limitation/decision.
> > 
> > I don't think GTK themes help there. Are you using the gnome-shell
> > (Gnome3) NetworkManager integration? I am not familiar with how
> > that
> > works there, maybe there is no disconnect button? That would be
> > strange...
> > 
> > > 
> > > Would there by chance be pre/post hooks that I could utilize to
> > > execute before the connection is made? I could write up a script
> > > that
> > > disconnects any active connection this way.
> > There are dispatcher scripts. First, ensure to have the dispatcher
> > service running:
> >   `systemctl enable NetworkManager-dispatcher.service`
> > Then place scripts to /etc/NetworkManager/dispatcher.d.
> > 
> > See `man NetworkManager` for the events there.
> > 
> > Note that the events `pre-up` and `pre-down` are special (because
> > they
> > block the device transition, we only want to call scripts there,
> > which
> > opt-in for those events. See the manual.
> > 
> > 
> > Note, that `pre-up` might be a place to disconnect the other
> > connection. The problem here is, that the (blocking) pre-up event
> > is
> > not emited ~before starting with activation~, but before ~declaring
> > the
> > device/VPN as fully up~ (but at that point, the VPN connection is
> > already up for most of the part). 
> > So, if your VPN connections all want to use tun0, you cannot avoid
> > that.
> > 
> > 
> > 
> > I guess, it would be a nice feature to have such ~conflicting
> > connection`. But well...
> > 
> > An alternative feature would be a "pre-activation" dispatcher
> > event...
> > 
> > 
> > Thomas
> > 
> > 
> > > 
> > > Thanks for the prompt response,
> > > Dave
> > > 
> > > On 15/04/16 12:15 PM, Thomas Haller wrote:
> > > > 
> > > > Hi Dave,
> > > > 
> > > > 
> > > > On Fri, 2016-04-15 at 06:04 +0200, Dave Conroy wrote:
> > > > > 
> > > > > I've just subscribed to a VPN service that has multiple
> > > > > locations,
> > > > > and imported all the necessary .ovpn files into Network
> > > > > Manager.
> > > > > It seems that I do not have the option to disconnect from the
> > > > > VPNs
> > > > > when connected, and upon choosing another location it creates
> > > > > another
> > > > > tun device.
> > > > You mean, you would like to have a configuration option in your
> > > > VPN
> > > > "connection", so that when activating another specific VPN
> > > > connection,
> > > > the former gets automatically disconnected?
> > > > 
> > > > No, NetworkManager doesn't have a concept of ~conflicting~
> > > > connections.
> > > > When you activate connection A, you'd have to manually
> > > > disconnect
> > > > connection B.
> > > > 
> > > > 
> > > > > 
> > > > > I've made the change to no success to
> > > > > /etc/NetworkManager/VPN/openvpn-service.name
> > > > > supports-multiple-connections=false
> > > > > Yet it still connects multiple locations without
> > > > > disconnecting
> > > > > the
> > > > > previous connection.
> > > > That shouldn't happen. Did you restart NM after changing the
> > > > file?
> > > > But
> > > > I suspect the file /etc/NetworkManager/VPN/openvpn-service.name 
> > > > is
> > > > ignored and instead it uses
> > > > /usr/lib/NetworkManager/VPN/openvpn-
> > > > service.name. The file in /etc only 

Re: Allow Single connection only via networkmanager-openvpn (reuse tun0?)

2016-04-15 Thread Dave Conroy
You are right, a Pre Activaition would solve the issue. I spent the past
2 hours working with the pre-up and vpn-up statuses and found that the
tun0 device wouldn't release properly as the openvpn binary is launched
before the hook is triggered.

Fun exercise though. However, all is not lost:

/usr/lib/NetworkManager/VPN/nm-openvpn-service.name

supports-multiple-connections=false *does* actually enforce a single
connection rule, forcing the user to disconnect from the VPN first
before launching another one. I can live with that.

Out of curiousity I'm going to try giving latest gnome3 a spin and see
if I can solve my (perceived) interface quirks.

Thanks for your time,

Dave


On 15/04/16 03:09 PM, Thomas Haller wrote:
> On Fri, 2016-04-15 at 13:13 +0200, Dave Conroy wrote:
>> Hi Thomas, 
>> That explains it, thank you very much - you are correct in what I am
>> looking after.
>> There doesn't seem to be a working disconnect option in my version of
>> NetworkManager (1.193). I will try different GTK themes to see if it
>> is a problem with the theme itself. 
> Certainly NetworkManager, its D-Bus API, and `nmcli connection
> disconnect` support disconnecting a VPN connection. If your UI doesn't
> allow for that, it's a UI limitation/decision.
>
> I don't think GTK themes help there. Are you using the gnome-shell
> (Gnome3) NetworkManager integration? I am not familiar with how that
> works there, maybe there is no disconnect button? That would be
> strange...
>
>> Would there by chance be pre/post hooks that I could utilize to
>> execute before the connection is made? I could write up a script that
>> disconnects any active connection this way.
> There are dispatcher scripts. First, ensure to have the dispatcher
> service running:
>   `systemctl enable NetworkManager-dispatcher.service`
> Then place scripts to /etc/NetworkManager/dispatcher.d.
>
> See `man NetworkManager` for the events there.
>
> Note that the events `pre-up` and `pre-down` are special (because they
> block the device transition, we only want to call scripts there, which
> opt-in for those events. See the manual.
>
>
> Note, that `pre-up` might be a place to disconnect the other
> connection. The problem here is, that the (blocking) pre-up event is
> not emited ~before starting with activation~, but before ~declaring the
> device/VPN as fully up~ (but at that point, the VPN connection is
> already up for most of the part). 
> So, if your VPN connections all want to use tun0, you cannot avoid
> that.
>
>
>
> I guess, it would be a nice feature to have such ~conflicting
> connection`. But well...
>
> An alternative feature would be a "pre-activation" dispatcher event...
>
>
> Thomas
>
>
>> Thanks for the prompt response,
>> Dave
>>
>> On 15/04/16 12:15 PM, Thomas Haller wrote:
>>> Hi Dave,
>>>
>>>
>>> On Fri, 2016-04-15 at 06:04 +0200, Dave Conroy wrote:
 I've just subscribed to a VPN service that has multiple
 locations,
 and imported all the necessary .ovpn files into Network Manager.
 It seems that I do not have the option to disconnect from the
 VPNs
 when connected, and upon choosing another location it creates
 another
 tun device.
>>> You mean, you would like to have a configuration option in your VPN
>>> "connection", so that when activating another specific VPN
>>> connection,
>>> the former gets automatically disconnected?
>>>
>>> No, NetworkManager doesn't have a concept of ~conflicting~
>>> connections.
>>> When you activate connection A, you'd have to manually disconnect
>>> connection B.
>>>
>>>
 I've made the change to no success to
 /etc/NetworkManager/VPN/openvpn-service.name
 supports-multiple-connections=false
 Yet it still connects multiple locations without disconnecting
 the
 previous connection.
>>> That shouldn't happen. Did you restart NM after changing the file?
>>> But
>>> I suspect the file /etc/NetworkManager/VPN/openvpn-service.name is
>>> ignored and instead it uses /usr/lib/NetworkManager/VPN/openvpn-
>>> service.name. The file in /etc only exists for backward
>>> compatibility,
>>> in 1.2, the location of this file moved to /usr/lib.
>>>
>>> Changing supports-multiple-connection=false actually should give
>>> you
>>> the conflicting behavior, but that doesn't sound like the right
>>> approach. First of all, openvpn-service.name is not user-
>>> configuration. 
>>> This setting is here to tell NetworkManager that this plugin is new
>>> enough to support multiple activations of Openvpn connections
>>> (simultaneously). It's not here to implement ~conflicting
>>> connections~.
>>>
>>> Before 1.2, VPN plugins did not support to activate more then once
>>> at a
>>> time. Old plugins were always supports-multiple-connections=false.
>>>
>>>
 Furthermore, I've set it to specifically use tun0 for my
 connections
 yet upon trying to load another connection even after "disabling"
 the
 VPN (I use Cinnamon Desktop) it says that it cannot access 

Re: Allow Single connection only via networkmanager-openvpn (reuse tun0?)

2016-04-15 Thread Thomas Haller
On Fri, 2016-04-15 at 13:13 +0200, Dave Conroy wrote:
> Hi Thomas, 
> That explains it, thank you very much - you are correct in what I am
> looking after.
> There doesn't seem to be a working disconnect option in my version of
> NetworkManager (1.193). I will try different GTK themes to see if it
> is a problem with the theme itself. 

Certainly NetworkManager, its D-Bus API, and `nmcli connection
disconnect` support disconnecting a VPN connection. If your UI doesn't
allow for that, it's a UI limitation/decision.

I don't think GTK themes help there. Are you using the gnome-shell
(Gnome3) NetworkManager integration? I am not familiar with how that
works there, maybe there is no disconnect button? That would be
strange...

> Would there by chance be pre/post hooks that I could utilize to
> execute before the connection is made? I could write up a script that
> disconnects any active connection this way.

There are dispatcher scripts. First, ensure to have the dispatcher
service running:
  `systemctl enable NetworkManager-dispatcher.service`
Then place scripts to /etc/NetworkManager/dispatcher.d.

See `man NetworkManager` for the events there.

Note that the events `pre-up` and `pre-down` are special (because they
block the device transition, we only want to call scripts there, which
opt-in for those events. See the manual.


Note, that `pre-up` might be a place to disconnect the other
connection. The problem here is, that the (blocking) pre-up event is
not emited ~before starting with activation~, but before ~declaring the
device/VPN as fully up~ (but at that point, the VPN connection is
already up for most of the part). 
So, if your VPN connections all want to use tun0, you cannot avoid
that.



I guess, it would be a nice feature to have such ~conflicting
connection`. But well...

An alternative feature would be a "pre-activation" dispatcher event...


Thomas


> Thanks for the prompt response,
> Dave
> 
> On 15/04/16 12:15 PM, Thomas Haller wrote:
> > Hi Dave,
> > 
> > 
> > On Fri, 2016-04-15 at 06:04 +0200, Dave Conroy wrote:
> > > I've just subscribed to a VPN service that has multiple
> > > locations,
> > > and imported all the necessary .ovpn files into Network Manager.
> > > It seems that I do not have the option to disconnect from the
> > > VPNs
> > > when connected, and upon choosing another location it creates
> > > another
> > > tun device.
> > You mean, you would like to have a configuration option in your VPN
> > "connection", so that when activating another specific VPN
> > connection,
> > the former gets automatically disconnected?
> > 
> > No, NetworkManager doesn't have a concept of ~conflicting~
> > connections.
> > When you activate connection A, you'd have to manually disconnect
> > connection B.
> > 
> > 
> > > I've made the change to no success to
> > > /etc/NetworkManager/VPN/openvpn-service.name
> > > supports-multiple-connections=false
> > > Yet it still connects multiple locations without disconnecting
> > > the
> > > previous connection.
> > That shouldn't happen. Did you restart NM after changing the file?
> > But
> > I suspect the file /etc/NetworkManager/VPN/openvpn-service.name is
> > ignored and instead it uses /usr/lib/NetworkManager/VPN/openvpn-
> > service.name. The file in /etc only exists for backward
> > compatibility,
> > in 1.2, the location of this file moved to /usr/lib.
> > 
> > Changing supports-multiple-connection=false actually should give
> > you
> > the conflicting behavior, but that doesn't sound like the right
> > approach. First of all, openvpn-service.name is not user-
> > configuration. 
> > This setting is here to tell NetworkManager that this plugin is new
> > enough to support multiple activations of Openvpn connections
> > (simultaneously). It's not here to implement ~conflicting
> > connections~.
> > 
> > Before 1.2, VPN plugins did not support to activate more then once
> > at a
> > time. Old plugins were always supports-multiple-connections=false.
> > 
> > 
> > > Furthermore, I've set it to specifically use tun0 for my
> > > connections
> > > yet upon trying to load another connection even after "disabling"
> > > the
> > > VPN (I use Cinnamon Desktop) it says that it cannot access tun0
> > > as
> > > the device is busy. I can disconnect via nmctl 
> > Yes, you can disconnect with nmcli.
> > 
> > > but was wondering if there was a way that I could force
> > > NetworkManaager to only use one VPN connection at a time,
> > > releasing
> > > back tun0 to be used again.
> > No, such a concept doesn't exist (up to now).
> > 
> > 
> > > Error Code:
> > > ERROR: Cannot ioctl TUNSETIFF tun0: Device or resource busy
> > > (errno=16)
> > openvpn said that? Yes, that sounds expected, right?
> > 
> > 
> > 
> > Thomas
>  
> -- 
> Dave Conroy (d...@tiredofit.ca) PGP: 0x45C0F342
> Pedaling around the world away from a job in Information Technology
> Tired of I.T! http://www.tiredofit.ca The Book - Now available!
> http://www.tiredofit.ca/book/

signature.asc

Re: Allow Single connection only via networkmanager-openvpn (reuse tun0?)

2016-04-15 Thread Dave Conroy
Hi Thomas,

That explains it, thank you very much - you are correct in what I am
looking after.

There doesn't seem to be a working disconnect option in my version of
NetworkManager (1.193). I will try different GTK themes to see if it is
a problem with the theme itself. Would there by chance be pre/post hooks
that I could utilize to execute before the connection is made? I could
write up a script that disconnects any active connection this way.

Thanks for the prompt response,

Dave


On 15/04/16 12:15 PM, Thomas Haller wrote:
> Hi Dave,
>
>
> On Fri, 2016-04-15 at 06:04 +0200, Dave Conroy wrote:
>> I've just subscribed to a VPN service that has multiple locations,
>> and imported all the necessary .ovpn files into Network Manager.
>> It seems that I do not have the option to disconnect from the VPNs
>> when connected, and upon choosing another location it creates another
>> tun device.
> You mean, you would like to have a configuration option in your VPN
> "connection", so that when activating another specific VPN connection,
> the former gets automatically disconnected?
>
> No, NetworkManager doesn't have a concept of ~conflicting~ connections.
> When you activate connection A, you'd have to manually disconnect
> connection B.
>
>
>> I've made the change to no success to
>> /etc/NetworkManager/VPN/openvpn-service.name
>> supports-multiple-connections=false
>> Yet it still connects multiple locations without disconnecting the
>> previous connection.
> That shouldn't happen. Did you restart NM after changing the file? But
> I suspect the file /etc/NetworkManager/VPN/openvpn-service.name is
> ignored and instead it uses /usr/lib/NetworkManager/VPN/openvpn-
> service.name. The file in /etc only exists for backward compatibility,
> in 1.2, the location of this file moved to /usr/lib.
>
> Changing supports-multiple-connection=false actually should give you
> the conflicting behavior, but that doesn't sound like the right
> approach. First of all, openvpn-service.name is not user-configuration. 
> This setting is here to tell NetworkManager that this plugin is new
> enough to support multiple activations of Openvpn connections
> (simultaneously). It's not here to implement ~conflicting connections~.
>
> Before 1.2, VPN plugins did not support to activate more then once at a
> time. Old plugins were always supports-multiple-connections=false.
>
>
>> Furthermore, I've set it to specifically use tun0 for my connections
>> yet upon trying to load another connection even after "disabling" the
>> VPN (I use Cinnamon Desktop) it says that it cannot access tun0 as
>> the device is busy. I can disconnect via nmctl 
> Yes, you can disconnect with nmcli.
>
>> but was wondering if there was a way that I could force
>> NetworkManaager to only use one VPN connection at a time, releasing
>> back tun0 to be used again.
> No, such a concept doesn't exist (up to now).
>
>
>> Error Code:
>> ERROR: Cannot ioctl TUNSETIFF tun0: Device or resource busy
>> (errno=16)
> openvpn said that? Yes, that sounds expected, right?
>
>
>
> Thomas

-- 
Dave Conroy (d...@tiredofit.ca) PGP: 0x45C0F342
Pedaling around the world away from a job in Information Technology
Tired of I.T! http://www.tiredofit.ca The Book - Now available!
http://www.tiredofit.ca/book/

___
networkmanager-list mailing list
networkmanager-list@gnome.org
https://mail.gnome.org/mailman/listinfo/networkmanager-list


Re: Allow Single connection only via networkmanager-openvpn (reuse tun0?)

2016-04-15 Thread Thomas Haller
Hi Dave,


On Fri, 2016-04-15 at 06:04 +0200, Dave Conroy wrote:
> I've just subscribed to a VPN service that has multiple locations,
> and imported all the necessary .ovpn files into Network Manager.
> It seems that I do not have the option to disconnect from the VPNs
> when connected, and upon choosing another location it creates another
> tun device.

You mean, you would like to have a configuration option in your VPN
"connection", so that when activating another specific VPN connection,
the former gets automatically disconnected?

No, NetworkManager doesn't have a concept of ~conflicting~ connections.
When you activate connection A, you'd have to manually disconnect
connection B.


> I've made the change to no success to
> /etc/NetworkManager/VPN/openvpn-service.name
> supports-multiple-connections=false
> Yet it still connects multiple locations without disconnecting the
> previous connection.

That shouldn't happen. Did you restart NM after changing the file? But
I suspect the file /etc/NetworkManager/VPN/openvpn-service.name is
ignored and instead it uses /usr/lib/NetworkManager/VPN/openvpn-
service.name. The file in /etc only exists for backward compatibility,
in 1.2, the location of this file moved to /usr/lib.

Changing supports-multiple-connection=false actually should give you
the conflicting behavior, but that doesn't sound like the right
approach. First of all, openvpn-service.name is not user-configuration. 
This setting is here to tell NetworkManager that this plugin is new
enough to support multiple activations of Openvpn connections
(simultaneously). It's not here to implement ~conflicting connections~.

Before 1.2, VPN plugins did not support to activate more then once at a
time. Old plugins were always supports-multiple-connections=false.


> Furthermore, I've set it to specifically use tun0 for my connections
> yet upon trying to load another connection even after "disabling" the
> VPN (I use Cinnamon Desktop) it says that it cannot access tun0 as
> the device is busy. I can disconnect via nmctl 

Yes, you can disconnect with nmcli.

> but was wondering if there was a way that I could force
> NetworkManaager to only use one VPN connection at a time, releasing
> back tun0 to be used again.

No, such a concept doesn't exist (up to now).


> Error Code:
> ERROR: Cannot ioctl TUNSETIFF tun0: Device or resource busy
> (errno=16)

openvpn said that? Yes, that sounds expected, right?



Thomas

signature.asc
Description: This is a digitally signed message part
___
networkmanager-list mailing list
networkmanager-list@gnome.org
https://mail.gnome.org/mailman/listinfo/networkmanager-list


Allow Single connection only via networkmanager-openvpn (reuse tun0?)

2016-04-14 Thread Dave Conroy
I've just subscribed to a VPN service that has multiple locations, and
imported all the necessary .ovpn files into Network Manager.

It seems that I do not have the option to disconnect from the VPNs when
connected, and upon choosing another location it creates another tun device.

I've made the change to no success to
/etc/NetworkManager/VPN/openvpn-service.name

supports-multiple-connections=false

Yet it still connects multiple locations without disconnecting the
previous connection. Furthermore, I've set it to specifically use tun0
for my connections yet upon trying to load another connection even after
"disabling" the VPN (I use Cinnamon Desktop) it says that it cannot
access tun0 as the device is busy. I can disconnect via nmctl but was
wondering if there was a way that I could force NetworkManaager to only
use one VPN connection at a time, releasing back tun0 to be used again.

Error Code:

ERROR: Cannot ioctl TUNSETIFF tun0: Device or resource busy (errno=16)

___
networkmanager-list mailing list
networkmanager-list@gnome.org
https://mail.gnome.org/mailman/listinfo/networkmanager-list