<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Tomsbox</title>
		<description>Something whitty will apear here ...honest!</description>
		<link></link>
		<atom:link href="/feed.xml" rel="self" type="application/rss+xml" />
		
			<item>
				<title>Current Linux Desktop</title>
				<description>&lt;p&gt;So this is how it looks:&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;img src=&quot;/assets/images/desktop-20240823.png&quot; width=&quot;2000&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To see the original size just right click ad “Open i new tab”&lt;/p&gt;

&lt;p&gt;This is using hyprland which is a Wayland compositor.&lt;/p&gt;

&lt;p&gt;The configs for the desktop and status bar can be found here:&lt;/p&gt;

&lt;p&gt;hyprland.conf:&lt;br /&gt;
&lt;a href=&quot;https://gist.github.com/t0m5k1/fc6ee522bef837abe9237a89d6072e78&quot;&gt;https://gist.github.com/t0m5k1/fc6ee522bef837abe9237a89d6072e78&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;binds.conf:&lt;br /&gt;
&lt;a href=&quot;https://gist.github.com/t0m5k1/6bf141cf03efb20fa1ce833369e0e1f9&quot;&gt;https://gist.github.com/t0m5k1/6bf141cf03efb20fa1ce833369e0e1f9&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;windowrules.conf:&lt;br /&gt;
&lt;a href=&quot;https://gist.github.com/t0m5k1/ee0f4f2c09f1ab81b1851c5b9c6bcf8c&quot;&gt;https://gist.github.com/t0m5k1/ee0f4f2c09f1ab81b1851c5b9c6bcf8c&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;waybar config:&lt;br /&gt;
&lt;a href=&quot;https://gist.github.com/t0m5k1/6dd3984ca6a66d69fbc3cd345439e8c6&quot;&gt;https://gist.github.com/t0m5k1/6dd3984ca6a66d69fbc3cd345439e8c6&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;waybar style.css:&lt;br /&gt;
&lt;a href=&quot;https://gist.github.com/t0m5k1/9fd15f19de038593264a1410f8d10419&quot;&gt;https://gist.github.com/t0m5k1/9fd15f19de038593264a1410f8d10419&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this all to work you’ll need to install the relevant parts and their dependencies, I use Archlinux so I’ll only be providing necessary commands to get it working on there, any other distro is up to you but these configs should still function.&lt;/p&gt;

&lt;p&gt;Run the following command: &lt;br /&gt;
(NOTE: As always with Arch ensure you’ve already upgraded prior to installing these)&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo pacman -S hyprland hyprcursor hyprutils hyprwayland-scanner xdg-desktop-portal-hyprland waybar kitty

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Now if you find that the workspace icons are not bein displayed correctly this will be due to missing fonts, I use the nerd font version of liberation family. To get it run the following:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo pacman -S ttf-liberation-mono-nerd
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;You may also need to make some further adjustments to the waybar config to get it working as you need.&lt;br /&gt;
I also use for a launcher so you may need to get that too or change it to something you prefer.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo pacman -S rofi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Once that is installed &lt;a href=&quot;https://github.com/adi1090x/rofi&quot;&gt;clone this git repo&lt;/a&gt; and the Archlinux Icon should trigger the menu.&lt;/p&gt;

&lt;p&gt;Hope you like this.&lt;br /&gt;
See ya&lt;/p&gt;

</description>
				<pubDate>Fri, 23 Aug 2024 15:00:00 +0000</pubDate>
				<link>/2024/08/Current-Linux-Desktop/</link>
				<guid isPermaLink="true">/2024/08/Current-Linux-Desktop/</guid>
			</item>
		
			<item>
				<title>Life Updates</title>
				<description>&lt;p&gt;So much has happened since my last post 2023-01-23&lt;/p&gt;

&lt;p&gt;So I got divorced! &lt;br /&gt;
It really is not as bad as it sounds, My ex-wife is still my best friend and we both had a heart to heart over 2 days. Both of us were in tears and a lot of things were brought to the surface and dealt with.&lt;br /&gt;
Essentially we rely on each other so much that we couldn’t possibly fully leave each other. So we still share the same house and just have different rooms on different floors.&lt;br /&gt;
We’re unsure if we’ll ever get back together but all our kids still speak to each other and refer to each party as mum/dad. So there is still al lot of love being given on both sides and we both hope it remains this way and we can get a fair court case should the need arise in future because in truth neither of us have a bad word to say and neither of us have acted in bad faith through this.&lt;/p&gt;

&lt;p&gt;I still work at the same place (check linkdin for more on that) I’ve gained more certificates and am currently working towards getting MS AZ104, 500, 700. It’s a long path but enjoyable.&lt;br /&gt;
Additionally my department is moving towards a Security Operation Center (SOC) where as previously we were a Network Operations Center (NOC). So really interesting things there.&lt;/p&gt;

&lt;p&gt;Had a few changes to my home LAN with a few addittions and some changes. Lots have been going on and now this site is functional on the backend again I’ll be posting more.&lt;/p&gt;

&lt;p&gt;Catch you all soon.&lt;/p&gt;
</description>
				<pubDate>Sat, 03 Aug 2024 16:00:00 +0000</pubDate>
				<link>/2024/08/Updates2/</link>
				<guid isPermaLink="true">/2024/08/Updates2/</guid>
			</item>
		
			<item>
				<title>Youtube Channels</title>
				<description>&lt;p&gt;So I recently decided to drop you all a list of the YouTube channels I find my self watching.&lt;br /&gt;
This list will get big and will be updated to list all the channels I like&lt;/p&gt;

&lt;h1 id=&quot;tech&quot;&gt;Tech&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@Jayztwocents/videos&quot;&gt;JaysTwoCents&lt;/a&gt;&lt;br /&gt;
What can be said for Jay, Nick and Phil !&lt;br /&gt;
This is where you go for all the indepth builds and water cooling info.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@LinusTechTips/videos&quot;&gt;LTT&lt;/a&gt;&lt;br /&gt;
I’ve been watching Linus for quite sumoetime and I’ve come to appreciate the whole effort he has put in to growing and providing Tech news and reviews that I’ve come to almost rely on.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/c/Level1Techs/videos&quot;&gt;Level 1&lt;/a&gt;&lt;br /&gt;
Wendell is an institution by himself, I value every statement he makes and the information he provides is top notch.&lt;br /&gt;
The NEws/Link with friends is a must watch for me too.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@SomeOrdinaryGamers/videos&quot;&gt;Some Ordinary Gamers&lt;/a&gt;&lt;br /&gt;
Mutahar is a stallwart in all things current regarding tech, games, deep web and other shenanigans that may or may not ocur on the ‘tinter tubes!.&lt;/p&gt;

