You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-9Lines changed: 11 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,23 @@
1
1
# NetworkManager-anyconnect
2
2
3
-
NetworkManager-anyconnect is a VPN plugin for NetworkManager. It extends NetworkManager in a similar way to [other VPN plugins](https://wiki.gnome.org/Projects/NetworkManager/VPN) and provides a wrapper to the proprietary Cisco AnyConnect VPN client.
3
+
NetworkManager-anyconnect is a VPN plugin for NetworkManager. It extends NetworkManager in a similar way to [other VPN plugins](https://wiki.gnome.org/Projects/NetworkManager/VPN) and provides a wrapper to the proprietary Cisco AnyConnect VPN client.
4
4
5
5
## Usage
6
6
7
-
Since NetworkManager-anyconnect provides a wrapper around the AnyConnect client, you should ensure that you can first connect via AnyConnect. Set up your certificates and connection using the proprietary client and test your connection. Once successfully set up and with NetworkManager-anyconnect installed on your system, you should see a `Cisco AnyConnect` option when adding a new VPN connection. Select this option to configure your VPN and you will be presented with the configuration screen (shown below). Configuration is very simple, since you have your certificates set up already you just need to choose the VPN gateway to connect to from the drop down list and give your VPN connection a name.
7
+
Since NetworkManager-anyconnect provides a wrapper around the AnyConnect client, you should ensure that you can first connect via AnyConnect. Set up your certificates and connection using the proprietary client and test your connection. Once successfully set up and with NetworkManager-anyconnect installed on your system, you should see a `Cisco AnyConnect` option when adding a new VPN connection. Select this option to configure your VPN and you will be presented with the configuration screen (shown below). Configuration is very simple, since you have your certificates set up already you just need to choose the VPN gateway to connect to from the drop down list and give your VPN connection a name.
Whether you hit this problem will depend on two things being true:
14
+
14
15
1. Your AnyConnect gateway needs to be configured to require downloading data to VPN clients
15
16
2. Your NetworkManager must be started by systemd using `ProtectHome=read-only`
16
17
17
-
As outlined in the [AnyConnect Manual](https://www.cisco.com/c/en/us/td/docs/security/vpn_client/anyconnect/anyconnect48/administration/guide/b_AnyConnect_Administrator_Guide_4-8.pdf), certificates must live in the `~/.cisco/` directory. Similarly, AnyConnect may download data from the VPN server during the connection attempt and if so, this downloaded data is also written to the `~/.cisco/` directory. However, in many Linux distributions the NetworkManager service is started with read-only access to the entire `/home` directory structure using the `ProtectHome=read-only`[configuration from systemd](https://www.freedesktop.org/software/systemd/man/systemd.exec.html). In these cases where AnyConnect needs to write to `~/.cisco/` but cannot, the connection attempt will fail.
18
+
As outlined in the [AnyConnect Manual](https://www.cisco.com/c/en/us/td/docs/security/vpn_client/anyconnect/anyconnect48/administration/guide/b_AnyConnect_Administrator_Guide_4-8.pdf), certificates must live in the `~/.cisco/` directory. Similarly, AnyConnect may download data from the VPN server during the connection attempt and if so, this downloaded data is also written to the `~/.cisco/` directory. However, in many Linux distributions the NetworkManager service is started with read-only access to the entire `/home` directory structure using the `ProtectHome=read-only`[configuration from systemd](https://www.freedesktop.org/software/systemd/man/systemd.exec.html). In these cases where AnyConnect needs to write to `~/.cisco/` but cannot, the connection attempt will fail.
18
19
19
-
The work-around for this issue is to move your certificates elsewhere within your home directory and create a `~/.cisco` directory in another branch of the file system that is writeable to your user id. This can be achieved using the `/var/tmp/` directory using the following commands that should be run under your own user ID (not root) as an example:
20
+
The work-around for this issue is to move your certificates elsewhere within your home directory and create a `~/.cisco` directory in another branch of the file system that is writeable to your user id. This can be achieved using the `/var/tmp/` directory using the following commands that should be run under your own user ID (not root) as an example:
1. move your `~/.cisco/` directory out of the way so it can be replaced with a symbolic link
30
32
2. create a new directory that will be writeable to NetworkManager sub-processes
31
33
3. link the writeable directory from your `~/.cisco/` directory
32
34
4. keep your certificates in your home directory and link those to the writeable directory (they will remain read-only)
33
35
34
-
The `/var/tmp/` directory is recommended for this work-around since it is considered more persistent than `/tmp/`. However, you may find that the sub-directory you created there is wiped out from time to time so you may want to set something up perhaps with a systemd timer or cron to make sure the directory remains in place for when you need it for your VPN connections.
36
+
The `/var/tmp/` directory is recommended for this work-around since it is considered more persistent than `/tmp/`. However, you may find that the sub-directory you created there is wiped out from time to time so you may want to set something up perhaps with a systemd timer or cron to make sure the directory remains in place for when you need it for your VPN connections.
35
37
36
38
## Building
37
39
38
-
You will need gcc and the GNU autotools installed on your build system. There is a `autogen.sh` script you can use to generate the required build files. Then it's the standard configure and make script you'd expect. The `autogen.sh` script is set to run the configure script but you may choose to reconfigure the build. An example is shown below:
40
+
You will need gcc and the GNU autotools installed on your build system. There is a `autogen.sh` script you can use to generate the required build files. Then it's the standard configure and make script you'd expect. The `autogen.sh` script is set to run the configure script but you may choose to reconfigure the build. An example is shown below:
Note 1: the `meson dist` command will only build a tar file from the currently committed code i.e. if you have local changes these will **not** be added to the build.
@@ -71,5 +73,5 @@ Since the SELinux policy isn't required on all machines where NetworkManager-any
0 commit comments