Limit vpn access to one computer per account.

  • We want to limit access to one computer per account. i.e. only the computer an user used to connect the first time from is allowed to connect for that account. It will be denied if he try to connect from another computer. I know one way to accomplish that is to setup static mapping. However, we're running pfSense on AWS ec2 and it's not possible to setup DHCP in ec2. So we need an alternate way to do it.

  • LAYER 8 Global Moderator

    Huh? So I get info and cert for how to connect to openvpn.. What stops me from connecting from another device with that same cert and info? Not sure how you think dhcp mac static thing comes into play here?

    What exactly are you trying to prevent? Say I connect in with my laptop, but then I also want to connect with my tablet.. Why does it matter? I can only have 1 connection at a time, etc.

  • So if you have static IP for MAC address and disallow any access not in that mapping table, then you can stop another device.

    Although it's still 1 connection at a time, it matters where the connection is coming from. We don't want users to use their own devices to access vpn.

  • LAYER 8 Global Moderator

    Mac has nothing to do with it.. Mac only matters on a L2 network, not across the internet or across L3 networks..

    If you don't want users using their own devices.. Then don't let them.. But it has nothing to do with mac addresses.. Use certs assigned to their machines from your AD or something, etc.

  • @gridxvpn said in Limit vpn access to one computer per account.:

    So if you have static IP for MAC address and disallow any access not in that mapping table, then you can stop another device.

    Devices connected via VPN do not use DHCP. Their address is provided via the tunnel connection, so the MAC address of the remote device is irrelevant.

  • Netgate Administrator

    Yeah, this is probably a lot harder to achieve that you imagine.

    You can use some sort of physical authentication device but it's complex to setup and administer. It also still only limits you to one device per user not necessarily the same device.

    You could imagine using something like the trusted platform key somehow but.... good luck with that! 😉


  • @gridxvpn Easy peasy. All of my devices are set up exactly this way.

    1. Create user certificates for each device. Make the password unique for each certificate
    2. On the OpenVPN server configuration screen, there's a checkbox that requires the certificate in use to match the user id being tried.
    3. Download the certificates / configuration files to each designated device.
    4. Assign the devices to their designated users. Tell users not to share passwords AND let others use their PCs.

    The effect: UserABC can only use the PC assigned to UserABC unless they know the password for another device AND they have access to that other device. You're creating a type of two factor authentication - They must KNOW the password AND have access to the PC it was assigned to.

  • Netgate Administrator

    That doesn't prevent those users copying the cert to a different device though... if that's something the OP is trying to prevent.

  • @stephenw10
    If you're looking for perfection, it does not exist anywhere. Users can share passwords. Users can share devices. Users can share config files. Users can lie and cheat and steal regardless of the best efforts of anyone. This is why the concept of 'controls' and 'audits' exists, which must be accompanied by penalties for infractions, otherwise they are useless efforts. For home use, there's little need to panic. For business use, it's all about protecting the assets of the business and the jobs of everyone else which could disappear if the computer system gets screwed up enough. Employee feelings are for HR to make better. The front door is also a good tool in some cases.

  • This could potential work. Is there a way to automate the certificate creation or I'll have to manually create it? THere is a pfSense python API pfsense-fauxapi, but I don't think it can do that

  • Netgate Administrator

    Not easily. You might be better off generating the certs externally and autenticating users separately as well if you went that route.


Log in to reply