&lt;h2 id=&quot;linux&quot;&gt;Linux&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@TitusTechTalk/videos&quot;&gt;Chris Titus&lt;/a&gt; (Alt channel:&lt;a href=&quot;https://www.youtube.com/@ChrisTitusTech/videos&quot;&gt;ctt&lt;/a&gt;)&lt;br /&gt;
We can’t not mention Chris Titus here. &lt;br /&gt;
The guy is the creator of his tweak tool WinUtil that I link to in my sidebar.&lt;br /&gt;
His videos are always knee deep in tech be it linux or his app and what he’s doing. What makes this good is that you can learn from his videos even though they are very light hearted and he’s learning this with us!’&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@BrodieRobertson/videos&quot;&gt;Broadie&lt;/a&gt;&lt;br /&gt;
When we talk about Linux we can’t leave out Broadie Robertson.&lt;br /&gt;
The guy seems to always have his finger on the pulse and is only ever a few hours off the mark lol.&lt;br /&gt;
Good content.&lt;/p&gt;

&lt;h2 id=&quot;security&quot;&gt;Security&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@hak5/videos&quot;&gt;HAK5&lt;/a&gt;&lt;br /&gt;
Threatwire with Ali.&lt;br /&gt;
Sec news can’t get better, She’s the girl all the geeks want to know for very obvious reason too and she’s happy with that.&lt;br /&gt;
Very active coder, loves defcon and streams nearly all the time on twitch.&lt;br /&gt;
You gotta see the dimples!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@davidbombal/videos&quot;&gt;David Bombal&lt;/a&gt;&lt;br /&gt;
David is just excellent, The community section is his way to test us all.&lt;br /&gt;
His content is so in depth you learn and he actually provides many training courses via his website.&lt;br /&gt;
You need this man in your subs list.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@DEFCONConference/videos&quot;&gt;DefCon&lt;/a&gt;&lt;br /&gt;
The DefCon what can really be said other than I will go here one day.&lt;br /&gt;
It’s a tech/Hacking conference where nearly anything goes, You’ll find all manner of types here from black,white,grey hat hackers, Tech nerds, sec nerd, exploiters and more.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@BlackHatOfficialYT/videos&quot;&gt;BlackHat Con&lt;/a&gt;&lt;br /&gt;
BlackHat Con, They want to be good and sometimes they’ll have a demo or talk from someone/thing that is good, I check in every now and then but yeah.&lt;/p&gt;

&lt;h1 id=&quot;general&quot;&gt;General&lt;/h1&gt;
&lt;h2 id=&quot;content-creators--teams&quot;&gt;Content Creators &amp;amp; Teams&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@penguinz0/videos&quot;&gt;MoistKritical&lt;/a&gt;&lt;br /&gt;
Charlie just hits the nail on the head with his takes on the recent funny shit&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@AsmonTV/videos&quot;&gt;Asmongold&lt;/a&gt;&lt;br /&gt;
Asmongold well fuk me what a rep lol &lt;br /&gt;
Head of the wild OTK crew and part founder of Starforge PCs&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@steakandeggspod/videos&quot;&gt;Steak &amp;amp; Eggs&lt;/a&gt;&lt;br /&gt;
Tectone, Emiru and Asmongold hang out and do shit together&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@Camomo_10/videos&quot;&gt;Camomo&lt;/a&gt;&lt;br /&gt;
The uber Rust Admin who takes no shit, doles out the bans and fuks with cheaters in rust, his Admin skill are sought after by cheater so they can avoid him but nobody has managed to yet.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@oompaville/videos&quot;&gt;Oompavile&lt;/a&gt;&lt;br /&gt;
Oompavile has some good takes on current affairs and is a funny fuka.&lt;br /&gt;
He’s also the other half ok Kris Collins KMK&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@kallmekris/videos&quot;&gt;KallmeKris&lt;/a&gt;&lt;br /&gt;
Cute Kris Colins provides us with KallMeKris.&lt;br /&gt;
Funny takes on current affairs, regular crime posts and stories too.&lt;/p&gt;

&lt;h1 id=&quot;paranormal&quot;&gt;Paranormal&lt;/h1&gt;
&lt;h2 id=&quot;ghosts--debunking&quot;&gt;Ghosts / Debunking&lt;/h2&gt;
&lt;p&gt;I like the paranormal as I am a believer but at the same time I’m not here to watch blatant bullshit and lies being punted off as truth.&lt;br /&gt;
I’ve been interested in all things paranormal from a young age as my mother used to go to a medium and had the sessions recorded, I’d wait in the front room of the lady’s house! &lt;br /&gt;
We had hundreds of books on the subject and these were the first books I ever read as a kid. I might make an article about my experiences one day.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@beardogetsscared/videos&quot;&gt;Beardo Gets Scared&lt;/a&gt;&lt;br /&gt;
Dale/Beardo Is a great debunker who’s learn from the greats like Jason Hawes, Kenny Biddle and Parple.&lt;br /&gt;
This is from his channel page: Join me as I fearlessly debunk mysteries, engage in heart-pounding live streams, and navigate the darkest corners of horror gaming. &lt;br /&gt;
Brace yourself for a journey where skepticism meets the supernatural, and let’s unravel the mysteries together! Subscribe now for a hair-raising blend of investigation, live thrills, and gaming scares that will keep you on the edge of your seat. &lt;br /&gt;
Are you ready to face the unknown?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@KennyBiddle/videos&quot;&gt;Kenny Biddle&lt;/a&gt;&lt;br /&gt;
Kenny Biddle is the de-bunkers debunker!&lt;br /&gt;
He pulls apart any and all claims and applies science and logic to all. I’d highly recommend him.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@JasonHawes/videos&quot;&gt;Jason Hawes (TAPS)&lt;/a&gt;&lt;br /&gt;
Not much needs to be said about Mr Hawes. &lt;br /&gt;
His reputation in Ghost Hunters is testament to his contribution in this field and yes He does debunk too but the channel producers he was working with didn’t want that boring stuff!&lt;br /&gt;
So he left and went independent, Glad he did too.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@MythosParanormal/videos&quot;&gt;Mythos Paranormal&lt;/a&gt;&lt;br /&gt;
Mythos is another top choice for debunking and investigations.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@Parrple/videos&quot;&gt;Parple&lt;/a&gt;&lt;br /&gt;
Recently his content has become quite random but it is funny! His older content is more paranormal and he’s a very good investigator and debunker.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@paramonkeypodcast/videos&quot;&gt;Paranormal Mokey Podcast&lt;/a&gt;&lt;br /&gt;
Justin Cowell has worked on a few shows and has his own reputation, yes another big name.&lt;br /&gt;
This podcast of his features some real big names in the paranormal and recently had Dave Schrader on as a guest!&lt;/p&gt;

&lt;h2 id=&quot;uapufoaliens&quot;&gt;UAP/UFO/Aliens&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/@JeremyCorbell/videos&quot;&gt;Jeremy Corbell&lt;/a&gt;&lt;br /&gt;
In his own words:&lt;br /&gt;
an American contemporary artist and investigative filmmaker with movies on Netflix and Hulu. &lt;br /&gt;
He is known for his documentary work exploring mysteries in the fields of UFOs, advanced technology and the dark space where science confronts the abnormal. &lt;br /&gt;
Corbell’s films reveal how ideas, held by credible individuals, can alter the way we experience reality and help us to reconsider the fabric of our own beliefs.&lt;br /&gt;
This is where you’ll find the weaponized Podcast he does with George Knapp.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/mysterywire/videos&quot;&gt;George Knapp&lt;/a&gt;&lt;br /&gt;
Veteran newsman George Knapp has been bringing great stories to the KLAS-TV audience in Las Vegas since 1981, establishing a national reputation for treating unusual topics with serious journalism. &lt;br /&gt;
We’ve only scratched the surface on our archive of stories that originally aired in Las Vegas on KLAS-TV Channel 8, and will be uploading more every week, along with new investigations.&lt;/p&gt;

</description>
				<pubDate>Sat, 03 Aug 2024 00:00:00 +0000</pubDate>
				<link>/2024/08/youtube-channels/</link>
				<guid isPermaLink="true">/2024/08/youtube-channels/</guid>
			</item>
		
			<item>
				<title>I've not neglected you</title>
				<description>&lt;p&gt;I’ve had some issues and changed my PC so I’ve not been on here for a while.&lt;br /&gt;
Hopefully this post will update however I’m no sure as I’ve also had issues rebuilding my website dev environment.&lt;br /&gt;
This is partly due to jeykll and ruby giving me issues.&lt;/p&gt;

&lt;p&gt;I do have a few life updates and some potential how to’s and other content, I’m also considering moving away from Jeykll/Ruby to another system.&lt;/p&gt;

&lt;p&gt;Let’s see how this goes.&lt;br /&gt;
Fingers crossed.&lt;/p&gt;
</description>
				<pubDate>Sat, 03 Aug 2024 00:00:00 +0000</pubDate>
				<link>/2024/08/Test/</link>
				<guid isPermaLink="true">/2024/08/Test/</guid>
			</item>
		
			<item>
				<title>Browser Privacy Part 4</title>
				<description>&lt;h1 id=&quot;catch-up&quot;&gt;Catch up&lt;/h1&gt;
&lt;p&gt;In &lt;a href=&quot;https://tomsbox.co.uk/2019/02/Browser-Privacy-3/&quot;&gt;part 3&lt;/a&gt; I covered my choice of the best browser for privacy, PI-Hole deployment and a good addon to create browser based containers for firefox.&lt;/p&gt;

&lt;h2 id=&quot;latest&quot;&gt;Latest&lt;/h2&gt;
&lt;p&gt;Things in browser land have gone totally gaga!&lt;br /&gt;
We have a few forks of chromium. One of these is Edge (no links) this is M$ default browser choice and it is chock full of traking that adds to googles default tracking and ties into Win11 telemetry.&lt;br /&gt;
In the first days we thought it was gonna be bad but what it is now is just annoying. I’ll stop it there and just suggest you use &lt;a href=&quot;https://github.com/ChrisTitusTech/winutil&quot;&gt;Chris Titus Winutil&lt;/a&gt; to either remove Edge or hoble it !&lt;/p&gt;

&lt;p&gt;I still use and recommend &lt;a href=&quot;https://brave.com&quot;&gt;Brave&lt;/a&gt; however I no longer use the BAT tipping system as I don’t use/support crypto.&lt;/p&gt;

&lt;p&gt;Another choice is an interesting one.&lt;br /&gt;
&lt;a href=&quot;https://mullvad.net/en/download/browser/&quot;&gt;The Mullvad Browser&lt;/a&gt; is developed – in collaboration between Mullvad VPN and the Tor Project – to minimize tracking and fingerprinting. It is a fork of FireFox.&lt;br /&gt;
This cheeky little browser has Tor and the mulvad VPN built in along with their other changes to secure it further.&lt;/p&gt;

&lt;p&gt;If you want another chromium based browser I’d suggest ungoogled-chromium but I will not be linking to it.&lt;/p&gt;

&lt;h2 id=&quot;further-developments&quot;&gt;Further developments&lt;/h2&gt;
&lt;p&gt;There are other changes afoot in browser land and this is Manifest V3.&lt;br /&gt;
Essentially Manifest V3 is a fundamental change in how extensions work in chromium based browsers. In that Google is really fed up with uBlockOrigin stopping most of their wonderful advert tracking and decided to end the game for the extension and others like it.&lt;br /&gt;
It is basically limiting what can be externally loaded in size and volume, uBlockOrigin loaded block lists from github and blocked the elements on page load, All that has come to a grinding halt and also due to the infinate wisdom of Mozilla this will also potentially affect FireFox browser, How I’m not exacly sure but there we go.&lt;/p&gt;

&lt;p&gt;As a brave user I know their efforts will not be stopped as they’ve patched there system so damn deep that it’s essentially not an extension! Brave have also said that specfic V2 extensions will be available in brave and you will have the ability to load them from a zip or folder in dev mode.&lt;/p&gt;

&lt;p&gt;How long this all stays in play and what happens when it all comes into effect in 2025 is anyones guess. I’m kinda hoping a totally new browser pops up but I’m also hoping a 3rd party extension store pops up too.&lt;/p&gt;

&lt;p&gt;So that concludes this article.&lt;/p&gt;
</description>
				<pubDate>Thu, 01 Aug 2024 00:00:00 +0000</pubDate>
				<link>/2024/08/Browser-Privacy-4/</link>
				<guid isPermaLink="true">/2024/08/Browser-Privacy-4/</guid>
			</item>
		
			<item>
				<title>Arma2 and Dayz-Epochmod</title>
				<description>&lt;p&gt;The first time I ever came across Dayzmod was browsing Youtube and happened to land on the wonderful &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;FrankieonPCin1080p&lt;/code&gt;. I’m not gonna go into what has happened but will just tell you find his channel and watch the fantastic vids he has put up and then go look for others.&lt;/p&gt;

&lt;p&gt;The bulk of this guide came from &lt;a href=&quot;https://github.com/RobbieW69&quot;&gt;RobbieW69&lt;/a&gt;, I’ve edited and changed a few parts but the bulk of it came from his repo and &lt;a href=&quot;https://www.youtube.com/watch?v=SuIGpzAtU0Y&quot;&gt;video on youtube&lt;/a&gt; Star, Subscribe and follow him.&lt;/p&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;assumptions&quot;&gt;Assumptions&lt;/h1&gt;
&lt;p&gt;You have ESXi installed on a host.&lt;br /&gt;
You have already installed Windows (any version) into a Virtual Machine.&lt;br /&gt;
You have administraitive rights.&lt;br /&gt;
The virtual machine is reachable by remote desktop and has file sharing enabled and working.&lt;br /&gt;
You have Arma2, Arma2 Operation Arrowhead and have all the DLC.&lt;br /&gt;
You know how to add a mod to Arma2&lt;/p&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;preparing-arma--epoch&quot;&gt;Preparing Arma &amp;amp; Epoch&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;Verify Integrity of the Game Files (Right Click on the Game(s) in your Library -&amp;gt; Properties -&amp;gt; Local Files -&amp;gt; Verify integrity of game files). Run Arma 2 until the main menu, then close it, and run OA till main menu then close it. Locate your steam library, Find the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;common&lt;/code&gt; folder within &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;steamapps&lt;/code&gt; Right click and Share this folder. Now log on to the VM and ensure you can browse to this share.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From here onwards everything will be done in the virtual machine.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Download and install &lt;a href=&quot;http://app.dayzlauncher.com/updates/setup_dzlauncher.exe&quot;&gt;DayZ Launcher&lt;/a&gt;, After DayZ Launcher has installed, Launch it and Open the Settings Panel (Top Right). Set the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Mods/Downloads Path&lt;/code&gt; to your Arma 2 OA Install Directory (Example. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C:\Program Files (x86)\Steam\steamapps\common\Arma 2 Operation Arrowhead&lt;/code&gt;). And Set the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Arma 2 Path&lt;/code&gt; to your Arma 2 (Base Game, NOT OA!) Install Directory (Example. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C:\Program Files (x86)\Steam\steamapps\common\Arma 2&lt;/code&gt;).Scroll down and hit &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Save&lt;/code&gt; then close the Settings Panel, and Navigate to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Mods&lt;/code&gt; Tab in DayZ Launcher. Find &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ Epoch 1.0.7&lt;/code&gt; In the Mods List, and Click Download. Once the Mod has finished downloading, be sure to Verify the Install by Clicking the Verify Button&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Download &lt;a href=&quot;https://drive.google.com/file/d/1jDn86sfTwcRae4NZgHK76k_CaY1jOUP2/view&quot;&gt;Epoch 1.0.7 Server Files&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;installing-mysql-server--workbench-database&quot;&gt;Installing MySQL Server &amp;amp; Workbench (Database)&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Download &lt;a href=&quot;https://dev.mysql.com/downloads/file/?id=508935&quot;&gt;MySQL Server&lt;/a&gt;. Download the one that has the smallest size, once it has downloaded, run the Installer. Select the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Server only&lt;/code&gt; Setup Type, Click Next and then Execute, you might have to install some Redistributables during this process. Follow the Installer Process until you reach the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Product Configuration&lt;/code&gt; Section, Press Next Once, and you should come to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Type and Networking&lt;/code&gt; Page.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Installing MySQL Server &amp;amp; Workbench can be confusing to those with little to no experience, particularly this next Section, so please read carefully. &lt;br /&gt;
The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Config Type&lt;/code&gt; Option: If you are planning to Host this Server on a Home Machine, you can leave the Settings on this Page as they are and click Next. If you are Hosting from a (relatively decent) Dedicated Server Machine, select &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Server Computer&lt;/code&gt;, and leave the rest of the options as they are and click Next. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Authentication Method&lt;/code&gt;: Set this to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Use Legacy Authentication Method&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Accounts and Roles&lt;/code&gt;: MySQL has a “root” User Account, which is a user that has full priviledges on the Server, so be sure to set the Root Password to be strong and secure, keep a note of it if you need to. You May Add &amp;amp; Configure MySQL Users on this Page if you wish to do so, for the sake of simplicity for this Guide, we will not run over this. Click Next. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Windows Service&lt;/code&gt; Page: Leave this Page as it is, and click Next, and Click Execute on the Next Page, the Finish the Installation.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Download MySQL Workbench &lt;a href=&quot;https://dev.mysql.com/downloads/file/?id=507335&quot;&gt;here&lt;/a&gt; and run the Installer. Follow the Installer, select the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Complete&lt;/code&gt; Setup Type, press Next, then Install, once the Install has Completed, Launch MySQL Workbench. Click on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Local instance MySQL80&lt;/code&gt; Box, enter your Root Account password you set earlier. You should now be presented with a fairly confusing looking screen, if that is the case, then you can Minimize MySQL Workbench for now, we will continue here in a little while.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Download and Install &lt;a href=&quot;https://drive.google.com/file/d/1V_ivuaVIkDJuqULvhwAfbEtlp45eOE-X/view?usp=sharing&quot;&gt;PBO Manager&lt;/a&gt;, to make sure your PBO Manager was installed correctly go to Windows Settings -&amp;gt; type “defaults” -&amp;gt; Default Apps -&amp;gt; Choose default apps by file type -&amp;gt; Scroll down to ‘.pbo’ on the left and make sure PBO Manager is the application assigned to it. You should see the icon next to PBO files now.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Download and install &lt;a href=&quot;https://www.win-rar.com/fileadmin/winrar-versions/winrar/th/winrar-x64-602.exe&quot;&gt;WinRAR&lt;/a&gt; or &lt;a href=&quot;https://www.7-zip.org/a/7z2106-x64.exe&quot;&gt;7 Zip&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Download and install &lt;a href=&quot;https://code.visualstudio.com/docs/?dv=win&quot;&gt;Visual Studio Code&lt;/a&gt; and &lt;a href=&quot;https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.1.9.3/npp.8.1.9.3.Installer.x64.exe&quot;&gt;Notepad++&lt;/a&gt; we will be using both!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Download the &lt;a href=&quot;https://drive.google.com/drive/folders/1ln5BWdNLfw1AcWfyHHCORErb2O-bQwIo&quot;&gt;Setup Guide Files folder&lt;/a&gt; from the google drive to follow along with.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;server-install-and-setup&quot;&gt;Server Install and Setup&lt;/h1&gt;

&lt;p&gt;I’m having you name files and folders certain things only so you can follow along easier, you can name them whatever you want please just remember when editing Directory names to change them to what you make them.&lt;/p&gt;
&lt;h2 id=&quot;steps&quot;&gt;Steps&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;1: Open File Explorer -&amp;gt; Make a folder anywhere call it &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Server&lt;/code&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;2: Open Arma2:OA directory via the file share you made earlier -&amp;gt; Copy everything in there into &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Server&lt;/code&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;3: Open Arma2 Directory via the file share you made earlier -&amp;gt; Copy &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AddOns&lt;/code&gt; folder only to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Server&lt;/code&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;4: Open File Explorer -&amp;gt; Make another folder not in the same Drive called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Server_Config&lt;/code&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;5: Open Epoch Server Files -&amp;gt; Move the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DZE_Server_Config&lt;/code&gt; into the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Server_Config&lt;/code&gt; folder you made.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;6: Move all other Epoch Server Files into the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Server&lt;/code&gt; folder we made. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;arma2oaserver.exe&lt;/code&gt; should be in this folder.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;7: Open HeidiSQL -&amp;gt; Make a new Session, call it &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZServer&lt;/code&gt;.
    &lt;ul&gt;
      &lt;li&gt;Sign into the ‘root’ with the password you made on MySQL 5.7 -&amp;gt; right click on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZServer&lt;/code&gt; at the top -&amp;gt; Create new -&amp;gt; database -&amp;gt;name it like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dayz_db&lt;/code&gt; -&amp;gt; for Collation find the one called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;utf8_general_ci&lt;/code&gt; -&amp;gt; Create.&lt;/li&gt;
      &lt;li&gt;Now a database named &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dayz_db&lt;/code&gt; should have popped up inside the drop down next to like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mysql&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;information_schema&lt;/code&gt;. Click on it -&amp;gt; Over on the right side toward the top you’ll see a blue button that says Query, click it -&amp;gt; a new empty window popped up -&amp;gt; Open &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Server&lt;/code&gt;  folder -&amp;gt; find &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SQL&lt;/code&gt; folder -&amp;gt; open it, now drag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;epoch.sql&lt;/code&gt; into that area where the Query opened. Next to the Query tab it will say ‘Database:dayz_db’, ABOVE that there is a blue Play button, click it after putting the ‘epoch.sql’ file into the Query.&lt;/li&gt;
      &lt;li&gt;Now a dialog should have popped up saying &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;produced 1 warning&lt;/code&gt;, ignore it.Now that next to where that Query tab was -&amp;gt; Click on that little gray window with the little green plus sign -&amp;gt; This opens a new Query tab -&amp;gt; Drop the ‘add_recommended_mysql_events.sql’ in that one and run it as well.Now a dialog should have popped up saying &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;produced 7 warnings&lt;/code&gt;, ignore it.&lt;/li&gt;
      &lt;li&gt;Click on ‘dayz_db’ while in Heidi, click on the people icon, now under User Management click the green Add button, it will prompt you to make a new user I would name it something like “newServer” or whatever you want, make a good password, then toward the bottom of that same dialog it says “Allow access to”, click the green ‘Add object’ button, click on ‘dayz_db’, then when it goes into the list below, click on the checkbox next to it, do not click on checkbox next to ‘global privileges’ only the one next to ‘dayz_db’.&lt;/li&gt;
      &lt;li&gt;Now navigate to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HiveExt.ini&lt;/code&gt; located in your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DZE_Server_Config&lt;/code&gt; folder, go down to line 36, change the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;database = &lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;database = dayz_db&lt;/code&gt; then below that change &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Username&lt;/code&gt; equal to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;newServer&lt;/code&gt;, then below that change the password to the password you set.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;8: Open Visual Studio Code -&amp;gt; Navigate to the top left -&amp;gt; blocks icon called ‘Extensions’ -&amp;gt; type &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SQF&lt;/code&gt; -&amp;gt; Install &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SQF Language&lt;/code&gt; by Vladislav and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SQFLint&lt;/code&gt; by Skace.
    &lt;ul&gt;
      &lt;li&gt;Open File Explorer -&amp;gt; Open &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Server\@DayZ_Epoch_Server\addons&lt;/code&gt; -&amp;gt; Right click on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dayz_server.pbo&lt;/code&gt; -&amp;gt; PBO Manager -&amp;gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Extract to dayz_server\&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Now drag the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dayz_server&lt;/code&gt; folder into the Workspace as well -&amp;gt; Trust -&amp;gt; Add to workspace.&lt;/li&gt;
      &lt;li&gt;Now go back to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Server\MPMissions&lt;/code&gt; -&amp;gt;  right click on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Epoch_11.Chernarus&lt;/code&gt; -&amp;gt; PBO Manager -&amp;gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Pack into DayZ_Epoch_11.Chernarus.pbo&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Now drag the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Epoch_11.Chernarus&lt;/code&gt; folder into VS Code on left side under &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Workspace&lt;/code&gt; -&amp;gt; Trust -&amp;gt; Add folder to workspace.&lt;/li&gt;
      &lt;li&gt;Now find the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Server_Config&lt;/code&gt; you made -&amp;gt; open it -&amp;gt; drag the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DZE_Server_Config&lt;/code&gt; folder into the workspace as well.&lt;/li&gt;
      &lt;li&gt;Now at the top click File -&amp;gt; Save Workspace As -&amp;gt; Name it something like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ Code&lt;/code&gt; -&amp;gt; Save it to your desktop. Now click File again and click on Auto Save. You are now done    setting up the text editor. (remember to drag the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;folders&lt;/code&gt; not the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.pbo&lt;/code&gt; files into VS code)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;9: In VS Code -&amp;gt; In the worksapce -&amp;gt; click on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DZE_Server_Config&lt;/code&gt; -&amp;gt; Click the arrow to open it -&amp;gt; go to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;11_chernarus.bat&lt;/code&gt;.
    &lt;ul&gt;
      &lt;li&gt;Change the Directories to yours. (ie: ‘&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-config=C:\DZE_Server_Config\11_chernarus.cfg&lt;/code&gt;’ will change to ‘&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-config=YourDrive\DayZ_Server_Config\DZE_Server_Config\11_chernarus.cfg&lt;/code&gt;’).&lt;/li&gt;
      &lt;li&gt;Now open the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;11_chernarus.cfg&lt;/code&gt; -&amp;gt; change ‘hostname = ;’ to whatever you want to name it, this will be what pops up on the server list, below that you can also have a server password.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;10: Open -&amp;gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DZE_Server_Config&lt;/code&gt; -&amp;gt; put the ‘start.bat’ inside.Change the directories in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Start.bat&lt;/code&gt; before you start it.
    &lt;ul&gt;
      &lt;li&gt;In VS Code -&amp;gt; Top left click ‘Terminal’ -&amp;gt; New Terminal -&amp;gt; a drop down menu will pop up -&amp;gt; click on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DZE_Server_Config&lt;/code&gt; -&amp;gt; the new terminal window will have opened up at the bottom -&amp;gt; type &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;start start&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Your server should start up. If you make changes in VS Code while the server is up, once you are ready to restart -&amp;gt; close the server -&amp;gt; then click on the Terminal window toward the bottom -&amp;gt; You should be able to just hit the Up arrow key or type ‘start start’ again.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Debugging: If you have any problems with the server -&amp;gt; go to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DZE_Server_Config&lt;/code&gt; -&amp;gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;arma2oaserver.RPT&lt;/code&gt; is where your logs and errors will be 90% of the time. If you have problems on the Client side -&amp;gt; Open File Explorer -&amp;gt; At the top in the address bar type &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;%appdata%&lt;/code&gt; -&amp;gt; Go back one folder and click ‘Local’ -&amp;gt; Arma 2 OA -&amp;gt; ‘ArmA2OA.RPT’.&lt;br /&gt;
If it has an error that  says &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Include file z\addons\dayz_code\gui\description.hpp not found&lt;/code&gt; -&amp;gt; go to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;11_chernarus.cfg&lt;/code&gt; and change the name to something like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;TEST&lt;/code&gt; -&amp;gt; then go to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;11_chernarus.bat&lt;/code&gt; then check all your spelling and directory changes, this error is typically due to the server not actually being directed to the Mission folder, the other possible problem is that you do no have a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$PREFIX$&lt;/code&gt; file in your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@DayZ_Epoch_Server\addons\dayz_server&lt;/code&gt; folder. After putting &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;TEST&lt;/code&gt; in the name, restart the server and see if the server name changes, if not, go to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;11_chernarus.cfg&lt;/code&gt; and check the line that says &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;template = “DayZ_Epoch_11.Chernarus”;&lt;/code&gt; and make sure it is directed to the correct folder.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your server should run and not have any problems now, if it does not start please refer to ++Debugging++, if you are ready we will move on to editing your server, click below to return to the ReadMe.&lt;/p&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;editing-your-new-epoch-server&quot;&gt;Editing your new Epoch Server&lt;/h1&gt;
&lt;p&gt;If you’ve made it this far and succesfully loaded into your own server, congrats! Now it’s time to start modding it to fit what you want.But before you do that I HIGHLY recommend making backups of your “@DayZ_Epoch_Server” and your “MPMissions”  folder regularly. I’m going to add some simple mods to get you started.&lt;/p&gt;
&lt;h2 id=&quot;making-edits&quot;&gt;Making Edits&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Before adding mods, you should go navigate to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DZE_Server_Config\BattleEye\scripts.txt&lt;/code&gt;and change all the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;5&lt;/code&gt;s to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1&lt;/code&gt;, this where Notepad++ comes in handy.&lt;/li&gt;
  &lt;li&gt;Open the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scripts.txt&lt;/code&gt; in VS Code, Ctrl + A, then Ctrl + C, now open up Notepad++ and hit Ctrl + V, everything in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scripts.txt&lt;/code&gt; should be pasted into Notepad++.&lt;/li&gt;
  &lt;li&gt;Now, In Notepad++ at the top there will be a bunch of icons, all the way to the right there is a Circle icon, it says &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;start recording&lt;/code&gt; when you hover over it, go ahead and click it, once you do it will become unclickable.&lt;/li&gt;
  &lt;li&gt;Now go to line 2 -&amp;gt; begins with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;5 addAction&lt;/code&gt;, click anywhere on that line, now hit the Home key on your keyboard, now hit the Right arrow key, Backspace, type &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1&lt;/code&gt;, then Down arrow key. Once you’ve done this go back to the top and hit the Square button right next to the Circle button we pressed earlier to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Stop Recording&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Now to the right of them there is a Triangle Play button, you can click this 83 times, or you can click the double triangle play button, a dialog will come up asking how many time you want to run the macro you just created, I believe its 83, type &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;83&lt;/code&gt; into the box, click run.&lt;/li&gt;
  &lt;li&gt;Scroll down and make sure all of them were set to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1&lt;/code&gt;, if any were missed go ahead and change them.&lt;/li&gt;
  &lt;li&gt;Now go ahead and Ctrl + A, Ctrl + C, then navigate back to VS Code, and Ctrl + V (unless you closed it then you will need to highlight everything in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scripts.txt&lt;/code&gt; file that you have open in VS Code again before pasting into it.&lt;/li&gt;
  &lt;li&gt;After making edits or addings mods to the server, remember in order to start server you type the ‘start start’ command in the terminal in VS Code, as the ‘Start.bat’ will repack your PBO’s for you.&lt;/li&gt;
  &lt;li&gt;If this is going to be a private server and you don’t need the security -&amp;gt; go to ‘11_chernarus.cfg’ -&amp;gt; find line ‘BattlEye = 1;’ then set to 0, also find the line  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;password = “”;&lt;/code&gt; and make a good one!, if so you don’t need to follow the &lt;a href=&quot;../writeup/BattleEye.md&quot;&gt;Battle Eye Filters&lt;/a&gt;, after installing the Admin Tools you are good to go!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;value-edits&quot;&gt;Value Edits&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Open File Explorer -&amp;gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Server\@DayZ_Epoch\addons&lt;/code&gt; -&amp;gt; right click &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dayz_code.pbo&lt;/code&gt; -&amp;gt; PBO Manager -&amp;gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Extract to dayz_code\&lt;/code&gt; -&amp;gt; drag the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dayz_code&lt;/code&gt; folder into the VS Workspace -&amp;gt; Add to Workspace.&lt;/li&gt;
  &lt;li&gt;Open it in the workspace -&amp;gt; find &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;configVariables.sqf&lt;/code&gt; -&amp;gt; right click -&amp;gt; Copy.&lt;/li&gt;
  &lt;li&gt;Navigate to your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Epoch_11.Chernarus&lt;/code&gt; folder in the workspace -&amp;gt; if you don’t already have a folder there called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dayz_code&lt;/code&gt;, make it then -&amp;gt;right click -&amp;gt; Paste (or Ctrl + V).&lt;/li&gt;
  &lt;li&gt;Now, while in that folder still -&amp;gt; right click on it -&amp;gt; New Folder -&amp;gt; name it &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;init&lt;/code&gt;. Now go back to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dayz_code&lt;/code&gt; folder -&amp;gt; init -&amp;gt; find &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;variables.sqf&lt;/code&gt; -&amp;gt; right click -&amp;gt; Copy.&lt;/li&gt;
  &lt;li&gt;Navigate back to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Epoch_11.Chernarus&lt;/code&gt; folder and go to the empty &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;init&lt;/code&gt; folder you made -&amp;gt; Right click -&amp;gt; Paste. Right click on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dayz_code&lt;/code&gt; folder in the workspace -&amp;gt; Remove folder from workspace.&lt;/li&gt;
  &lt;li&gt;Now go back to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DayZ_Epoch_11.Chernarus&lt;/code&gt; folder and click on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;init.SQF&lt;/code&gt;. Find this:
    &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;call&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;compile&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;preprocessFileLineNumbers&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\z\a&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;ddons&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\d&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;ayz_code&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\i&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;nit&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\v&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;ariables.sqf&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
    &lt;p&gt;and right BELOW it put:&lt;/p&gt;
    &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;call&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;compile&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;preprocessFileLineNumbers&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;dayz_code&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\i&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;nit&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\v&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;ariables.sqf&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;call&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;compile&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;preprocessFileLineNumbers&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;dayz_code&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\c&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;onfigVariables.sqf&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;Now to make the value edits you would like, you’ll be editing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;init.sqf&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;configVariables.sqf&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;variables.sqf&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;If you want ZSC single currency for example, enable it in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;configVariables.sqf&lt;/code&gt; by changing:
    &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;no&quot;&gt;Z_SingleCurrency&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
    &lt;p&gt;to&lt;/p&gt;
    &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;no&quot;&gt;Z_SingleCurrency&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;Go to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Description.ext&lt;/code&gt; in your mission folder -&amp;gt; at the bottom find:
    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#include &quot;\z\addons\dayz_code\Configs\CfgServerTrader\CfgServerTrader.hpp&quot; // Normal traders
//#include &quot;\z\addons\dayz_code\Configs\CfgServerTraderZSC\CfgServerTrader.hpp&quot; // Single currency traders
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
    &lt;p&gt;and change to:&lt;/p&gt;
    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;//#include &quot;\z\addons\dayz_code\Configs\CfgServerTrader\CfgServerTrader.hpp&quot; // Normal traders
#include &quot;\z\addons\dayz_code\Configs\CfgServerTraderZSC\CfgServerTrader.hpp&quot; // Single currency traders
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
    &lt;h2 id=&quot;map-addons&quot;&gt;Map Addons&lt;/h2&gt;
  &lt;/li&gt;
  &lt;li&gt;We’re going to add custom map addons server side, watch my &lt;a href=&quot;https://youtu.be/y639xY7ekdc&quot;&gt;video&lt;/a&gt; on how to make your map edits.&lt;/li&gt;
  &lt;li&gt;Navigate to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dayz_server&lt;/code&gt; in your workspace -&amp;gt; Right click -&amp;gt; Add new File -&amp;gt; name it &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;build.sqf&lt;/code&gt; -&amp;gt; Add New Folder -&amp;gt; Name it &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;custom_buildings&lt;/code&gt; -&amp;gt; grab your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mission.sqf&lt;/code&gt; file from the map edit you did -&amp;gt; rename it to like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BalotaAddons.sqf&lt;/code&gt;  for example if you made changes to Balota -&amp;gt; now place that file in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;custom_buildings&lt;/code&gt; folder.&lt;/li&gt;
  &lt;li&gt;Navigate to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dayz_server\init\server_functions.sqf&lt;/code&gt; -&amp;gt; find:
    &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;call&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;compile&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;preprocessFileLineNumbers&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\z\a&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;ddons&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\d&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;ayz_code&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\l&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;oot&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\i&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;nit.sqf&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
    &lt;p&gt;then right BELOW it add:&lt;/p&gt;
    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#include &quot;\z\addons\dayz_server\build.sqf&quot;;//build custom map addons before player setup
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;Now go to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;build.sqf&lt;/code&gt; script and type:
    &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;execVM&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\z\a&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;ddons&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\d&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;ayz_server&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\c&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;ustom_buildings&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\B&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;alotaAddons.sqf&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
    &lt;p&gt;Restart your server and the map edits you made will work.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;third-party-mods&quot;&gt;Third Party Mods&lt;/h2&gt;
&lt;p&gt;I use the following mods&lt;br /&gt;
 &lt;a href=&quot;https://github.com/worldwidesorrow/WICKED-AI&quot;&gt;Wicked AI&lt;/a&gt; The Install guide is on the main repo page, just scroll down.&lt;br /&gt;
 &lt;a href=&quot;https://github.com/SnarkIndustries/DZAI&quot;&gt;DZAI&lt;/a&gt; Use &lt;a href=&quot;https://github.com/SnarkIndustries/DZAI/blob/master/Installation%20Guides/2.%20Install%20Instructions%20-%20dayz_server.pbo%20installation%20(PBOManager).txt&quot;&gt;this guide&lt;/a&gt; to get things going.&lt;br /&gt;
 &lt;a href=&quot;https://github.com/SMVampire/DZMS-DayZMissionSystem&quot;&gt;DZMS&lt;/a&gt; The install guide is on the main repo page.&lt;/p&gt;

&lt;p&gt;To begin with I’d advise you just go with WAI, For the most part this will be all you need. I use the others to just compliment things in that the missons from DZMS are slightly basic but enables you to have more activity on the server. If you do end up making a public server ensure that you check over things regularly and if having multiple AI causes your bill to increase then drop DZAI and just have WAI and DZMS.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Most 3rd party mods from github have a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;readme.md&lt;/code&gt; that you can follow, the good ones give you the battleye exceptions you need as well, but if you add a mod that doesn’t give you the battleye exceptions you will want to run ‘BE_AEG.exe’ if the kicks are due to ‘script restriction’ and any other filter .txt file restrictions you will have to add manually, this gets covered later in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Battle Eye Filters&lt;/code&gt; section.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;installing-the-admin-tools&quot;&gt;Installing the Admin Tools&lt;/h2&gt;
&lt;p&gt;BigEgg made some great &lt;a href=&quot;https://github.com/BigEgg17/Epoch-Antihack-Admin-Tools&quot;&gt;Anti Hack Admin Tools&lt;/a&gt; for the community to use and they work on Epoch 1.0.7! They let admins fly, teleport, and overall do what they need to do.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;You will want to follow the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;readme.md&lt;/code&gt; on the github for the installation of the admin tools until you get to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Step 11: Drag all the BattlEye filters from the BattlEye folder into your server&apos;s BattlEye folder.&lt;/code&gt;, do not do that, instead come back and continue.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You are now done learning how to edit your server.&lt;/p&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;making-battle-eye-exceptions&quot;&gt;Making Battle Eye Exceptions&lt;/h1&gt;
&lt;p&gt;BattleEye reads filters from the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.txt&lt;/code&gt; files inside the folder, it then reads everything after the function name, for example in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DZE_Server_Config\BattleEye\scripts.txt&lt;/code&gt; line 40 says &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1 execVM&lt;/code&gt; , 1 being the filter style and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;execVM&lt;/code&gt; being the function, everything after are the Exceptions. Exceptions allow someone to execute that function in a certain way without being kicked by BattleEye. Please read the &lt;a href=&quot;https://github.com/AsYetUntitled/Framework/wiki/BattlEye-Filters&quot;&gt;Battle Eye Filters Guide&lt;/a&gt; to get a better understanding then come back.&lt;/p&gt;

&lt;h2 id=&quot;generating-restrictions&quot;&gt;Generating Restrictions&lt;/h2&gt;
&lt;p&gt;If you followed the ‘Making Edits’ in &lt;a href=&quot;../main/EditingTheServer.md&quot;&gt;this&lt;/a&gt; then you should have all of your filters inside the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DZE_Server_Config\BattleEye\scripts.txt&lt;/code&gt;set to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1&lt;/code&gt;’s.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Go ahead and launch theserver and the game and join the server and when you get in, press F2 and do everything the admin menu allows you to. This will generate the restrictions(kicks) that would normally happen.&lt;/li&gt;
  &lt;li&gt;Once you are done testing every admin tool available, close the server. (which means spawn everything, teleport, ect. everything)&lt;/li&gt;
  &lt;li&gt;If you navigate to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DZE_Server_Config\Battle&lt;/code&gt; you will notice a new file called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scripts.log&lt;/code&gt; , this is filled with all the restrictions we’ve just generated. When a mod tries to call one of the Functions but does not have an Exception for it, BattleEye will kick the user. It will then note this in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scripts.log&lt;/code&gt; with the exact code that tried to call the function in quotes, along with the filter number.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;generating-exceptions-for-restrictions&quot;&gt;Generating Exceptions for Restrictions&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;First let’s open the Setup Guide Files folder we downloaded -&amp;gt; copy the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BE_AEG.exe&lt;/code&gt; and the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;with console debug.bat&lt;/code&gt; into your BattleEye folder.&lt;/li&gt;
  &lt;li&gt;Now, we need to generate Exceptions for the restrictions that were created by the Admin Tools (because flying and teleporting ect, do not have exceptions by default). But when we look at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scripts.log&lt;/code&gt; we only need to look at the Restrictions that contain a random line(variable) of letters and numbers, for example
    &lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;o&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;79&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;&quot;] call BQ1vBKUInpSNuc;
          };
      };

      if (-1 &amp;gt; -1) then {setViewDistance -1};
      if (25 &amp;gt; -1) then {setTerrainGrid 25};
      if (true&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
    &lt;p&gt;with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BQ1vBKUInpSNuc&lt;/code&gt; being the random variable and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;setViewDistance&lt;/code&gt; being the function.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;The reason we are only looking at and making exceptions for them is because the Admin Tools generates new variables every time the server starts again, so we have to add manual exceptions that will cover the code around them. All of the other restrictions should be fixed when we run the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BE_AEG.exe&lt;/code&gt; by double clicking the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;with console debug.bat&lt;/code&gt; file.&lt;/li&gt;
  &lt;li&gt;In order to fix this we need to make an exception that gets as much of the code as possible but also removing the variable. If you followed the &lt;a href=&quot;https://github.com/AsYetUntitled/Framework/wiki/BattlEye-Filters&quot;&gt;Battle Eye Filters Guide&lt;/a&gt; you know we need to break this down so let’s do it.
    &lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; &lt;span class=&quot;nv&quot;&gt;&quot;] call BQ1vBKUInpSNuc;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;Contains the problem variable. So let’s start making the exception after it. Like this:
    &lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;  &lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;&quot;};&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; };&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n\n&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; if (-1 &amp;gt; -1) then {setViewDistance -1};&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; if (25 &amp;gt; -1) then {setTerrainGrid 25};&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; if (true&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;So we head to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scripts.txt&lt;/code&gt; and find line 79, we then go up two to line 81 because the filters don’t start on line 1, it says &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;//new2&lt;/code&gt; and the first filter &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1 addAction&lt;/code&gt; is 0, in programming numbers don’t start at 1, they start at 0.&lt;/li&gt;
  &lt;li&gt;So now line 81 says &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1 setViewDistance&lt;/code&gt; and since that is the Function being called in the code, we know we are right, click on the line, hit the End key on your keyboard, and copy the exception to the end of the line.&lt;/li&gt;
  &lt;li&gt;Now we know how to make exceptions for the Admin Tools random variable restrictions. Please continue to find as many as you can with the random variables and fix them. Once you are done fixing them, navigate to your Battle Eye folder and double click on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;with console debug.bat&lt;/code&gt; and it will then auto generate the exceptions needed for all of the other &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scripts.txt&lt;/code&gt; restrictions. Then you should be good to go!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Restart your game and Server and rejoin, then leave, and check &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scripts.log&lt;/code&gt;, if it is not there, you are done.&lt;/p&gt;

&lt;p&gt;If you want more how about you consider upgrading to Epoch 1.7.0.1, it really is a simple import of SQL but I’ll let you figure it out.&lt;/p&gt;

&lt;p&gt;If you need help, please join the &lt;a href=&quot;https://discord.gg/0k4ynDDCsnMzkxk7&quot;&gt;Epoch discord server: https://discord.gg/0k4ynDDCsnMzkxk7&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Share this guide with whoever you like.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;PLEASE NOTE I CANNOT GUARANTEE THE ABOVE GUIDE WORKS IN FULL AS THINGS CHANGE, AT THE TIME I WROTE THIS IT WORKED FOR ME&lt;/code&gt;&lt;/p&gt;
</description>
				<pubDate>Tue, 24 Jan 2023 15:00:00 +0000</pubDate>
				<link>/2023/01/DayZ-Epoch/</link>
				<guid isPermaLink="true">/2023/01/DayZ-Epoch/</guid>
			</item>
		
			<item>
				<title>Pihole in Oracle</title>
				<description>&lt;p&gt;I know there are many sites that produce these guides but I like to have my own. Additionally I also like to use unbound as a local forwarder that is configured to use root hints, This means you’re not sharing more data with others and look up DNS directly.&lt;/p&gt;

&lt;p&gt;Additonally I use the wireguard part of openVPN and only have 2 tunnels connected to my cloud: 1 my phone 2 my local DNS server.&lt;br /&gt;
Why do I have a local DNS server you might ask, Well it allows me to offload the actual blocking to the cloud and keeps the gui cleaner additionally it means less traffic going to the cloud so then there is less chance of hitting a fee for the compute instance&lt;/p&gt;

&lt;p&gt;Only change configuration mentioned here, leave the rest as default.&lt;/p&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;platform-setup&quot;&gt;Platform Setup&lt;/h1&gt;

&lt;p&gt;Create an account with Oracle Cloud free tier: https://www.oracle.com/cloud/free&lt;/p&gt;

&lt;p&gt;Setup a VM instance&lt;/p&gt;

&lt;p&gt;Switch the OS from Oracle Linux to Ubuntu&lt;/p&gt;

&lt;p&gt;Upload your own public key (this key can be generated via PuTTY)&lt;/p&gt;

&lt;p&gt;Note down Public IP and Private IP&lt;/p&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;os-setup&quot;&gt;OS Setup&lt;/h1&gt;

&lt;p&gt;Log in to Shell and switch to root:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo su - root
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Change root password:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; passwd root
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;[Note: The common practice is not to do this. Here the use case is security vs. convenience, where this approach is convenient but may be risky to permit remote access via root.]&lt;/p&gt;

&lt;p&gt;Update the system:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;apt-get update &amp;amp;&amp;amp; apt-get upgrade -y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;h1 id=&quot;install-pivpn-pihole-text-editor&quot;&gt;Install pivpn, pihole text editor&lt;/h1&gt;

&lt;p&gt;Install and configure pivpn:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl -L https://install.pivpn.io | bash
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Select Port: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1194&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Create a default client after installation and download it [Step 25]&lt;/p&gt;

&lt;p&gt;Install and configure Pi-Hole:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl -sSL https://install.pi-hole.net | bash
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Select interface: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tun0&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Change the Pi-Hole password:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo pihole -a -p
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Install nano text editor (or your favourite alternative):&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt install nano -y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;h1 id=&quot;setup-ssh-access&quot;&gt;Setup SSH access&lt;/h1&gt;
&lt;p&gt;Edit the SSH config file:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo nano /etc/ssh/sshd_config
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;It is upto you if you want to allow root to be able to login, Personally I do not and suffice with using sudo from a normal user.&lt;/p&gt;

&lt;p&gt;Change following entries&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;PasswordAuthentication no &amp;gt; PasswordAuthentication yes

PermitRootLogin prohibit-password &amp;gt; PermitRootLogin yes
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;[Note: As mentioned earlier, do this at your own risk - this method allows you to easily connect to VM and grab any file from anywhere but this may pose a security risk]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Restart sshd:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo systemctl restart sshd
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;setup-pivpn&quot;&gt;Setup PiVPN&lt;/h1&gt;

&lt;p&gt;Edit the server config:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nano /etc/openvpn/server.conf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Change push “dhcp-option DNS &lt;pihole private=&quot;&quot; ip=&quot;&quot; goes=&quot;&quot; here=&quot;&quot;&gt;&quot;&lt;/pihole&gt;&lt;/p&gt;

&lt;p&gt;Comment out the line which reads &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;push &quot;redirect-gateway def1&quot;&lt;/code&gt; so it reads as follows:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; # push &quot;redirect-gateway def1&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The longer the keep-alive interval the longer it will take either end of the openvpn connection to detect whether the connection is no longer alive. Because mobile devices often lose connectivity and regain it, lower values are desirable.&lt;/p&gt;

&lt;p&gt;Comment out &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;keepalive 1800 3600&lt;/code&gt; and add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;keepalive 10 60&lt;/code&gt; below it, so it appears as follows:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; # keepalive 1800 3600
 keepalive 10 60
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Comment out the line which reads &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cipher AES-256-CBC&lt;/code&gt; and add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cipher AES-128-GCM&lt;/code&gt; below it, so it reads as follows:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; # cipher AES-256-CBC
 cipher AES-128-GCM
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;At the bottom of the file add the following lines:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; # performance stuff
 fast-io
 compress lz4-v2
 push &quot;compress lz4-v2&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;O&lt;/code&gt; to bring up the save prompt at the bottom of Nano, press &lt;strong&gt;Enter&lt;/strong&gt; to save. Then press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;X&lt;/code&gt; to exit&lt;/p&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;setup-oracle-firewall&quot;&gt;Setup Oracle firewall&lt;/h1&gt;

&lt;p&gt;Search Internet on Oracle web GUI&lt;/p&gt;

&lt;p&gt;Navigate to &amp;gt; Internet Gateway vcn-XXXXXXXX-XXXX&lt;/p&gt;

&lt;p&gt;Left column &amp;gt; Navigate to &amp;gt; Security Lists&lt;/p&gt;

&lt;p&gt;Navigate to &amp;gt; Default Security List for vcn-XXXXXXXX-XXXX&lt;/p&gt;

&lt;p&gt;Add Ingress Rules&lt;/p&gt;

&lt;p&gt;Source CIDR: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0.0.0.0/0&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;IP Protocol: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;UDP&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Destination Port Range: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1194&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Restart the VM from the Console&lt;/p&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;managing-the-pivpn&quot;&gt;Managing the PiVPN&lt;/h1&gt;

&lt;p&gt;set up an OpenVPN Client Profile. (You do not need to have elevated root privileges to do this.)&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pivpn add nopass
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Give your client profile a name. I like to use an alphanumeric string composed of the user’s first name, and their device’s make and model (no spaces and no special characters).&lt;/p&gt;

&lt;blockquote class=&quot;note&quot;&gt;
  &lt;p&gt;Make a new client profile for every device. DO NOT share a client profile between two different devices.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This command will output a success message which looks like this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;   ========================================================
   Done! mypixel3xl.ovpn successfully created!
   mypixel3xl.ovpn was copied to:
     /home/myusername/ovpns
   for easy transfer. Please use this profile only on one
   device and create additional profiles for other devices.
   ========================================================
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To get the &lt;strong&gt;mypixel3xl.ovpn&lt;/strong&gt; file to your phone it is easiest to maximize your SSH window and print the file to the terminal window, to copy &amp;amp; paste the output:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cat ~/ovpns/mypixel3xl.ovpn
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-&lt;/code&gt; until the screen zooms out to a point where you can see the entire ovpn file printed on the screen. The first line will have the word &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;client&lt;/code&gt; and the last line is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;/tls-crypt&amp;gt;&lt;/code&gt;. Highlighting this entire chunk with a mouse will cause a scissor icon to appear in the middle of your SSH window, this means this selection has been copied to your clipboard.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;moving-forwards&quot;&gt;Moving Forwards&lt;/h1&gt;

&lt;p&gt;Suggested Block lists: I could list out all the lists I like to use but whether they’re valid to you is a totally different matter. So to make it simple andd get you going I’ll suggest 1 list&lt;/p&gt;

&lt;p&gt;Configure the OISD block list, which covers almost every sub-list known to humankind: https://oisd.nl/ [follow instructions on the website and pick on need basis]&lt;/p&gt;

&lt;p&gt;For extra configuration of other features on pihole please refer to their documentation and community.&lt;/p&gt;

&lt;p&gt;Use following commands for periodic updates&lt;/p&gt;

&lt;p&gt;Ubuntu:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;apt update &amp;amp;&amp;amp; apt upgrade &amp;amp;&amp;amp; apt dist-upgrade
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Pi-Hole:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pihole -up
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Pi-Hole Gravity (adblock lists):&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pihole -g
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Restart after update:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;reboot
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Share this guide with whoever you like&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;PLEASE NOTE i CANNOT GUARANTEE THE ABOVE GUIDE WORKS IN FULL AS THINGS CHANGE, AT THE TIME I WROTE THIS IT WORKED FOR ME&lt;/code&gt;&lt;/p&gt;
</description>
				<pubDate>Tue, 24 Jan 2023 00:00:00 +0000</pubDate>
				<link>/2023/01/pihole-oracle/</link>
				<guid isPermaLink="true">/2023/01/pihole-oracle/</guid>
			</item>
		
			<item>
				<title>Updates</title>
				<description>&lt;p&gt;So much has happened since my last post 31 Jul 2019.&lt;br /&gt;
Moved house again, Still in the same borough just moved closer to town center and work. The landlady was very underhanded with us, We used to rent a small 2 bed and at the time her husband was alive. He was an amazing guy and we’d spend quite a bit of time talking and he offered me £200 to redec if I wanted to, His statement in email was take it or leave it. As I don’t like to accept discounts from rent I decided to decline.&lt;br /&gt;
Fast forward a couple of years and the Landlord passed away due to cancer, we moved to another of his properties which was a 4 Bed with garage. Lovely place wonderful neighbours and all went well for about 3 years, I get a call from the Landlady telling me she’s decided to sell up and if we want we can have first dibs. Great!&lt;br /&gt;
My wife and I went to the bank to see if this was possible, No rent payments are not taken into account, If they did they’d see we could afford to pay but alas they said no.&lt;br /&gt;
So we informed the landlady that we couldn’t take it on and asked for time to find another place, all good.&lt;br /&gt;
On the moveout day I ask for deposit …BOOM she dropped the clanger of no because I didn’t re-dec the old palce and left it in bad shaped blah blah blah!&lt;br /&gt;
I made my points, provided all the emails yet still she declined the deposit, during this I discovered the deposit was not in an escroe account! So told her “You’ll hear from my lawyers and you better make sure you followed ALL landlord/renting laws as this will be no win/no-fee for me, She wnet white.&lt;br /&gt;
So I engage a lawyer and hand over the details for them, A week later and I get an email telling me to provide bank details as she will pay the deposit and anything left of the rent we didn’t use. Agreed and got the payout also Lawyer didn’t bother to take a payment as all he did was inform the landlady she’d lose the case and her lawyer agreed lmfao.&lt;/p&gt;

&lt;p&gt;COVID&lt;/p&gt;

&lt;p&gt;What can I say other than never trust a Tory MP!&lt;br /&gt;
Their actions on the response was typical, all their mate got hundreds of millions and all we got was unusable PPE.&lt;/p&gt;

&lt;p&gt;WAR&lt;/p&gt;

&lt;p&gt;Putin you true numbskull!&lt;br /&gt;
What are you doing. Did you really think the world would not turn against you!&lt;/p&gt;

&lt;p&gt;Thanks for reading this far.&lt;br /&gt;
I have a few more guides to come soon and will look to expand to different topis and maybe add a page for my spleen vents LOL&lt;/p&gt;
</description>
				<pubDate>Mon, 23 Jan 2023 16:00:00 +0000</pubDate>
				<link>/2023/01/Updates/</link>
				<guid isPermaLink="true">/2023/01/Updates/</guid>
			</item>
		
			<item>
				<title>How to set up Pi-Hole with Pi-VPN and some extras</title>
				<description>&lt;p&gt;This is &lt;a href=&quot;http://alturl.com/95uyd&quot;&gt;the guide I followed&lt;/a&gt; and have encorporated it here.&lt;/p&gt;

&lt;p&gt;Set up a Pi-Hole Ad Blocking VPN Server with a static Anycast IP on Google Cloud’s Always Free Usage Tier&lt;/p&gt;

&lt;p&gt;Configure Full Tunnel or Split Tunnel OpenVPN connections from your Android, iOS, Linux, macOS, &amp;amp; Windows devices&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/data-privacy-risk.svg&quot; width=&quot;125&quot; align=&quot;right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The goal of this guide is to enable you to safely and privately use the Internet on your phones, tablets, and computers with a self-run VPN Server in the cloud. It can be run at no cost to you; shields you from intrusive advertisements; and blocks your ISP, cell phone company, public WiFi hotspot provider, and apps/websites from gaining insight into your usage activity.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/upfront-cost.svg&quot; width=&quot;90&quot; align=&quot;right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Run your own privacy-first ad blocking service within the &lt;strong&gt;&lt;a href=&quot;https://cloud.google.com/free/&quot;&gt;Free Usage Tier&lt;/a&gt;&lt;/strong&gt; on Google Cloud. &lt;strong&gt;This guide gets you set up with a Google Cloud account, and walks you through setting up a full tunnel (all traffic) or split tunnel (DNS traffic only) VPN connection on your Android &amp;amp; iOS devices, and computers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Both Full Tunnel and Split Tunnel VPN connections provide DNS based ad-blocking over an encrypted connection to the cloud. The differences are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A Split Tunnel VPN allows you to interact with devices on your Local Network (such as a Chromecast or Roku).&lt;/li&gt;
  &lt;li&gt;A Full Tunnel VPN can help bypass misconfigured proxies on corporate WiFi networks, and protects you from Man-In-The-Middle SSL proxies.&lt;/li&gt;
&lt;/ul&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Tunnel Type&lt;/th&gt;
      &lt;th&gt;Data Usage&lt;/th&gt;
      &lt;th&gt;Server CPU Load&lt;/th&gt;
      &lt;th&gt;Security&lt;/th&gt;
      &lt;th&gt;Ad Blocking&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;full&lt;/td&gt;
      &lt;td&gt;+10% overhead for vpn&lt;/td&gt;
      &lt;td&gt;moderate&lt;/td&gt;
      &lt;td&gt;100% encryption&lt;/td&gt;
      &lt;td&gt;yes&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;split&lt;/td&gt;
      &lt;td&gt;just kilobytes per day&lt;/td&gt;
      &lt;td&gt;very low&lt;/td&gt;
      &lt;td&gt;dns encryption only&lt;/td&gt;
      &lt;td&gt;yes&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;platform-setup&quot;&gt;Platform Setup&lt;/h1&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/cloud.svg&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;google-cloud-login-and-account-creation&quot;&gt;Google Cloud Login and Account Creation&lt;/h2&gt;

&lt;p&gt;Go to https://cloud.google.com and click &lt;strong&gt;Console&lt;/strong&gt; at the top right if you have previously used Google’s Cloud Services, or click &lt;strong&gt;Try Free&lt;/strong&gt; if it’s your first time.&lt;/p&gt;

&lt;h2 id=&quot;account-creation&quot;&gt;Account Creation&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Step 1 of 2&lt;/strong&gt; &lt;br /&gt; Agree to the terms and continue. &lt;br /&gt;&lt;img src=&quot;/assets/images/pi5.png&quot; width=&quot;265&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 2 of 2&lt;/strong&gt; &lt;br /&gt; Set up a payments profile and continue &lt;br /&gt;&lt;img src=&quot;/assets/images/pi5.png&quot; width=&quot;223&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;project--compute-engine-creation&quot;&gt;Project &amp;amp; Compute Engine Creation&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;Click the Hamburger Menu at the top left: &lt;br /&gt;&lt;img src=&quot;/assets/images/pi1.png&quot; width=&quot;197&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Click &lt;strong&gt;Compute Engine&lt;/strong&gt;: &lt;br /&gt;&lt;img src=&quot;/assets/images/pi2.png&quot; width=&quot;138&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Select &lt;strong&gt;VM instances&lt;/strong&gt;: &lt;br /&gt;&lt;img src=&quot;/assets/images/pi3.png&quot; width=&quot;102&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Create a Project if you don’t already have one: &lt;br /&gt;&lt;img src=&quot;/assets/images/pi4.png&quot; width=&quot;294&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Enable billing for this Project if you haven’t already: &lt;br /&gt;&lt;img src=&quot;/assets/images/pi6.png&quot; width=&quot;288&quot; /&gt;
    &lt;ul&gt;
      &lt;li&gt;Compute Engine will begin initializing: &lt;br /&gt;&lt;img src=&quot;/assets/images/pi7.png&quot; width=&quot;232&quot; /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/computeengine.svg&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;compute-engine-virtual-machine-setup&quot;&gt;Compute Engine Virtual Machine Setup&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;Create a Virtual Machine instance on Compute Engine: &lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;img src=&quot;/assets/images/pi8.png&quot; width=&quot;216&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Customize the instance: &lt;br /&gt;
&lt;img src=&quot;/assets/images/pi8.png&quot; width=&quot;216&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Name your Virtual Machine &lt;strong&gt;pi-hole&lt;/strong&gt;. &lt;img src=&quot;/assets/images/pi9.png&quot; width=&quot;232&quot; align=&quot;right&quot; /&gt;&lt;br /&gt;
Your Region selection should be any US region only (excluding Northern Virginia [us-east4]). &lt;br /&gt;
I have used &lt;strong&gt;us-east1&lt;/strong&gt; and the &lt;strong&gt;us-east1-b&lt;/strong&gt; zone because it is closest to me. &lt;br /&gt;
Choose a &lt;strong&gt;micro&lt;/strong&gt; Machine Type in the dropdown. &lt;br /&gt;
Change the &lt;strong&gt;Boot Disk&lt;/strong&gt; to be &lt;strong&gt;30GB&lt;/strong&gt; if you plan on keeping your DNS lookup records for any reason, otherwise the default &lt;strong&gt;10GB&lt;/strong&gt; disk allocation is adequate. &lt;br /&gt;
&lt;strong&gt;Allow HTTP traffic&lt;/strong&gt; in the Firewall (add a checkmark).&lt;br /&gt;
&lt;strong&gt;Allow HTTPS traffic&lt;/strong&gt; in the Firewall (add a checkmark).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Expand &lt;strong&gt;Management, Security, disks, networking, sole tenancy&lt;/strong&gt; and click the &lt;strong&gt;Network&lt;/strong&gt; tab. Click the Pencil icon under &lt;strong&gt;Network Interfaces&lt;/strong&gt;.&lt;br /&gt;
&lt;img src=&quot;/assets/images/pi10.png&quot; width=&quot;238&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The External IP Address should not be Ephemeral. Choose &lt;strong&gt;Create IP Address&lt;/strong&gt; to Reserve a New Static IP Address&lt;br /&gt;
&lt;img src=&quot;/assets/images/pi13.png&quot; width=&quot;230&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;/assets/images/pi14.png&quot; width=&quot;395&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;You can log into your Virtual Machine via SSH in a Browser by clicking the SSH button. Make note of your External IP (it will be different from the screenshot below).&lt;br /&gt;
&lt;img src=&quot;/assets/images/pi15.png&quot; width=&quot;369&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;Click the Hamburger Menu at the top left, click &lt;strong&gt;VPC Network&lt;/strong&gt; and click &lt;strong&gt;Firewall Rules&lt;/strong&gt;.&lt;br /&gt;
&lt;img src=&quot;/assets/images/firewall.png&quot; width=&quot;222&quot; /&gt; &lt;br /&gt;
 1) Click &lt;strong&gt;Create Firewall Rule&lt;/strong&gt; at the top center of the page. &lt;br /&gt;
 2) The name of your rule should be &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;allow-openvpn&lt;/code&gt;, &lt;br /&gt;
 3) change the &lt;strong&gt;Targets&lt;/strong&gt; dropdown to &lt;strong&gt;All instances in the network&lt;/strong&gt;. &lt;br /&gt;
 4) The &lt;strong&gt;Source IP Ranges&lt;/strong&gt; should be &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0.0.0.0/0&lt;/code&gt;. &lt;br /&gt;
 5) The &lt;strong&gt;udp&lt;/strong&gt; checkbox should be selected, and the port number next to it should be changed from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;all&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1194&lt;/code&gt;. &lt;br /&gt;
 6) Then click the &lt;strong&gt;Create&lt;/strong&gt; button. &lt;br /&gt;
 7) You can disable the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;default-allow-rdp&lt;/code&gt; rule which Google set up with a default action of Allow, but because our server does not run any service on Port 3389 it is harmless to leave this rule alone.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Do not disable the &lt;strong&gt;default-allow-ssh&lt;/strong&gt; firewall rule, or you will disable the browser-based SSH from within the Google Cloud Console.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;os&quot;&gt;OS&lt;/h1&gt;
