Het is maandag 3 mei en wederom een nieuwe editie van de Joomla Gebruikersgroep Eindhoven. Een presentatie Jeroen Moolenschot over hoe je je Joomla website kunt beveiligen.

Joomla Security Gids - Jeroen Moolenschot

1. Kijk eens kritisch naar je hostingpartij

"Voor een dubbeltje op de eerste rij willen zitten", is een uitspraak die ook voor hosting van belang is. Niet alle goedkopere hostingpartijen hebben de zaakjes goed op orde. Maar ook duurdere hostingpartijen hoeven niet alles goed op orde te hebben. Ben kritisch. Men kan jouw website ook hacken via een lek in een andere site op dezelfde server. Of dat je bij een hostingpartij vertrekt en je komt er een jaar later achter dat je nog steeds op je oude omgeving kan inloggen.

2. Verwijder oude websites en installaties

Werkend aan de nieuwe site kan het nog eens voorkomen dat je de oude site, of onderdelen daarvan, verplaatst naar een mapje met de naam "old" of "bak" ofzo... in zich. Verwijder deze directories.

3. Maak regelmatig backups

En test deze, door hem op een testomgeving terug te zetten. Een backup is geen backup als je hem niet kunt terugzetten.

Voor het maken van backups van de gehele Joomla website kun je gebruik maken van Akeeba Backup (Pro). Je kunt verschillende backup profielen maken. Hieronder een voorbeeld:

  • Output Directory: [ROOTPARENT]/backup
    Door de backup niet in de Joomla installatie te plaatsen vervalt de verplichting om een random string van karakters aan de benaming _Backup Archive Name_
  • Log Level: Errors and Warnings
    Staat standaard op _All information and debug_. Wijzig deze zodat de backups een stuk kleiner worden.
  • Backup archive name: site-[HOST]-[DATE]
    Indien je externe opslag over x dagen aan file retentie beschikt kun je de optie -[DATE] weglaten
  • Backup type: Full site backup
  • Post-processing engine: hiermee kun je de backup wegschrijven naar een externe locatia.
    Bijvoorbeeld door het aanmaken van een nieuwe GMail account Dit e-mailadres wordt beveiligd tegen spambots. JavaScript dient ingeschakeld te zijn om het te bekijken. voor het wegschrijven van backups van je website example.com. De gratis 15GB zou op zich genoeg moeten zijn voor opslag van een aantal backups. Mag ik hopen. :-)
  • Enable remote files quota: checked

4. Update naar de laatste versie van Joomla

Vanuit GitHub/Joomla/Joomla-CMS is men dagelijks bezig met het verbeteren van Joomla. Naast het werk aan Joomla 4 is men ook bezig om bugfixes van Joomla 3 te melden en op te lossen. Komt Joomla met een nieuwe versie is het aan te raden deze bij te werken. Zo blijft je bij de meest recente versie die hoogstwaarschijnlijk ook het meest veilig is.

5. Update alle extensies

Naast Joomla zullen ook de extensies regelmatig van een update voorzien worden. Werk ze bij. Kijk ook eens op Vulnerable Extension List om na te gaan of een geïnstalleerde extensie lek is, en zo ja welke versie. Onderneem actie indien je een voor jou bekende extensie tegenkomt.

6. Gebruik alleen noodzakelijke extensies

... en schakel de rest (indien mogelijk) uit of verwijder het. Denk hierbij ook aan templates die je niet gebruikt. Joomla Administrator > Extensies > Beheren > Beheren. Door te filteren op locatie = "site" en type = "template" kun je vrij eenvoudig niet gebruikte templates uitschakelen. Bijkomend voordeel is dat de lijst met moduleposities bij het beheren van de modules ook een stuk korter is.

7. Koop extensies / templates alleen bij de ontwikkelaar zelf

Bij koop van een extensie bij andere partijen dan de ontwikkelaar zelf loop je grotere kans dat er iets met de extensie gedaan is. Er kan boefjes software zijn toegevoegd.

8. Gebruik alleen sterke wacthwoorden

  • Joomla Administrator > Gebruikers > Opties > Wachtwoord opties
    De plek waar je instelt hoe sterk je wachtwoord is.

Daarnaast is het gebruik van een wachtwoord beheer systeem zoals LastsPass en 1Password aan te raden. Zij kunnen je wachtwoorden bedenken en beheren.

9. Registratie uitschakelen of beperken

  • Via Joomla Administrator > Gebruikers > Opties > Gebruiker Opties > Gebruikersregistratie => staat standaard op Nee.
  • Joomla Administrator > Gebruikers > Opties > E-mail domein opties => hier geef je aan welke domeinnamen nieuwe gebruikers mogen registreren.
    Let op... de volgorde hiervan is belangrijk. Plaats de wildcard domein * met de optie "Niet toegestaan" niet als laatste, want die wint van eerder genoemde opties.
  • Joomla Administrator > Gebruikers > Opties > Gebruiker Opties > Wachtwoord versturen => staat standaard op Nee. De mail naar de gebruiker bevat daardoor geen wachtwoord. Dat is mooi.
    Maak je een nieuwe user aan vanuit Joomla administrator wordt deze setting genegeerd en gaat er een mail met wachtwoord naar de klant.
    Dit kan ook uitgeschakeld worden door bij de System Plugin voor gebruikersregistratie de mail naar gebruiker uit te schakelen.

