10 KiB
Configure IPsec/XAuth VPN Clients
After setting up your own VPN server, follow these steps to configure your devices. IPsec/XAuth ("Cisco IPsec") is natively supported by Android, iOS and OS X. There is no additional software to install. Windows users can use the free Shrew Soft client. In case you are unable to connect, first check to make sure the VPN credentials were entered correctly.
IPsec/XAuth mode is also called "Cisco IPsec". This mode is generally faster than IPsec/L2TP with less overhead.
- Platforms
Windows
You may also connect using IKEv2 (recommended) or IPsec/L2TP mode. No additional software is required.
- Download and install the free Shrew Soft VPN client. When prompted during install, select Standard Edition.
Note: This VPN client does NOT support Windows 10/11. - Click Start Menu -> All Programs -> ShrewSoft VPN Client -> VPN Access Manager
- Click the Add (+) button on toolbar.
- Enter
Your VPN Server IP
in the Host Name or IP Address field. - Click the Authentication tab. Select Mutual PSK + XAuth from the Authentication Method drop-down menu.
- Under the Local Identity sub-tab, select IP Address from the Identification Type drop-down menu.
- Click the Credentials sub-tab. Enter
Your VPN IPsec PSK
in the Pre Shared Key field. - Click the Phase 1 tab. Select main from the Exchange Type drop-down menu.
- Click the Phase 2 tab. Select sha1 from the HMAC Algorithm drop-down menu.
- Click Save to save the VPN connection details.
- Select the new VPN connection. Click the Connect button on toolbar.
- Enter
Your VPN Username
in the Username field. - Enter
Your VPN Password
in the Password field. - Click Connect.
Once connected, you will see tunnel enabled in the VPN Connect status window. Click the "Network" tab, and confirm that Established - 1 is displayed under "Security Associations". You can verify that your traffic is being routed properly by looking up your IP address on Google. It should say "Your public IP address is Your VPN Server IP
".
If you get an error when trying to connect, see Troubleshooting.
OS X (macOS)
macOS 13 (Ventura) and newer
You may also connect using IKEv2 (recommended) or IPsec/L2TP mode.
- Open System Settings and go to the Network section.
- Click VPN on the right hand side of the window.
- Click the Add VPN Configuration drop-down menu and select Cisco IPSec.
- In the window that opens, enter anything you like for the Display name.
- Enter
Your VPN Server IP
for the Server address. - Enter
Your VPN Username
for the Account name. - Enter
Your VPN Password
for the Password. - Select Shared secret from the Type drop-down menu.
- Enter
Your VPN IPsec PSK
for the Shared secret. - Leave the Group name field blank.
- Click Create to save the VPN configuration.
- To show VPN status in your menu bar and for shortcut access, go to the Control Center section of System Settings. Scroll to the bottom and select
Show in Menu Bar
from the VPN drop-down menu.
To connect to the VPN: Use the menu bar icon, or go to the VPN section of System Settings and toggle the switch for your VPN configuration. You can verify that your traffic is being routed properly by looking up your IP address on Google. It should say "Your public IP address is Your VPN Server IP
".
If you get an error when trying to connect, see Troubleshooting.
macOS 12 (Monterey) and older
You may also connect using IKEv2 (recommended) or IPsec/L2TP mode.
- Open System Preferences and go to the Network section.
- Click the + button in the lower-left corner of the window.
- Select VPN from the Interface drop-down menu.
- Select Cisco IPSec from the VPN Type drop-down menu.
- Enter anything you like for the Service Name.
- Click Create.
- Enter
Your VPN Server IP
for the Server Address. - Enter
Your VPN Username
for the Account Name. - Enter
Your VPN Password
for the Password. - Click the Authentication Settings button.
- In the Machine Authentication section, select the Shared Secret radio button and enter
Your VPN IPsec PSK
. - Leave the Group Name field blank.
- Click OK.
- Check the Show VPN status in menu bar checkbox.
- Click Apply to save the VPN connection information.
To connect to the VPN: Use the menu bar icon, or go to the Network section of System Preferences, select the VPN and choose Connect. You can verify that your traffic is being routed properly by looking up your IP address on Google. It should say "Your public IP address is Your VPN Server IP
".
If you get an error when trying to connect, see Troubleshooting.
Android
Important: Android users should instead connect using IKEv2 mode (recommended), which is more secure. Android 12+ only supports IKEv2 mode. The native VPN client in Android uses the less secure modp1024
(DH group 2) for the IPsec/L2TP and IPsec/XAuth ("Cisco IPsec") modes.
If you still want to connect using IPsec/XAuth mode, you must first edit /etc/ipsec.conf
on the VPN server. Find the line ike=...
and append ,aes256-sha2;modp1024,aes128-sha1;modp1024
at the end. Save the file and run service ipsec restart
.
Docker users: Add VPN_ENABLE_MODP1024=yes
to your env file, then re-create the Docker container.
After that, follow the steps below on your Android device:
- Launch the Settings application.
- Tap "Network & internet". Or, if using Android 7 or earlier, tap More... in the Wireless & networks section.
- Tap VPN.
- Tap Add VPN Profile or the + icon at top-right of screen.
- Enter anything you like in the Name field.
- Select IPSec Xauth PSK in the Type drop-down menu.
- Enter
Your VPN Server IP
in the Server address field. - Leave the IPSec identifier field blank.
- Enter
Your VPN IPsec PSK
in the IPSec pre-shared key field. - Tap Save.
- Tap the new VPN connection.
- Enter
Your VPN Username
in the Username field. - Enter
Your VPN Password
in the Password field. - Check the Save account information checkbox.
- Tap Connect.
Once connected, you will see a VPN icon in the notification bar. You can verify that your traffic is being routed properly by looking up your IP address on Google. It should say "Your public IP address is Your VPN Server IP
".
If you get an error when trying to connect, see Troubleshooting.
iOS
You may also connect using IKEv2 (recommended) or IPsec/L2TP mode.
- Go to Settings -> General -> VPN.
- Tap Add VPN Configuration....
- Tap Type. Select IPSec and go back.
- Tap Description and enter anything you like.
- Tap Server and enter
Your VPN Server IP
. - Tap Account and enter
Your VPN Username
. - Tap Password and enter
Your VPN Password
. - Leave the Group Name field blank.
- Tap Secret and enter
Your VPN IPsec PSK
. - Tap Done.
- Slide the VPN switch ON.
Once connected, you will see a VPN icon in the status bar. You can verify that your traffic is being routed properly by looking up your IP address on Google. It should say "Your public IP address is Your VPN Server IP
".
If you get an error when trying to connect, see Troubleshooting.
Linux
You may also connect using IKEv2 mode (recommended).
Fedora and CentOS
Fedora 28 (and newer) and CentOS 8/7 users can install the NetworkManager-libreswan-gnome
package using yum
, then configure the IPsec/XAuth VPN client using the GUI.
- Go to Settings -> Network -> VPN. Click the + button.
- Select IPsec based VPN.
- Enter anything you like in the Name field.
- Enter
Your VPN Server IP
for the Gateway. - Select IKEv1 (XAUTH) in the Type drop-down menu.
- Enter
Your VPN Username
for the User name. - Right-click the ? in the User password field, select Store the password only for this user.
- Enter
Your VPN Password
for the User password. - Leave the Group name field blank.
- Right-click the ? in the Secret field, select Store the password only for this user.
- Enter
Your VPN IPsec PSK
for the Secret. - Leave the Remote ID field blank.
- Click Add to save the VPN connection information.
- Turn the VPN switch ON.
Once connected, you can verify that your traffic is being routed properly by looking up your IP address on Google. It should say "Your public IP address is Your VPN Server IP
".
Other Linux
Other Linux users can connect using IPsec/L2TP mode.
License
Note: This license applies to this document only.
Copyright (C) 2016-2024 Lin Song
Inspired by the work of Joshua Lund
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.