&lt;p&gt;After finishing the previous steps Google Cloud will have provisioned a fresh virtual machine running Debian Stretch and a default install of the Google Cloud SDK, This amognst other things will give you acces to the gcloud command from within the virtual machine. These will give you the power to make changes to the public facing firewall that you briefly configured by allowing HTTP, HTTPS, SSH and OpenVPN into your virtual machine.&lt;br /&gt;
We now need to ensure the OS is up to date.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/debian.svg&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;debian-update--upgrade&quot;&gt;Debian Update &amp;amp; Upgrade&lt;/h2&gt;

&lt;p&gt;Once you log into your Virtual Machine via SSH, you want to update and upgrade it.&lt;/p&gt;

&lt;p&gt;Ensure you have elevated root privileges by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo su
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Update and upgrade by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;apt-get update &amp;amp;&amp;amp; apt-get upgrade -y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/pihole.svg&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;pi-hole-installation&quot;&gt;Pi-Hole Installation&lt;/h1&gt;

&lt;p&gt;Pi-Hole is a DNS based adblocker.&lt;/p&gt;

&lt;p&gt;Ensure you have elevated root privileges by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo su
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Install Pi-Hole by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl -sSL https://install.pi-hole.net | bash
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You will flow into a series of prompts in a blue screen.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Choose OK or answer positively for all the prompts until the “Select Protocols” question appears. IPv6 needs to be deselected as shown below: &lt;br /&gt;&lt;img src=&quot;/assets/images/pi16.png&quot; width=&quot;281&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Choose OK or answer positively for all the other prompts.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Set a strong password that you will remember for the Web Interface&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pihole -a -p
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Log into the web interface using the External IP that you noted down earlier at&lt;br /&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://your-external-ip/admin/settings.php?tab=dns&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Click &lt;strong&gt;Settings&lt;/strong&gt;, and navigate to &lt;strong&gt;DNS&lt;/strong&gt;. &lt;br /&gt;Set your &lt;strong&gt;Interface Listening Behavior&lt;/strong&gt; to &lt;strong&gt;Listen on All Interfaces&lt;/strong&gt; on this page: &lt;br /&gt;&lt;img src=&quot;/assets/images/pi18.png&quot; width=&quot;237&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Click the &lt;strong&gt;Save&lt;/strong&gt; Button at the bottom of the page.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/pivpn.png&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;pivpn-installation&quot;&gt;PiVPN Installation&lt;/h1&gt;

