User security

πŸ›‘οΈ Hoofdstuk 19.1: Beveiliging van Gebruikers en Systemen in Linux

Linux-systemen bieden diverse tools en configuraties om authenticatie, toegang en systeemacties veilig te beheren. Dit hoofdstuk behandelt wachtwoordbeleid, multifactorauthenticatie, rootbeveiliging, bestandssysteembeveiliging en auditing.

────────────────────────────────────────────
πŸ” Authenticatiemethoden
────────────────────────────────────────────

Standaardmethoden met ID/wachtwoord zijn kwetsbaar voor:
β€’ Wachtwoorddeling
β€’ Zwakke wachtwoorden
β€’ Meerdere inlogs op verschillende servers

πŸ“Œ Geavanceerde Authenticatiemethoden:

Methode | Beschrijving
-------------|---------------------------------------------
Kerberos | Single Sign-On (SSO) via ticketverificatie
LDAP | Centrale gebruikersdatabase met hiΓ«rarchische structuur
RADIUS | Veelgebruikt in netwerkomgevingen, o.a. VPN
TACACS+ | Versleutelde authenticatie, populair bij Cisco-systemen
MFA | Vereist iets wat je weet + iets wat je bezit (token/biometrie)
PKI | Gebruikt publieke en privΓ©sleutels voor verificatie

────────────────────────────────────────────
πŸ”‘ Wachtwoordbeleid en PAM-beveiliging
────────────────────────────────────────────

β€’ Zorg voor unieke accounts om verantwoording (nonrepudiation) mogelijk te maken.
β€’ Beheer centraal wachtwoordbeleid via `/etc/login.defs`:
- `PASS_MAX_DAYS`: Aantal dagen dat een wachtwoord geldig is.
- `PASS_MIN_LENGTH`: Minimale lengte van een wachtwoord.

πŸ“Œ PAM-configuratiebestanden:

Distributie | Bestand
------------|-------------------------------
Red Hat | `/etc/pam.d/system-auth`
Debian | `/etc/pam.d/common-password`

πŸ“Œ Belangrijke `pam_pwquality.so` parameters:

Directive | Beschrijving
------------------|-----------------------------------------
difok | Aantal tekens dat moet verschillen van het vorige wachtwoord
enforce_for_root | Past regels ook toe op root
dcredit | Aantal vereiste cijfers (negatief getal)
ocredit | Aantal vereiste speciale tekens

────────────────────────────────────────────
πŸ§β€β™‚οΈ Roottoegang en Systeembeveiliging
────────────────────────────────────────────

⚠️ Directe root-login vermijden:

β€’ Maak root-shell ontoegankelijk via `/etc/passwd`:
- Wijzig shell naar `/usr/sbin/nologin`
β€’ Blokkeer SSH-toegang via `/etc/ssh/sshd_config`:
- `PermitRootLogin no`

πŸ“¦ Bestandssysteembeveiliging:

β€’ Scheid systeem- en gebruikersdata (`/`, `/home`, enz.)
β€’ Gebruik **LUKS-versleuteling** via `dm-crypt` voor disk encryptie
β€’ **Chroot Jail** – Beperk de toegang van processen tot een sandbox-directory

🧯 Ongeautoriseerde reboot voorkomen:

Maatregel | Commando/Bestand
-------------------------------------|-----------------------------
BIOS/UEFI-wachtwoord instellen | Via firmwaremenu
GRUB beveiligen | `grub-mkpasswd-pbkdf2` + GRUB-config
Ctrl+Alt+Del uitschakelen | `sudo systemctl mask ctrl-alt-del.target`

────────────────────────────────────────────
πŸ“‹ Restricties en Monitoring
────────────────────────────────────────────

⏱️ Cron/at-toegang beperken:
β€’ Gebruik `/etc/cron.allow` of `/etc/cron.deny` om toegang tot geplande taken te controleren.

🚫 USB-opslag blokkeren:
β€’ Voeg toe aan `/etc/modprobe.d/blacklist.conf`:
blacklist uas
blacklist usb-storage

πŸ•΅οΈ Auditd (Auditing Daemon):
β€’ Registreert beveiligingsgebeurtenissen zoals:
- Bestandstoegang
- Netwerkactiviteit
- Systeemoproepen

Voorbeeldregel met `auditctl`:
auditctl -w /etc/passwd -p wa -k password_changes

βž• Maak regels permanent in:
/etc/audit/audit.rules

────────────────────────────────────────────
βœ… Samenvatting
────────────────────────────────────────────

β€’ Gebruik moderne authenticatiemethoden (Kerberos, MFA, PKI)
β€’ Dwing wachtwoordcomplexiteit af via PAM
β€’ Beperk roottoegang en monitor systeemactiviteit
β€’ Beveilig USB’s, rebootmethoden en gevoelige bestanden via auditregels