10. Verberg de /administrator link

  1. Extra login voordat je bij administrator kunt komen. Middels .htpasswd => in te stellen via o.a. Akeeba AdminTools.
  2. Toevoegen van een extra sleutelwoord bijv ?beheer. /administrator stuurt je door de homepage. /administrator?beheer laat je de login zien => in te stellen via o.a. Akeeba AdminTools
  3. In plaats van /administrator een compleet andere bijv. /beheer. Deze zal je doorsturen naar /administrator/index.php. Een direct bezoek naar /administrator zal je redirecten naar de homepage => in te stellen via o.a. Akeeba AdminTools. Wordt afgeraden.
  4. Whitelist van IP-adres => in te stellen via o.a. Akeeba AdminTools

Andere beveiliging extensie: https://extensions.joomla.org/extension/adminexile

11. Gebruik Two-factor authentication

Extra beveiliging van je account. En zeer aan te raden om toe te passen. Joomla kent de mogelijkheid via Ubikey en Google Authenticator. Er zijn er meerdere te downloaden via Joomla Extension Directory. Vanaf Joomla 4 is het mogelijk om de gebruikers te verplichten om 2FO in te stellen.

12. Maak gebruik van het .htaccess bestand

Joomla levert standaard een htaccess.txt bestand aan die je nog moet gaan hernoemen naar .htaccess om hem te laten werken. De websites van Joomla.org hebben een aangepaste .htaccess die ze ook beschikbaar stellen via Github. https://github.com/joomla/joomla-websites/tree/master/configuration-baselines

Security Headers

De website Netspecialist heeft een artikel geschreven over security headers. Via de website https://securityheaders.com/ kun je de Headers van je website te testen. Voor Joomla 3 bestaat de Joomla System Plugin httpHeaders te downloaden via GitHub. Deze extensie zit in Joomla 4 core. Na installatie dient het nog wel geconfigureerd te worden.

13. Controleer je schrijfrechten

Joomla Administrator > Extensies > Admintools > Permissions Configuration.

  • 444 => configuration.php
  • 644 => bestanden
  • 755 => directories

14. Gebruik SSL

Het is tegenwoordig vrij eenvoudig een SSL certificaat aan te vragen en door je hostingpartij te laten installeren. De dienst Let's Encrypt levert gratis SSL certificaten.
Daarna via Joomla Administrator > Systeem > Algemene Configuratie > Server > Forceer HTTPS = Gehele website.

15. Gebruik reCaptcha op spam te voorkomen

Via Joomla system plugin reCAPTHA is het mogelijk om Google reCaptcha v1 of v2 te activeren. Omdat vele van ons RSForm gebruiken is het aan te bevelen om de RSForm plugin Google reCaptcha v3 of hCaptcha te installeren. Via de websites Google.com/reCaptcha en hCaptcha.com kun je de benodigde keys gratis aanmaken.

16. Gebruik beveiligingsextensies

Tijdens de presentatie kwam al naar voren dat Jeroen Akeeba AdminTools en RS Firewall gebruikt. Via de chat kwam ook nog AdminExile naar voren.

Gewijzigde files

Via Akeeba AdminTools is het mogelijk om een overzicht te krijgen van de gewijzigde bestanden op je site. Dit proces duurt lang. En duurt de volgende keer dat je op de knop drukt weer lang. René Kreijveld verwijst naar eigen gemaakt script dat elk uur controleert of er bestanden gewijzigt zijn en zo ja... een mailtje stuurt. https://github.com/renekreijveld/joomlabashscripts/blob/master/src/jnewfiles. Een andere mogelijkheid is je site beheren via myJoomla. Met deze betaalde dienst kun je ook een overzicht maken van gewijzigde files. (en meer)

Tijdelijke gebruiker

Via de extensie AdminTools kun je een tijdelijke gebruiker aanmaken die voor een ingestelde tijd mag inloggen. Handig voor als je wel eens vergeet om de tijdelijke users op te ruimen.

Dr Joomla

vraag: een klant is gecharmeerd van het intro op steam.nl. Hoe maak ik dat na?
antwoord: Flash for the win! Haha... of via jQuery. Maar het kan ook met css. Bijvoorbeeld met een unordered list met list items. Elk list item absoluut gepositioneerd over het hele scherm. En middels transities laat je de items met een delay verschijnen en verdwijnen. voorbeeld op codepen

Handige links

  • codepen.io - handige website voor testen en delen van code

Volgende keer

De volgende JUG Eindhoven is op maandag 7 juni. Het onderwerp van deze meeting en de mogelijkheid tot aanmelden is terug te vinden op https://www.joomlacommunity.nl/agenda/joomla-gebruikersgroepen/eindhoven/event/605-jug040-bijeenkomst-eindhoven.
Vragen voor Dr. Joomla kun je kwijt als reactie onder de aankondiging.

Reageer

1000 Resterende tekens