webroot van Apache verplaatst naar `/plf/www` --- ## ๐Ÿ”ง Stap 1 โ€“ Maak de nieuwe webroot-directory aan bash sudo mkdir -p /plf/www/html /plf/www/cgi-bin --- ## ๐Ÿ” Stap 2 โ€“ Stel de bestandsrechten correct in bash sudo chmod -R 755 /plf ๐Ÿ”น Betekent: * **Eigenaar**: lezen, schrijven, uitvoeren * **Groep/anderen**: lezen, uitvoeren --- ## ๐Ÿ“ Stap 3 โ€“ Pas Apache-configuratie aan ### Open het hoofdbestand van Apache: bash sudo nano /etc/httpd/conf/httpd.conf ๐Ÿ” Zoek en vervang elk voorkomen van `/var/www` met `/plf/www`. Gebruik in **Nano**: * `Ctrl + \` om te zoeken en vervangen * Typ: `/var/www` โ†’ druk Enter * Typ: `/plf/www` โ†’ druk Enter * Kies โ€œAโ€ (All) om alles te vervangen ๐Ÿ’พ Sla op met `Ctrl + O`, sluit af met `Ctrl + X`. --- ## ๐Ÿ” Stap 4 โ€“ Herstart Apache bash sudo systemctl restart httpd Gebruik dit om te controleren of het werkt: bash sudo systemctl status httpd --- ## ๐ŸŒ Stap 5 โ€“ Maak een testpagina aan bash sudo nano /plf/www/html/test.html Plak deze inhoud: html Testpagina

Testpagina

--- ## ๐Ÿงช Stap 6 โ€“ Test de website in browser of met `curl` bash curl http://rocky1.domain.test/test.html ๐Ÿ”ด Je zult nu waarschijnlijk een **403 Forbidden** melding krijgen vanwege SELinux. --- ## ๐Ÿ“„ Stap 7 โ€“ Controleer SELinux-fout via log bash sudo tail -n 25 /var/log/httpd/error_log Als daar iets staat zoals: Permission denied: AH00035: access to /test.html denied (filesystem path '/plf/www/html/test.html')... Gebruik dan: bash sudo grep http /var/log/audit/audit.log | audit2why ๐Ÿง  **audit2why** legt uit *waarom* SELinux het blokkeert (meestal omdat het bestand geen juiste context heeft). --- ## ๐Ÿ” Stap 8 โ€“ Vergelijk de SELinux contexten bash ls -Z /var/www ls -Z /plf/www Je zult zien dat `/var/www` bestandslabels zoals `httpd_sys_content_t` heeft, maar `/plf/www` **niet**. --- ## โœ… Stap 9 โ€“ Tijdelijke oplossing met `chcon` bash sudo chcon -R -t httpd_sys_content_t /plf/www Test opnieuw: bash curl http://rocky1.domain.test/test.html โœ… Als het nu **werkt**, weet je dat SELinux het veroorzaakte. --- ## ๐Ÿ” Stap 10 โ€“ Test reset via `restorecon` bash sudo restorecon -R /plf/www ๐Ÿ’ก Dit **herstelt** de labels naar wat SELinux verwacht volgens de bestaande policy. bash curl http://rocky1.domain.test/test.html โŒ Nu zie je weer **Forbidden**, want de context is teruggezet naar een niet-werkende standaard. --- ## ๐Ÿ› ๏ธ Stap 11 โ€“ Structurele oplossing met `semanage` Geef SELinux permanent toestemming om `/plf/www` te gebruiken voor Apache-content: bash sudo semanage fcontext -a -t httpd_sys_content_t "/plf/www(/.*)?" ๐Ÿ” Daarna de context opnieuw toepassen: bash sudo restorecon -R -v /plf/www ๐Ÿงช Test weer: bash curl http://rocky1.domain.test/test.html --- ## ๐Ÿ“„ Stap 12 โ€“ Voeg een tweede testpagina toe bash sudo nano /plf/www/html/test2.html Plak: html Testpagina 2

Testpagina 2

Test: bash curl http://rocky1.domain.test/test2.html โœ… Als deze werkt zonder `Forbidden`, dan zijn je rechten en SELinux-permissies nu correct en **blijvend** ingesteld. --- ## ๐Ÿงผ Handige controle-commando's | Doel | Commando | | | ---------------------------------- | ------------------------------ | ----------- | | Controleer HTTP-poorten in SELinux | \`sudo semanage port -l | grep http\` | | Controleer Apache-status | `sudo systemctl status httpd` | | | Controleer firewall-instellingen | `sudo firewall-cmd --list-all` | | | Controleer SELinux status | `sestatus` | | | Controleer huidige SELinux labels | `ls -Z /plf/www/html` | |