&lt;p&gt;PiVPN is an OpenVPN setup and configuration tool.&lt;/p&gt;

&lt;p&gt;Ensure you have elevated root privileges by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo su
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Install PiVPN by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl -L https://install.pivpn.io | bash
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You will flow into a series of prompts in a blue screen. All of the default values are appropriate.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Choose OK or answer positively for all the prompts until you have to choose an upstream DNS provider. The default answer is Google. Choose &lt;strong&gt;Custom&lt;/strong&gt; and set an IP Address of &lt;strong&gt;10.8.0.1&lt;/strong&gt; &lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;img src=&quot;/assets/images/custom-dns.png&quot; width=&quot;284&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;img src=&quot;/assets/images/custom-dns-ip.png&quot; width=&quot;284&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The default answer to reboot is &lt;strong&gt;No&lt;/strong&gt; at the end of the installer. It is fine to say &lt;strong&gt;No&lt;/strong&gt;, we have a few more things to edit while we’re logged in as root.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/openvpn.svg&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;openvpn-configuration&quot;&gt;OpenVPN Configuration&lt;/h2&gt;

&lt;p&gt;Ensure you have elevated root privileges by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo su
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Get into the openvpn directory by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cd /etc/openvpn
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;server-configuration-for-vpn-over-udp-on-port-1194&quot;&gt;Server Configuration for VPN over UDP on Port 1194&lt;/h3&gt;

