[ BLOG FEED ]

DIGITAL LOGS & WRITE-UPS

Backend, systems, Rust notes & tutorials.

Implementing JWT Authentication in Rocket.rs with Argon2 Password Hashing

Step-by-step Rocket.rs walkthrough wiring Argon2 password hashing with JWT auth guards for hardened APIs.

RustJWTSecurityBackend+1 more

How to Use Tera Templates with Axum (Rust)

Practical guide for rendering dynamic HTML in Axum by integrating Tera templates, context injection, and routing.

RustAxumTeraWeb+1 more

Why Rust Forces Immutability?

A plain-language breakdown of Rust’s immutability defaults, safety guarantees, and when mutability makes sense.

RustConceptsImmutabilitySafety

Why Do We Need Lifetimes in Rust?

Explains lifetime annotations, the borrow checker, and how they prevent dangling references.

RustLifetimesMemory

Implementing Middleware in Rocket.rs

Demonstrates using request guards as Rocket middleware for JWT verification and request-scoped context.

RustRocket.rsMiddlewareJWT

Getting Started with Rocket Fairings: Implementing a Logger

Shows how to hook into Rocket fairings to log incoming requests and outgoing responses cleanly.

RustRocket.rsFairingsLogging

Reading Root-Protected Files with Sudo — No Password Prompt

Explains sudo privilege tuning to allow file reads without repeated password prompts.

LinuxSudoSecurity

Fixing DNS Resolution Errors in Linux: A Simple Troubleshooting Guide

Checklist for resolv.conf, systemd-resolved, and network restarts when DNS breaks.

LinuxDNSTroubleshooting

Setting up My Own Mail Server (Postfix + Dovecot)

Full-stack mail server setup with Postfix, Dovecot, and TLS hardening on Devuan.

MailPostfixDovecotLinux

How I Fixed My USB-to-Ethernet Flapping Nightmare on Linux

A walkthrough of debugging and fixing intermittent USB-to-Ethernet adapter disconnects on Linux, including driver updates and power checks.

LinuxNetworkingUSBDrivers+1 more

Getting Started with eBPF and XDP: A Simple Hello World in Ubuntu

Compiles and runs the first XDP hook while explaining toolchains, clang flags, and bpftool usage.

eBPFXDPKernelNetworking

The Fun Bug Taught Me About Ring Buffers and Padding in eBPF

A deep dive into a subtle eBPF bug caused by struct padding and ring buffer alignment, and how to fix it.

eBPFKernelDebuggingCProgramming+1 more

My eBPF Program Compiled with Clang… but the Kernel Verifier Rejected It

Deep dive into kernel verifier rejection errors: understanding clang compilation flags, instruction restrictions, and debugging eBPF verification failures.

eBPFXDPLinuxKernel

Understanding ctx->data in XDP: Parsing Raw Packets Across Protocols

A deep dive into how XDP programs parse raw packets from ctx->data, covering Ethernet, IPv4, IPv6, and next protocol headers with practical parsing patterns.

eBPFXDPNetworkingPacketParsing

Observe your network using ElfOwl

ElfOwl a compliance system to observe network, files I/O, process and capabilities using eBPF

eBPFNetworkingNetwork TelemetryTelemetry

Detecting Privilege Escalation in Pods with Process + Capability Signals

Using Elfowl to find process and capability privilege escaltion in pods

eBPFCapability TelemetryProcess TelemetryTelemetry

Ring Buffers: The Tiny Data Structure Powering High-Performance Systems

A deep dive into ring buffers — how this compact, lock-free data structure enables high-throughput pipelines in kernels, networking, and real-time systems.

RingBufferDataStructuresSystemsPerformance+1 more

XDP Hook Internals — Where You Actually Intercept Packets

A deep dive into XDP hook points in the Linux kernel — where packets are actually intercepted and how that shapes what your eBPF program can and can't do.

eBPFXDPLinux KernelNetworking+1 more

eBPF Maps Deep Dive — How Programs Store and Share State

A deep dive into eBPF maps — how they let programs store and share state across kernel and userspace, and the tradeoffs between different map types.

eBPFLinuxNetworkingProgramming+1 more

Inside the eBPF Verifier — Why Your Program Is Constrained, and How It Stays Safe

A deep dive into the eBPF verifier — how it walks every possible path through a program, tracks register and memory state, and rejects anything it can't prove is safe before the kernel lets it run.

LinuxeBPFKernelNetworking

Tail Calls and Program Chaining — Building Large eBPF Applications

A deep dive into eBPF tail calls — how they let a program jump into another without returning, and how chaining them together works around the instruction-count and complexity limits the verifier imposes on any single program.

eBPFKernelSystem EngineeringBpf

Your Backend Doesn't Need to Speak HTTP/3

HTTP/3 is here. Google Chrome uses it for sending request to Google. Firefox and Safari have it on by default for years. Your users are already negotiating it — and failing back to HTTP/2 when your server does not speak HTTP/3.

HTTP3QUICRustNetworking+1 more

