Package: cloudmesh-vpn
cloudmesh-vpnSchoolTestedVPN-SlicingUVA✅❌FIU✅❌UFL✅✅FAMU❌❌NYU✅❌UCI❌❌GMU❌❌OleMiss❌❌SC❌❌InstallWindowsOpen any terminal (git bash, cmd, powershell) as administrator.Python 3.12 is recommended, which can bedownloaded from the Python website.Your Python version can be checked
with the commandpython -VOnce confirming Python, execute:pipinstallcloudmesh-vpnUsageTo connect to the UVA Anywhere VPN, runcmsvpnconnectFor other organizations, the--serviceflag can be used:cmsvpnconnect--service=ufl# possible services are uva fiu uflNote- currently the output will be piped to the terminal
and will end in response toCtrl + Cconsider executing the following:nohup cms vpn connect --service=ufl >/dev/null 2>&1To disconnect from current VPN, runcmsvpndisconnectTo see info regarding your connection, runcmsvpninfoLinuxRequirementsOn Linux we use the commandopenconnect. To check if it is available please use$whichopenconnectIf it is not available, you can install it un Ubuntu with$sudoaptinstallopenssl
$sudoaptinstallopenconnect
$sudoaptinstallnetwork-manager-openconnectand in case you use gnoe also:$sudoaptinstallnetwork-manager-gnome
$sudoaptinstallnetwork-manager-openconnect-gnomeGetting certificatesWe have tested this tool only with University of Virginia, but it should be simple to adapt. Just follow the
instructions to obtain the certificates from your provider.At UVA you find the certificate and other documentation athttps://www.rc.virginia.edu/userinfo/linux/uva-anywhere-vpn-linux/we place all certificates into ~/.ssh/uvamkdir -p You will receive a file ending in .p12. In this example we will assume it is named mst3k.p12.
cd ~/.ssh/uva
wget https://download.its.virginia.edu/local-auth/universal/usher.cerTo get a certificate for your device, go tohttps://cloud.securew2.com/public/82116/limited/?device=UnknownFill it out and get the key. You will receive a
file ending in .p12. In this example we will assume it
is named mst3k.p12 and place it into ~/.ssh/uva/user.p12It is important for us to rename this key to user.p12
so we have a simpler way of identifying it and writing this documentation.Now convert the keys and certificates with the following commandscd~/.ssh/uva
opensslpkcs12-inmst3k.p12-nocerts-nodes-outmst3k.key
opensslpkcs12-inmst3k.p12-clcerts-nokeys-outmst3k.crt
opensslx509-informDER-inusher.cer-outusher.crtNow your UVA directory should have the following files in it.ls ~/.ssh/uva/
user.crt  user.key  user.p12  usher.cer  usher.crtInstall and using the commandYou can now use the cloudmesh cms vpn command.$pipinstallcloudmesh-vpn
$cmshelpTo connect use$cmsvpnconnectTo show the status use$cmsvpnconnectTo disconnect$cmsvpndisconnectAcknowledgmentsThis work was in part funded by the NSF
CyberTraining: CIC: CyberTraining for Students and Technologies
from Generation Z with the award numbers 1829704 and 2200409.Manual PageCommand vpn
===========

::

  Usage:
        vpn connect [--service=SERVICE] [--timeout=TIMEOUT] [-v] [--choco]
        vpn disconnect [-v]
        vpn status [-v]
        vpn info

  This command manages the vpn connection

  Options:
      -v       debug [default: False]
      --choco  installs chocolatey [default: False]

  Description:
    vpn info
       prints out information about your current location as
       obtained via the vpn connection.

    vpn status
        prints out "True" if the vpn is connected
        and "False" if it is not.

    vpn disconnect
        disconnects from the VPN.

    vpn connect [--service=SERVICE]
        connects to the UVA Anywhere VPN.

        If the VPN is already connected a warning is shown.

        You can connect to other VPNs while specifying their names
        as given to you by the VPN provider with e service option.