How to connect GNU/Linux IPSec VPN Client (NetworkManager) to Sophos XG Firewall

| Solution Finding

	Sophos XG Firewall IPSec <-> NetworkManager/libreswan = not working (modecfg IP request timeout)

	Sophos XG Firewall Cisco VPN Client <-> NetworkManager/vpnc = not working (not compatible - Group ID/IPSec ID)

	Sophos XG Firewall Cisco VPN Client <-> NetworkManager/libreswan = working!

| Sophos GX Firewall

CONFIGURE -> VPN -> Cisco VPN Client:

1. General Settings

	Cisco VPN Client:	Enable
	Interface:		select WAN Port
	Authentication Type:	Preshared Key
	Preshared Key:		**************************
	Local ID:		no selection
	Remote ID:		no selection
	Allowed User:		select user(s), e.g. vpnusr
				- to add user(s) see: Configure->Authentication0->Users

2. Client Information

	Name:			CiscoVPN (or any other)
	Assign IP from:		x.y.z.a1 - x.y.z.a2 (insert desired range)
	DNS Server 1:		IP address of the first DNS Server
	DNS Server 2:		IP address of the second DNS Server

3. press Apply

| Network Manager / libreswan

1. install libreswan plugin for NetworkManager (dnf, yum, apt,...)

2. initiate libreswan
	systemctl start ipsec
	systemctl enable ipsec
	systemctl restart NetworkManager

3. Network -> AddVPN (+)

	Choose a VPN Connection Type:	IPSec based VPN

4. Editing VPN Connection:

	Connection Name:		SophostVPN (or another one...)
    VPN tab -> Identity:
	Gateway:			IP/hostname of Sophos XG WAN Port
	User name:			vpnusr
	User password (Saved):		...user_password...
	Group name:			blank
	Group password:			...pre_shared_key...

    VPN tab -> IPv4 and IPv6:
	...set required setting
	Note:	switch "Use this connection only for resources in its network" is not working
		(independently of the switch state, this option is always off)

| VPN Test

Verify that packets are being sent via the VPN tunnel:

	tcpdump -n -i interface esp or udp port 500 or udp port 4500