{"id":795,"date":"2026-05-28T15:31:41","date_gmt":"2026-05-28T14:31:41","guid":{"rendered":"https:\/\/guillaumesblog.net\/?p=795"},"modified":"2026-05-28T16:46:56","modified_gmt":"2026-05-28T15:46:56","slug":"set-your-own-vpn","status":"publish","type":"post","link":"https:\/\/guillaumesblog.net\/index.php\/set-your-own-vpn\/","title":{"rendered":"Setup your own VPN server"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">VPN is a hot topic with remarks ongoing about our privacy. Luckily we have several tools at our disposal to respond with, and VPN is one of them, but only <em>one amongst many<\/em>. It will make your traffic appear from a different location and IP, which is a huge plus. It does it by <em>encrypting entirely<\/em> your internet data between your physical location and the physical location of your VPN server, and it is the core of the issue for some.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"894\" height=\"631\" src=\"https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/tunnel-unsplash.jpg\" alt=\"\" class=\"wp-image-796\" srcset=\"https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/tunnel-unsplash.jpg 894w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/tunnel-unsplash-300x212.jpg 300w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/tunnel-unsplash-768x542.jpg 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>You can visualise it as a &#8216;tunnel&#8217; &#8211; you are visible at the entrance or when you exit but not in between.<\/em><\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">FOREWORD: VPN by itself will not guarantee your complete anonymity (if such thing <em>even exist<\/em> when using digital devices) do not think that just because you have a VPN you are protected from identification, your device leaks information in many other ways, but this is off topic here, yet VPN <em>remain<\/em> a useful tool to protect against local threats such as an ISP or a local router.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One question you would ask (I certainly did) is about the little lock next to the URL bar in our browsers. Does it not encrypt traffic the same way a VPN would? The answer is no! You see that little lock is referred to as HTTPS, and it only encrypt the &#8216;payload&#8217; e.g. a page, a message, a credit card number but does not encrypt the <em>destination and source<\/em> of that said &#8216;payload&#8217;. Long story short HTTPS is only <em>partial encryption<\/em> (and this holds true also to <em>most other protocols<\/em>) and the VPN is &#8216;complete&#8217;, as it does encrypt the destination and the source in addition to the payload.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Log into the cloud\/hosting supplier of your liking and get an OpenVPN images from the internet. Typically your supplier may also have images ready to go on its marketplace, like so:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"556\" src=\"https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/marketplace_vpn-1024x556.png\" alt=\"\" class=\"wp-image-801\" srcset=\"https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/marketplace_vpn-1024x556.png 1024w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/marketplace_vpn-300x163.png 300w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/marketplace_vpn-768x417.png 768w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/marketplace_vpn.png 1068w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Which turns out to be a VM to be deployed the usual way. Of course, and maybe the most critical steps of all here, choose the region of deployment wisely. OpenVPN instructions are available <a href=\"https:\/\/openvpn.net\/as-docs\/v3\/oracle.html#additional-security-steps-you-can-take-after-installation-260605\">here<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now set up the security list or network security group to allow: (Adjust Source IP as required, tcp\/22 and tcp\/943 are used for admin purposes. If you use your VPN server from multiple devices you may want to leave it as 0.0.0.0\/0 on TCP\/443 and UDP\/1194.. otherwise tighten it up)<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Direction<\/th><th>Source Type<\/th><th>Source<\/th><th>Protocol<\/th><th>Source Port<\/th><th>Destination Port<\/th><\/tr><\/thead><tbody><tr><td>Ingress<\/td><td>CIDR<\/td><td>your ip<\/td><td>TCP<\/td><td>All<\/td><td>943<\/td><\/tr><tr><td>Ingress<\/td><td>CIDR<\/td><td>your ip<\/td><td>TCP<\/td><td>All<\/td><td>22<\/td><\/tr><tr><td>Ingress<\/td><td>CIDR<\/td><td>0.0.0.0\/0<\/td><td>TCP<\/td><td>All<\/td><td>443<\/td><\/tr><tr><td>Ingress<\/td><td>CIDR<\/td><td>0.0.0.0\/0<\/td><td>UDP<\/td><td>All<\/td><td>1194<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">SSH to your machine with user &#8216;openvpnas&#8217;. You are welcomed immediately at log on by a CLI message of the day and a CLI guided activity to sets-up the OpenVPN server, it&#8217;s all done in 30 seconds max.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We are now ready to go, go back to your browser, log into with the ids you have entered \/ been given at previous step.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"547\" height=\"478\" src=\"https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/login.png\" alt=\"\" class=\"wp-image-802\" srcset=\"https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/login.png 547w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/login-300x262.png 300w\" sizes=\"auto, (max-width: 547px) 85vw, 547px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Then,<br>1) If you plan to use a domain go to &#8216;VPN Server&#8217; on the left, then change the &#8216;server address&#8217; from its IP address to its FQDN.<br>2) Create a new admin user, set a strong password, turn MFA on immediately. Log out and back with the new user and delete the initial admin user.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"299\" src=\"https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-1024x299.png\" alt=\"\" class=\"wp-image-805\" srcset=\"https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-1024x299.png 1024w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-300x88.png 300w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-768x224.png 768w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-1536x449.png 1536w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-1200x351.png 1200w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image.png 1882w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The VPN server is ready to go! Navigate to your user again and select the tab &#8216;Connection profiles&#8217;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"146\" src=\"https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-1-1024x146.png\" alt=\"\" class=\"wp-image-806\" srcset=\"https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-1-1024x146.png 1024w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-1-300x43.png 300w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-1-768x109.png 768w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-1-1536x218.png 1536w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-1-1200x171.png 1200w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/image-1.png 1879w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The blue button generates .ovpn files.. You import them on clients e.g. Phone, VMs, laptops and OS to connect. The guide for each OS is available <a href=\"https:\/\/openvpn.net\/as-docs\/connecting-76719.html#connect-clients-with-access-server-with-openvpn-connect\">here<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For instance in an Android Phone I download the OpenVPN client and import the profile, which gives me the following result:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"473\" height=\"1024\" src=\"https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/OpenVPNConnect-473x1024.jpg\" alt=\"\" class=\"wp-image-807\" srcset=\"https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/OpenVPNConnect-473x1024.jpg 473w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/OpenVPNConnect-138x300.jpg 138w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/OpenVPNConnect-768x1664.jpg 768w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/OpenVPNConnect-709x1536.jpg 709w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/OpenVPNConnect-945x2048.jpg 945w, https:\/\/guillaumesblog.net\/wp-content\/uploads\/2026\/05\/OpenVPNConnect.jpg 1080w\" sizes=\"auto, (max-width: 473px) 85vw, 473px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">On Linux I set-up OpenVPN the same way, I download the client with dnf install openvpn, and then openvpn &#8211;config myfile.ovpn to launch the connection. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can easily make this connection automatic at launch by reading the instructions available on the following file.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>less \/usr\/share\/doc\/openvpn\/README.systemd<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We have just setup in a VPN server anywhere in the world using any cloud or hosting provider, which depending on circumstances can be a plus vis-a-vis local entities. In addition this may hold several upsides compared to using a ready to go or subscription only commercial VPN provider, you are for instance in <em>better<\/em> control of the traffic log generated by the VM VPN server, but is more involved in terms of management.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Feedback is welcome.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>VPN is a hot topic with remarks ongoing about our privacy. Luckily we have several tools at our disposal to respond with, and VPN is one of them, but only one amongst many. It will make your traffic appear from a different location and IP, which is a huge plus. It does it by encrypting &hellip; <a href=\"https:\/\/guillaumesblog.net\/index.php\/set-your-own-vpn\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Setup your own VPN server&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-795","post","type-post","status-publish","format-standard","hentry","category-conversation"],"_links":{"self":[{"href":"https:\/\/guillaumesblog.net\/index.php\/wp-json\/wp\/v2\/posts\/795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guillaumesblog.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/guillaumesblog.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/guillaumesblog.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/guillaumesblog.net\/index.php\/wp-json\/wp\/v2\/comments?post=795"}],"version-history":[{"count":17,"href":"https:\/\/guillaumesblog.net\/index.php\/wp-json\/wp\/v2\/posts\/795\/revisions"}],"predecessor-version":[{"id":822,"href":"https:\/\/guillaumesblog.net\/index.php\/wp-json\/wp\/v2\/posts\/795\/revisions\/822"}],"wp:attachment":[{"href":"https:\/\/guillaumesblog.net\/index.php\/wp-json\/wp\/v2\/media?parent=795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/guillaumesblog.net\/index.php\/wp-json\/wp\/v2\/categories?post=795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/guillaumesblog.net\/index.php\/wp-json\/wp\/v2\/tags?post=795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}