[strongSwan] (Vici) How to disconnect a VPN connection on the server side?
Tobias Brunner
tobias at strongswan.org
Mon Sep 9 14:38:01 CEST 2019
Hi Houman,
> Is there is a way to disconnect a specific strongswan user from the
> command line?
Not directly (at least not via vici, it might be possible via RADIUS,
depending on the RADIUS server).
> I have found the Vici plugin, but there is no documentation whatsoever.
What do you mean? [1] provides an overview and has a link to the
README.md file that describes the available commands and even contains
simple code examples. The Python bindings are basically a wrapper that
provides a convenient interface for these commands.
> import vici
> s = vici.Session()
>>>> s.list_conns()
> <generator object Session.streamed_request at 0x7ff658411ed0>
That returns the configured connections, so that's not really useful to
you. More interesting will be the list of established IKE_SAs (s.list_sas).
> Looking at the code there is a "filters" as an argument to pass in:
That argument can be used to pass information to the command (check the
README for what the options are). For example, with list-sas you can
filter based on the name or unique ID of an SA and/or pass a flag that
determines if the command operates in non-blocking mode (blocked SAs are
skipped). There is no option to filter by remote/user ID, so you have
to enumerate the established SAs (list-sa documents the returned
information) and check remote-(eap-)id yourself.
> But I'm stuck as I don't know how to set that. There must be some kind
> of documentation for this right?
As I said, the README file documents the commands and arguments.
> I suppose once I have the actual SA, I could pass it to terminate().
Get the unique ID of the SA and then terminate it using that.
Regards,
Tobias
[1] https://wiki.strongswan.org/projects/strongswan/wiki/Vici
More information about the Users
mailing list