A practical, Debian/Ubuntu-focused hardening repository for people who want visibility, verification, and sane operational security without blind automation.
This project is designed for:
- privacy-conscious Linux users
- defenders and researchers
- administrators who want a cleaner baseline
- users who prefer explicit control over defaults
This repository is not a one-click hardening script.
It is a structured set of guides, checklists, and example scripts for building a tighter Debian or Ubuntu workstation or small server baseline.
This repository covers:
- core Linux command-line literacy
- process inspection and filtering
- file and directory handling
- APT-based package management
- kernel and module inspection
- firewalling with UFW
- auditing with Lynis
- filesystem hardening
- service minimization
- SSH hardening
- kernel tuning with
sysctl.d - AppArmor and SELinux context
- Fail2ban for exposed services
- role-based workstation and server baselines
Primary target:
- Debian
- Ubuntu
- Debian- and Ubuntu-like systems using APT and systemd
This repository is not written as a generic guide for every Linux distribution.
Read these files first:
Then move into the numbered guides under docs/.
Clone the repository:
git clone https://github.com/Jeremy-Burgos/linux.git
cd linuxOpen the overview:
less docs/00-overview.mdGood first sections to review:
- docs/06-firewall-and-networking.md
- docs/09-services-and-boot-hardening.md
- docs/10-ssh-and-authentication.md
- docs/11-kernel-tuning.md
The scripts under scripts/ are examples only. Read them before running them.
linux/
├── README.md
├── QUICKSTART.md
├── CHANGELOG.md
├── LICENSE
├── SECURITY.md
├── TESTED_ON.md
├── THREAT_MODEL.md
├── .editorconfig
├── .markdownlint.json
├── docs/
└── scripts/
Start with:
- QUICKSTART.md
- docs/06-firewall-and-networking.md
- docs/07-system-auditing-and-lynis.md
- docs/09-services-and-boot-hardening.md
- docs/11-kernel-tuning.md
- docs/workstation-baseline-checklist.md
Start with:
- QUICKSTART.md
- docs/06-firewall-and-networking.md
- docs/09-services-and-boot-hardening.md
- docs/10-ssh-and-authentication.md
- docs/11-kernel-tuning.md
- docs/13-fail2ban.md
- docs/server-baseline-checklist.md
Core assumptions:
- Linux defaults are not automatically secure enough.
- Fewer enabled services means fewer mistakes and fewer attack paths.
- Visibility matters as much as blocking.
- Verification matters more than checklist hardening.
- Workstations and internet-facing servers should not be hardened the same way.
Example scripts live under:
scripts/
They are examples, not blind hardening wrappers.
Included examples:
ufw_desktop_baseline.shfail2ban_sshd_example.shsysctl_endpoint_baseline.shservice_review.sh
Some controls in this repository can:
- break connectivity
- disable services you still need
- lock you out of remote systems
- interfere with role-specific workloads
Test everything before applying it to production, remote hosts, or primary machines.
A practical, Debian/Ubuntu-focused Linux hardening repository for people who want visibility, verification, and a cleaner workstation or server baseline without blind automation.