Chapter 22: Review and practice

From requirements to evidence

You can operate a system when you can connect each requirement to evidence, not merely repeat commands from one lesson. This chapter ties the course together with one small service, a status portal, and three habits: write the contract first, build in a sensible order, and prove each requirement in a way a colleague would accept.

The service contract

The portal is an internal web page, "Portal status: OK", on servera. Before touching anything, write down what "done" means:

RequirementCourse chaptersProof
Content owned by portaladm, group portal; web server may read itaccounts, permissions, ACLsid, ls -l, getfacl
httpd installed from the approved repositoriessoftwarerpm -q httpd
Running now and at bootservicessystemctl is-active, is-enabled
SELinux enforcing; content and port labelledSELinuxgetenforce, ls -Z, semanage ... -l
Only the partner serverb may reach port 8090firewall, networkfirewall-cmd --list-all, requests from two hosts
Persistent journal, daily backup, tested restorelogs, backups, timersls -d /var/log/journal, systemctl list-timers, a restore

Each row is a layer you already know. Select one:

One requirement, one layer: Select a requirement of the portal.

Four kinds of proof

Each has limits. An active daemon does not prove the content is right. A request from servera itself does not prove the firewall lets the partner in. A restored file does not prove the web server can read it. The strongest evidence combines all four.

Build in order

A good build order: Step through delivering the portal.

Test after every step. A failure found right after a change has one suspect; a failure found at the end has all of them.

Collect evidence

This is what a finished portal looks like to the checker, and to you:

Check your understanding