How to configure strongSwan eap-radius with FreeRadius for EAP-MSCHAPv2 authentication?

3 min read 23-10-2024
How to configure strongSwan eap-radius with FreeRadius for EAP-MSCHAPv2 authentication?

In today's digital landscape, secure VPN connections are essential for protecting sensitive data. One of the most effective ways to secure these connections is through the use of EAP-MSCHAPv2 authentication with strongSwan and FreeRADIUS. This guide will walk you through the configuration process to ensure a seamless setup.

Understanding the Problem

Setting up strongSwan for EAP-RADIUS authentication involves multiple components. A typical scenario might look like this:

You have a strongSwan VPN server that you want to authenticate users using EAP-MSCHAPv2 against a FreeRADIUS server. This setup allows users to authenticate securely using their Windows credentials, improving access control for your network.

Original Code for the Problem

Here's an example of what your initial configuration might look like, which may not yet be optimized or complete:

# strongSwan configuration
config setup
    charonstart = yes
    uniqueids = no

conn %default
    keyexchange = ikev2

conn eap-mschapv2
    keyexchange = ikev2
    left = <VPN_SERVER_IP>
    leftid = <VPN_SERVER_DOMAIN>
    leftauth = eap-mschapv2
    lefteap = radius
    right = %any
    rightauth = eap
    eap_identity = "%u"

include /etc/ipsec.d/*.conf

Step-by-Step Configuration

Step 1: Install strongSwan and FreeRADIUS

Make sure both strongSwan and FreeRADIUS are installed on your server. You can install these using your system's package manager. For example, on a Debian-based system, you can run:

sudo apt-get install strongswan freeradius freeradius-utils

Step 2: Configure FreeRADIUS

The next step is to set up your FreeRADIUS server for EAP-MSCHAPv2. Open the eap.conf file located in /etc/freeradius/3.0/mods-available/.

eap {
    ...
    mschapv2 {
        ...
        # Ensure to include the following for MSCHAPv2
        use_mschapv2 = yes
    }
}

Step 3: Enable the EAP Module

Ensure that the EAP module is enabled in FreeRADIUS by creating a symbolic link in the mods-enabled directory.

cd /etc/freeradius/3.0/mods-enabled/
sudo ln -s ../mods-available/eap eap

Step 4: Configure strongSwan

Modify the ipsec.conf file to set up strongSwan for using FreeRADIUS for authentication. Ensure your strongSwan configuration looks like this:

# strongSwan configuration
config setup
    charonstart = yes
    uniqueids = no

conn eap-mschapv2
    keyexchange = ikev2
    left = <VPN_SERVER_IP>
    leftid = <VPN_SERVER_DOMAIN>
    leftauth = eap-mschapv2
    lefteap = radius
    right = %any
    rightauth = eap
    eap_identity = "%u"
    rightdns = 8.8.8.8, 8.8.4.4

Replace <VPN_SERVER_IP> and <VPN_SERVER_DOMAIN> with your actual server IP and domain.

Step 5: Configure RADIUS Client

In FreeRADIUS, define your strongSwan server as a RADIUS client by editing the clients.conf file:

client strongswan {
    ipaddr = <VPN_SERVER_IP>
    secret = <RADIUS_SECRET>
    shortname = strongswan
}

Step 6: Start Both Services

Start or restart the FreeRADIUS and strongSwan services to apply the changes:

sudo systemctl restart freeradius
sudo systemctl restart strongswan

Additional Analysis

Setting up strongSwan with FreeRADIUS for EAP-MSCHAPv2 requires careful configuration to ensure both servers communicate effectively. Regularly checking logs can help diagnose issues. The logs for strongSwan can typically be found in /var/log/syslog, and FreeRADIUS logs can be checked with:

sudo freeradius -X

This command runs FreeRADIUS in debug mode, providing detailed output that can aid troubleshooting.

Practical Example

For instance, if you're setting up this authentication method for a corporate network, employees can connect to the VPN with their Active Directory credentials. This approach enhances security by not requiring the distribution of static passwords.

Conclusion

By configuring strongSwan to authenticate users against FreeRADIUS using EAP-MSCHAPv2, you improve the security of your network significantly. This step-by-step guide ensures that your VPN setup is both secure and manageable.

Useful Resources

Following these steps will help you create a secure authentication environment for your network. Happy configuring!