&lt;p&gt;Edit &lt;strong&gt;server.conf&lt;/strong&gt;. I use &lt;strong&gt;nano&lt;/strong&gt; to edit by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nano server.conf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Comment out the line which reads &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;push &quot;redirect-gateway def1&quot;&lt;/code&gt; so it reads as follows:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; # push &quot;redirect-gateway def1&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The longer the keep-alive interval the longer it will take either end of the openvpn connection to detect whether the connection is no longer alive. Because mobile devices often lose connectivity and regain it, lower values are desirable.&lt;/p&gt;

&lt;p&gt;Comment out &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;keepalive 1800 3600&lt;/code&gt; and add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;keepalive 10 60&lt;/code&gt; below it, so it appears as follows:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; # keepalive 1800 3600
 keepalive 10 60
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Comment out the line which reads &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cipher AES-256-CBC&lt;/code&gt; and add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cipher AES-128-GCM&lt;/code&gt; below it, so it reads as follows:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; # cipher AES-256-CBC
 cipher AES-128-GCM
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;At the bottom of the file add the following lines:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; # performance stuff
 fast-io
 compress lz4-v2
 push &quot;compress lz4-v2&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;O&lt;/code&gt; to bring up the save prompt at the bottom of Nano, press &lt;strong&gt;Enter&lt;/strong&gt; to save. Then press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;X&lt;/code&gt; to exit&lt;/p&gt;

