<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Articles on Luke Hebert</title><link>https://lukehebert.com/post/</link><description>Recent content in Articles on Luke Hebert</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 01 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://lukehebert.com/post/index.xml" rel="self" type="application/rss+xml"/><item><title>Organizational Dynamics</title><link>https://lukehebert.com/post/organizational-dynamics-and-googles-ten-golden-rules/</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/organizational-dynamics-and-googles-ten-golden-rules/</guid><description>To sustain long-term organizational growth, companies must view employees at all levels as their most valuable asset and actively invest in their retention and well-being.</description></item><item><title>Enable Kubelet Certificates in Kubernetes if you forgot.</title><link>https://lukehebert.com/post/enable-kubelet-serving-certificates-in-kubernetes-if-you-did-not-do-so-during-cluster-deployment-metric-server/</link><pubDate>Sat, 23 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/enable-kubelet-serving-certificates-in-kubernetes-if-you-did-not-do-so-during-cluster-deployment-metric-server/</guid><description>Enables kubelet TLS bootstrapping so the controller-manager issues proper serving certificates, resolving the x509 certificate validation error in metrics-server. Covers deployment edits, controller-manager configuration, and automated certificate renewal.</description></item><item><title>AWS Default DNS Server (EC2)</title><link>https://lukehebert.com/post/aws-default-dns-server-ec2/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/aws-default-dns-server-ec2/</guid><description>Explains how the AWS default DNS server works for EC2 instances within a VPC, including the special 169.254.169.253 address and the CIDR-based resolver IP.</description></item><item><title>AWS Instance Metadata</title><link>https://lukehebert.com/post/aws-instance-metadata/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/aws-instance-metadata/</guid><description>An overview of the AWS EC2 Instance Metadata Service (IMDS), including its link-local address and the difference between IMDSv1 and IMDSv2 access.</description></item><item><title>AWS User-data Address</title><link>https://lukehebert.com/post/aws-user-data-address/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/aws-user-data-address/</guid><description>Explains how to access AWS EC2 user data from within an instance using the instance metadata service. Covers the metadata endpoint, a curl example, and where the user data script is stored on Linux and Windows.</description></item><item><title>Basic Iptables Insert</title><link>https://lukehebert.com/post/basic-iptables-insert/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/basic-iptables-insert/</guid><description>Learn how to insert iptables rules at a specific position using the -I flag, with syntax breakdown and a practical SSH example.</description></item><item><title>firewalld Quick Reference</title><link>https://lukehebert.com/post/firewalld-cheatsheet/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/firewalld-cheatsheet/</guid><description>A practical cheat sheet for managing firewalld on RHEL, Fedora, and CentOS systems. Covers zones, services, ports, rich rules, NAT, and direct iptables-style rules.</description></item><item><title>Installing Kubernetes the Hard Way</title><link>https://lukehebert.com/post/update-kubernetes-the-hard-way/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/update-kubernetes-the-hard-way/</guid><description>A guide to building a Kubernetes cluster manually, component by component, without kubeadm or minikube. This approach provides a deep understanding of how Kubernetes works under the hood and prepares you for both certification exams and day-to-day operations.</description></item><item><title>CNI Plugin Binaries and Configs</title><link>https://lukehebert.com/post/cni-plugin-binaries-configs/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/cni-plugin-binaries-configs/</guid><description>Catalogs the active Flannel CNI configuration and the full set of 19 available CNI plugin binaries on a Kubernetes node. Provides file sizes, modification dates, and the purpose of each installed plugin.</description></item><item><title>CNIs and the CKA Exam</title><link>https://lukehebert.com/post/important-note-about-cni-and-cka-exam/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/important-note-about-cni-and-cka-exam/</guid><description>Clarifies which CNI plugins are acceptable for the CKA exam and explains why the official Kubernetes documentation avoids vendor-specific deployment commands.</description></item><item><title>CoreDNS</title><link>https://lukehebert.com/post/coredns/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/coredns/</guid><description>Set up a dedicated server as a DNS server using CoreDNS, covering binary installation, server startup, and IP-to-hostname mapping via the hosts plugin. CoreDNS also supports extensibility through plugins, including one for Kubernetes.</description></item><item><title>Gateway API</title><link>https://lukehebert.com/post/gateway-api/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/gateway-api/</guid><description>Gateway API is a Kubernetes add-on that provides dynamic infrastructure provisioning and advanced traffic routing through an extensible, role-oriented configuration mechanism. It organizes traffic handling around three stable API kinds: GatewayClass, Gateway, and HTTPRoute.</description></item><item><title>Ingress and Ingress Controllers</title><link>https://lukehebert.com/post/ingress-and-ingress-controllers/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ingress-and-ingress-controllers/</guid><description>An overview of Kubernetes Ingress resources and the controllers that fulfill them, covering terminology, creation, and prerequisites.</description></item><item><title>Ingress Annotations and Rewrite Target</title><link>https://lukehebert.com/post/ingress-annotations-and-rewrite-target/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ingress-annotations-and-rewrite-target/</guid><description>Explains how the rewrite-target annotation in the NGINX Ingress controller maps user-facing URL paths to backend services, preventing 404 errors. Includes examples of simple and regex-based rewrites.</description></item><item><title>Ip Link Show Type</title><link>https://lukehebert.com/post/ip-link-show-type/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ip-link-show-type/</guid><description>A guide to the ip link show type and ip address show type commands in Linux for filtering network interfaces by type. Covers physical, virtual, and tunneling interface types with practical examples.</description></item><item><title>Kubernetes DNS: How Pods Talk (When They Actually Do)</title><link>https://lukehebert.com/post/understanding-how-pods-talk-in-kubernetes-networks-dns/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/understanding-how-pods-talk-in-kubernetes-networks-dns/</guid><description>A deep dive into how Kubernetes DNS resolves service names to IP addresses, covering A records, SRV records, search domains, and the full lookup path from pod to CoreDNS. Understanding this lifecycle is essential for debugging connectivity issues and designing resilient microservice architectures.</description></item><item><title>Kubernetes Gateway API: A Practical Guide Using NGINX (2025)</title><link>https://lukehebert.com/post/practical-guide-to-gateway-api-2025/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/practical-guide-to-gateway-api-2025/</guid><description>A practical walkthrough of the Kubernetes Gateway API using the NGINX Gateway Controller, covering HTTP routing, TLS termination, traffic splitting, and multi-protocol support. The concepts are implementation-agnostic and apply across any Gateway API-compatible controller.</description></item><item><title>Kubernetes Internal DNS (Search Base)</title><link>https://lukehebert.com/post/kubernetes-internal-dns-search-base/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubernetes-internal-dns-search-base/</guid><description>Kubernetes provides a built-in DNS service that assigns predictable names to Services and Pods within a cluster. By default, pods use cluster.local as their search base for internal DNS resolution, enabling communication through human-readable names rather than ephemeral IP addresses.</description></item><item><title>Kubernetes Kustomize</title><link>https://lukehebert.com/post/kubernetes-kustomize/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubernetes-kustomize/</guid><description>Kustomize is a native Kubernetes configuration management tool that enables declarative, template-free customization of Kubernetes objects using YAML files. It supports hierarchical base-and-overlay structures, targeted patches, and built-in generation of ConfigMaps and Secrets.</description></item><item><title>Kubernetes Ports and Protocols</title><link>https://lukehebert.com/post/kubernetes-networking/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubernetes-networking/</guid><description>An overview of the ports and protocols required by Kubernetes control plane and worker nodes. Includes guidance on overriding default port configurations in strict network environments.</description></item><item><title>Network Namespaces (Virtual Network)</title><link>https://lukehebert.com/post/network-namespaces-virtual-network/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/network-namespaces-virtual-network/</guid><description>Network namespaces provide the foundation for container network isolation in Docker and Kubernetes. This guide covers listing, creating, and linking namespaces, bridging, NAT, and how Docker and Kubernetes build on these primitives.</description></item><item><title>Nginx Ingress Controller</title><link>https://lukehebert.com/post/nginx-ingress-controller/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/nginx-ingress-controller/</guid><description>A practical guide to installing and configuring the Ingress-Nginx Controller in Kubernetes, covering Helm and kubectl methods, cloud-provider annotations, and local testing workflows.</description></item><item><title>Using Persistent Volume Claims in a Pod (PVC)</title><link>https://lukehebert.com/post/using-persistent-volume-claims-in-a-pod-pvc/</link><pubDate>Mon, 18 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/using-persistent-volume-claims-in-a-pod-pvc/</guid><description>This guide explains how Persistent Volumes and Persistent Volume Claims work together in Kubernetes and shows how to reference a PVC inside a Pod definition. It also covers access modes and the difference between static and dynamic provisioning.</description></item><item><title>Basic (CSV) Authentication to the API Server</title><link>https://lukehebert.com/post/basic-csv-authentication-to-the-api-server/</link><pubDate>Sat, 16 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/basic-csv-authentication-to-the-api-server/</guid><description>Configure HTTP basic authentication on a kubeadm-managed Kubernetes cluster using a CSV credentials file. Covers mounting the file into kube-apiserver, defining RBAC roles, and verifying access with curl.</description></item><item><title>Docker and Container Capabilities</title><link>https://lukehebert.com/post/docker-and-container-capabilities/</link><pubDate>Sat, 16 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/docker-and-container-capabilities/</guid><description>An in-depth overview of Linux capabilities and how they govern privilege inside Docker containers and Kubernetes pods. Covers capability sets, file capabilities, bounding sets, securebits, and user-namespace interactions.</description></item><item><title>K8s Impersonation: Stepping Into Someone Else's Pods</title><link>https://lukehebert.com/post/user-impersonation/</link><pubDate>Sat, 16 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/user-impersonation/</guid><description>Learn how Kubernetes administrators can verify permissions and impersonate other users using kubectl auth can-i and the &amp;ndash;as flag.</description></item><item><title>Kubectx and Kubens</title><link>https://lukehebert.com/post/kubectx-and-kubens/</link><pubDate>Sat, 16 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubectx-and-kubens/</guid><description>Kubectx and kubens are lightweight CLI tools that simplify switching between Kubernetes clusters and namespaces. This guide covers installation and basic usage for both tools.</description></item><item><title>Kubernetes Secrets: Safety and Best Practices</title><link>https://lukehebert.com/post/encrypting-secrets/</link><pubDate>Sat, 16 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/encrypting-secrets/</guid><description>Kubernetes Secrets use base64 encoding rather than true encryption, so their safety depends on surrounding practices like encryption at rest and access controls. This post covers best practices, built-in protections, and alternatives like Helm Secrets or HashiCorp Vault.</description></item><item><title>Kubernetes TLS Check List</title><link>https://lukehebert.com/post/kubernetes-tls-check-list/</link><pubDate>Sat, 16 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubernetes-tls-check-list/</guid><description>A practical checklist covering X.509 certificate requirements for Kubernetes nodes, users, and the API server. Includes deployment methods, cert-manager workflows, and Extended Key Usage configuration.</description></item><item><title>Network Policies</title><link>https://lukehebert.com/post/network-policies/</link><pubDate>Sat, 16 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/network-policies/</guid><description>A practical guide to Kubernetes Network Policies, covering how Ingress and Egress rules work, AND/OR logic in rule layout, and the behavior of policyTypes.</description></item><item><title>Finding Which Java Threads Are Eating Your CPU for Breakfast</title><link>https://lukehebert.com/post/finding-which-java-threads-are-consuming-your-cpu/</link><pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/finding-which-java-threads-are-consuming-your-cpu/</guid><description>When a Java process is eating your CPU, you need to know exactly which thread is responsible. This guide walks through JVisualVM, jstack, top, and jvmtop to pinpoint the culprit.</description></item><item><title>How to Inspect a Thread Dump Like a Pro</title><link>https://lukehebert.com/post/how-to-inspect-a-thread-dump-like-a-pro/</link><pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-inspect-a-thread-dump-like-a-pro/</guid><description>Learn how to capture, read, and interpret Java thread dumps using JDK tools like jstack and jcmd. Covers thread states, CPU analysis, deadlock detection, and practical tools for spotting performance issues.</description></item><item><title>Not Enough Storage Available While Using Jstack (Win)</title><link>https://lukehebert.com/post/not-enough-storage-available-while-using-jstack-win/</link><pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/not-enough-storage-available-while-using-jstack-win/</guid><description>A quick fix for the &amp;rsquo;not enough storage available&amp;rsquo; error when running jstack on Windows, caused by the JVM running under the Local System Account. Two workarounds using Psexec or JMX remote monitoring.</description></item><item><title>Backing Up etcd</title><link>https://lukehebert.com/post/backing-up-etcd/</link><pubDate>Wed, 13 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/backing-up-etcd/</guid><description>A practical guide to backing up and restoring the etcd key-value database in a Kubernetes cluster. Covers snapshot-based and file-based backup methods, integrity checks, and static pod manifest updates.</description></item><item><title>Upgrading a K8 Cluster</title><link>https://lukehebert.com/post/upgrading-a-cluster/</link><pubDate>Wed, 13 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/upgrading-a-cluster/</guid><description>A step-by-step guide to upgrading a Kubernetes cluster using kubeadm, covering control plane and worker node upgrades. Includes the full sequence from version planning through final verification.</description></item><item><title>Creating a TLS Secret in Kubernetes</title><link>https://lukehebert.com/post/creating-a-tls-secret-in-kubernetes/</link><pubDate>Tue, 12 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/creating-a-tls-secret-in-kubernetes/</guid><description>Create a TLS secret from a certificate and key pair, then deploy a webhook server that mounts that secret to serve HTTPS on port 8443.</description></item><item><title>Jstack and Jcmd: What Are Your Java Threads Even Doing?</title><link>https://lukehebert.com/post/using-jcmd-jstack-to-get-thread-information/</link><pubDate>Tue, 12 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/using-jcmd-jstack-to-get-thread-information/</guid><description>A practical guide to using the jcmd and jstack utilities for collecting thread dumps, heap data, and CPU information from a running JVM process. Includes ready-to-use scripts and one-liners for troubleshooting slow or hung Java applications.</description></item><item><title>Kubernetes Resource Management</title><link>https://lukehebert.com/post/kubernetes-resource-management/</link><pubDate>Mon, 11 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubernetes-resource-management/</guid><description>A practical guide to configuring CPU, memory, and storage requests and limits in Kubernetes, covering container-level, Pod-level, and namespace-level resource controls. Includes troubleshooting steps for common scheduling and OOM issues.</description></item><item><title>Pod Node Assignment &amp; Manual Scheduling</title><link>https://lukehebert.com/post/manually-scheduling-pods/</link><pubDate>Mon, 11 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/manually-scheduling-pods/</guid><description>Learn how to assign Kubernetes pods to specific nodes at creation time and how to reassign running pods using Binding objects. Covers scheduler behavior and common pitfalls that leave pods stuck in Pending state.</description></item><item><title>JSON Path</title><link>https://lukehebert.com/post/json-path/</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/json-path/</guid><description>A practical guide to JSON Path syntax, operators, and filters, with hands-on examples for extracting data from JSON documents and Kubernetes resources via kubectl.</description></item><item><title>Useful JsonPath Queries for Kubernetes</title><link>https://lukehebert.com/post/useful-json-path-queries-for-kubernetes/</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/useful-json-path-queries-for-kubernetes/</guid><description>A practical guide to kubectl JsonPath expressions for extracting, formatting, and combining Kubernetes resource fields. Covers core patterns, array indexing, literal strings, and when to reach for jq instead.</description></item><item><title>Kubernetes EFS Storage (IAM Role)</title><link>https://lukehebert.com/post/kubernetes-efs-storage-iam-role/</link><pubDate>Sat, 09 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubernetes-efs-storage-iam-role/</guid><description>A practical guide to provisioning EFS filesystems and wiring them into Kubernetes via the AWS EFS CSI driver, IAM roles, and standard storage manifests. Covers StorageClass, PVCs, Deployments, and StatefulSets for shared, elastic storage.</description></item><item><title>S3 Identity Shift: Leveling Up to IAM Roles in K8s</title><link>https://lukehebert.com/post/kubernetes-s3-storage-iam-role/</link><pubDate>Sat, 09 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubernetes-s3-storage-iam-role/</guid><description>A practical guide to mounting S3 buckets as volumes in Kubernetes pods using the AWS S3 CSI driver, including IAM role setup, StorageClass configuration, and deployment examples.</description></item><item><title>Static Keys: S3 Vault Hunters: Hardcoding AWS Keys in K8s</title><link>https://lukehebert.com/post/kubernetes-s3-storage-access-key-secrete-key/</link><pubDate>Sat, 09 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubernetes-s3-storage-access-key-secrete-key/</guid><description>A guide to deploying S3 object storage in Kubernetes using the AWS S3 CSI driver, covering credential setup, StorageClass definition, PVC creation, and volume mounting in pods and deployments.</description></item><item><title>Helm Templates: A Practical Reference</title><link>https://lukehebert.com/post/helm-template-cheat-sheet/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/helm-template-cheat-sheet/</guid><description>A comprehensive cheatsheet covering essential Helm template functions, syntax, and patterns for writing and debugging chart templates. Use it as a quick lookup while building or troubleshooting Helm charts.</description></item><item><title>Helm: A Practical Reference Guide</title><link>https://lukehebert.com/post/helm-usage-cheatsheet/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/helm-usage-cheatsheet/</guid><description>A quick-reference guide covering Helm repository management, chart installation, release management, and common deployment workflows. Use this as a day-to-day cheat sheet for working with Helm in Kubernetes environments.</description></item><item><title>kubectl Quick Reference for Kubernetes</title><link>https://lukehebert.com/post/kubectl-quick-reference-kubernetes/</link><pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubectl-quick-reference-kubernetes/</guid><description>A quick reference covering commonly used kubectl commands, flags, and workflows for managing Kubernetes resources. Topics range from shell autocomplete and cluster contexts to creating, viewing, updating, and deleting resources.</description></item><item><title>pgBackRest and Helpful Commands</title><link>https://lukehebert.com/post/pgbackrest-and-helpful-commands/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/pgbackrest-and-helpful-commands/</guid><description>A practical reference for pgBackRest backup, restore, and cleanup commands for PostgreSQL. Covers manual cleanup, incremental backups, retention policies, and stanza management.</description></item><item><title>Understanding Machine CPU Usage</title><link>https://lukehebert.com/post/understanding-machine-cpu-usage/</link><pubDate>Wed, 18 Jun 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/understanding-machine-cpu-usage/</guid><description>A practical walkthrough of reading node_cpu_seconds_total from the Prometheus Node exporter, calculating per-second rates, and deriving overall CPU utilization percentages across multiple machines.</description></item><item><title>An Introductory How-To, With Examples, of Docker Exec</title><link>https://lukehebert.com/post/an-introductory-how-to-of-docker-exec/</link><pubDate>Thu, 29 May 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/an-introductory-how-to-of-docker-exec/</guid><description>A practical guide to the docker exec command, covering background execution, environment variables, interactive sessions, and working directory control. Includes real-world examples to help you get the most out of running commands inside containers.</description></item><item><title>Kubernetes Cluster Components</title><link>https://lukehebert.com/post/kubernetes-cluster-components/</link><pubDate>Thu, 29 May 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubernetes-cluster-components/</guid><description>An overview of the key components that make up a Kubernetes cluster, covering both the control plane and worker nodes. Understanding these pieces is essential for operating and troubleshooting a Kubernetes environment.</description></item><item><title>Kubernetes Deployment Scheduler Sequence</title><link>https://lukehebert.com/post/kubernetes-deployment-scheduler-sequence/</link><pubDate>Thu, 29 May 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubernetes-deployment-scheduler-sequence/</guid><description>A time sequence diagram walks through the sequential steps of pod scheduling in Kubernetes, from the initial kubectl command to the kubelet reporting status back to the API server. The diagram simplifies concurrent control plane and worker node processes into a clear, ordered flow.</description></item><item><title>Java TLS Client Debugging</title><link>https://lukehebert.com/post/java-tls-client-debugging/</link><pubDate>Mon, 19 May 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/java-tls-client-debugging/</guid><description>A guide to inspecting SSL/TLS handshakes in Java applications when built-in debugging is unavailable. Includes a lightweight TLS client tool for testing certificate and handshake issues.</description></item><item><title>Basic Kerberos Test Class in Java</title><link>https://lukehebert.com/post/basic-kerberos-test-class-in-java/</link><pubDate>Wed, 14 May 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/basic-kerberos-test-class-in-java/</guid><description>A minimal Java class and JAAS configuration for testing Kerberos authentication in isolation, useful when application-level debugging is too noisy to isolate the problem.</description></item><item><title>Graph Database White Papers</title><link>https://lukehebert.com/post/graph-database-white-papers/</link><pubDate>Mon, 14 Apr 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/graph-database-white-papers/</guid><description>An overview of graph databases, their structure, and advantages over relational models. Covers how nodes, relationships, and the Cypher query language work together to model complex data.</description></item><item><title>Udev Diagnostic Test for a Broken /dev/null Node</title><link>https://lukehebert.com/post/udev-diagnostic-test/</link><pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/udev-diagnostic-test/</guid><description>A walkthrough of using udevadm to diagnose and inspect udev rule application on a /dev/null device node. Covers the test command syntax and interprets the output for troubleshooting permission issues.</description></item><item><title>Postgres per-table autovacuum management</title><link>https://lukehebert.com/post/posgres-per-table-autovacuum-management/</link><pubDate>Mon, 28 Oct 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/posgres-per-table-autovacuum-management/</guid><description>Tune Postgres per-table autovacuum settings and track them with a single SQL view. Covers global defaults, table-specific overrides, and a ready-to-use monitoring query.</description></item><item><title>Catching Packets: Tuning Linux Network Inbound</title><link>https://lukehebert.com/post/monitoring-and-tuning-the-linux-networking-stack-receiving-data/</link><pubDate>Fri, 11 Oct 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/monitoring-and-tuning-the-linux-networking-stack-receiving-data/</guid><description>A deep dive into how the Linux kernel receives network packets, covering the full path from NIC hardware through NAPI, softirqs, GRO, RPS, and protocol layers. Includes practical monitoring commands and tuning knobs for each stage.</description></item><item><title>Linux Network Ring Buffers</title><link>https://lukehebert.com/post/linux-network-ring-buffers-trying-to-cover-what-i-dont-know-about/</link><pubDate>Fri, 11 Oct 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/linux-network-ring-buffers-trying-to-cover-what-i-dont-know-about/</guid><description>A practical walkthrough of how Linux allocates and manages RX/TX ring buffers for network interfaces, covering DMA, softirq processing, and tuning knobs like netdev_budget.</description></item><item><title>Myths About /dev/urandom</title><link>https://lukehebert.com/post/myths-about-dev-urandom/</link><pubDate>Fri, 04 Oct 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/myths-about-dev-urandom/</guid><description>A practical breakdown of the most common misconceptions about /dev/urandom and /dev/random on Linux, explaining why /dev/urandom is the correct choice for cryptographic randomness and why blocking on low entropy is a usability problem, not a security one.</description></item><item><title>Wireshark SSL Filters: Cutting Through the Crypto Noise</title><link>https://lukehebert.com/post/wireshark-filter-for-ssl-traffic/</link><pubDate>Fri, 30 Aug 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/wireshark-filter-for-ssl-traffic/</guid><description>A collection of useful Wireshark display filters for analyzing SSL/TLS handshake traffic, including a reference table of handshake message types and notes on cipher suite considerations.</description></item><item><title>Docker/Kubernetes Network Diagnostic Tools</title><link>https://lukehebert.com/post/docker-kubernetes-network-diagnostic-tools/</link><pubDate>Mon, 26 Aug 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/docker-kubernetes-network-diagnostic-tools/</guid><description>A practical guide to using the netshoot container for Docker and Kubernetes network troubleshooting. Covers network namespaces, tcpdump examples, and real-world diagnostic workflows.</description></item><item><title>How to Get the Most Out of Postgres Memory Settings</title><link>https://lukehebert.com/post/how-to-get-the-most-out-of-postgres-memory-settings/</link><pubDate>Wed, 12 Jun 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-get-the-most-out-of-postgres-memory-settings/</guid><description>A practical guide to tuning Postgres memory parameters including shared_buffers, work_mem, and maintenance_work_mem. Learn how to measure actual usage, avoid out-of-memory crashes, and balance allocations for optimal performance.</description></item><item><title>LDAP OID Reference Guide</title><link>https://lukehebert.com/post/ldap-oid-reference-guide/</link><pubDate>Wed, 12 Jun 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ldap-oid-reference-guide/</guid><description>A comprehensive reference table of common LDAP object identifiers (OIDs) used in schema elements, controls, and extended operations. Each entry includes the OID, its purpose, and a link to the relevant RFC or specification.</description></item><item><title>How to Clean Up pg_wal If the Disk Is Full</title><link>https://lukehebert.com/post/how-to-clean-up-pg-wal-if-the-disk-is-full/</link><pubDate>Mon, 04 Dec 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-clean-up-pg-wal-if-the-disk-is-full/</guid><description>A practical guide to resolving PostgreSQL pg_wal disk-full issues, covering both reactive recovery steps and proactive measures to prevent recurrence. Learn how to free space, move the WAL directory, and configure archiving correctly.</description></item><item><title>Analyzing Large Java Heap Dumps Using Memory Analyzer CLI</title><link>https://lukehebert.com/post/analyzing-large-java-heap-dumps-using-memory-analyzer-cli-in-linux/</link><pubDate>Fri, 17 Nov 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/analyzing-large-java-heap-dumps-using-memory-analyzer-cli-in-linux/</guid><description>When MAT UI fails to handle very large heap dumps, the Memory Analyzer CLI provides a reliable alternative on Linux. This post walks through the setup and commands needed to parse multi-gigabyte dumps and generate shareable HTML reports.</description></item><item><title>Demystifying Docker DNS: How Containers Talk</title><link>https://lukehebert.com/post/understanding-docker-dns/</link><pubDate>Wed, 15 Nov 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/understanding-docker-dns/</guid><description>An overview of how Docker&amp;rsquo;s built-in DNS resolver enables container-to-container communication and service discovery. Covers default configurations, custom DNS setups, and practical use cases.</description></item><item><title>Working with Multiple Content-Security-Policy Headers</title><link>https://lukehebert.com/post/working-with-multiple-content-security-policy-headers/</link><pubDate>Thu, 28 Sep 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/working-with-multiple-content-security-policy-headers/</guid><description>Multiple Content-Security-Policy headers do not combine; the most restrictive one always wins. Learn how to correctly configure CSP in nginx by consolidating directives into a single header.</description></item><item><title>The Beer Drinker's Guide to SAML Duo Security</title><link>https://lukehebert.com/post/the-beer-drinkers-guide-to-saml-duo-security/</link><pubDate>Mon, 11 Sep 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/the-beer-drinkers-guide-to-saml-duo-security/</guid><description>A plain-English walkthrough of how SAML authentication works, using the analogy of buying a beer at a concert. Covers IdP and SP configuration, IdP-initiated vs SP-initiated flows, and practical troubleshooting steps.</description></item><item><title>How to Start a SysV Init Script After Network Starts</title><link>https://lukehebert.com/post/how-to-start-a-sysv-init-script-after-network-starts-in-red-hat-enterprise-linux-7/</link><pubDate>Tue, 27 Jun 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-start-a-sysv-init-script-after-network-starts-in-red-hat-enterprise-linux-7/</guid><description>Configure a legacy SysV init script to wait for network availability in RHEL 7 by adding the Required-Start LSB directive. This guide shows how systemd honors those headers so third-party initscripts start in the correct order.</description></item><item><title>Override systemd unit files</title><link>https://lukehebert.com/post/override-systemd-unit-files/</link><pubDate>Tue, 27 Jun 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/override-systemd-unit-files/</guid><description>Learn how to safely override systemd unit and timer files using systemctl edit, avoiding the pitfalls of editing package-managed files directly. Covers creating drop-in overrides, full replacements, and reverting changes.</description></item><item><title>How to Change Docker Root Data Directory</title><link>https://lukehebert.com/post/how-to-change-docker-root-data-directory/</link><pubDate>Fri, 02 Jun 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-change-docker-root-data-directory/</guid><description>A step-by-step guide to relocating the Docker data directory to a new path. Covers daemon configuration, data migration, and cleanup for both older and newer Docker versions.</description></item><item><title>Which Container Ate All Your Storage?</title><link>https://lukehebert.com/post/docker-determining-container-responsible-for-largest-overlay-directories/</link><pubDate>Thu, 18 May 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/docker-determining-container-responsible-for-largest-overlay-directories/</guid><description>A practical guide to identifying which Docker containers occupy the largest overlay2 directories. Uses docker inspect, jq, and xargs to map cryptic layer hashes back to human-readable container names.</description></item><item><title>A Walkthrough of a TLS 1.3 Handshake</title><link>https://lukehebert.com/post/a-walkthrough-of-a-tls-1.3-handshake/</link><pubDate>Wed, 10 May 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/a-walkthrough-of-a-tls-1.3-handshake/</guid><description>A byte-by-byte walkthrough of a TLS 1.3 handshake using OpenSSL&amp;rsquo;s s_client, comparing each message to its TLS 1.2 counterpart. Highlights how encryption, key exchange, and extensions differ in the latest revision.</description></item><item><title>Palo Alto Networks - Define Traffic to Decrypt</title><link>https://lukehebert.com/post/palo-alto-networks-define-traffic-to-decrypt/</link><pubDate>Mon, 08 May 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/palo-alto-networks-define-traffic-to-decrypt/</guid><description>Learn how to use Decryption Policy rules in Palo Alto Networks to define which traffic to decrypt and which to exclude. This guide also covers best practices for blocking QUIC and applying strict security profiles to sensitive traffic categories.</description></item><item><title>How to Setup and Secure UniFi VLAN</title><link>https://lukehebert.com/post/how-to-setup-and-secure-unifi-vlan/</link><pubDate>Fri, 05 May 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-setup-and-secure-unifi-vlan/</guid><description>A step-by-step guide to creating and securing VLANs in the UniFi Network Console, including firewall rules to block inter-VLAN traffic and restrict console access.</description></item><item><title>Introduction to Virtual LANs (VLANs) and Tagging</title><link>https://lukehebert.com/post/intro-to-networking-introduction-to-virtual-lans-vlans-and-tagging/</link><pubDate>Fri, 05 May 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/intro-to-networking-introduction-to-virtual-lans-vlans-and-tagging/</guid><description>A beginner-friendly overview of Virtual LANs, covering their benefits, typical usage scenarios, and the fundamentals of 802.1Q VLAN tagging.</description></item><item><title>UniFi Network - Creating Virtual Networks (VLANs)</title><link>https://lukehebert.com/post/unifi-network-creating-virtual-networks-vlans/</link><pubDate>Fri, 05 May 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/unifi-network-creating-virtual-networks-vlans/</guid><description>Learn how to create and configure virtual networks (VLANs) in UniFi Network to segment devices and improve network security. This guide covers wireless and wired client binding, trunk ports, and third-party gateway integration.</description></item><item><title>DNS</title><link>https://lukehebert.com/post/dns/</link><pubDate>Tue, 02 May 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/dns/</guid><description>A practical guide to understanding DNS resolution tiers and troubleshooting name resolution issues in Linux environments. Covers /etc/nsswitch.conf, /etc/resolv.conf, and local caching services.</description></item><item><title>Optimize PostgreSQL Server Performance Through Configuration</title><link>https://lukehebert.com/post/optimize-postgresql-server-performance-through-configuration/</link><pubDate>Thu, 27 Apr 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/optimize-postgresql-server-performance-through-configuration/</guid><description>This guide walks through four key PostgreSQL configuration settings that significantly impact server performance. Learn how to tune shared_buffers, wal_buffers, effective_cache_size, and work_mem for your specific workload.</description></item><item><title>PostgreSQL Shared Memory (Huge Pages)</title><link>https://lukehebert.com/post/postgresql-shared-memory-huge-pages/</link><pubDate>Wed, 26 Apr 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/postgresql-shared-memory-huge-pages/</guid><description>Calculating the right number of Linux huge pages for PostgreSQL is trickier than just dividing shared_buffers by the page size. This walkthrough shows how to use tuned to manage allocation and why you need to round up based on actual memory usage.</description></item><item><title>PostgreSQL WAL Retention and Clean Up pg_archivecleanup</title><link>https://lukehebert.com/post/postgresql-wal-retention-and-clean-up-pg-archivecleanup/</link><pubDate>Fri, 21 Apr 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/postgresql-wal-retention-and-clean-up-pg-archivecleanup/</guid><description>A practical guide to managing PostgreSQL WAL retention using the pg_archivecleanup utility, covering dry-run and delete modes, retention criteria, and a code walkthrough for novice users.</description></item><item><title>Using SQLline to Test JDBC Connectors</title><link>https://lukehebert.com/post/using-sqlline-to-test-jdbc-connectors/</link><pubDate>Thu, 15 Dec 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/using-sqlline-to-test-jdbc-connectors/</guid><description>A practical guide to using SQLline to replicate SQL client behavior when testing JDBC connectors. Covers downloading the tool, setting up the classpath, and connecting to an Azure MySQL instance.</description></item><item><title>Identity Crisis: SAML Rejecting Improper URIs</title><link>https://lukehebert.com/post/id4262-the-saml-nameidentifier-user-is-of-format-urnoasisname/</link><pubDate>Tue, 29 Mar 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/id4262-the-saml-nameidentifier-user-is-of-format-urnoasisname/</guid><description>The ID4262 error occurs when a SAML NameIdentifier uses the entity format but contains an invalid URI. Two resolution steps fix the issue within your identity provider configuration.</description></item><item><title>Kerberos Code 41: Someone’s Tweaking the Stream!</title><link>https://lukehebert.com/post/kerberos-message-stream-modified-41/</link><pubDate>Fri, 18 Feb 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-message-stream-modified-41/</guid><description>JDK 1.8.0u242 and later introduced Kerberos referral handling per RFC 6806, which can break Active Directory name canonicalization and produce a KRB_AP_ERR_MODIFIED error. This post walks through the two configuration fixes that resolve the issue.</description></item><item><title>A Practical Guide to Traceroute (tracecrt)</title><link>https://lukehebert.com/post/a-parctical-guide-to-trace-route-tracecrt/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/a-parctical-guide-to-trace-route-tracecrt/</guid><description>Traceroute is one of the most misunderstood tools in a network engineer&amp;rsquo;s toolkit. This guide walks through how traceroute actually works, how to read the output correctly, and how to avoid the common pitfalls that lead to wrong conclusions.</description></item><item><title>Add Hard and Soft Limits for Apache Stack</title><link>https://lukehebert.com/post/add-hard-and-soft-limits-for-apache-stack/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/add-hard-and-soft-limits-for-apache-stack/</guid><description>Configure the soft and hard stack limits for the Apache user in /etc/security/limits.conf to prevent segmentation faults caused by insufficient stack space.</description></item><item><title>Additional Kernel Tweaks for IPv4 Broadband</title><link>https://lukehebert.com/post/additional-kernel-tweaks-for-ipv4-boradband/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/additional-kernel-tweaks-for-ipv4-boradband/</guid><description>A practical guide to tuning Linux TCP/IP kernel parameters for high-speed, high-latency broadband connections, covering buffer sizing, timeout adjustments, SYN flood protection, and congestion control selection.</description></item><item><title>Apache Broke on Boot (Because of Course It Did)</title><link>https://lukehebert.com/post/the-following-error-occurs-when-restarting-an-apache-server/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/the-following-error-occurs-when-restarting-an-apache-server/</guid><description>A quick fix for the SSL Library Error 185090057 that appears when restarting Apache, caused by a malformed PEM certificate file. Learn how to validate and correct the certificate format to get your server back online.</description></item><item><title>Apache Tuner</title><link>https://lukehebert.com/post/apache-tuner/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/apache-tuner/</guid><description>Apache Tuner is a Perl script that analyzes your Apache configuration and system resources to surface quick performance wins. Run it, read the suggestions, and tune your MPM, KeepAlive, and worker settings with confidence.</description></item><item><title>Awk Apache Log Files By IP and Date</title><link>https://lukehebert.com/post/awk-apache-log-files-by-ip-and-date/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/awk-apache-log-files-by-ip-and-date/</guid><description>Filter Apache access logs by IP address and date using awk. A quick, practical approach to pulling specific entries without loading a full log viewer.</description></item><item><title>Awk Scan for wp-login</title><link>https://lukehebert.com/post/awk-scan-for-wp-login/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/awk-scan-for-wp-login/</guid><description>A quick awk pipeline to pull wp-login.php access attempts from web server logs and flag IPs that exceed a threshold. Useful for spotting brute-force or scanning activity against WordPress sites.</description></item><item><title>AWS EIP (Elastic IP Assignment Script)</title><link>https://lukehebert.com/post/aws-eip-elastic-ip-assignment-script/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/aws-eip-elastic-ip-assignment-script/</guid><description>A lightweight bash script that automatically allocates and assigns an Elastic IP to an EC2 instance at launch using User Data, eliminating the need for manual IP management.</description></item><item><title>Bash Piped Logging</title><link>https://lukehebert.com/post/bash-piped-logging/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/bash-piped-logging/</guid><description>A quick bash logging setup that uses a named pipe and tee to capture stdout and stderr to a file while keeping the terminal interactive. Five lines of shell code, zero external dependencies.</description></item><item><title>Bash Shell Redirects</title><link>https://lukehebert.com/post/bash-shell-redirects/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/bash-shell-redirects/</guid><description>A quick reference for the most common bash shell redirect operators, with examples showing how to send stdout and stderr to files or swap them.</description></item><item><title>Check and Backup Databases</title><link>https://lukehebert.com/post/check-and-backup-databases/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-and-backup-databases/</guid><description>A quick bash workflow for running integrity checks and generating SQL dumps across a set of user databases in MySQL.</description></item><item><title>Check Apache Stack Limit</title><link>https://lukehebert.com/post/check-apache-stack-limit/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-apache-stack-limit/</guid><description>A quick one-liner to inspect the stack size limit applied to a running Apache httpd process on Linux. Useful when debugging segfaults or tuning worker memory.</description></item><item><title>Check Database and Optimize Everything (-A = all databases)</title><link>https://lukehebert.com/post/check-database-and-optimize-everything-all-databases/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-database-and-optimize-everything-all-databases/</guid><description>A quick reference for running mysqlcheck to verify and optimize MySQL databases, including the -A flag to target every database on the server in one pass.</description></item><item><title>Check Disk State</title><link>https://lukehebert.com/post/check-disk-state/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-disk-state/</guid><description>A quick one-liner to list every mounted ext3 or ext4 partition along with its label and filesystem state, useful for spotting unclean shutdowns or journal issues at a glance.</description></item><item><title>Check for IP Block</title><link>https://lukehebert.com/post/check-for-ip-block/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-for-ip-block/</guid><description>A quick way to verify whether a specific IP address is blocked by iptables rules on a Linux host. Covers the exact command and how to read the output.</description></item><item><title>Check Inode Counts with Formatting</title><link>https://lukehebert.com/post/check-inode-counts-with-formating/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-inode-counts-with-formating/</guid><description>Practical bash one-liners for counting inodes per directory and reporting disk usage with formatted output. Handy when you need a quick snapshot of filesystem pressure without pulling in a full monitoring tool.</description></item><item><title>Check MySQL User Permissions</title><link>https://lukehebert.com/post/check-mysql-user-permissions/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-mysql-user-permissions/</guid><description>A quick way to inspect what SELECT and UPDATE privileges a MySQL user actually holds, straight from the mysql.user table. Useful when an application is throwing permission errors and you need to confirm what the account can and cannot do.</description></item><item><title>Check Web Crawler Impact</title><link>https://lukehebert.com/post/check-web-crawler-impact/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-web-crawler-impact/</guid><description>A quick bash function to identify which search engine crawlers are hitting your Apache logs and how often, so you can spot unusual traffic patterns at a glance.</description></item><item><title>Chroot Suggested Mounts for Rescue</title><link>https://lukehebert.com/post/chroot-suggested-monts-for-rescue/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/chroot-suggested-monts-for-rescue/</guid><description>A quick walkthrough of using virt-rescue to generate the correct mount commands for a chroot rescue session on a libvirt guest.</description></item><item><title>Count Unique Connecting Addresses</title><link>https://lukehebert.com/post/count-unique-connecting-addresses/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/count-unique-connecting-addresses/</guid><description>A quick pipeline using awk, sort, and uniq to count how many times each unique IP address appears in a log file. Handy for spotting the most active or suspicious clients at a glance.</description></item><item><title>Counting Connecting IPs on Port 80 with netstat and ss</title><link>https://lukehebert.com/post/connecting-ip-on-port-80-count-netstat-ss/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/connecting-ip-on-port-80-count-netstat-ss/</guid><description>Two quick one-liners that count how many unique remote IPs are connected to port 80, using either netstat or ss. Handy for spotting unexpected traffic or verifying that only expected clients are hitting your web server.</description></item><item><title>Create a New rndc.key for BIND</title><link>https://lukehebert.com/post/create-a-new-rndc-key-make-sure-the-key-name-is-rndc-key/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/create-a-new-rndc-key-make-sure-the-key-name-is-rndc-key/</guid><description>Generate a fresh rndc.key and wire it into rndc.conf so your BIND name server accepts authenticated remote control commands. Covers the rndc-confgen command and the full rndc.conf structure.</description></item><item><title>Create Symbols and Resolve Stack (MySQL)</title><link>https://lukehebert.com/post/create-symbols-and-resolve-stack-mysql/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/create-symbols-and-resolve-stack-mysql/</guid><description>Learn how to extract dynamic symbols from the mysqld binary and use them to resolve a crash stack dump into readable function names.</description></item><item><title>Crontab Log</title><link>https://lukehebert.com/post/crontab-log/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/crontab-log/</guid><description>Find where cron logs live on your Linux system and learn how to read them to confirm scheduled jobs actually ran.</description></item><item><title>Decode a Certificate CSR</title><link>https://lukehebert.com/post/decode-certificate-csr/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/decode-certificate-csr/</guid><description>Quick openssl commands to inspect a Certificate Signing Request and an issued X.509 certificate in human-readable form.</description></item><item><title>Disable ModSecurity on a Domain via .htaccess</title><link>https://lukehebert.com/post/disable-mod-sec-on-a-domain-htaccess/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/disable-mod-sec-on-a-domain-htaccess/</guid><description>Learn how to turn off ModSecurity for a specific domain or path using a single directive in your .htaccess file. This is useful when a legitimate request is being blocked by the WAF rules.</description></item><item><title>DKIM Verification: Both Must Be Set to On</title><link>https://lukehebert.com/post/dkim-verification-both-must-be-set-to-on/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/dkim-verification-both-must-be-set-to-on/</guid><description>Exim offers two DKIM-related toggles that work together to validate and enforce sender signatures. Setting both to On ensures your mail server actually checks incoming DKIM records and rejects messages that fail validation.</description></item><item><title>DNS Amplification Attack</title><link>https://lukehebert.com/post/dns-amplifcation-attack/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/dns-amplifcation-attack/</guid><description>A DNS amplification attack floods a victim with forged responses by exploiting open resolvers. This post walks through iptables rules and BIND hardening steps to block the attack vector.</description></item><item><title>DNS Resolution and Zone Files</title><link>https://lukehebert.com/post/dns-resolution-and-zone-files/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/dns-resolution-and-zone-files/</guid><description>A practical walkthrough of how DNS resolution works, from the hierarchical name space down to the iterative query process. Includes common zone file syntax mistakes and how to avoid them.</description></item><item><title>Drop All Mail in Exim</title><link>https://lukehebert.com/post/drop-all-mail-in-exim/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/drop-all-mail-in-exim/</guid><description>A quick one-liner to flush every message out of the Exim mail queue. Useful when a misconfigured relay or a flood of bounce messages has clogged up your server.</description></item><item><title>Emergency Extraction: When RPM Bites the Dust</title><link>https://lukehebert.com/post/rpm2cpio/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/rpm2cpio/</guid><description>Learn how to manually decompress an RPM package into a working directory using rpm2cpio and cpio, without installing the package.</description></item><item><title>Filter RPM URLs with awk</title><link>https://lukehebert.com/post/filter-rpm-urls-with-awk/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/filter-rpm-urls-with-awk/</guid><description>A quick awk one-liner that pulls RPM package URLs from log files or package lists by matching lines containing both &amp;lsquo;autoinstall&amp;rsquo; and &amp;lsquo;.rpm&amp;rsquo;.</description></item><item><title>Fixing MySQL Invalid Keys</title><link>https://lukehebert.com/post/fix-mysql-invalid-keys/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/fix-mysql-invalid-keys/</guid><description>A quick bash script to identify and repair MySQL tables with invalid or corrupted MYI key files, then force a rebuild using USE_FRM.</description></item><item><title>Following the Mailman: Tracking Your Email's Route</title><link>https://lukehebert.com/post/verbose-tracking-of-mail-being-sent/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/verbose-tracking-of-mail-being-sent/</guid><description>A quick reference for enabling verbose output when sending mail from the command line, so you can see the full SMTP transaction and diagnose delivery issues.</description></item><item><title>Forceing MySQL Logs to File</title><link>https://lukehebert.com/post/force-mysql-logs-to-file/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/force-mysql-logs-to-file/</guid><description>Learn how to configure MySQL&amp;rsquo;s log_output variable to write slow query and general logs to files instead of tables, and why that matters for performance and log management.</description></item><item><title>Fsck Quick Reference</title><link>https://lukehebert.com/post/fsck/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/fsck/</guid><description>A quick reference for running a forced, verbose ext filesystem check with automatic repairs and timestamped logging.</description></item><item><title>Galera Cluster Performance</title><link>https://lukehebert.com/post/galera-cluster-performance/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/galera-cluster-performance/</guid><description>Tuning Galera&amp;rsquo;s gcache size and page size can reduce disk I/O during replication and keep write-set lookups in memory. A quick configuration change that pays off on busy clusters.</description></item><item><title>gdb Thread Dumps</title><link>https://lukehebert.com/post/gbb-thread-dump/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/gbb-thread-dump/</guid><description>A quick three-command recipe for grabbing a full thread backtrace from a running httpd process with gdb, useful when Apache appears hung or unresponsive.</description></item><item><title>Generate Random Passwords with Perl</title><link>https://lukehebert.com/post/generate-random-passwords-with-perl/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/generate-random-passwords-with-perl/</guid><description>A compact Perl one-liner that produces cryptographically random passwords of a specified length. Perfect for quickly generating strong credentials without reaching for a dedicated tool.</description></item><item><title>Getting Gateway Hostnames from Mail Logs</title><link>https://lukehebert.com/post/get-gateway-hostnamed-from-mail-log/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/get-gateway-hostnamed-from-mail-log/</guid><description>A quick bash one-liner to pull offending IP addresses from exim relay-denied entries and resolve them to hostnames, making it easier to identify which gateways are misconfigured.</description></item><item><title>HTTPS Force Redirect</title><link>https://lukehebert.com/post/https-force-redirect/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/https-force-redirect/</guid><description>A quick Apache mod_rewrite snippet that forces all HTTP traffic to HTTPS, plus context on where to place it and what to watch for.</description></item><item><title>InnoDB Corruption and Recovery Guide</title><link>https://lukehebert.com/post/innodb-corruption-and-recovery-guide/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/innodb-corruption-and-recovery-guide/</guid><description>A practical, step-by-step guide for diagnosing and recovering from common InnoDB corruption issues, covering first response, log analysis, checksum verification, and data restoration techniques.</description></item><item><title>IP Tables Rate Limit Apache</title><link>https://lukehebert.com/post/ip-tables-rate-limit-apache/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ip-tables-rate-limit-apache/</guid><description>A quick way to throttle inbound HTTP traffic to your Apache server using iptables, protecting it from traffic spikes and simple DoS attempts.</description></item><item><title>IP Tables Rate Limit Bad Bots</title><link>https://lukehebert.com/post/ip-tables-rate-limit-bad-bots/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ip-tables-rate-limit-bad-bots/</guid><description>Use iptables string matching and the recent module to drop connections from abusive bots that exceed a request threshold within a short window.</description></item><item><title>Just a quick way to look at Inode Counts</title><link>https://lukehebert.com/post/inode-counts/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/inode-counts/</guid><description>A quick bash one-liner to identify which directories are consuming the most inodes on a Linux system, helping you pinpoint the source of &amp;lsquo;No space left on device&amp;rsquo; errors when disk space still appears available.</description></item><item><title>Locate Files Based on Time Modified with find</title><link>https://lukehebert.com/post/locate-files-based-on-time-modified-how-many-days-since-it-has-been-modified/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/locate-files-based-on-time-modified-how-many-days-since-it-has-been-modified/</guid><description>A quick reference for using find with -mtime and -mmin to locate files by how long ago they were last modified, including the common off-by-one confusion around the +1 flag.</description></item><item><title>Locate Largest Files Top 10</title><link>https://lukehebert.com/post/locate-largest-files-top-10/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/locate-largest-files-top-10/</guid><description>A quick one-liner to identify the ten largest files or directories under any path. Useful when disk space is tight and you need to find what is eating your storage.</description></item><item><title>Lsof Check Listening Ports</title><link>https://lukehebert.com/post/lsof-check-listening-ports/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/lsof-check-listening-ports/</guid><description>A quick way to list every port a process is listening on, using lsof and a simple grep filter. Handy for troubleshooting connectivity issues or auditing what services are exposed on a host.</description></item><item><title>Making the Cut: Slicing Up Text in the Linux CLI</title><link>https://lukehebert.com/post/usage-of-cut/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/usage-of-cut/</guid><description>A quick reference for the cut command, covering how to split text by a delimiter and extract specific fields. Useful for parsing CSV, log files, and other delimited data from the command line.</description></item><item><title>Memory by Process</title><link>https://lukehebert.com/post/memory-by-process/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/memory-by-process/</guid><description>A quick one-liner to group running processes by name and rank them by memory usage. Handy when you need to spot which services are eating RAM without pulling up a full top or htop session.</description></item><item><title>Mod Deflate Rules</title><link>https://lukehebert.com/post/mod-deflate-rules/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mod-deflate-rules/</guid><description>Apache mod_deflate compresses outgoing responses to reduce bandwidth and speed up page loads. This post covers the AddOutputFilterByType directives needed to enable compression for common content types.</description></item><item><title>Mod Remote IP</title><link>https://lukehebert.com/post/mod-remote-ip/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mod-remote-ip/</guid><description>A troubleshooting walkthrough for getting mod_remoteip working correctly under Apache 2.4 and cPanel, including the right LogFormat directives and RemoteIP configuration so that access logs, mod_security, and other modules all see the real client IP.</description></item><item><title>Mod Rewrite and Blocking Bad Bot</title><link>https://lukehebert.com/post/mod-rewrite-block-bad-bot/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mod-rewrite-block-bad-bot/</guid><description>A quick Apache mod_rewrite snippet that returns a 403 Forbidden to any request whose User-Agent matches a bot pattern. Drop it into your .htaccess and you are done.</description></item><item><title>Mod_qos Tailblock</title><link>https://lukehebert.com/post/mod-qos-tailblock/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mod-qos-tailblock/</guid><description>A lightweight bash script that monitors Apache error logs for repeated access-denied entries and automatically blocks offending IPs via iptables. Useful for quick-and-dirty rate-based blocking without a full WAF.</description></item><item><title>Monitor DNS Zone Reload</title><link>https://lukehebert.com/post/monitor-dns-zone-reload/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/monitor-dns-zone-reload/</guid><description>A quick workflow for triggering a DNS zone reload with rndc and confirming the result in the system log. Covers the two commands you need and what to look for in the output.</description></item><item><title>Mount a Labeled Drive Like Backup</title><link>https://lukehebert.com/post/mount-a-labeled-drive-like-backup/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mount-a-labeled-drive-like-backup/</guid><description>Learn how to mount a filesystem by its label in /etc/fstab so your mount points stay stable across reboots and hardware changes.</description></item><item><title>Multi-test (Emulating a Busy Server)</title><link>https://lukehebert.com/post/multi-test-emulating-a-busy-server/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/multi-test-emulating-a-busy-server/</guid><description>A Perl-based utility that emulates a busy server by spawning multiple threads performing varied IO workloads. It uses direct IO and cache invalidation to benchmark raw disk performance in a multitasking environment.</description></item><item><title>Multi-Zone Views for BIND9 (Split Horizon)</title><link>https://lukehebert.com/post/multi-zone-views-for-bind9-internal-external-etc/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/multi-zone-views-for-bind9-internal-external-etc/</guid><description>Learn how to configure BIND9 views to serve different DNS records to internal and external clients from a single server. This guide walks through zone files, ACLs, recursion control, and the $include directive to keep your setup clean and secure.</description></item><item><title>My Trace Route (mtr) Packet Loss Testing</title><link>https://lukehebert.com/post/my-trace-route-mtr-packet-loss-testing/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/my-trace-route-mtr-packet-loss-testing/</guid><description>A quick walkthrough of using mtr in report mode to capture packet loss data across network hops. Learn how to run a 30-cycle test and read the output to isolate where loss is occurring.</description></item><item><title>MyISAMchk</title><link>https://lukehebert.com/post/myisamchk/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/myisamchk/</guid><description>A quick reference for repairing corrupted MyISAM index files with myisamchk, including the exact command and what to expect when running it against a database directory.</description></item><item><title>MySQL Fragmentation Levels</title><link>https://lukehebert.com/post/mysql-fragmentation-levels/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mysql-fragmentation-levels/</guid><description>Learn how to measure InnoDB table fragmentation using information_schema queries and interpret the resulting ratio to decide when a table needs optimization.</description></item><item><title>MySQL General Log</title><link>https://lukehebert.com/post/mysql-general-log/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mysql-general-log/</guid><description>A quick walkthrough of enabling, configuring, and querying the MySQL general log to capture every statement that hits your server.</description></item><item><title>MySQL Grants</title><link>https://lukehebert.com/post/mysql-grants/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mysql-grants/</guid><description>A quick reference for viewing and applying MySQL GRANT statements, including the specific privileges needed for routine and view management.</description></item><item><title>MySQL Joins</title><link>https://lukehebert.com/post/mysql-joins/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mysql-joins/</guid><description>A quick reference for the four types of SQL JOIN operations in MySQL, with plain-language explanations and a simple example for each.</description></item><item><title>Netstat and SS: Check Listening Ports</title><link>https://lukehebert.com/post/netstat-ss-check-listening-ports/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/netstat-ss-check-listening-ports/</guid><description>A quick reference for checking listening ports on Linux using netstat and ss, including the flags that matter and what each output column means.</description></item><item><title>Nginx Flood Protection with limit_req</title><link>https://lukehebert.com/post/ngins-flood-protection-with-limit-req/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ngins-flood-protection-with-limit-req/</guid><description>A practical walkthrough of Nginx&amp;rsquo;s limit_req module, showing how to cap request rates and protect PHP endpoints from HTTP-based denial-of-service attacks.</description></item><item><title>Nginx Load Balancing</title><link>https://lukehebert.com/post/nginx-load-balancing/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/nginx-load-balancing/</guid><description>A practical walkthrough of setting up Nginx round-robin load balancing, including upstream configuration, weighted distribution, IP hashing, and failover directives.</description></item><item><title>Nginx Multiple Conditional Test</title><link>https://lukehebert.com/post/nginx-multiple-conditional-test/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/nginx-multiple-conditional-test/</guid><description>Learn how to chain multiple if conditions in Nginx to build a composite variable and route traffic based on the combined result.</description></item><item><title>Nginx ngx_http_rewrite_module</title><link>https://lukehebert.com/post/nginx-mod-rewrite-module/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/nginx-mod-rewrite-module/</guid><description>A practical reference for Nginx&amp;rsquo;s ngx_http_rewrite_module, covering the break, if, return, rewrite, set, and related directives with working examples and processing-order details.</description></item><item><title>Nginx Non-standard Status Silent Connection Close</title><link>https://lukehebert.com/post/nginx-non-standard-status-silent-connection-close/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/nginx-non-standard-status-silent-connection-close/</guid><description>Nginx status code 444 silently drops a connection without sending any HTTP response to the client. Learn when and how to use it for security and traffic management.</description></item><item><title>Noapic</title><link>https://lukehebert.com/post/noapic/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/noapic/</guid><description>The noapic kernel parameter disables the Advanced Programmable Interrupt Controller, a useful workaround for interrupt routing issues on older or misconfigured systems.</description></item><item><title>NUMA and MySQL Swap Insanity</title><link>https://lukehebert.com/post/numa-mysql-swap-insanity/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/numa-mysql-swap-insanity/</guid><description>A deep dive into why MySQL on NUMA systems suffers from unpredictable swapping, and how a single numactl interleave fix eliminates the problem entirely.</description></item><item><title>NUMA: An Update to the MySQL Swap Insanity</title><link>https://lukehebert.com/post/numa-update-to-mysql-swap-insanity/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/numa-update-to-mysql-swap-insanity/</guid><description>A follow-up to the original MySQL NUMA swap post, explaining why the real issue is memory pressure on a single NUMA node rather than swap itself, and outlining a three-part solution for balanced allocation in production.</description></item><item><title>Percona Xtradb Recovery</title><link>https://lukehebert.com/post/percona-xtradb-recovery/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/percona-xtradb-recovery/</guid><description>Percona XtraDB Cluster can recover a crashed node and rejoin it to the cluster using an incremental state transfer. This post walks through how GTID-based position recovery works under the hood and what you will see in the error log during the process.</description></item><item><title>Permission Rescue: getfacl to Save Your Future Self</title><link>https://lukehebert.com/post/restore-permissions-on-or-get-permissions-on-all-files-and-folder-in/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/restore-permissions-on-or-get-permissions-on-all-files-and-folder-in/</guid><description>A quick reference for backing up and restoring full ACL permissions across an entire directory tree using getfacl and setfacl.</description></item><item><title>ps aux States</title><link>https://lukehebert.com/post/ps-aux-states/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ps-aux-states/</guid><description>A quick reference for the process state codes shown in the STAT column of ps aux, including both standard and BSD-specific flags.</description></item><item><title>RAID Error Code Key Qualifiers</title><link>https://lukehebert.com/post/raid-error-code-key-qualifers/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/raid-error-code-key-qualifers/</guid><description>A quick reference for understanding the key qualifiers that appear in RAID controller error codes, so you can pinpoint the exact failure condition instead of guessing from a generic error message.</description></item><item><title>Regex Quick Reference</title><link>https://lukehebert.com/post/regex/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/regex/</guid><description>A practical cheat sheet covering common regex patterns, Perl-compatible lookarounds, and character classes for everyday text processing in bash and grep.</description></item><item><title>Reject with Comment</title><link>https://lukehebert.com/post/reject-with-comment/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/reject-with-comment/</guid><description>A quick iptables one-liner to reject TCP traffic from a specific source IP with a TCP reset, tagged with a human-readable comment for future reference.</description></item><item><title>Saving Your Bacon with Linux RCS</title><link>https://lukehebert.com/post/linux-rcs/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/linux-rcs/</guid><description>A quick reference for the core RCS (Revision Control System) commands used to initialize, check in, check out, and log file revisions on a Linux system.</description></item><item><title>Show Global Maximum SQL Connections in Use</title><link>https://lukehebert.com/post/show-global-maximum-sql-connections-in-use/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/show-global-maximum-sql-connections-in-use/</guid><description>A quick MySQL command to check the peak number of simultaneous connections your server has handled, useful for capacity planning and diagnosing connection bottlenecks.</description></item><item><title>Stop Slow Loris Attacks</title><link>https://lukehebert.com/post/stop-slow-loris-attacks/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/stop-slow-loris-attacks/</guid><description>Slow Loris attacks tie up web server sockets with trickling requests until legitimate traffic is starved. This post walks through configuring Apache mod_qos to detect and block those connections automatically.</description></item><item><title>Sync MySQL Time</title><link>https://lukehebert.com/post/sync-mysql-time/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/sync-mysql-time/</guid><description>A quick procedure to verify and correct a time mismatch between the host system clock and MySQL&amp;rsquo;s internal NOW() function, using a simple service restart.</description></item><item><title>The Inode Rescue: Finding Lost Souls with Printf</title><link>https://lukehebert.com/post/find-command-printf-switches-lost-found-and-find-output-format/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/find-command-printf-switches-lost-found-and-find-output-format/</guid><description>A quick reference for GNU find -printf format switches, with practical examples for inspecting file ownership, size, and mode. Includes a use case for auditing files recovered into lost+found after a filesystem check.</description></item><item><title>Understanding Linux Permissions</title><link>https://lukehebert.com/post/understanding-linux-permissions/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/understanding-linux-permissions/</guid><description>A practical breakdown of how Linux file permissions work, including the symbolic and numeric chmod methods, special bits like setuid and sticky, and how permissions differ between files and directories.</description></item><item><title>Understanding Load Averages</title><link>https://lukehebert.com/post/understanding-load-averages/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/understanding-load-averages/</guid><description>A practical guide to reading Linux load averages, with a traffic analogy that makes the numbers click. Learn the thresholds that matter, how multi-core systems change the math, and which of the three averages to watch.</description></item><item><title>Unmounted Disk Labels</title><link>https://lukehebert.com/post/unmounted-disk-labels/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/unmounted-disk-labels/</guid><description>A quick bash one-liner that lists every disk label present in /dev/disk/by-label/ that is not currently mounted, so you can spot forgotten or orphaned volumes at a glance.</description></item><item><title>Updating VM Memory Usage Configs</title><link>https://lukehebert.com/post/update-vm-memory-usage/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/update-vm-memory-usage/</guid><description>Tune Linux VM memory behavior by adjusting vfs_cache_pressure, dirty_ratio, and swappiness to reduce unnecessary swapping and improve I/O throughput.</description></item><item><title>User Performance Data on MySQL</title><link>https://lukehebert.com/post/user-performance-data-on-mysql/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/user-performance-data-on-mysql/</guid><description>A quick bash one-liner that pulls per-user CPU time, connection counts, and active session details from MySQL&amp;rsquo;s INFORMATION_SCHEMA and processlist tables.</description></item><item><title>Using an htaccess file to rewrite a block page with Apache</title><link>https://lukehebert.com/post/rewrite-block-page-check-for-patterns-check-google/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/rewrite-block-page-check-for-patterns-check-google/</guid><description>Use Apache mod_rewrite to return a 400 error for a specific URI and optionally block hotlinking from other domains. A quick .htaccess snippet that keeps unwanted traffic off a single page.</description></item><item><title>AWS VPC Overview &amp; Component Breakdown</title><link>https://lukehebert.com/post/aws-vpc-structure/</link><pubDate>Tue, 18 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/aws-vpc-structure/</guid><description>A visual walkthrough of the core networking components that make up an Amazon VPC, from subnets and gateways to security groups and route tables. Understanding how these pieces interact is essential for designing secure, well-segmented cloud networks.</description></item><item><title>Structure of an AWS IAM Policy</title><link>https://lukehebert.com/post/structure-of-an-iam-policy/</link><pubDate>Tue, 18 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/structure-of-an-iam-policy/</guid><description>An overview of how AWS IAM policies are structured, including the six policy types and the key elements of a policy document. Learn how to apply the principle of least privilege when defining permissions.</description></item><item><title>The Golden Ticket: Kerberos’ Forbidden Pass</title><link>https://lukehebert.com/post/golden-ticket-attack/</link><pubDate>Mon, 15 Nov 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/golden-ticket-attack/</guid><description>A Golden Ticket attack lets an attacker forge Kerberos tickets and impersonate any user in an Active Directory domain. Learn how the attack works and the concrete steps you can take to defend against it.</description></item><item><title>Resetting AD KRBTGT Password</title><link>https://lukehebert.com/post/resetting-ad-krbtgt-password/</link><pubDate>Fri, 05 Nov 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/resetting-ad-krbtgt-password/</guid><description>A practical guide to resetting the krbtgt account password in Active Directory, including considerations for external trusts and the Microsoft-provided reset script.</description></item><item><title>Kerberos Issue Tracker</title><link>https://lukehebert.com/post/kerberos-issue-tracker/</link><pubDate>Fri, 24 Sep 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-issue-tracker/</guid><description>A quick reference for the MIT Kerberos project issue tracker, where bugs, security advisories, and feature requests for the reference Kerberos implementation are tracked and resolved.</description></item><item><title>IPv4 Kernel Stack Optimizations</title><link>https://lukehebert.com/post/ipv4-kernel-stack-optimizations/</link><pubDate>Tue, 07 Sep 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ipv4-kernel-stack-optimizations/</guid><description>A practical walkthrough for tuning Linux TCP/IP stack parameters, from selecting a congestion control algorithm to applying sysctl settings for high-throughput workloads.</description></item><item><title>Kafka Dump</title><link>https://lukehebert.com/post/kafka-dump/</link><pubDate>Wed, 25 Aug 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kafka-dump/</guid><description>A practical walkthrough for dumping Kafka topic data, including a generic consumer approach and a full Atlas-specific workflow covering JAAS configuration, Kerberos authentication, and log extraction.</description></item><item><title>Dump Kafka Atlas Topic to Review Messages</title><link>https://lukehebert.com/post/dump-kafka-atlas-topic-to-review-messages/</link><pubDate>Fri, 20 Aug 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/dump-kafka-atlas-topic-to-review-messages/</guid><description>A quick walkthrough for dumping the ATLAS_HOOK Kafka topic to inspect Atlas hook messages locally, including Kerberos authentication setup and consumer lag checks.</description></item><item><title>Hive Bundle Logs</title><link>https://lukehebert.com/post/hive-bundle-logs/</link><pubDate>Thu, 19 Aug 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/hive-bundle-logs/</guid><description>Hive bundle logs in a cloud data warehouse are stored under a predictable S3 path. Knowing where to look saves time when troubleshooting query performance or diagnosing failed jobs.</description></item><item><title>Deploy CFSSL CA Server</title><link>https://lukehebert.com/post/deploy-cfssl-ca-server/</link><pubDate>Mon, 02 Aug 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/deploy-cfssl-ca-server/</guid><description>A step-by-step guide to deploying a CFSSL-backed certificate authority with PostgreSQL storage, OCSP responder, and CRL distribution. Covers installation, CA initialization, service configuration, and Nginx reverse proxy setup.</description></item><item><title>AWS ARN Structure</title><link>https://lukehebert.com/post/aws-arn-structure/</link><pubDate>Thu, 29 Jul 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/aws-arn-structure/</guid><description>Every AWS resource is uniquely identified by an Amazon Resource Name (ARN) used in IAM policies, API calls, and resource references. This post breaks down the standard ARN format into its individual components for easy reading and construction.</description></item><item><title>AWS Volume Juggling for Impaired Nodes and Node Health Check</title><link>https://lukehebert.com/post/aws-volume-juggling-for-impaired-nodes-and-node-health-check/</link><pubDate>Wed, 28 Jul 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/aws-volume-juggling-for-impaired-nodes-and-node-health-check/</guid><description>A practical guide to diagnosing impaired EC2 instances by detaching and reattaching EBS root volumes to a rescue instance. Covers the full workflow from stopping the impaired node to restoring it to normal service.</description></item><item><title>Delete Existing Users From Ranger</title><link>https://lukehebert.com/post/delete-existing-users-from-ranger/</link><pubDate>Tue, 06 Jul 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/delete-existing-users-from-ranger/</guid><description>A quick walkthrough of using the Ranger REST API to bulk-delete existing users, including how to capture an auth cookie and loop through a user list with curl.</description></item><item><title>Debug Kerberos Gen Credentials in CM</title><link>https://lukehebert.com/post/debug-kerberos-gen-credentials-in-cm/</link><pubDate>Wed, 10 Feb 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/debug-kerberos-gen-credentials-in-cm/</guid><description>Learn how to enable Kerberos trace logging in Cloudera Manager&amp;rsquo;s credential generation scripts to diagnose authentication failures quickly.</description></item><item><title>Spark Token Debug</title><link>https://lukehebert.com/post/spark-token-debug/</link><pubDate>Thu, 04 Feb 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/spark-token-debug/</guid><description>Enable verbose Kerberos and token logging on Spark driver and executor nodes to capture the diagnostic data you need when authentication is failing. Covers log4j configuration files and the exact spark-submit flags to wire them in.</description></item><item><title>Explain Kerberos Like I'm 5</title><link>https://lukehebert.com/post/explain-kerberos-like-im-5/</link><pubDate>Thu, 10 Dec 2020 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/explain-kerberos-like-im-5/</guid><description>A plain-English walkthrough of how Kerberos authentication works, using a simple analogy to make the ticket-granting process click. Perfect for anyone who has stared at a KDC diagram and felt lost.</description></item><item><title>LDAPS and UnicodePWD</title><link>https://lukehebert.com/post/ldaps-and-unicodepwd/</link><pubDate>Tue, 01 Dec 2020 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ldaps-and-unicodepwd/</guid><description>LDAPS is a hard requirement when setting passwords via unicodePwd on Active Directory. Non-TLS connections are rejected by AD itself, and SASL is not a supported alternative.</description></item><item><title>Common Error Codes for Active Directory Authentication</title><link>https://lukehebert.com/post/common-error-codes-for-active-directory-authentication-acceptsecuritycontext/</link><pubDate>Tue, 24 Nov 2020 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/common-error-codes-for-active-directory-authentication-acceptsecuritycontext/</guid><description>A quick reference for the LDAP error codes returned during Active Directory bind operations, including what each code means and how to interpret the AcceptSecurityContext error message.</description></item><item><title>Cannot Find Key of Appropriate Type, Kerberoasting &amp; Hadoop</title><link>https://lukehebert.com/post/cannot-find-key-of-the-appropriate-type-to-decrypt-ap-rep/</link><pubDate>Tue, 03 Nov 2020 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/cannot-find-key-of-the-appropriate-type-to-decrypt-ap-rep/</guid><description>A troubleshooting guide for the Kerberos error &amp;lsquo;Cannot find key of the appropriate type to decrypt AP REP,&amp;rsquo; covering encryption type mismatches between keytabs and Active Directory, plus practical steps to align AES and RC4 settings.</description></item><item><title>Is Unlimited JCE Working? How to Actually Test It</title><link>https://lukehebert.com/post/unlimited-strength-jce-availability/</link><pubDate>Tue, 07 Jul 2020 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/unlimited-strength-jce-availability/</guid><description>A quick reference for which JDK releases ship with Unlimited Strength JCE enabled by default, plus a small test program to verify your environment.</description></item><item><title>Why You Can't Afford to Ignore the TLS Version Field</title><link>https://lukehebert.com/post/what-is-the-significance-of-the-version-field-in-a-tls-1-1-clienthello-message/</link><pubDate>Tue, 04 Dec 2018 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/what-is-the-significance-of-the-version-field-in-a-tls-1-1-clienthello-message/</guid><description>The version field in a TLS ClientHello message tells the server the highest protocol version the client supports, but it appears in three distinct places with different roles. Understanding where and how each version field is used helps troubleshoot handshake failures and interoperability issues with legacy implementations.</description></item><item><title>Checking Hole Punching</title><link>https://lukehebert.com/post/checking-hole-punching/</link><pubDate>Tue, 06 Feb 2018 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/checking-hole-punching/</guid><description>Learn how to verify that your file system supports hole punching by creating a test file, punching a hole with fallocate, and confirming the space savings with du.</description></item><item><title>HDFS NameNode Memory Sizing When Using HDFS Encryption</title><link>https://lukehebert.com/post/hdfs-named-node-memory-sizing-when-using-hdfs-encryption/</link><pubDate>Thu, 11 Jan 2018 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/hdfs-named-node-memory-sizing-when-using-hdfs-encryption/</guid><description>Enabling HDFS encryption at rest adds per-file metadata overhead to the NameNode heap. This guide breaks down the memory impact and gives a practical rule of thumb for right-sizing your NameNode heap.</description></item><item><title>Match a TLS Certificate with Its Private Key</title><link>https://lukehebert.com/post/match-a-tls-certificate-with-its-private-key/</link><pubDate>Tue, 21 Nov 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/match-a-tls-certificate-with-its-private-key/</guid><description>Lose track of which private key pairs with which certificate? Use OpenSSL to compare public key hashes and confirm the match in seconds.</description></item><item><title>LDAP Server-Side and Client-Side Result-Error Codes</title><link>https://lukehebert.com/post/ldap-server-side-and-client-side-result-error-codes/</link><pubDate>Tue, 17 Oct 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ldap-server-side-and-client-side-result-error-codes/</guid><description>A quick reference for LDAP result and error codes, covering both server-side responses and client-side indicators, including Active Directory-specific sub-codes under error 49.</description></item><item><title>Kerberos Encryption Type By Number (enctype)</title><link>https://lukehebert.com/post/kerberos-encryption-type-by-number-enctype/</link><pubDate>Thu, 07 Sep 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-encryption-type-by-number-enctype/</guid><description>A quick reference for Kerberos enctype numbers and what they map to, so you can stop guessing which cipher a ticket is actually using.</description></item><item><title>HDFS Proxy Users</title><link>https://lukehebert.com/post/hdfs-proxy-users/</link><pubDate>Wed, 06 Sep 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/hdfs-proxy-users/</guid><description>HDFS proxy users let you configure impersonation so specific users can submit jobs or access HDFS on behalf of others. This guide covers the core-site.xml properties, host and group restrictions, and Kerberos considerations for secure clusters.</description></item><item><title>PTR Records &amp; Kerberos</title><link>https://lukehebert.com/post/ptr-records/</link><pubDate>Tue, 05 Sep 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ptr-records/</guid><description>A valid PTR record must resolve to a name that resolves back to the original address. Multiple PTR records for a single address break name resolution and can cause Kerberos ticket verification to fail.</description></item><item><title>The Unspecified Crime of the Failed Checksum</title><link>https://lukehebert.com/post/failure-unspecified-at-gss-api-level-mechanism-level-checksum-failed/</link><pubDate>Thu, 31 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/failure-unspecified-at-gss-api-level-mechanism-level-checksum-failed/</guid><description>A quick reference for the six most common causes of the Kerberos GSS-API checksum failure error, from wrong passwords to time skew and SPNEGO canonicalization issues.</description></item><item><title>Realm Detection and Pathing in the JSSE (Java)</title><link>https://lukehebert.com/post/crealm-and-srealm-for-java-sun-security-krb5-realm.java-realm-detection-and-pathing/</link><pubDate>Tue, 22 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/crealm-and-srealm-for-java-sun-security-krb5-realm.java-realm-detection-and-pathing/</guid><description>A look at how Java&amp;rsquo;s built-in Kerberos implementation uses cRealm and sRealm to determine the path between client and service realms, including hierarchical traversal and capaths configuration.</description></item><item><title>"Not That Key!" No, Your Other Key...</title><link>https://lukehebert.com/post/specified-version-of-key-is-not-available-44/</link><pubDate>Mon, 21 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/specified-version-of-key-is-not-available-44/</guid><description>Kerberos error 44 occurs when the keytab KVNO does not match the KDC database. This guide walks through diagnosing the mismatch and regenerating the keytab to restore authentication.</description></item><item><title>Java SSLHandshakeException: No Cipher Suites in Common</title><link>https://lukehebert.com/post/java-sslhandshakeexception-no-cipher-suites-in-common/</link><pubDate>Mon, 21 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/java-sslhandshakeexception-no-cipher-suites-in-common/</guid><description>A common Java SSL handshake failure stems from passing a null KeyManager array when initializing the SSLContext, which silently disables all certificate-based cipher suites. This post walks through the root cause and the four most frequent triggers behind the error.</description></item><item><title>Handling Multiple CNs on a Single Certificate</title><link>https://lukehebert.com/post/handling-multiple-cns-on-a-single-certificate/</link><pubDate>Fri, 18 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/handling-multiple-cns-on-a-single-certificate/</guid><description>Multiple CNs in a certificate Subject field are deprecated and cause compatibility failures. The SAN extension is the correct way to cover multiple names on a single certificate.</description></item><item><title>Error 53: The Server Has Left the Chat</title><link>https://lukehebert.com/post/server-is-unwilling-to-perform-53/</link><pubDate>Wed, 16 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/server-is-unwilling-to-perform-53/</guid><description>LDAP error 53 means the destination server is refusing a password change request. This post walks through the most common Active Directory requirements and policy settings that trigger the error.</description></item><item><title>Lost in the Realm: Kerberos Dropped the Map Again</title><link>https://lukehebert.com/post/server-not-found-kerberos/</link><pubDate>Wed, 16 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/server-not-found-kerberos/</guid><description>A quick troubleshooting guide for the &amp;lsquo;Server not found in Kerberos database&amp;rsquo; error, covering the four most common root causes and how to verify each one.</description></item><item><title>Check Hue Credentials and Flags (Kerberos)</title><link>https://lukehebert.com/post/check-hue-credentials-or-keytab-credentials-and-credential-flags-kerberos/</link><pubDate>Fri, 04 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-hue-credentials-or-keytab-credentials-and-credential-flags-kerberos/</guid><description>Walk through inspecting a Hue keytab file, verifying its principals with klist, and confirming that the resulting ticket carries the Renewable flag Hue requires for long-running service operations.</description></item><item><title>SAML Custom Attributes in Hue</title><link>https://lukehebert.com/post/saml-custom-attributes-in-hue/</link><pubDate>Fri, 21 Jul 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/saml-custom-attributes-in-hue/</guid><description>Hue returns a Permission Denied error when the IDP sends custom SAML attributes that pysaml2 cannot map. This guide walks through creating an attribute mapping file and configuring Hue to resolve the issue.</description></item><item><title>400 Cannot Find Key of Appropriate Type to Decrypt AP REP</title><link>https://lukehebert.com/post/400-cannot-find-key-of-appropriate-type-to-decrypt-ap-rep/</link><pubDate>Tue, 18 Jul 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/400-cannot-find-key-of-appropriate-type-to-decrypt-ap-rep/</guid><description>A practical troubleshooting guide for the Kerberos AP REP decryption error, covering the most common causes from keytab mismatches to encryption type misconfigurations.</description></item><item><title>Trace Kerberos in the CLI</title><link>https://lukehebert.com/post/trace-kerberos-in-the-cli/</link><pubDate>Thu, 29 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/trace-kerberos-in-the-cli/</guid><description>Kerberos authentication failures can be frustrating to debug. Setting the KRB5_TRACE environment variable gives you detailed library-level logging that pinpoints exactly where the exchange breaks down.</description></item><item><title>Active Directory Error Types: Kerberos Client Credentials Revoked</title><link>https://lukehebert.com/post/active-directory-error-types-ad_mit-client-credentials-revoked/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/active-directory-error-types-ad_mit-client-credentials-revoked/</guid><description>A quick reference for diagnosing Kerberos authentication failures in Active Directory, covering the lockout state machine and the specific error codes (5be, 775, 18) that indicate revoked credentials or a locked account.</description></item><item><title>AES-NI Encryption in Flight for HDFS</title><link>https://lukehebert.com/post/aes-ni-encryption-in-flight-for-hdfs/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/aes-ni-encryption-in-flight-for-hdfs/</guid><description>Configure AES-NI accelerated encryption in transit for HDFS by setting the cipher suite and key length in hdfs-site.xml on both the NameNode/DataNode and client sides.</description></item><item><title>Alternate KRB5.conf Location</title><link>https://lukehebert.com/post/alternate-krb5.conf-location/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/alternate-krb5.conf-location/</guid><description>Java reads its Kerberos configuration from a fixed set of paths before falling back to the system default. Setting KRB5_CONFIG lets you point a Java application at a custom krb5.conf without touching the OS-level file.</description></item><item><title>Are Unix Users Required for Hadoop</title><link>https://lukehebert.com/post/are-unix-users-required-for-hadoop/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/are-unix-users-required-for-hadoop/</guid><description>Hadoop requires OS-level user accounts on every cluster node regardless of security configuration. This post explains why, covering both secure and simple mode, and addresses whether the requirement can be removed.</description></item><item><title>Check Entropy Levels on Linux</title><link>https://lukehebert.com/post/check-entropy-levels-on-linux/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-entropy-levels-on-linux/</guid><description>Learn how to check and interpret the kernel entropy pool on Linux, why low entropy can slow down SSL handshakes and SSH sessions, and what to do when the pool runs dry.</description></item><item><title>Check Hostname Resolution Forward and Backward Using Python or Java</title><link>https://lukehebert.com/post/check-dns-hostname-resolution-forward-and-backward-python-java/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-dns-hostname-resolution-forward-and-backward-python-java/</guid><description>Inconsistent forward and reverse DNS lookups can cause a cascade of cluster and security issues. This guide walks through quick Python and Java one-liners to verify that your hostname, IP, and reverse record all line up.</description></item><item><title>Checking AES-NI Availability</title><link>https://lukehebert.com/post/checking-aes-ni-availability/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/checking-aes-ni-availability/</guid><description>A quick reference for verifying AES-NI hardware acceleration across Java, OpenSSL, and the CPU itself. Includes benchmark commands to confirm the instruction set is actually being used.</description></item><item><title>Checking Host Resolution Using getent</title><link>https://lukehebert.com/post/checking-host-resolution-using-getent/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/checking-host-resolution-using-getent/</guid><description>A quick reference for using getent to verify how your Linux system resolves hostnames, short names, and IP addresses through the full NSS chain.</description></item><item><title>Cleanup Alternatives</title><link>https://lukehebert.com/post/cleanup-alternatives/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/cleanup-alternatives/</guid><description>A quick procedure for resolving Cloudera Manager agent failures caused by corrupted system alternatives entries, including the exact commands to stop the agent, purge stale alternatives, and restart cleanly.</description></item><item><title>CM License API Update</title><link>https://lukehebert.com/post/cm-license-api-update/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/cm-license-api-update/</guid><description>A quick reference for updating a Cloudera Manager license through the REST API using a single curl command, including the required headers and authentication.</description></item><item><title>CM Timezone Does Not Match</title><link>https://lukehebert.com/post/cm-timezone-does-not-match/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/cm-timezone-does-not-match/</guid><description>Cloudera Manager raises a timezone mismatch alert when the OS clock files disagree with the timezone CM expects. This post walks through the three key files to check and how to align them.</description></item><item><title>Compare KVNO in DB and in Keytab (These Should Match)</title><link>https://lukehebert.com/post/compare-knvo-in-db-and-in-keytab-these-should-match/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/compare-knvo-in-db-and-in-keytab-these-should-match/</guid><description>A quick two-step check to confirm the Kerberos key version number in your KDC database matches the value stored in a local keytab file. Mismatched KVNO values are a common cause of authentication failures in Hadoop and other Kerberized services.</description></item><item><title>Delete Hue Users</title><link>https://lukehebert.com/post/delete-hue-users/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/delete-hue-users/</guid><description>Hue does not provide a built-in UI option to remove user accounts. This workaround uses the Hue Django shell to delete one or more users directly from the database, with a clear caveat that the process is unsupported.</description></item><item><title>Determine If a Datanode Is Dead (Formula)</title><link>https://lukehebert.com/post/determine-is-a-datanode-is-dead-formula/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/determine-is-a-datanode-is-dead-formula/</guid><description>A quick reference for calculating the exact timeout window before Hadoop marks a Datanode as dead, based on the heartbeat and recheck-interval settings.</description></item><item><title>hostname and hostname -f (Not Getting FQDN)</title><link>https://lukehebert.com/post/hostname-and-hostname-f-not-getting-fqdn/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/hostname-and-hostname-f-not-getting-fqdn/</guid><description>When hostname -f returns a short name instead of a fully qualified domain name, the issue usually traces back to the HOSTNAME variable in /etc/sysconfig/network or a misconfigured /etc/hosts entry. Understanding the difference between the gethostname and gethostbyname system calls makes the fix straightforward.</description></item><item><title>How to Enable Kerberos Event Logging (Windows)</title><link>https://lukehebert.com/post/how-to-enable-kerberos-event-logging-windows/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-enable-kerberos-event-logging-windows/</guid><description>Kerberos authentication failures can be tricky to diagnose without detailed logging. This guide walks you through enabling Kerberos event logging on a Windows machine via the registry so you can capture authentication events in the system log.</description></item><item><title>Java (JVM) Debugging Tools</title><link>https://lukehebert.com/post/java-jvm-debugging-tools/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/java-jvm-debugging-tools/</guid><description>A quick reference for the most useful JVM debugging commands, including heap inspection, environment introspection, and enabling GC logging on a running Java process.</description></item><item><title>JDK Breakdowns for Web UI and SPNEGO (u92, u91, u40, u45)</title><link>https://lukehebert.com/post/jdk-break-downs-for-web-ui-and-spengo-u92_u91_u40_u45/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/jdk-break-downs-for-web-ui-and-spengo-u92_u91_u40_u45/</guid><description>Specific JDK 1.8.0 builds (u40, u45, u91, u92) are known to break SPNEGO authentication and Hadoop web interfaces. This post documents the affected versions, the symptoms, and the recommended downgrade path.</description></item><item><title>JVM SSL Debugging in Hadoop</title><link>https://lukehebert.com/post/jvm-ssl-debug/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/jvm-ssl-debug/</guid><description>Enable verbose SSL/TLS handshake logging in a JVM running Hadoop or Cloudera services to diagnose certificate and protocol issues.</description></item><item><title>Kerberos CLI Debug Tracing &amp; Hadoop</title><link>https://lukehebert.com/post/kerberos-cli-debug-trace-hadoop/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-cli-debug-trace-hadoop/</guid><description>A quick reference for enabling verbose Kerberos and Hadoop debug output on the command line, so you can see exactly where authentication is failing.</description></item><item><title>Kerberos Cross-Realm Trust</title><link>https://lukehebert.com/post/kerberos-cross-realm-trust/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-cross-realm-trust/</guid><description>Kerberos cross-realm authentication relies entirely on TGS exchanges between KDCs. Understanding the three-step ticket flow makes it easier to troubleshoot trust relationships between domains.</description></item><item><title>Kerberos Debug Mode for the JVM, Spark, and SPNEGO</title><link>https://lukehebert.com/post/kerberos-debug-mode-for-the-jvmsparkspnego/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-debug-mode-for-the-jvmsparkspnego/</guid><description>Enable Kerberos debug logging in a JVM, Spark driver, and Spark executors to troubleshoot SPNEGO and authentication issues. Covers the exact Java system properties, Spark configuration keys, and how to redirect Spark logs to stdout so Kerberos output interleaves with application logs.</description></item><item><title>Kerberos Shortname Mapping (Auth_to_Local)</title><link>https://lukehebert.com/post/kerberos-shortname-mapping-auth-to-local/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-shortname-mapping-auth-to-local/</guid><description>A practical walkthrough of how Hadoop maps Kerberos principals to short names via the auth_to_local property, including rule syntax, acceptance filters, and common troubleshooting patterns.</description></item><item><title>keyctl: Key Has Been Revoked</title><link>https://lukehebert.com/post/keyctl-link-key-has-been-revoked/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/keyctl-link-key-has-been-revoked/</guid><description>A quick guide to diagnosing and resolving the &amp;lsquo;Key has been revoked&amp;rsquo; error in the Linux kernel keyring using keyctl commands.</description></item><item><title>Mount Output in Columns: Formatted Output for Mount List</title><link>https://lukehebert.com/post/mount-output-in-columns-formatted-output-for-mount-list/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mount-output-in-columns-formatted-output-for-mount-list/</guid><description>Pipe the mount command through column -t to get a clean, aligned table of all mounted filesystems. A quick sysadmin trick for scanning devices, mount points, and options at a glance.</description></item><item><title>Multiple HTTP Service Principal Names</title><link>https://lukehebert.com/post/multiple-http-principles/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/multiple-http-principles/</guid><description>How to verify and manage HTTP service principal names in Active Directory using ldapsearch and setspn, including a note about Centrify&amp;rsquo;s uppercase requirement.</description></item><item><title>MySQL Key Constraints (FK) by Database</title><link>https://lukehebert.com/post/mysql-key-constraints-fk-by-db/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mysql-key-constraints-fk-by-db/</guid><description>A quick reference for querying MySQL information_schema to list all foreign key constraints in a given database, including the referencing and referenced columns.</description></item><item><title>Name Node Trash Check Point Interval &amp; TGTs on Non-HA NN with KMS</title><link>https://lukehebert.com/post/change-nn-trash-check-point-interval-can-correct-tgt-on-nn-non-ha-with-kms/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/change-nn-trash-check-point-interval-can-correct-tgt-on-nn-non-ha-with-kms/</guid><description>Adjusting the NameNode trash checkpoint interval can resolve TGT renewal issues on non-HA NameNodes using KMS. This change is safe and does not affect trash retention.</description></item><item><title>namei: Checking Path Traversal and Permissions</title><link>https://lukehebert.com/post/namei-checking-path-traversal-and-permissions/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/namei-checking-path-traversal-and-permissions/</guid><description>The namei command walks a full path and prints ownership, permissions, and symbolic link resolution for every component. It is a quick way to spot where a permission chain breaks or a symlink redirects unexpectedly.</description></item><item><title>Namenode Loglevel</title><link>https://lukehebert.com/post/namenode-loglevel/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/namenode-loglevel/</guid><description>How to set the HDFS Namenode StateChange log level to DEBUG via the web UI or the command line, and when that helps with troubleshooting.</description></item><item><title>NTP Errors</title><link>https://lukehebert.com/post/ntp-errors/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ntp-errors/</guid><description>A host health test flags NTP clock drift when the system clock falls out of sync with its NTP servers. This guide walks through diagnosing and resolving common NTP synchronization failures.</description></item><item><title>SSL Certificate Debugging with openssl s_client</title><link>https://lukehebert.com/post/ssl-certificate-debugging-openssl-s-client/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ssl-certificate-debugging-openssl-s-client/</guid><description>A practical cheat sheet of openssl s_client commands for inspecting, verifying, and troubleshooting SSL certificates in production environments.</description></item><item><title>Wrong Number! Taming the Kerberos Identity Crisis</title><link>https://lukehebert.com/post/kerberos-krb-ap-err-not-us-or-bad-tgs-server-name/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-krb-ap-err-not-us-or-bad-tgs-server-name/</guid><description>A practical look at why the MIT krb5 KDC rejects a TGS-REQ with KRB_AP_ERR_NOT_US, including the exact validation logic and the most common root causes behind the error.</description></item><item><title>A guide to Mod_Rewrite</title><link>https://lukehebert.com/post/a-guide-to-mod_rewrite/</link><pubDate>Sun, 22 Feb 2015 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/a-guide-to-mod_rewrite/</guid><description>Mod_rewrite is a rule-based rewriting engine (based on a regular-expression parser) to rewrite requested URLs on the fly.</description></item><item><title>Fixing Udev 70-persistent-net.rules</title><link>https://lukehebert.com/post/fixing-udev-70-persistent-net-rules/</link><pubDate>Wed, 13 Aug 2014 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/fixing-udev-70-persistent-net-rules/</guid><description>Have you ever replaced a network interface (NIC) or performed a chassis swap? If you are an administrator or IT professional the chances are good that at some point or another you have had to deal with sticky udev rules.</description></item><item><title>Postfix, Message Flows, and Common Issues</title><link>https://lukehebert.com/post/postfix-message-flows-and-common-issues/</link><pubDate>Sun, 18 May 2014 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/postfix-message-flows-and-common-issues/</guid><description>Postfix is a free and open-source mail transfer agent (MTA) that routes and delivers electronic mail. This post covers core system concepts.</description></item><item><title>Postfix Command Reference</title><link>https://lukehebert.com/post/postfix-command-reference/</link><pubDate>Sun, 04 May 2014 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/postfix-command-reference/</guid><description>A quick Postfix Command Reference</description></item><item><title>Hypervisor Classifications</title><link>https://lukehebert.com/post/hypervisor-classifications/</link><pubDate>Sat, 05 Apr 2014 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/hypervisor-classifications/</guid><description>There are a variety of Hypervisors out in the in the hosting space. Here is a list of the current classifications.</description></item><item><title>Xen Vitualization with Bridged Networking</title><link>https://lukehebert.com/post/xen-vitualization-with-bridged-networking/</link><pubDate>Sat, 05 Apr 2014 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/xen-vitualization-with-bridged-networking/</guid><description>Xen is an open-source type-1 or bare metal hypervisor, which makes it possible to run many instances of an operating system or entirely different operating systems in parallel on a single machine (or host).</description></item><item><title>Where's all my RAM?</title><link>https://lukehebert.com/post/wheres-all-my-ram/</link><pubDate>Fri, 21 Mar 2014 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/wheres-all-my-ram/</guid><description>Ever wonder why the output of free -m seems to make it look like your system is out of memory?</description></item><item><title>Calculating Downtime On a Linux System</title><link>https://lukehebert.com/post/calculating-downtime-on-a-linux-system/</link><pubDate>Sat, 15 Mar 2014 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/calculating-downtime-on-a-linux-system/</guid><description>Whether you are an engineer or an end user, most of us who work on critical systems find ourselves concerned with the availability of services those systems provide every day.</description></item><item><title>Centering</title><link>https://lukehebert.com/post/centering/</link><pubDate>Thu, 06 Sep 2012 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/centering/</guid><description>Centering is the mindfulness practice of bringing your awareness into the present moment to establish mental stability and inner calm.</description></item><item><title>The Inverted-U Model</title><link>https://lukehebert.com/post/the-inverted-u-model/</link><pubDate>Thu, 06 Sep 2012 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/the-inverted-u-model/</guid><description>The inverted U-model, also known as the Yerkes-Dodson law, states that performance increases with physiological or mental arousal, but only up to an optimal point. When levels of arousal or stress become too high, performance begins to decline efficiency drops.</description></item><item><title>Assertiveness</title><link>https://lukehebert.com/post/assertiveness/</link><pubDate>Fri, 27 Jan 2012 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/assertiveness/</guid><description>Do you consider yourself to be assertive? And what does being assertive mean to you? Does it mean exercising your rights all the time, every time?</description></item><item><title>Dealing with Unhappy Customers</title><link>https://lukehebert.com/post/dealing-with-unhappy-customers/</link><pubDate>Fri, 27 Jan 2012 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/dealing-with-unhappy-customers/</guid><description>In service and support we often encounter unhappy customers. How we deal with them makes more difference than most people realize.</description></item><item><title>Exim Cheatsheet</title><link>https://lukehebert.com/post/exim-cheatsheet/</link><pubDate>Mon, 25 Jul 2011 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/exim-cheatsheet/</guid><description>A set of useful commands for administrators working with Exim 4.</description></item><item><title>Snappy on the Prowl at SoftLayer Dallas</title><link>https://lukehebert.com/post/snappy-on-the-prowl-at-softlayer-dallas/</link><pubDate>Wed, 20 Jul 2011 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/snappy-on-the-prowl-at-softlayer-dallas/</guid><description>With over 6,000 servers in the SoftLayer DataCenter (Formely &amp;ldquo;The Planet&amp;rdquo;) its no surprise to find &amp;lsquo;Snappy&amp;rsquo;, HostGator&amp;rsquo;s Mascot on the prowl.</description></item></channel></rss>