authentication

How to Add and Delete Users on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Add and Delete Users on RHEL 9

User account management is one of the most fundamental administrative tasks on any Linux server. On Red Hat Enterprise Linux 9, every process, file, and network socket is owned by a user and group, making correct account hygiene essential for both security and auditability. Understanding the full lifecycle — creation, modification, and removal — and […]

Read more
How to Set Up SSH Key-Based Authentication on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Set Up SSH Key-Based Authentication on RHEL 9

SSH key-based authentication is the gold standard for remote server access. Unlike passwords, SSH keys cannot be guessed by brute-force attacks. An Ed25519 private key is a 256-bit secret that would take longer than the age of the universe to crack by exhaustive search. When combined with a key passphrase, you have two-factor authentication: something […]

Read more
How to Configure Fail2Ban to Protect SSH on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Configure Fail2Ban to Protect SSH on RHEL 9

Even with SSH key authentication enabled, a badly configured or temporarily accessible server with password auth still faces a constant barrage of brute-force login attempts. Fail2ban monitors log files for authentication failures, counts them per source IP, and when a configured threshold is crossed it issues a temporary ban by injecting a drop rule via […]

Read more
How to Set a Hostname and FQDN on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Set a Hostname and FQDN on RHEL 9

A server’s hostname is its identity on the network. The fully qualified domain name (FQDN) combines the short hostname with the DNS domain, forming an address like web01.example.com. Many services depend on a correctly configured hostname and FQDN to function properly: email servers use the FQDN in SMTP HELO greetings (incorrect values cause delivery rejections), […]

Read more
How to Sync Time with Chrony on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Sync Time with Chrony on RHEL 9

Accurate time synchronization is not optional on a server — it is a hard requirement. TLS certificate validation fails when the clock is wrong by more than a few minutes. Kerberos authentication rejects tickets with a clock skew over 5 minutes. Cron jobs fire at the wrong time. Log correlation across multiple servers becomes impossible […]

Read more
How to Configure Automatic Security Updates on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Configure Automatic Security Updates on RHEL 9

Unpatched software is the leading cause of server compromise. The majority of publicly disclosed vulnerabilities already have patches available by the time attackers start actively exploiting them — the window between patch availability and active exploitation has shrunk from months to days. Manually patching servers is error-prone and inconsistent at scale. Automatic security updates ensure […]

Read more
How to Configure sudo and Sudoers on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Configure sudo and Sudoers on RHEL 9

The sudo (superuser do) tool allows designated users to run commands with elevated privileges without sharing the root password. This is fundamental to the principle of least privilege: each administrator gets exactly the access they need for their role, no more. When access is misconfigured — for example with blanket ALL=(ALL) ALL entries or unsafe […]

Read more
How to Set Up a Bash Profile and Environment Variables on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Set Up a Bash Profile and Environment Variables on RHEL 9

Every time you open a terminal on RHEL 9, Bash reads one or more startup files before presenting you with a prompt. Which files are read depends on whether the shell is a login shell (started by SSH, a console login, or su -) or an interactive non-login shell (a new terminal window in a […]

Read more
Symfony Messenger and OAuth2

Building Secure Microservices with Symfony Messenger and OAuth2: A Guide to Inter-Service Communication with Confidence

The microservices architecture has revolutionized modern software development, enabling modularity, scalability, and independent deployment of different application functionalities. However, with increased service boundaries comes the critical challenge of secure communication between these services. Symfony Messenger and OAuth2 emerge as powerful tools in this context, offering a robust and elegant solution for building secure microservices in your Symfony applications.

Read more
CHAT