Thaddeus’s Personal Site

This is a slice of the internet that I use to brain dump and document things that I am working. Anything here is something likely something I typed out because I didn’t want to forget. Hopefully it helps someone, if not thats cool too. If you have any suggestions of things for me to check out, make sure to hit the about page and shoot me an email. I’d love to chat. All source code for this site is available at: https://github.com/adminprivileges/thaddeuskoenig.com

Read my lastest posts here:

09JAN25 - Diffie Helman

Today I was looking into some stuff for SSH and I wanted to know more about the maths behind how diffie helman works and since its just always something I took for granted so today I learned. Below is a simple graphic that I made that illustrates the process of the key exchange.
Diffie Helman Key Exchange

So what does this mean? Well asymetric cryptography is built upon the idea of creating a shared secret independently without passing it over the public internet. Diffie-Helman arised as a method of doing so. So how does this work you ask? Our first subject Alice comes up with a random number, for illustration purposes this number is small, but his is usually a very large number. Bob indenpendently does the same, both of these numbers are unique and never shared and will be regfered to as a private key. What is shared are two other numbers g and n, these numbers can be whatever as long as g is small and prime and n is very large. These numbers will be used in a mathematcal function to create something they can share, a piblic key. This public key can easily be derived if you have the private key, but the math doesnt work that well the other way around, this is due to the modulus operation. Modulus is simply the remander left over after a number is divided into another one evenly as many times as possibly. It is improbable for me to know how many times the number fit into the other one cleanly with just the remainder without simply guessing every possibility. If our private keys and n operator are large enough, this will again be very impractical. The colors here are to represent that our numbers as they are combined. While I know that yellow is in the public domain and alice’s public key is orange, i dont know the exact shade of red or quantity that she used to make this orange which would make it very difficult to replicate without trial and error.

Read more >

02JAN25 - NixOS

So I didn’t do anything today so I’m going to take today to write about NixOS. I started using NixOS recently because I would like to incorporate declarative and immutable operating systems into my research. I was introduced to NixOS via one of my favorite podcasts Linux Unplugged. I wasn’t initially sold on it because it sounded like a fad, but so far its pretty cool. This is how I understand it.

Read more >

01JAN25 - Hugo Site Plans

Hello, this is the beginning of my (somewhat) daily blog. The intention of this blog is less of an exercise in writing about my life and more of a exercise in making a habit of documentation. I plan to write daily about lessons I learned about computers that day and I’m sure there will be a non-computer related blog or two. When I implement tagging and search, I will make sure that things are tagged appropriately. Now let’s get into the first blog post:

Read more >

How to Set Up Apache Guacamole

Do you ever find yourself wanting to access machines, but due to the permissions of he computer you’re currently on or network restrictions you’re unable to do so? Or maybe you have users that you would like to have access to remote machines, but you don’t want to have to worry about what remote administration tools they have on their devices. Guacamole is cool because it allows a user to access Windows and Linux machines through a variety of different protocols such as SSH, RDP, or VNC through a web browser as all of the tools are separated from the client machine and resident on the server side meaning administration can be done on any computing device capable of web browsing to prove it, once we have this set up i will access a remote machine via my PlayStation 4. I’m a huge fan of web apps and this is one of my favorites so today I’m gonna show you how to set it up.

Read more >

Nebula VPN Setup

Most people see VPN and they think of the commercial, hide myself within another million people’s traffic, product such as Nord or PIA. But this article is simply an interesting take on the technology used to bridge the physical gap between work-spaces that many professionals both technical and not became intimately familiar with over the recent 2021 pandemic.

What is Nebula and how is it different?

In a traditional sense a VPN functions as a router that bridges different LANs over an encrypted tunnel, and the traffic passed between LANs travels much like traditional traffic would when passed between LANs, in a star-like topology where all traffic destined for a peer must first pass through a switching/routing device, but what if that wasn’t the case? What if you could simply cut out the middle man and pass traffic directly between networked nodes in a VPN network? That’s exactly what Nebula brings to the table.

Read more >

The Perfect Pihole

Everyone hates advertisements and thanks to the raspberry pi and the Pi-hole project, keeping them out of your life has become easier and easier. By setting up a local Domain Name Service(DNS) server you can block the connection to add servers before they’re even initiated. Pi-hole also presents the user with a beautiful user interface and is easily configured for even the newest of IT enthusiasts (I’m serious, its like… one command.)

Read more >

Automating pfSense Key Export

So having keys via LetsEncrypt is pretty cool given the fact that they’re free, but unlike other certs these are only good for about 90 days, and while manually moving keys over a couple times a year is not the most annoying thing in the world, I’m pretty lazy so i like to automate trivial tasks as much as possible. I’m doing this with the assumption that you’ve already set up your certs using the pfSense ACME client so what we’re going to be doing is as simple as using rsync to ensure that these files are always up to date.

Read more >

Cheap Temp/Humidity Sensing in HAS

If your house is like mine you have some rooms that run a little hotter than others (especially if you have servers running). Because of this the need to monitor temperature readings in rooms became a little more important, now there’s a multitude of different ways to tackle this problem but this is by far the cheapest (although more time consuming on the front end) and doesn’t require any cloud services to keep it running. I’d be unfair if I didn’t mention some other good alternatives that use Zigbee/ZWave if you don’t want to go through all this (these are not affiliate links, im not that important).

Read more >

Exposing Services Behind a Firewall

Synopsis

Sometimes you may find yourself in a situation in which you would like to host a service but sometimes you’re stuck behind a double NAT, or even just a firewall in which you do not control all of the rules for. Here I’m going to show you how to use Wireguard VPN to finagle around this issue and simply give your private server a public IP address. Important note: in order for this to work, you will need a publicly accessible VPS, preferably with a static IP address, i would recommend either AWS Lighsail or Linode as they are both cost-effective options with their cheapest tiers being bout $3.50/mo and $5/mo respectively (I like Linode’s speed more, they aren’t paying me to say this although I wish they were).

Read more >

ProxMox LXC Deployment

In an attempt to automate the deployment as well as get my feet wet with a little Ansible in my homelab i created a playbook to automate the deployment of the minimal LXCs that build to deploy certain apps like pi-hole, nginx proxies, and sql databases. The documentation on certain things were pretty sparse so I will try to explain the intentions that I had, the issues that I ran into, as well as why I chose the routes that I took for my solution.

Read more >