&lt;h3 id=&quot;server-configuration-for-vpn-over-tcp-on-port-443&quot;&gt;Server Configuration for VPN over TCP on Port 443&lt;/h3&gt;

&lt;p&gt;Ensure you have elevated root privileges by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo su
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Get into the openvpn directory by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cd /etc/openvpn
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To accept incoming OpenVPN connections over TCP on port 443 we need a separate configuration file. We can clone our existing configuration as a starting point, by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cp server.conf server_tcp443.conf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Edit &lt;strong&gt;/etc/iptables/rules.v4&lt;/strong&gt;. I use &lt;strong&gt;nano&lt;/strong&gt; to edit by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nano /etc/iptables/rules.v4
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Below the line which reads &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE&lt;/code&gt;, add the following on a new line:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;O&lt;/code&gt; to bring up the save prompt at the bottom of Nano, press &lt;strong&gt;Enter&lt;/strong&gt; to save. Then press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;X&lt;/code&gt; to exit&lt;/p&gt;

&lt;p&gt;Edit &lt;strong&gt;server_tcp443.conf&lt;/strong&gt;. I use &lt;strong&gt;nano&lt;/strong&gt; to edit by running this command in the bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nano server_tcp443.conf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Replace the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;proto udp&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;port 1194&lt;/code&gt; lines with:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; proto tcp
 port 443
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Edit the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;server 10.8.0.0 255.255.255.0&lt;/code&gt; line to reflect an IP address of &lt;strong&gt;10.9.0.0&lt;/strong&gt;, so it reads as follows:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; server 10.9.0.0 255.255.255.0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Edit the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;push &quot;dhcp-option DNS 10.8.0.1&quot;&lt;/code&gt; line to reflect an IP address of &lt;strong&gt;10.9.0.1&lt;/strong&gt;, so it reads as follows:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; push &quot;dhcp-option DNS 10.9.0.1&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Comment out &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;keepalive 10 60&lt;/code&gt; and add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;keepalive 10 120&lt;/code&gt; below it, so it appears as follows:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; # keepalive 10 60
 keepalive 10 120
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Comment out &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fast-io&lt;/code&gt; so it looks like this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; # fast-io
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;O&lt;/code&gt; to bring up the save prompt at the bottom of Nano, press &lt;strong&gt;Enter&lt;/strong&gt; to save. Then press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;X&lt;/code&gt; to exit&lt;/p&gt;

&lt;p&gt;Add the OpenVPN service on Port 443 by running this command in your bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;systemctl enable openvpn@server_tcp443.service
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;finalize-vpn-confgurations-on-server&quot;&gt;Finalize VPN Confgurations on Server&lt;/h3&gt;

&lt;p&gt;Reboot the server by running this command in your bash shell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;shutdown -r now
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/pivpn.png&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;managing-the-pivpn&quot;&gt;Managing the PiVPN&lt;/h1&gt;

&lt;p&gt;Connect to the Pi-Hole server and set up an OpenVPN Client Profile. (You do not need to have elevated root privileges to do this.)&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pivpn add nopass
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Give your client profile a name. I like to use an alphanumeric string composed of the user’s first name, and their device’s make and model (no spaces and no special characters).&lt;/p&gt;

&lt;blockquote class=&quot;note&quot;&gt;
  &lt;p&gt;Make a new client profile for every device. DO NOT share a client profile between two different devices.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This command will output a success message which looks like this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;   ========================================================
   Done! mypixel3xl.ovpn successfully created!
   mypixel3xl.ovpn was copied to:
     /home/myusername/ovpns
   for easy transfer. Please use this profile only on one
   device and create additional profiles for other devices.
   ========================================================
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To get the &lt;strong&gt;mypixel3xl.ovpn&lt;/strong&gt; file to your phone it is easiest to maximize your SSH window and print the file to the terminal window, to copy &amp;amp; paste the output:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cat ~/ovpns/mypixel3xl.ovpn
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-&lt;/code&gt; until the screen zooms out to a point where you can see the entire ovpn file printed on the screen. The first line will have the word &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;client&lt;/code&gt; and the last line is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;/tls-crypt&amp;gt;&lt;/code&gt;. Highlighting this entire chunk with a mouse will cause a scissor icon to appear in the middle of your SSH window, this means this selection has been copied to your clipboard.&lt;/p&gt;

&lt;h2 id=&quot;saving-a-split-tunnel-vpn-client-profile-for-udp-vpn-connections-on-port-1194&quot;&gt;Saving a Split Tunnel VPN Client Profile for UDP VPN Connections on Port 1194&lt;/h2&gt;

&lt;p&gt;Paste this into your favorite Text Editor and save the file with a name that is clear: &lt;strong&gt;mypixel3xl-udp-1194-split-tunnel.ovpn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Around Line 12, edit the line which reads &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cipher AES-256-CBC&lt;/code&gt; and change it to read:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; cipher AES-128-GCM
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;saving-a-full-tunnel-vpn-client-profile-for-udp-vpn-connections-on-port-1194&quot;&gt;Saving a Full Tunnel VPN Client Profile for UDP VPN Connections on Port 1194&lt;/h2&gt;

&lt;p&gt;Copy the contents of &lt;strong&gt;mypixel3xl-udp-1194-split-tunnel.ovpn&lt;/strong&gt; and paste it into your favorite Text Editor, save the file with a name that is clear: &lt;strong&gt;mypixel3xl-udp-1194-full-tunnel.ovpn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Below &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cipher AES-128-GCM&lt;/code&gt; add this line:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; redirect-gateway def1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;saving-a-split-tunnel-vpn-client-profile-for-tcp-vpn-connections-on-port-443&quot;&gt;Saving a Split Tunnel VPN Client Profile for TCP VPN Connections on Port 443&lt;/h2&gt;

&lt;p&gt;Copy the contents of &lt;strong&gt;mypixel3xl-udp-1194-split-tunnel.ovpn&lt;/strong&gt; and paste it into your favorite Text Editor, save the file with a name that is clear: &lt;strong&gt;mypixel3xl-tcp-443-split-tunnel.ovpn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Change &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;proto udp&lt;/code&gt; on Line 3 to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;proto tcp&lt;/code&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; proto tcp
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Change the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1194&lt;/code&gt; at the end of Line 4 to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;443&lt;/code&gt;, do not change the IP address on this line (it is your Google Compute Engine Virtual Machine’s external IP address):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; remote YOUR-EXTERNAL-IP-IS-HERE-LEAVE-THIS-AS-IT-IS 443
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;saving-a-full-tunnel-vpn-client-profile-for-tcp-vpn-connections-on-port-443&quot;&gt;Saving a Full Tunnel VPN Client Profile for TCP VPN Connections on Port 443&lt;/h2&gt;

