Are you looking for a free VPN solution? You’re at the correct place. While staying home during COVID-19 pandemic, along with knowledge upgrade it’s also the right time to go through the layers of security we have at home our computer environment.
Using VPN is one of the secure ways to access digital contents and do transactions through the public internet. Most of the VPN solutions available in the market doesn’t come free. Its pricey or complex setup or even has bottlenecks.
On this post, I will walk you through to setup your own free VPN server. I have configured the setup with least changes so you can follow the guidelines easily.
An Amazon AWS account, don’t worry it is free. Create an AWS account here if you don’t have one. This has everything that you need to proceed with this setup.
Let’s dive into the tutorial,
Step 1 – Login to AWS console
Once you have created an AWS account, login to the AWS console.
Step 2 – Change AWS region
Next step is to change the region wherever you want to place your VPN server. E.g Europe, Asia Pacific, US etc… so wherever AWS is available, you/ your VPN Server is too.
Step 3 – Create an EC2 instance
Note: You might see the action buttons in difference places on the AWS dashboard due to Old/ New Dashboard experience. Its is not a rocket science I am sure you will find out eventually.
Basically EC2 instance is a virtual machine that you create in Amazon cloud (You don’t have to purchase any hardware, similar to Microsoft Azure/ VMware). Specially we are using the Free-tier for our setup so you don’t have to pay for anything at all. Click here to learn more about Amazon EC2.
From the console dashboard, choose Services, under Compute choose EC2. and then click Launch Instance. On the Choose an Amazon Machine Image (AMI) page, choose AWS Marketplace. And then search for the one that we are interested in, OpenVPN.
AWS Marketplace contains custom images with basic configurations that serves as a template for your instance. Click here to learn more about Amazon AWS Market.
From the search result for OpenVPN, choose OpenVPN Access Server not OpenVPN Access Server (x Connected Devices).
x – is the number of connected devices that can be used with that particular AMI (OpenVPN Server), basically this will cost you money.
As you can see, you can have two concurrent VPN connections at no extra cost.
Click continue. On the Choose an Instance Type page, choose General Purpose t2.micro (free tier eligible).
Leave the rest of the configurations default and click Review and Launch. Review and click Launch.
On the Select an existing key pair or create a new key pair page, if you choose an existing key pair, acknowledge and click Launch Instances. If you choose to create new pair, enter new key pair name and download the key pair. And then click Launch Instances.
Note: You wont be able to download the key pair once this stage is passed.
Click on the instance id.
Be patient, it might take few seconds for the instance become ready.
Step 4 – Connect to EC2 and configure OpenVPN Server
Once your EC2 instance is ready, click on the instance id and then Connect.
There are multiple ways to connect to your EC2 instance (E.g EC2 Instance Connect/ Session Manager/ SSH Client). Since I’m on windows client I’m using power shell (easy to use). If you are using other platforms like Linux or Mac choose the method accordingly.
If you’re following the same, copy the command on the bottom of the Connect to instance page under SSH Client.
Open power shell from your windows client and paste the command. Basically this command will use the downloaded key pair (in Step 3) to connect to your EC2 instance via power shell application.
Since my key pair is in downloads directly, lets update the command to ssh -i downloads\mynewvpnaccess.pem email@example.com and hit Enter. (Update the command with your EC2 Instance IP address, key pair and its location)
Type yes on the prompt and hit Enter, type yes again on the agreement page and hit Enter. This will take you through few basic configurations that you can leave it as default (Hit Enter few times – easy peasy). At this stage, OpenVPN server is configured to access via web UI and login account openvpn is created (You can change it later).
Once the command line returned to below stage,
As the instruction says, let’s modify the command to ssh -i downloads\mynewvpnaccess.pem firstname.lastname@example.org (Update the command with your EC2 Instance IP address, key pair and location) and hit Enter.
Next, setup password for earlier system created openvpn account.
Type Sudo passwd openvpn and hit Enter. Type a new password and hit Enter. Retype the password hit Enter.
Fantastic, now we have almost completed all the required configurations for our OpenVPN server.
Step 5 – Login to the OpenVPN console
If you have set the OpenVPN server with default configurations in Step 4, below are the Login URL’s for the OpenVPN UI consoles.
Admin Login: https://YourEC2IPAddress:943/admin
Client Login: https://YourEC2IPAddress:943/
Access the admin console URL through your favourite browser.
Type the login credentials,
Username: openvpn & Password: your password
Click Login and Agree
There is one more configuration that you need to do (that we have skipped purposefully in Step 4) before start using the VPN server.
From the admin console, click Configuration and under VPN Settings scroll down and find Routing. And then change the option to Yes for Should client Internet traffic be routed through the VPN.
This is to route all the traffic through our VPN server when using the OpenVPN Connect client. Click Save Settings and then Update Running Server to apply the changes to the server.
Step 6 – Let’s check it out!
Logout from admin console, and login to user console by accessing https://YourEC2IPAddress:943/ from your favourite browser.
Type the credentials and click Login
Username: openvpn/ (the other you created in Step 7) & Password: your password
Remember openvpn is the admin account (Not a best practice but suits for this tutorial)
You can use OpenVPN service on below platforms at the time of writing this post.
Download the suitable OpenVPN Connect client and install. One thing to note is, when you download the setup it has pre-configured with the profile that you have setup earlier. So you don’t have to configure the OpenVPN Connect.
Turn the VPN On.
To check whether it’s working, open your favourite browser and type https://whatismyipaddress.com/
According to my VPN I’m in United States. The IP address displayed on the page is my VPN Server IP address.
Voila! Our VPN server is ready to roll.
That’s it, enjoy the free VPN Service for one year!
Step 7 – Add another user
Remember you can utilise upto two licenses on this VPN server for free.
If you want to add another user to the VPN Server, click User Management and then User Permissions. Type a new Username and click More Settings to supply password. And yeah, you might want to check the box Allow Auto-login. This will allow users to connect to VPN service without supplying the credentials every time when they use.
Once done, click Save Settings and then Update Running Server to apply the changes to the server.
Following a video tutorial makes the process easier than reading the instructions.
Watch the setup tutorial in action on my YouTube channel below.
I hope this post helped you with your learning journey. If you got few minutes to spare, take a look on my other blogs as well.
Feel free to subscribe to my monthly newsletter so you won’t miss out any updates.
Let’s stay connected!