Build challenges: a working system from scratch
Each task gives you an empty server and a requirements list; with no hints you build, test and hand over: restricted users, scheduled reports, encrypted archives, websites and more.
Level 301 · 15 lessons · 12 practice labs
Lessons
Accounts and access
- A user who can only drop files into their own folder
- A shared workspace for three teams
- A contractor account that closes itself when it expires
- Short task: test what you built from another account and prove it
Services and scheduling
- A service that builds a report every hour and restarts on failure
- A setup that processes files as soon as they land in a folder
- A setup that separates and rotates application logs
- Short task: prove everything comes back after a reboot
Storage and backup
- An encrypted, signed and verifiable archive setup
- A growable data volume with quotas
- A nightly backup with snapshots
- Short task: prove the backup by restoring a random file
Web
- Two sites with TLS and redirects
- A small app behind a reverse proxy
- Capstone: build a small office server from its requirements list and hand it over
Practice labs
- Build a user who can only drop files into their own folder: Set up an account with no shell that can write only to its own upload directory over SFTP and test it cannot see other directories.
- Build a shared workspace for three teams: Build a layout where each team writes to its own directory and reads the common one, with new files getting the right group, and prove it from another account.
- Build a contractor account that closes itself on expiry: Set up an account with an end date, limited sudo and login from one network only, and show sessions and jobs also end on expiry.
- Build a service that reports hourly and restarts on failure: Run a report script from a service and timer so it retries on failure and its output shows in the journal.
- Build a setup that processes files as they land: With a unit watching an inbox, process each new file and move it to an archive, sending bad files to a separate directory.
- Build a setup that separates and rotates application logs: Route an app's error and access logs to separate files, set up rotation and retention and prove everything returns after a reboot.
- Build an encrypted, signed and verifiable archive setup: Write a script that archives, encrypts and signs a directory and produces a checksum file, and test it with the verify step.
- Build a growable data volume with quotas: Build a data volume on LVM with user quotas, show exceeding the quota is blocked and grow the volume online.
- Build a nightly snapshot backup and prove it by restoring: Build a scheduled setup that backs up consistently from a snapshot keeping seven copies, and verify by restoring a randomly chosen file.
- Build two sites with TLS and redirects: Publish two domains with separate roots, install the lab certificates and redirect HTTP to HTTPS.
- Build a small app behind a reverse proxy: Run the app as a service under its own user listening locally only and publish it through the proxy with TLS.
- Build a small office server from its requirements and hand over: Meet the account, share, backup and site items of Karaçam Mobilya's requirements list, pass the checker and write the handover document.
About this course
Each task gives you an empty server and a requirements list; with no hints you build, test and hand over: restricted users, scheduled reports, encrypted archives, websites and more.
What you will learn
- Accounts and access
- Services and scheduling
- Storage and backup
- Web
Prerequisites
You should be comfortable with the level 101 and 201 topics of the same path.
Lab environment
Lessons run in your own Kali Linux terminal that opens in the browser. Nothing to install; the lab starts clean in every lesson.
Frequently asked questions
- Is this course right for my level?
- The course is at level 301; it assumes you know the topics of the lower-level courses.
- Is there anything to install?
- No. Every lesson runs in your own lab environment that opens in the browser.
- How do lessons work?
- Each lesson has 8 to 10 steps and a short quiz. Early steps show the command to type, later steps give less help; if two attempts fail, the solution opens.
- Can I try it for free?
- Yes. The first three lessons of every course are free.