&lt;p&gt;Copy the contents of &lt;strong&gt;mypixel3xl-tcp-443-split-tunnel.ovpn&lt;/strong&gt; and paste it into your favorite Text Editor, save the file with a name that is clear: &lt;strong&gt;mypixel3xl-tcp-443-full-tunnel.ovpn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Below &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cipher AES-128-GCM&lt;/code&gt; add this line:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; redirect-gateway def1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;make-these-ovpn-files-available-on-your-phone-or-tablet&quot;&gt;Make these .ovpn files available on your phone or tablet&lt;/h2&gt;

&lt;p&gt;E-mail these files to yourself, upload in Google Drive, or use whatever secure method you prefer to transfer this file to your device. It is safe to download this file to your device.&lt;/p&gt;

&lt;p&gt;## WARNING&lt;br /&gt;
 Anyone that gets one of these &lt;strong&gt;.ovpn&lt;/strong&gt; files can connect to your server.&lt;/p&gt;

&lt;h2 id=&quot;full--split-tunnel-vpn-on-android--ios-devices&quot;&gt;Full &amp;amp; Split Tunnel VPN on Android &amp;amp; iOS Devices&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/openvpnforandroid.svg&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;openvpn-for-android-on-android-for-split-tunnel-vpn&quot;&gt;“OpenVPN for Android” on Android for Split Tunnel VPN&lt;/h3&gt;

&lt;p&gt;This is open source software.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=de.blinkt.openvpn&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/assets/images/google-play.svg&quot; alt=&quot;Get it on Google Play&quot; height=&quot;60&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://f-droid.org/repository/browse/?fdid=de.blinkt.openvpn&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/assets/images/f-droid.svg&quot; alt=&quot;Get it on F-Droid&quot; height=&quot;80&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install the “OpenVPN for Android” application on your Android device.&lt;/p&gt;

&lt;p&gt;When the “OpenVPN for Android” opens you are in the &lt;strong&gt;Profiles&lt;/strong&gt; Tab. You will have to perform the following steps for &lt;strong&gt;mypixel3xl-udp-1194-split-tunnel.ovpn&lt;/strong&gt;, and again for &lt;strong&gt;mypixel3xl-tcp-443-split-tunnel.ovpn&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Import your Profile, click the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;+&lt;/code&gt; at the top right. &lt;br /&gt;&lt;img src=&quot;/assets/images/import-plus.png&quot; width=&quot;360&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Then click &lt;strong&gt;Import&lt;/strong&gt; at the bottom left of the modal that appears.&lt;/li&gt;
  &lt;li&gt;Click the Hamburger Menu at the top left to choose &lt;strong&gt;Google Drive&lt;/strong&gt;, or your &lt;strong&gt;Downloads&lt;/strong&gt; folder, depending on what method you used to get the &lt;strong&gt;.ovpn&lt;/strong&gt; file to your phone.&lt;/li&gt;
  &lt;li&gt;Click the pencil icon next to the VPN profile you imported. &lt;br /&gt;&lt;img src=&quot;/assets/images/pencil.png&quot; width=&quot;360&quot; /&gt;
    &lt;ul&gt;
      &lt;li&gt;Click the &lt;strong&gt;Server List&lt;/strong&gt; Tab.
        &lt;ul&gt;
          &lt;li&gt;&lt;strong&gt;Connect Timeout&lt;/strong&gt; should be &lt;strong&gt;60&lt;/strong&gt; for UDP VPN Profiles and &lt;strong&gt;120&lt;/strong&gt; for TCP VPN Profiles.&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Click the &lt;strong&gt;IP AND DNS&lt;/strong&gt; Tab.
        &lt;ul&gt;
          &lt;li&gt;&lt;strong&gt;No local binding&lt;/strong&gt; should be enabled&lt;/li&gt;
          &lt;li&gt;&lt;strong&gt;Override DNS Settings by Server&lt;/strong&gt; should be enabled
            &lt;ul&gt;
              &lt;li&gt;&lt;strong&gt;searchDomain&lt;/strong&gt; should be empty&lt;/li&gt;
              &lt;li&gt;&lt;strong&gt;DNS Server&lt;/strong&gt; should be &lt;strong&gt;10.8.0.1&lt;/strong&gt;&lt;/li&gt;
              &lt;li&gt;&lt;strong&gt;Backup DNS Server&lt;/strong&gt; should be empty&lt;/li&gt;
            &lt;/ul&gt;
          &lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Click the &lt;strong&gt;Routing&lt;/strong&gt; Tab.
        &lt;ul&gt;
          &lt;li&gt;&lt;strong&gt;Bypass VPN for local networks&lt;/strong&gt; should be enabled.&lt;/li&gt;
          &lt;li&gt;&lt;strong&gt;Block IPv6 (or IPv4) if not used by the VPN&lt;/strong&gt; should be enabled.&lt;/li&gt;
          &lt;li&gt;Click &lt;strong&gt;Excluded Networks&lt;/strong&gt; under IPv4 and add this:
            &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;10.0.0.8/8 172.16.0.0/12 192.168.0.0/16
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;            &lt;/div&gt;
          &lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Under the &lt;strong&gt;Authentication/Encryption&lt;/strong&gt; Tab
        &lt;ul&gt;
          &lt;li&gt;The &lt;strong&gt;Encryption Cipher&lt;/strong&gt; should be &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AES-128-GCM&lt;/code&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Under the &lt;strong&gt;Allowed Apps&lt;/strong&gt; Tab
        &lt;ul&gt;
          &lt;li&gt;The first Toggle should be disabled, and will read &lt;strong&gt;VPN is used for only for selected apps&lt;/strong&gt;.&lt;/li&gt;
          &lt;li&gt;the &lt;strong&gt;Android System WebView&lt;/strong&gt;, your preferred web browser, and any other apps you wish to block ads in, should have a checkmark.&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Click the back button a couple times until you are at the &lt;strong&gt;Profiles&lt;/strong&gt; Tab again.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Click the &lt;strong&gt;Settings&lt;/strong&gt; Tab:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;OpenVPN 3 Core&lt;/strong&gt; should have a checkmark&lt;/li&gt;
  &lt;li&gt;click &lt;strong&gt;Default VPN&lt;/strong&gt; and choose the VPN you have imported&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Connect on Boot&lt;/strong&gt; should have a checkmark&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Pause VPN connection after screen off&lt;/strong&gt; should be enabled if you wish to save your battery and reduce data usage, and only want to block things while you’re actively using your phone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Click the back button a couple times until you are at the &lt;strong&gt;Profiles&lt;/strong&gt; Tab again.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Clicking the name of the VPN profile you imported should trigger a connection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/openvpn.svg&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;openvpn-connect-on-android-for-full-tunnel-vpn&quot;&gt;“OpenVPN Connect” on Android for Full Tunnel VPN&lt;/h3&gt;

&lt;p&gt;This is open source software.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=net.openvpn.openvpn&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/assets/images/google-play.svg&quot; alt=&quot;Get it on Google Play&quot; height=&quot;60&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install the “OpenVPN Connect” application on your Android device.&lt;/p&gt;

&lt;p&gt;Download the &lt;strong&gt;mypixel3xl-udp-1194-full-tunnel.ovpn&lt;/strong&gt; and &lt;strong&gt;mypixel3xl-tcp-443-full-tunnel.ovpn&lt;/strong&gt; files from your E-mail or your Google Drive to your Android Phone or Tablet. These files will be saved to your device’s “Download” folder by default.&lt;/p&gt;

&lt;p&gt;When the “OpenVPN Connect” application opens up, in its home screen you will see 3 options, &lt;strong&gt;Private Tunnel&lt;/strong&gt;, &lt;strong&gt;Access Server&lt;/strong&gt;, and &lt;strong&gt;OVPN Profile&lt;/strong&gt;. Click on &lt;strong&gt;OVPN Profile&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Import and Add an &lt;strong&gt;.ovpn&lt;/strong&gt; client profile by tapping your &lt;strong&gt;.ovpn&lt;/strong&gt; filename, and then tapping &lt;strong&gt;Import&lt;/strong&gt; on the top right, and then tapping &lt;strong&gt;Add&lt;/strong&gt;. If you have already imported a client profile already, you can import more client profiles by pressing the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;+&lt;/code&gt; button at the bottom right.&lt;/p&gt;

