Admin Shield: de PrestaShop 8 en 9 back-office beveiligen
Admin Shield installeren en instellen: beperking van pogingen, IP- en landblokkering, captcha, geheime link, meldingen, sessies, activiteitenlogboek en rapport.
Admin Shield beschermt de toegang tot de back-office van PrestaShop 8 en 9. De module stelt u in via Geavanceerde parameters > Admin Shield, verdeeld over zeven tabbladen: Dashboard, Aanmeldgeschiedenis, Activiteitenlogboek, Actieve sessies, Blokkeringen en blokkades, Instellingen en Toegang tot de back-office.
Installatie
- Klik in Modules > Modulebeheer op Een module uploaden en verstuur het ZIP-bestand.
- De installatie leegt de PrestaShop-cache: alle back-officepagina’s zijn vanaf het volgende verzoek beschermd.
- De module geeft alle medewerkersprofielen het recht om de module te bekijken. Zonder dit recht zou PrestaShop de hooks voor die medewerkers niet uitvoeren en zouden hun acties niet worden gelogd.
Aanbevolen eerste instellingen
- Tabblad Instellingen, blok IP-adressen: klik op Mijn huidige IP aan de whitelist toevoegen. Een IP op de whitelist wordt nooit geblokkeerd.
- Controleer de regel Gedetecteerd client-IP. Achter Cloudflare of een proxy houdt u de modus Automatisch aan of kiest u de passende modus.
- Stel de anti-botcontrole in (zie hieronder) en test de sleutels.
- Klik op Stuur mij een test-e-mail om te controleren dat de e-mails van de winkel vertrekken.
- Tabblad Toegang tot de back-office: hernoem de admin-map als de checklist hem als makkelijk te raden aangeeft.
Test elke bescherming vanuit een privévenster zonder uw hoofdsessie te sluiten.
Beperking van aanmeldpogingen
Standaard blokkeren 5 mislukte pogingen op hetzelfde account vanaf hetzelfde IP, of 15 mislukte pogingen vanaf één IP over alle accounts, binnen 15 minuten, de aanmelding gedurende 15 minuten. Met de progressieve blokkade verdubbelt de duur bij elke herhaling binnen 24 uur, tot maximaal 24 uur. Na 3 blokkades binnen 24 uur wordt het IP 7 dagen geblokkeerd. De blokkade geldt voor het paar IP en account: een aanvaller kan geen legitieme medewerker buitensluiten die zich vanaf een ander adres aanmeldt. Verzoeken om wachtwoordherstel zijn beperkt tot 5 per IP en per uur.
Het tabblad Blokkeringen en blokkades toont de actieve blokkades, die u kunt opheffen, en de blokkeringen, die u kunt verwijderen. Daar blokkeert u ook handmatig een IP of een CIDR-bereik.
IP-adressen en landenfilter
De whitelist accepteert IP’s en IPv4- en IPv6-CIDR-bereiken, één per regel. De optie Alleen de whitelist toestaan weigert elk ander adres; ze wordt alleen opgeslagen als uw huidige IP in de lijst staat.
Het landenfilter werkt in toestaanmodus (alleen de gekozen landen) of blokkeermodus. Het land komt uit de Cloudflare-header als het verzoek echt van Cloudflare-servers komt, anders uit een MMDB-database. Klik op DB-IP Lite-database downloaden om de gratis landendatabase te installeren, die ongeveer elke twee maanden bijgewerkt moet worden. Adressen in het lokale netwerk worden nooit gefilterd, en opslaan wordt geweigerd als het uw eigen verbinding zou blokkeren.
Geweigerde bezoekers krijgen een 403-pagina, of een 404-pagina als u het bestaan van de back-office liever verbergt.
Anti-botcontrole: Turnstile of hCaptcha
- Maak een widget aan op dash.cloudflare.com (Turnstile) of dashboard.hcaptcha.com en sta het domein van uw back-office toe.
- Kies in Instellingen de provider, plak de sitesleutel en de geheime sleutel en sla op.
- Los de testwidget op en klik op Controleren en activeren.
De controle geldt pas voor de aanmeldpagina na deze geslaagde test: een verkeerde sleutel kan de beheerders niet buitensluiten. Elke wijziging van de sleutels schakelt de controle uit tot de volgende test. Standaard gaan aanmeldingen door als de provider onbereikbaar is.
Toegang tot de back-office: geheime link en admin-map
Geheime toegangslink
Eenmaal ingeschakeld, opent de back-office alleen in een browser die de geheime link één keer heeft bezocht; alle anderen krijgen een 404-pagina. De browser die hem inschakelt, behoudt de toegang, en de link wordt per e-mail naar de ontvangers van de meldingen gestuurd. Nieuwe link genereren maakt alle browsers behalve de uwe ongeldig. IP’s op de whitelist hebben de link nooit nodig.
Admin-map hernoemen
Er wordt een willekeurige naam voorgesteld. Vóór het hernoemen wordt het nieuwe adres per e-mail verstuurd; daarna wordt de map hernoemd en de cache geleegd. Meld u opnieuw aan op het nieuwe adres en werk cronjobs bij die naar de oude map verwijzen. Mag de webserver de map niet hernoemen, doe het dan via FTP en leeg daarna de cache in Geavanceerde parameters > Prestaties.
Meldingen van ongebruikelijke aanmeldingen
De eerste aanmelding van elke medewerker na de installatie dient als referentie. Daarna gaat er een melding uit voor een nieuw IP, een nieuw land, een nieuwe browser of een nieuw systeem, of een aanmelding buiten het ingevulde tijdvak (bijvoorbeeld 07-21). Ontvangers zijn de medewerker, de superbeheerders en de extra adressen. De link Dat was ik niet in de e-mail, 7 dagen geldig, blokkeert het IP, sluit de sessies van de medewerker en maakt zijn wachtwoord ongeldig; de medewerker kiest een nieuw via Wachtwoord vergeten?
Het webhookveld plaatst deze meldingen, de blokkades en gevoelige wijzigingen ook in Slack, Microsoft Teams, Discord, Google Chat of Mattermost.
Actieve sessies en inactiviteit
Het tabblad Actieve sessies toont de open sessies met het IP, het land en het apparaat van de aanmelding. U kunt een sessie sluiten, al uw andere sessies afmelden of een medewerker overal afmelden. De instelling Afmelden na inactiviteit sluit sessies die langer dan de gekozen termijn inactief zijn; automatische verversingen van de back-office tellen niet als activiteit.
Activiteitenlogboek
Elke aanmaak, wijziging en verwijdering in de back-office wordt vastgelegd met de medewerker, het IP, de pagina en, bij een wijziging, de oude en de nieuwe waarde van elk veld. Wachtwoorden en tokens worden gemaskeerd. Installaties, verwijderingen en updates van modules worden ook bijgehouden. Wijzigingen aan medewerkers, profielen, API-sleutels, winkel-URL’s en module-installaties worden als gevoelig gemarkeerd en per e-mail naar de beheerders gestuurd. Filter op medewerker, actie of object en exporteer naar CSV. Voeg in Instellingen de objectklassen toe die niet gelogd moeten worden.
Beveiligingsrapport
Het rapport gaat elke week of elke maand naar de superbeheerders en de extra adressen. Voor een betrouwbare verzending roept u de cron-URL uit Instellingen één keer per dag aan. Zonder cron vertrekt het rapport bij het volgende bezoek aan de back-office zodra het verschuldigd is. De knop Stuur mij het rapport nu dient als voorbeeld.
Noodtoegang
Bent u buitengesloten, maak dan via FTP een leeg bestand met de naam disable.flag aan in modules/dfadminshield/: alle bescherming stopt tot het wordt verwijderd. Verwijder de modulemap niet, de Symfony-container van PrestaShop verwijst ernaar. De waarde DFAS_KEY in de tabel configuration bevat de sleutel van de geheime link.
Tweestapsverificatie
Admin Shield beschermt de aanmeldpagina en bewaakt de toegang, zonder na het wachtwoord om een code te vragen. Om die stap toe te voegen, installeert u ook de module 2FA Google Authenticator van DataFirefly: beide werken samen.