Superuser wachtwoord instellen
GRUB is de bootloader van CentOS Linux 7. De bootloader start je server bij het aanzetten door naar het besturingssysteem. GRUB is een zeer geavanceerde bootloader die het mogelijk maakt om in geval van calamiteiten niet door te starten naar het standaard besturingssysteem, maar bijvoorbeeld naar een USB-device. Heel erg nuttig wanneer je OS gecrasht is. Heel erg gevaarlijk omdat iemand met fysieke toegang (of console toegang via een virtuele machine) dus dan de opstartprocedure kan aanpassen.
Om ongeoorloofde toegang te voorkomen kunnen we GRUB beveiligen met een wachtwoord. Hierin zijn verschillende mogelijkheden.
Maak eerst een back-up van de bestaande configuratie van GRUB:
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.orig
cp /etc/grub.d/10_linux /etc/grub.d/10_linux.orig
Met het volgende commando kunnen we een op te geven wachtwoord laten omzetten naar een hash op basis van Password-Based Key Derivation Function versie 2. Een dergelijke hash is vrijwel onmogelijk terug te berekenen naar een wachtwoord, wat voor dit doel een prima beveiliging oplevert.
/usr/bin/grub2-mkpasswd-pbkdf2
Bovenstaand commando vraagt je om twee maal een wachtwoord op te geven. Voer dit dus tweemaal in en het commando geeft je de PBKDF2-hash terug.
GRUB heeft een aantal scripts in /etc/grub.d/
staan. Voor eigen configuratie is er het script /etc/grub.d/40_custom
.
Hierin gaan we onze net gegenereerde hash toevoegen.
Open hiervoor eerst het bestand:
vim /etc/grub.d/40_custom
Voeg hier nu onderin de volgende regels toe:
set superusers="admin"
password_pdkdf2 admin grub.pbkdf2.sha512.10000.303D3.....
Vervang op beide regels uiteraard 'admin' door je gewenste gebruikernaam. En op de 2e regel (password) voeg je je hele PBKDF2-hash toe. Let er op dat je de hash in zijn geheel op één regel plaatst. Sla het bestand op.
GRUB bouwt zijn configuratie op aan de hand van de scripts in /etc/grub.d/
. We hebben net een script aangepast, dus
zullen de GRUB configuratie opnieuw moeten laten genereren:
grub2-mkconfig --output=/tmp/grub.cfg
Plaats nu de gegenereede configuratie in de GRUB map:
mv /tmp/grub.cfg /boot/grub2/grub.cfg
Wanneer je nu je systeem opnieuw opstart, kun je tijdens het opstarten de configuratie alleen aanpassen wanneer je je net ingestelde wachtwoord gebruikt.