~mamarley/openconnect/+git/gitlab-main:add_ipvX_unreachable_flags

Last commit made on 2023-07-26
Get this branch:
git clone -b add_ipvX_unreachable_flags https://git.launchpad.net/~mamarley/openconnect/+git/gitlab-main

Branch merges

Branch information

Name:
add_ipvX_unreachable_flags
Repository:
lp:~mamarley/openconnect/+git/gitlab-main

Recent commits

dc33a8e... by Dan Lenski

Set ipv[46]_unreachable flags for Pulse

Signed-off-by: Daniel Lenski <email address hidden>

65b51ca... by Dan Lenski

Set ipv[46]_unreachable flags for Fortinet

The XML tags <exclusive-routing> and <ipv6-exclusive-routing> enables this feature.

Per Fortinet's documentation:

- https://docs.fortinet.com/document/fortigate/6.4.0/cli-reference/349620/vpn-ssl-web-portal

  "Enable/disable all traffic go through tunnel only."
  "Enable/disable all IPv6 traffic go through tunnel only."

- https://kb.fortinet.com/kb/documentLink.do?externalID=FD45992

  "To prevent SSL VPN users from accessing the “on link” resource, configure “exclusive-routing enable”

Signed-off-by: Daniel Lenski <email address hidden>

877674d... by Dan Lenski

Set ipv[46]_unreachable flags for F5

The XML tag <AllowLocalSubnetAccess0> enables this feature. Per the most
straightforward reading of F5's reference documentation
(https://techdocs.f5.com/content/kb/en-us/products/big-ip_apm/manuals/product/apm-network-access-13-0-0/2.html),
it is indeed supposed to tell the client to block *all* IP access except
through the VPN:

> Select this option to enable local subnet access and local access to any host or
> subnet in routes that you have specified in the client routing table.

Signed-off-by: Daniel Lenski <email address hidden>

8375849... by Dan Lenski

Set ipv[46]_unreachable flags for Cisco/ocserv and GlobalProtect

- Cisco and ocserv can send a header `X-CSTP-Client-Bypass-Protocol: false`, which indicates that
  whichever address family *isn't* used by the VPN should be made unreachable.
  (https://gitlab.com/openconnect/ocserv/-/commit/b3fe0d85c2c81b5b7e133cabd6f3de8b951978f0)

- GP can send `<no-direct-access-to-local-network>yes` in the XML config, which indicates that
  Legacy IP should be unreachable except through the VPN.

  Some details of how it's implemented, and how *badly* it's implemented, by the official clients
  here: https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClTmCAK

Signed-off-by: Daniel Lenski <email address hidden>

d5bbb88... by Dan Lenski

Java: add unreachableIPv[46] flags to IPInfo class

Signed-off-by: Daniel Lenski <email address hidden>

d84c0aa... by Dan Lenski

Add ipv[46]_unreachable flags to struct oc_ip_info, and pass to vpnc-script

Some servers want the client to make a particular address family unreachable
*except* through the VPN, even if unused by the VPN.

This patch makes OpenConnect record the relevant values from the server, and
pass them to the tunnel configuration script, by setting `IP[46]_UNREACHABLE=true`.
The script will need to take care *not* to block the explicit route to the VPN
gateway's external address.

Signed-off-by: Daniel Lenski <email address hidden>

9c63c94... by dwmw2

Fix changelog entry for Pulse OS reporting

This was added under v9.12 instead of the HEAD section. Next person to do
that gets to implement a CI test for it :)

Perhaps we should have a policy of adding in reverse chronological order
so that newly-added lines are always immediately below the 'HEAD' title,
which would mean that merging older PRs would *conflict* instead of
silently merging into the older changelog?

Fixes: ff86be7281 ("update changelog")
Signed-off-by: David Woodhouse <email address hidden>

5a9a37a... by Dan Lenski

Fix juniper-auth test

In 57160c9f2673adbbe468db137b28da4187549061, I updated
fake-juniper-server.py to use a "persistent" configuration (as already done
for fake GlobalProtect, Fortinet, F5 servers), but thne I somehow forgot to
update the actual juniper-auth test script accordingly.

Signed-off-by: Daniel Lenski <email address hidden>

9d9a33c... by Dan Lenski

Replace broken link with Wayback Machine link

The article "Why TCP Over TCP Is A Bad Idea" is very useful for explaining
why VPNs perform better when using UDP-based transport (DTLS or ESP) rather
than TCP-based transport (TLS), but unfortunately the original site is no
longer available.

Replace it with a link to the Internet Archive's Waback Machine, specifically
https://web.archive.org/web/20230228035749/http://sites.inka.de/~W1011/devel/tcp-tcp.html

Signed-off-by: Daniel Lenski <email address hidden>

5796277... by Dimitri Papadopoulos <email address hidden>

Fix broken link to Juniper PDF

Signed-off-by: Dimitri Papadopoulos <email address hidden>