Getting Started with Spooky: Bridging HTTP/2 and QUIC in Minutes

Building Spooky — a QUIC edge proxy that accepts HTTP/3 traffic and forwards it to existing HTTP/2 backends with load balancing and health checks.

HTTP3QUICLoadBalancingRust+1 more

How to Set Up a Virtual Gateway with NAT in VirtualBox

Configures a Devuan gateway VM that NATs traffic for an isolated VirtualBox lab network.

NetworkingVirtualBoxNATDevuan

IPv6 Addressing, Prefixes, and Subnetting

IPv6 subnets and address ranges and how it is different from IPv4

IPv6NetworkingNetwork SecuritySubnetting

How to Set Up a Local DNS Server Using dnsmasq

Shows dnsmasq installation, zone files, and DHCP integration for a home lab DNS.

DNSdnsmasqLinux

Building VyOS From Source and Running in VirtualBox

End-to-end VyOS build steps, ISO creation, and VirtualBox deployment process.

VyOSNetworkingBuild

VyOS Quick Setup and Persistent Configuration Guide

Screenshots and commands to get core routing services configured and persisted on VyOS.

VyOSRoutingGuides

Creating a Virtual Network in VirtualBox (Linux Host)

Defines host-only adapters, DHCP ranges, and VM wiring to simulate a multi-node lab.

VirtualBoxNetworkingLabs

The Silent Network Bug That Taught Me to Trust tcpdump Over DHCP

Debugging a USB Ethernet (r8152) TX deadlock on Linux — why link-up and DHCP can lie, and how to fix it.

LinuxNetworkingUSB Ethernetr8152+2 more

Debugging Wireguard Lockout: How I Broke and Fixed My Own Internal Network

Setting up the Wireguard VPN between 2 Hetzner servers

WireguardVPNLinuxNetworking+1 more

Why QUIC built on UDP over TCP?

Explores why QUIC chose UDP as its transport layer instead of TCP, covering head-of-line blocking, connection migration, and the performance trade-offs.

QUICHTTP3UDPTCP+1 more

How we build a Self-Defending Edge Proxy: Brownout, Admission Control, and Circuit Breakers

Building self-defending capabilities into Impulse — an edge proxy with brownout mode, admission control, and circuit breakers to protect backends under load.

ImpulseReverse ProxyProxyNetworking

NIC Queues, RSS, RPS, and RFS — Why They Matter More Than You Think

When software can't keep up with traffic, the bottleneck isn't always threads or hot paths — sometimes it's the NIC itself. A deep dive into receive queues, RSS, RPS, and RFS and why they matter for high-throughput Linux networking.

LinuxNetworkingKernelPerformance+1 more

GRO, GSO, TSO, LRO — How the Linux Kernel Cheats

The bottleneck in Linux networking is often the per-packet cost, not the bandwidth. A walkthrough of how GRO, GSO, TSO, and LRO reduce that cost by coalescing and segmenting at the right layer.

Linux KernelNetworkingeBPFSystem Programming+1 more

How to Install Redis on Devuan Linux (Daedalus 5.0)

Installs Redis from source, configures service files, and tests connectivity.

RedisDevuanInstall

Redis Cluster: What It Is and How to Set It Up on Devuan

Covers slot allocation, cluster meet commands, and testing failover locally.

RedisClusterHigh Availability

How to Install KeyDB Server in Debian 12 Using PPA Repositories

Uses upstream PPAs to install KeyDB on Bookworm with systemd service tuning.

KeyDBDebianInstall

How to Setup KeyDB Servers with Multi-Master in Debian 12

Configures KeyDB active-active replication and verifies conflict resolution.

KeyDBReplicationHA

Setting Up Samaritan Proxy to Load Balance Two KeyDB Servers

Shows how to insert Samaritan proxy in front of KeyDB instances for load balancing.

KeyDBProxyLoad Balancing

Ansible Lab Setup on Devuan

Bootstraps control nodes and managed hosts to practice Ansible playbooks locally.

AnsibleDevOpsLab

How to Install Apache CouchDB on Debian

Details CouchDB repository setup, clustering enablement, and admin user creation.

CouchDBDebianDatabases

Setting up a Domain Name and Sub-Domain using Nginx on Debian 13

Configures Nginx server blocks, DNS records, and TLS for Debian 13 hosts.

NginxDomainsDebian

Simulating Network Flood Scenarios with hping3 for Defensive Testing

A hands-on guide to simulating controlled network flood scenarios with hping3 for defensive testing, firewall validation, and infrastructure resilience analysis

Networkinghping3CyberSecurityLinux

Same Rules. Different Cost. We Benchmarked nftables vs Neurowall (eBPF/XDP) Under a Real SYN Flood.

Both nftables and NeuroWall (eBPF/XDP) blocked the attack — but the cost was not the same. A real benchmark under ~128K pkt/s SYN flood reveals what enforcing the same policy at different points in the Linux packet path actually costs.

eBPFNftablesDDoSDDoS Mitigation+1 more