Hardening summary
Summarize posture from logs, config, and service exposure.
Understand the pattern
Junior operators build confidence by gathering evidence before changing systems.
grep- Select input lines that match a pattern; -i ignores case, -n adds line numbers, and -v inverts selection.
No matches is exit status 1, which is different from a malformed invocation.
ss- Inspect simulated listening sockets and connection information.
A listening socket is not proof of correct application responses or external reachability.
printf- Format data deliberately, including separators and final newlines.
A format string controls output; a newline is data, not an automatic guarantee.
tee- Copy a stream both to a file and standard output; -a appends.
tee can overwrite a file even though the output is also visible on screen.
Worked example and expected result
$ sudo grep PermitRootLogin /etc/ssh/sshd_configPermitRootLogin no
Exit status: 0. The command completed successfully in the training fixture.
$ ss -tulpnNetid State Local Address:Port Process udp UNCONN 0.0.0.0:68 lab-dhcp tcp LISTEN 0.0.0.0:22 sshd tcp LISTEN 0.0.0.0:80 nginx tcp LISTEN 0.0.0.0:443 nginx
Exit status: 0. The command completed successfully in the training fixture.
$ printf hardening-reviewed | tee lab/hardening.txthardening-reviewed
Exit status: 0. The command completed successfully in the training fixture.
Explain it
Apply it elsewhere
Keep the momentum.
Complete the lab, then explain and apply the pattern.
Next: SSH hardening deep reviewTry an incident drillAnonymous lesson and mastery progress lasts for this session. Sign in to keep synced lesson XP between sessions; mastery stays device-local. No speed bonus, lost lives, or hint penalties.