Post-installatie Hardening
Dit document beschrijft de stappen na een verse Ubuntu Server installatie, voordat we Kubernetes installeren.
Tip: Deze stappen zijn geautomatiseerd in
ansible/playbooks/prepare-nodes.yml. Zie Ansible Setup voor het automatisch uitvoeren.
Handmatige Stappen (eerste keer)
De eerste keer doe je dit handmatig om te begrijpen wat er gebeurt. Daarna altijd via Ansible.
1. System Update
sudo apt update && sudo apt upgrade -y
2. Intel Microcode (Security Patches)
sudo apt install intel-microcode -y
Belangrijk voor HP EliteDesk's met Intel CPU's - patcht CPU vulnerabilities
3. Essentiële Packages
sudo apt install -y \
curl \
wget \
git \
htop \
net-tools \
vim \
unzip
4. SSH Key Setup
Op je lokale machine (Windows/WSL):
# Genereer key als je die nog niet hebt
ssh-keygen -t ed25519 -C "homelab"
# Kopieer naar alle nodes
ssh-copy-id admin@192.0.2.201
ssh-copy-id admin@192.0.2.202
ssh-copy-id admin@192.0.2.203
5. SSH Hardening
Op elke node:
sudo vim /etc/ssh/sshd_config
Wijzig/voeg toe:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Restart SSH:
sudo systemctl restart sshd
⚠️ Test SSH key login in een NIEUWE terminal voordat je de huidige sluit!
6. Firewall Basis
sudo ufw allow ssh
sudo ufw allow 6443/tcp # Kubernetes API
sudo ufw enable
7. Hostname Verificatie
hostnamectl
Moet tonen: cp-01, node-01, of node-02
8. Disable Swap (vereist voor Kubernetes)
sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab
Verify:
free -h # Swap moet 0 zijn
9. Kernel Modules voor Kubernetes
# Load modules
sudo modprobe overlay
sudo modprobe br_netfilter
# Persist on reboot
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
# Sysctl settings
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
10. Hosts File (cluster discovery)
sudo tee -a /etc/hosts <<EOF
192.0.2.201 cp-01
192.0.2.202 node-01
192.0.2.203 node-02
EOF
Verificatie Checklist
Na deze stappen op alle nodes:
- [ ]
ssh admin@cp-01werkt met key (geen wachtwoord) - [ ]
ssh admin@node-01werkt met key - [ ]
ssh admin@node-02werkt met key - [ ]
sudowerkt op alle nodes - [ ] Alle nodes kunnen elkaar pingen (
ping node-01vanaf cp-01) - [ ] Alle nodes kunnen internet bereiken (
ping 8.8.8.8) - [ ] Swap is uitgeschakeld (
free -htoont 0 swap) - [ ] Kernel modules geladen (
lsmod | grep br_netfilter)
Automatiseren met Ansible
Nu je begrijpt wat er gebeurt, hoef je dit nooit meer handmatig te doen:
cd ansible
ansible-playbook playbooks/prepare-nodes.yml
Dit playbook doet alle bovenstaande stappen automatisch op alle nodes.
Volgende Stap
Nodes zijn klaar voor Kubernetes. Zie Kubernetes Setup.