SIMPLE ::: Yes, that's it! It is *almost* that simple.
To elaborate a little more, you will want to install Raspbian on a Raspberry pi, we strongly recommend using the latest Raspbian Lite image but the normal Raspbian image will work as well, preferably enable ssh access and then begin.
After install, you may need to open a port on your router.
There is a (now slightly outdated) guided walkthrough of the install available here.
More information is also available on the PiVPN GitHub
Think if you can figure out how to do this yourself you'll have
This installer is no slouch! It'll allow you to customize your VPN port, key encryption strength, client DNS server, and more! Even if you are an expert, the options presented within are a perfect foundation for any openvpn server installation. Although this is geared toward running on a $35 Raspberry Pi, the installer will work just as well on an Ubuntu or Debian server.
Installation is finished, now what do you do? No worries,
we've got you covered!
Provided free of charge on your server is a new 'pivpn' command. Simply run pivpn and you are presented with all of the available options. Easily add client profiles (OVPN), revoke them, list the ones you created, etc. There is also an option to completely remove everything the installer did with the 'pivpn uninstall' command. So you can experiment with pivpn with no fear of irreversible changes to your server.
Even though this installer makes everything so trivial,
it doesn't mean it gives you trivial security settings.
Everything has been upgraded right out of the box beyond the default settings to harden the security of the server and client. Starting with offering you the ability to enable unattended-upgrades which will automatically patch your server with security updates. Next, the server configuration will only use the latest TLS protocol. Both the data and control channels use upgraded AES and SHA256 encryption and hash algorithms. Options are pre-configured to verify your server certificate to battle MITM attack vectors. All this and more are configured out of the box by the pivpn installer. This is a detailed level of hardening you'll have a difficult time finding elsewhere.
There are quite a few various scripts that in some way install openvpn for you.
This project, in particular, was started by 0-kaladin and began
from the code by StarshipEngineer
to help to install OpenVPN on a raspberry pi as simple as it can be.
This is still the striving goal today (see Why This Is Important just below) however,
even with the solid foundation provided by StarshipEngineer,
0-kaladin came across the Pi-Hole
project and saw just how easy the installation can be! He took the
scripts from StarshipEngineer, the framework, and functions from
the pi-hole project, and merged them into what you now see as PiVPN.
Then added a ton of functionality, failsafe checks, hardened security, etc...
Currently, community-maintained this should be bar none, the simplest and fastest way to set up an OpenVPN server on your raspberry pi that leaves you with an extremely secure configuration.
We've made a few additions and tweaks as well to help make managing the OpenVPN server even easier after install.
Everything can be managed by using a new 'pivpn' command on your system, this includes adding new client certs, revoking them, and completely uninstalling the pivpn.
There is a lot more that can be added and we hope the suggestions and improvements can be contributed by the community at large.
Why This Is Important
There are a few driving factors that make this very important to us,
and we believe, the community at large. In this post-Snowden era
where our privacy and security are infringed upon,
not only by bad actors but potentially by those whom we thought
should be protecting these very ideals, normal citizens must take
matters into their own hands. The trouble with this, many times,
is that if you are not very technical you may not know how to begin.
I believe the EFF has helped lower a barrier of encrypted sites with their
Allowing many to now have their sites on encrypted channels.
To us, the next logical step here is also ensuring the pipe you are
using is as secure as possible. This not only could include unknown
networks at airports, Starbucks, generic public hot-spots;
but also your ISP. To that end, We'd like to make sure these
scripts also work on a Debian image from an Amazon free tier server.
It is important that more and more people, have access to protecting
their traffic online. Its clear others won't hand you this protection.
PiVPN tries to make it easier for you to grab.
Technical Information & Features
- Supports OpenVPN 2.4
- Supports WireGuard
- Elliptic curve encryption keys up to 512 bit
- Integrates with Bitwarden
- iOS keychain support
- Supports multiple DNS providers
- Supports Custom DNS Servers
- Custom Search Domains (OpenVPN Only)
- Runs with Pi-Hole®
- Doesn't need to be a raspberry pi, It runs on any Debian VPS Server
- Supports unattended installation for automated deployments
It could also be helpful to browse closed Issues with the Information or Question tag.
Blogs / Video's About PiVPN
The links below showcase some good write-ups and tutorials that use PiVPN. Some other decent information may also be contained regarding VPNs and security in general. If you find you have more questions on this area then read and/or watch some of them below!Articles / Blogs
- Setup OpenVPN and cli email client
- Maintainer post about where to properly place a VPN
- Create your own VPN server with the Raspberry Pi
- PiVPN - Create your own VPN for your home network
FAQs & Support
and a Wiki
available on the Github page.
Make sure you check the PiVPN Issues section and especially the closed ones as your question may already be answered!
We also have our subreddit for support and discussion at r/PiVPN