Collating Kevin

Learn from my mistakes. Build it better.

Building a High Availability DNS Recursive Resolver Utilizing DoT

Why Do You Need a Highly Available Forward Resolver? The domain name system (DNS) is the backbone of the internet. Acting like a directory, DNS is a critical service that translates human parsable domain names such as example.com into IP addresses 93.184.215.14. At the heart of this system are 13 root servers which contain a list of all the domains in the internet 1. The root servers themselves get these names from top-level domain, and authoritative nameservers. Continue reading

I Was DDoS'd This Week, How I Used ASN Blocking to Resolve The Problem

The Alerts “Why do things always have to happen on a Friday?”, was the question I asked myself at 5:04 when I read the Grafana alert delivered to my phone. I had just booted up my gaming PC and I was going to get started on an early weekend gaming session when my phone began buzzing and the notifications began piling up. Bereft of hundreds of frames per second for the moment I logged in to my dashboard to see what was wrong. Continue reading

Securing NGINX With HTTPS and LetsEncrypt

Encryption has become increasingly important over the last several years, you would be hard pressed to find a site on the internet today that isn’t protected by HTTPS encryption. Some of the benefits of running HTTPS include: Higher Search Result Rankings Search engines favour HTTPS sites and will rank them higher. HTTPS is an important part of search engine optimization. Improved Security Since connections are encrypted, they are technically impossible to view in transit. Continue reading

Creating Systemd Timer Jobs

Systemd Timer Jobs In the past, it would be fairly typical to use cron to schedule jobs on Linux or BSD. Cron is an excellent tool for scheduling simple jobs, but weaknesses will begin to appear when complexity is required. Some of the benefits of systemd include: Automatic rotaion of logs. Memory/CPU scheduling. Random start/job delays. We’ll cover services and timers today. Timers The first step to creating a recurring job using systemd is to create the timer unit itself. Continue reading