&lt;p&gt;Click the Hamburger Menu at the top left and click &lt;strong&gt;Settings&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Under &lt;strong&gt;IPv6&lt;/strong&gt;, the &lt;strong&gt;IPv4 Only Tunnel&lt;/strong&gt; button should be selected. (The default selection is &lt;strong&gt;No Preference&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;Under &lt;strong&gt;Connection Timeout&lt;/strong&gt;, the &lt;strong&gt;Continuously Retry&lt;/strong&gt; option should be selected. (The default selection is &lt;strong&gt;1 Min&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;Under &lt;strong&gt;Compression&lt;/strong&gt;, the &lt;strong&gt;Downlink Only&lt;/strong&gt; button should be selected. (The default selection is &lt;strong&gt;Full&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;Under &lt;strong&gt;DNS Fallback&lt;/strong&gt; the checkbox should be deselected/empty. (By default the checkbox is ticked)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Click &lt;strong&gt;Save&lt;/strong&gt; at the top right.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/openvpn.svg&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;openvpn-connect-on-ios-for-full--split-tunnel-vpn&quot;&gt;“OpenVPN Connect” on iOS for Full &amp;amp; Split Tunnel VPN&lt;/h3&gt;

&lt;p&gt;This is open source software.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://itunes.apple.com/us/app/openvpn-connect/id590379981?mt=8&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/assets/images/app-store.svg&quot; alt=&quot;Get it on the App Store&quot; height=&quot;60&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install the “OpenVPN Connect” application on your iOS device.&lt;/p&gt;

&lt;p&gt;Import and Add all of your &lt;strong&gt;.ovpn&lt;/strong&gt; files using one of the following two methods:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Using iTunes Sync, select your device, go to OpenVPN under the &lt;strong&gt;apps&lt;/strong&gt; tab, and drop your &lt;strong&gt;.ovpn&lt;/strong&gt; files into the file sharing window.&lt;/li&gt;
  &lt;li&gt;Using Google Drive or your e-mail you can open the &lt;strong&gt;.ovpn&lt;/strong&gt; files with OpenVPN.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Click the Hamburger Menu at the top left and click &lt;strong&gt;Settings&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Under &lt;strong&gt;Connection Timeout&lt;/strong&gt;, the &lt;strong&gt;Continuously Retry&lt;/strong&gt; option should be selected. (The default selection is &lt;strong&gt;30 Sec&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;Under &lt;strong&gt;Compression&lt;/strong&gt;, the &lt;strong&gt;Downlink Only&lt;/strong&gt; button should be selected. (The default selection is &lt;strong&gt;No&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;Under &lt;strong&gt;DNS Fallback&lt;/strong&gt; the checkbox should be deselected/empty. (By default the checkbox is ticked)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;full--split-tunnel-vpn-on-computers&quot;&gt;Full &amp;amp; Split Tunnel VPN on Computers&lt;/h2&gt;

&lt;blockquote class=&quot;note&quot;&gt;
  &lt;p&gt;Due to the amount of bandwidth a computer could use, it is recommended to use the Split Tunnel &lt;strong&gt;.ovpn&lt;/strong&gt; profiles on computers, and not Full Tunnel.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/viscosity.png&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;viscosity-vpn-on-macos-or-windows&quot;&gt;“Viscosity VPN” on macOS or Windows&lt;/h3&gt;

&lt;p&gt;This is commercial software.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sparklabs.com/support/kb/article/getting-started-with-viscosity-mac/&quot;&gt;Getting Started with Viscosity on macOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sparklabs.com/support/kb/article/getting-started-with-viscosity-windows/&quot;&gt;Getting Started with Viscosity on Windows&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Import the Split Tunnel &lt;strong&gt;.ovpn&lt;/strong&gt; files once Viscosity VPN is installed and running.&lt;/p&gt;

&lt;p&gt;To enable Split Tunnel VPN with Viscosity on Windows, once you import the connection to Viscosity, &lt;strong&gt;Edit Connection&lt;/strong&gt; and click the &lt;strong&gt;Networking&lt;/strong&gt; Tab. Under the &lt;strong&gt;DNS&lt;/strong&gt; &lt;em&gt;Mode&lt;/em&gt; dropdown, choose &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Full DNS (Use VPN DNS for all traffic)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/openvpn.svg&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;openvpn-gui-on-windows&quot;&gt;“OpenVPN GUI” on Windows&lt;/h3&gt;

&lt;p&gt;This is open source software.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://openvpn.net/community-downloads/&quot;&gt;Download the OpenVPN Windows Installer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://openvpn.net/vpn-server-resources/installation-guide-for-openvpn-connect-client-on-windows/&quot;&gt;Getting Started with OpenVPN GUI on Windows&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Import the Split Tunnel &lt;strong&gt;.ovpn&lt;/strong&gt; files once the OpenVPN GUI is installed and running.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/tunnelblick.png&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;tunnelblick-on-macos&quot;&gt;“Tunnelblick” on macOS&lt;/h3&gt;

&lt;p&gt;This is open source software.&lt;/p&gt;

&lt;p&gt;You can install Tunnelblick with &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt;:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;brew cask install tunnelblick
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If you don’t have Homebrew, you can get &lt;a href=&quot;https://tunnelblick.net/cInstall.html&quot;&gt;alternate installation instructions&lt;/a&gt; on the Tunnelblick website.&lt;/p&gt;

&lt;p&gt;Import the Split Tunnel &lt;strong&gt;.ovpn&lt;/strong&gt; files once Tunnelblick is installed and running.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/gnome.png&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;gnome-manager-on-ubuntu-and-its-variants&quot;&gt;“gnome-manager” on Ubuntu (and its variants)&lt;/h3&gt;

&lt;p&gt;This open source software is baked into Ubuntu’s OS&lt;/p&gt;

&lt;p&gt;Enable the option which reads &lt;strong&gt;Use this connection only for resources on its network&lt;/strong&gt; in the &lt;strong&gt;IPv4&lt;/strong&gt; Tab&lt;/p&gt;

&lt;h2 id=&quot;split-tunnel-vpn-on-routers-with-asuswrt--asuswrt-merlin-firmware&quot;&gt;Split Tunnel VPN on Routers with AsusWRT &amp;amp; AsusWRT-Merlin Firmware&lt;/h2&gt;

&lt;h3 id=&quot;activate-the-openvpn-client-profile&quot;&gt;Activate the OpenVPN Client Profile&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Go to http://&amp;lt;AsusWRT Router IP&amp;gt;/Advanced_OpenVPNClient_Content.asp&lt;/li&gt;
  &lt;li&gt;Select an unused client instance (usually Client 1).&lt;/li&gt;
  &lt;li&gt;Beside &lt;strong&gt;Import .ovpn File&lt;/strong&gt;, click Browse&lt;/li&gt;
  &lt;li&gt;Browse to your OpenVPN Client Profile (e.g. asuswrt-udp-1194-split-tunnel.ovpn)&lt;/li&gt;
  &lt;li&gt;Click &lt;strong&gt;Upload&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Set &lt;strong&gt;Accept DNS Configuration&lt;/strong&gt; to STRICT&lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Service State&lt;/strong&gt; toggle to activate the client&lt;/li&gt;
  &lt;li&gt;Scroll to the bottom and click &lt;strong&gt;Apply&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;set-pi-hole-as-the-dns-provider&quot;&gt;Set Pi-Hole as the DNS provider&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Go to http://&lt;AsusWRT Router=&quot;&quot; IP=&quot;&quot;&gt;/Advanced_WAN_Content.asp&lt;/AsusWRT&gt;&lt;/li&gt;
  &lt;li&gt;Under &lt;strong&gt;WAN DNS Setting&lt;/strong&gt;, set &lt;strong&gt;Connect to DNS Server automatically&lt;/strong&gt; to NO.&lt;/li&gt;
  &lt;li&gt;Set &lt;strong&gt;DNS Server1&lt;/strong&gt; to 10.8.0.1&lt;/li&gt;
  &lt;li&gt;Scroll to the bottom and click &lt;strong&gt;Apply&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/asuswrt-wan-settings.png&quot; width=&quot;378&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;use-asuswrt-firewall-to-force-all-dns-traffic-to-pi-hole&quot;&gt;Use AsusWRT Firewall to force all DNS traffic to Pi-Hole&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Go to http://&amp;lt;AsusWRT Router IP&amp;gt;/Advanced_Firewall_Content.asp&lt;/li&gt;
  &lt;li&gt;Set &lt;strong&gt;Enable Network Services Filter&lt;/strong&gt; to YES&lt;/li&gt;
  &lt;li&gt;Add the following rules to the &lt;strong&gt;Network Services Filter Table&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;Port Range = 53, Protocol = UDP&lt;/li&gt;
      &lt;li&gt;Port Range = 53, Protocol = TCP&lt;/li&gt;
      &lt;li&gt;Destination IP = 10.8.0.1, Port Range = 53, Protocol = UDP&lt;/li&gt;
      &lt;li&gt;Destination IP = 10.8.0.1, Port Range = 53, Protocol = TCP&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Scroll to the bottom and click &lt;strong&gt;Apply&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/asuswrt-network-services-filter.png&quot; width=&quot;378&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;verify-everything-works&quot;&gt;Verify Everything Works&lt;/h2&gt;

&lt;p&gt;Well done for making it this far. Now you need to carry out some basic testing to make sure all is well&lt;/p&gt;

&lt;h3 id=&quot;test-your-full-tunnel-vpn&quot;&gt;Test your Full Tunnel VPN&lt;/h3&gt;

&lt;p&gt;Go here: https://duckduckgo.com/?q=my+ip&lt;/p&gt;

&lt;p&gt;You will see your IP address displayed very prominently just below the search barwith the label: &lt;strong&gt;Your public IP address&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you see anything other than the External IP Address of your Google Compute Engine Virtual Machine, then you do not have a Full Tunnel VPN.&lt;/p&gt;

&lt;p&gt;If you see an IPv6 address while connected to the VPN, then you have a big problem because with Goolge Cloud Virtual Machines you do not get IPv6 just yet.&lt;/p&gt;

&lt;p&gt;Example of an IPv6 address: &lt;br /&gt;&lt;br /&gt;
&lt;img src=&quot;/assets/images/your-public-ip.png&quot; width=&quot;235&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can do some further troubleshooting by visiting: https://www.whatismyip.com&lt;/p&gt;

&lt;p&gt;If you see no IPv4 address, and a public IPv6 address identical to the one from the Google search result earlier, it means your tunnel is not processing any IPv4 traffic, and you are going out to the Internet over IPv6 directly.&lt;/p&gt;

&lt;p&gt;This typically means you have a problem with your server configuration and client configuration files.&lt;/p&gt;

&lt;h3 id=&quot;test-for-a-dns-leak&quot;&gt;Test for a DNS Leak&lt;/h3&gt;

&lt;p&gt;If DNS lookups are not happening exclusively over the VPN connection to the Pi-Hole server, then you have a DNS leak. A DNS leak will result in ads appearing.&lt;/p&gt;

&lt;p&gt;In the Pi-Hole Web Interface at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://your-external-ip/admin/settings.php?tab=dns&lt;/code&gt; choose just one DNS provider. The two Google IPv4 DNS servers will give you the highest performance. For our test, we will deselect the Google IPv4 DNS servers and choose the 2 Cloudflare DNS servers.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/test-dns.png&quot; width=&quot;378&quot; /&gt;&lt;/p&gt;

&lt;p&gt;On your device, go to https://www.dnsleaktest.com/ and click the &lt;strong&gt;Extended test&lt;/strong&gt; button. On the table in the next page, every single row must say “Cloudflare”. If you see any IPs that do not belong to Cloudflare, you have a DNS leak. This typically means you have a problem with your server configuration and client configuration files.&lt;/p&gt;

&lt;p&gt;Turn your VPN off and try the &lt;strong&gt;Extended test&lt;/strong&gt; again, you will see your default DNS servers as defined by your Internet provider or your Router.&lt;/p&gt;

&lt;p&gt;Once you are done testing, only use the Google IPv4 Upstream DNS Servers if you want the fastest DNS resolvers for your Pi-Hole. You can use any of the other Upstream DNS servers if speed is not your number one requirement.&lt;/p&gt;

&lt;h3 id=&quot;test-the-ad-blocking&quot;&gt;Test the Ad-blocking&lt;/h3&gt;

&lt;p&gt;A quick test page to verify if your ad blocking is working: https://blockads.fivefilters.org/?pihole&lt;/p&gt;

&lt;p&gt;The Pi-Hole project also maintains a list of excellent advertising-littered pages that you can test:&lt;br /&gt;
https://pi-hole.net/pages-to-test-ad-blocking-performance/&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/firewall.svg&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;firewall&quot;&gt;Firewall&lt;/h1&gt;

&lt;p&gt;You may not be comfortable leaving the Pi-Hole web interface accessible on a Public IP&lt;/p&gt;

&lt;p&gt;If you do not wish for the Pi-Hole web interface to be accessible publicly, disable Port 80 in your Google Cloud Firewall.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Log into Google Cloud Console: https://console.cloud.google.com/&lt;/li&gt;
  &lt;li&gt;Ensure your Project is selected in the blue bar at the top (next to the words “Google Cloud Console); by default it should be&lt;/li&gt;
  &lt;li&gt;Click the Hamburger Menu at the top left, click &lt;strong&gt;VPC Network&lt;/strong&gt; and click &lt;strong&gt;Firewall Rules&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Click &lt;strong&gt;default-allow-http&lt;/strong&gt; in the table&lt;/li&gt;
  &lt;li&gt;Click &lt;strong&gt;Edit&lt;/strong&gt; at the top of the page&lt;/li&gt;
  &lt;li&gt;Click &lt;strong&gt;Disable Rule&lt;/strong&gt; above the “Save” button to reveal a radio button group&lt;/li&gt;
  &lt;li&gt;Select &lt;strong&gt;Disabled&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Save&lt;/strong&gt; button&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To access your Pi-Hole web interface once you do this, you will have to connect via VPN, and then go to http://10.8.0.1 if you are using a UDP profile (desirable), or http://10.9.0.1 if you are using the TCP profile (less desirable).&lt;/p&gt;

&lt;p&gt;Other Firewall rules you can safely disable:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;default-allow-rdp&lt;/strong&gt; is not necessary, because your Pi-Hole is not running on a Windows server and there is no service running on Port 3389&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Firewall rules that are inconvenient to disable:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;default-allow-ssh&lt;/strong&gt; should really only be open to Google’s private network, alas they leave it open to the whole world by default. Nobody can successfully brute force their way into your server on Port 22, because it’s not secured with passwords. It is secured with keys. If you disable this rule, you will not be able to use the browser based SSH interface in the Google Cloud Console until you re-enable this rule.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In an upcoming article I intend to intorduce another firewall into the mix here for other reasons which will prove to be not only controversial but very cool.&lt;/p&gt;

&lt;h1 id=&quot;configure-automated-pi-hole-updates-and-scheduled-reboots&quot;&gt;Configure automated Pi-Hole updates and scheduled reboots&lt;/h1&gt;

&lt;p&gt;PiVpn enables automated security updates of your Pi-Hole, but it won’t restart the VM if the update requires it.  Restarting the VM would require SSH’ing into it and restarting it if required.  To remove that step, let’s use a daily cron job to check to see if a restart is required and restart the VM as necessary.&lt;/p&gt;

&lt;p&gt;To do that, let’s add a new file to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/cron.daily/&lt;/code&gt; called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;zz-restart-if-required&lt;/code&gt; using the following command &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo nano /etc/cron.daily/zz-restart-if-required&lt;/code&gt;.  In nano, add the following lines of code which check to see if the reboot-required token file is present, restarting the VM if so:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#!/bin/sh
if [ -f /var/run/reboot-required ]; then
  /sbin/shutdown -r now
fi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Files stored in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/cron.daily/&lt;/code&gt; will only run if the permissions are configured to allow that, so we need to change the permissions to allow that file to run.  To do that, execute &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo chmod 755 /etc/cron.daily/zz-restart-if-required&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Similarly, Pi-Hole gets updated from time to time.  Let’s automate installing those updates as well.  To do that, let’s create a file using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo nano /etc/cron.daily/update-pi-hole&lt;/code&gt; and add in this one line of code &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pihole -up&lt;/code&gt;.  We need to change its permissions so it is executible &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo chmod 755 /etc/cron.daily/update-pi-hole&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you’re curious when they will run, &lt;a href=&quot;https://serverfault.com/questions/135906/when-does-cron-daily-run&quot;&gt;Stack Exchange has a great Q&amp;amp;A for you&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/cloudconsole.svg&quot; width=&quot;48&quot; align=&quot;left&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;cloud-console-mobile-app&quot;&gt;Cloud Console Mobile App&lt;/h1&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.google.android.apps.cloudconsole&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/assets/images/google-play.svg&quot; alt=&quot;Get it on Google Play&quot; height=&quot;60&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://itunes.apple.com/us/app/google-cloud-console/id1005120814?mt=8#iTunes&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/assets/images/app-store.svg&quot; alt=&quot;Get it on the App Store&quot; height=&quot;60&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install the “Cloud Console” app on your Android or iOS device.&lt;/p&gt;

&lt;p&gt;Manage and monitor Google Cloud Platform services from your Android or iOS device.&lt;/p&gt;

&lt;p&gt;Please thank the author and provide feedback in &lt;a href=&quot;https://github.com/rajannpatel/Pi-Hole-PiVPN-on-Google-Compute-Engine-Free-Tier-with-Full-Tunnel-and-Split-Tunnel-OpenVPN-Configs/issues&quot;&gt;Issues&lt;/a&gt; Please also use if you are in a position to help others, or participate in improving this project.&lt;/p&gt;

</description>
				<pubDate>Wed, 31 Jul 2019 00:00:00 +0000</pubDate>
				<link>/2019/07/Pi-hole-with-extras/</link>
				<guid isPermaLink="true">/2019/07/Pi-hole-with-extras/</guid>
			</item>
		
			<item>
				<title>Hosting Changed ...again!</title>
				<description>&lt;p&gt;Well on the 4th July I noticed the following in my inbox:&lt;/p&gt;

&lt;p&gt;Dear Thomas Rand,&lt;/p&gt;

&lt;p&gt;Due to changes in license fees by cPanel, which will charge a fee for each user and not more per server, all free hosting will be terminated in 30 days.&lt;/p&gt;

&lt;p&gt;If you wish to continue with your hosting, you will need to upgrade to a paid plan before 08/may/2019, when free hosting will be terminated, with files and data permanently deleted from our servers.&lt;/p&gt;

&lt;p&gt;We apologize for any inconvenience and thank you for the time you enjoy our free hosting services.&lt;/p&gt;

&lt;p&gt;Best Regards,&lt;/p&gt;

&lt;p&gt;https://freehosting.host/&lt;/p&gt;

&lt;p&gt;So I then decided to embark on a trip into markdown, ruby and Jekyll via the wonderful place that is Github. &lt;br /&gt;
And here we are!&lt;/p&gt;

&lt;p&gt;I hope you like the new home for this humble site of mine.&lt;br /&gt;
New features to come and some old ones may change but on the whole I’m liking this new site and the static nature of it lol&lt;/p&gt;

</description>
				<pubDate>Tue, 30 Jul 2019 11:07:00 +0000</pubDate>
				<link>/2019/07/Hosting-Changed-again/</link>
				<guid isPermaLink="true">/2019/07/Hosting-Changed-again/</guid>
			</item>
		
	</channel>
</rss>
