Linux

RHEL Advanced #4: SELinux Advanced — Writing Policy and audit2allow
10 min read

RHEL Advanced #4: SELinux Advanced — Writing Policy and audit2allow

Going one level higher than the intermediate post: the structure of .te/.fc/.if policy files, the flow and limits of generating modules with audit2allow, the procedure to compile and install with checkmodule / semodule_package / semodule by hand, plus booleans and interfaces — all in one cycle. The goal is to follow an AVC denial all the way through to a permanent policy module.

RHEL Advanced #3: Performance Analysis — sar, top/htop, iostat, vmstat, perf
11 min read

RHEL Advanced #3: Performance Analysis — sar, top/htop, iostat, vmstat, perf

Where to look first when a RHEL machine becomes slow. Get the first picture with top/htop, see CPU/memory/IO at once with vmstat, drill into disks with iostat, follow time with sar, and find CPU hotspots with perf — all framed by the USE (Utilization, Saturation, Errors) methodology in one cycle.

RHEL Advanced #2: Kernel Tuning — sysctl, tuned, kdump
11 min read

RHEL Advanced #2: Kernel Tuning — sysctl, tuned, kdump

How to use sysctl to adjust kernel behavior at runtime, separating permanent settings into /etc/sysctl.d/, swapping workload profiles in one line with tuned, and capturing memory dumps at the moment of a kernel panic with kdump and analyzing them with crash — all in one cycle. Common keys like vm.swappiness and net.core.somaxconn, and the differences between tuned profiles, are covered together.

RHEL Advanced #1: Boot Process — GRUB2, dracut, Recovery Mode
12 min read

RHEL Advanced #1: Boot Process — GRUB2, dracut, Recovery Mode

Step-by-step organization of the entire flow from a RHEL machine being powered on to the login prompt appearing. UEFI/BIOS, GRUB2 configuration with grub2-mkconfig, initramfs and dracut regeneration, systemd targets and default.target, rescue/emergency mode, and the procedure to recover the root password by editing GRUB — all covered in one cycle.

RHEL Intermediate #7: Intro to Containers — Podman/Buildah/Skopeo
11 min read

RHEL Intermediate #7: Intro to Containers — Podman/Buildah/Skopeo

RHEL 9's container standard is Podman. This post looks at how it uses nearly the same commands as Docker while running without a daemon, defaulting to rootless mode, and integrating naturally with systemd — all from an operational perspective. Also covered: building images with Buildah and moving them between registries with Skopeo.

RHEL Intermediate #6: Job Scheduling — cron, systemd timer, at
12 min read

RHEL Intermediate #6: Job Scheduling — cron, systemd timer, at

Four tools for running time-based tasks in RHEL 9, from an operational perspective. Traditional cron and user crontab, anacron that catches up missed jobs when the machine was off, at for one-shot scheduling, and systemd timer as the modern replacement for cron — with a guide on which tool to use in which situation.

RHEL Intermediate #5: Log Management — journald, rsyslog, log rotation
11 min read

RHEL Intermediate #5: Log Management — journald, rsyslog, log rotation

RHEL 9 uses journald as the primary log tool and rsyslog as the secondary, with text log files rotated automatically by logrotate. This post covers journald's retention policy and disk usage control, rsyslog's continuing role as the old-guard standard, the flow of collecting logs on a central server, and how to write logrotate rules from scratch — all from an operational perspective.

RHEL Intermediate #4: Networking — NetworkManager (nmcli), bonding, teaming
11 min read

RHEL Intermediate #4: Networking — NetworkManager (nmcli), bonding, teaming

RHEL 9 networking is unified under NetworkManager. This post covers: setting a static IP, DNS, and gateway with nmcli; bonding that bundles two NICs for fault tolerance; bridge as the foundation of virtual machine and container networks; and why teaming was deprecated — all in one post.

RHEL Intermediate #3: Advanced Storage — Stratis, NFS, Samba
11 min read

RHEL Intermediate #3: Advanced Storage — Stratis, NFS, Samba

Storage operations that reach beyond a single machine. Stratis is a storage manager built on top of LVM+XFS that lets you handle thin provisioning and snapshots with ease. NFS is the standard for sharing directories between Linux machines, and Samba is the file-sharing protocol that Windows clients can use. This post covers the setup and operation of all three tools in one place.

RHEL Intermediate #2: LVM — PV/VG/LV, Snapshots, Expansion
13 min read

RHEL Intermediate #2: LVM — PV/VG/LV, Snapshots, Expansion

LVM, the standard for RHEL 9 disk operations, covered in depth. The abstraction layer between physical disks and the filesystem, the three-layer relationship of PV/VG/LV, the full flow of adding a new disk to expand an LV, capturing a pre-backup state with snapshots and rolling back, and thin provisioning and RAID options — all in one post.

RHEL Intermediate #1: Intro to SELinux — Enforcing/Permissive, Labels, Troubleshooting
14 min read

RHEL Intermediate #1: Intro to SELinux — Enforcing/Permissive, Labels, Troubleshooting

A beginner-friendly introduction to SELinux, RHEL's last security layer. Covers the three modes Enforcing/Permissive/Disabled, the shape of labels (context) attached to every file and process, viewing them with ls -Z / ps -Z, fixing labels with chcon/restorecon, making permanent changes via semanage fcontext, toggling booleans, and troubleshooting AVC denials with audit2allow and sealert.

RHEL Basics #7: Basic Security — firewalld, SSH Hardening
11 min read

RHEL Basics #7: Basic Security — firewalld, SSH Hardening

RHEL's firewall abstraction firewalld and its zone model, the firewall-cmd command set (permanent vs runtime), the four standard SSH hardening steps — disable password auth, key-based auth, lock down root login, change the port, split sshd_config.d. The final post of the series.