# maca Sec – Guide och funktioner

maca Sec samlar brandvägg, inloggningsskydd, 2FA, hårdning, skanning och loggning på ett ställe. Alla funktioner ingår utan premium-lås.

Den här guiden beskriver vad varje del gör och hur du använder dem i WordPress-admin under **maca Sec** i sidomenyn.

---

## Kom igång

### 1. Installera och aktivera

1. Ladda upp pluginet via **Tillägg → Lägg till → Ladda upp** eller placera mappen `maca-sec` i `wp-content/plugins/`.
2. Aktivera **maca Sec** under **Tillägg**.
3. Du omdirigeras till **Villkor & policy** — läs och godkänn **användarvillkoren** och **integritetspolicyn** med kryssrutorna.
4. Klicka **Godkänn och fortsätt**. Säkerhetsskyddet aktiveras automatiskt.

> Om villkoren uppdateras i en senare version måste du godkänna på nytt. Tills dess pausas skyddet och du ser en notis i wp-admin.

### 2. Rekommenderad ordning efter installation

1. Öppna **Instrumentpanel** och notera säkerhetspoängen.
2. Kör **Skanner → Kör skanning nu** och åtgärda kritiska problem.
3. Lägg din IP i **Brandvägg → IP-vitlista** (knappen **Min IP**).
4. Aktivera **2FA** under **Användare → Din profil**.
5. Ange **e-post för larm** under **Hårdning**.
6. Granska brandväggsregler och aktivera captcha vid behov.
7. Testa sajten i ett privat fönster efter ändringar.

**Före produktion:** ta backup, testa inloggning och kassa/betalning, kontrollera att du inte spärrar dig själv eller legitima besökare.

---

## Översikt

Tabellen nedan sammanfattar **vad varje modul gör** och **vilka hot den är tänkt att stoppa**. Detaljer och inställningar finns i respektive avsnitt längre ner.

| Modul | Vad den gör | Skyddar mot | Inställningar |
|-------|-------------|-------------|----------------|
| **Brandvägg (WAF)** | Analyserar inkommande förfrågningar mot kända attackmönster i URL, formulär och headers | SQL injection, XSS, path traversal, uppladdning av körbar kod, spoofade Referer-headers | Brandvägg |
| **Rate limiting** | Räknar förfrågningar per IP och minut, per område (hela sajten, login, admin, XML-RPC, REST) | Brute force, credential stuffing, scraping, bot-flöden mot känsliga endpoints | Brandvägg |
| **Smart rate limiting** | Väger in beteendesignaler (burst, URL-mönster, cookies, referer) innan spärr triggas | Aggressiva skannrar, automatiserade exploits, bots utan normal webbläsarbeteende — med färre falska positiva än ren IP-spärr | Brandvägg |
| **AI-botar** | Identifierar kända AI-crawlers via User-Agent och tillämpar policy per bot | Oönskad AI-träning/skrapning, bandbreddsstöld, indexeringsbotar som inte respekterar robots.txt | Brandvägg |
| **Attack shield** | Aktiverar tillfälligt underhållsläge (HTTP 503) när trafiken blir extrem | Volumetriska DDoS-liknande attacker, överbelastning som riskerar att ta ner servern | Brandvägg |
| **Inloggningsskydd** | Begränsar misslyckade inloggningar, döljer fel och kan kräva captcha/starka lösenord | Brute force, lösenordsspraying, användarnamnsenumeration | Inloggning |
| **Honeypot-fällor** | Erbjuder falska sökvägar som bara bots/skannrar försöker nå | Automatiserade skannrar, sökvägsgissning, botar som letar efter svaga login- eller API-endpoints | Inloggning |
| **Sessionshantering** | Loggar ut inaktiva användare och visar aktiva sessioner | Kvarlämnade admin-sessioner på delade datorer, session hijacking efter obevakad skärm | Inloggning |
| **2FA** | Kräver engångskod utöver lösenord vid inloggning | Stulna eller läckta lösenord, credential stuffing även när lösenordet är känt | Användare → Profil |
| **Hårdning** | Stänger vanliga WordPress-angreppsytor och begränsar exponerad information | Filredigering via admin, XML-RPC-missbruk, författar- och användarenumeration, pingback-flood | Hårdning |
| **HTTP-headers** | Lägger till säkerhetsheaders i HTTP-svar | Clickjacking, MIME-sniffing, oönskad referrer-läckage, otillåten åtkomst till kamera/mikrofon i webbläsaren | Hårdning |
| **Skanner** | Kontrollerar konfiguration, filer och konton mot säkerhetsbrister | Felaktiga filrättigheter, misstänkt kod, svaga admin-konton, saknad 2FA, föråldrad PHP | Skanner |
| **Filövervakning** | Jämför hash på kritiska filer mot godkänd baslinje | Obehöriga filändringar, backdoors, komprometterade config-filer efter intrång | Skanner |
| **CVE-skanning** | Jämför installerade plugin/teman mot WPScan-databasen | Kända sårbarheter (CVE) i tredjepartskod som angripare kan utnyttja | Skanner |
| **Supply chain-skydd** | Övervakar plugin-integritet, utvecklarbyten och WP.org-checksums | Komprometterade plugin-uppdateringar, köpta/hackade tillägg, skadlig kod via leveranskedjan | Supply chain & AI |
| **Beteendeanalys** | Beräknar riskpoäng 0–100 för REST/POST-beteende | Ovanliga API-anrop, oautentiserade skrivningar, exploitmönster som signatur-WAF missar | Supply chain & AI |
| **Säkerhetslogg** | Samlar och filtrerar alla säkerhetshändelser | — (synlighet och spårbarhet vid incident, inte ett blockeringsskydd i sig) | Loggar |
| **maca Hub** | Fjärrstyrning, vitlist-synk och status i maca Hub-appen | — (administration och överblick, inte ett hotblock i sig) | maca Hub-app |
| **Kollektiv hotintelligens** | Rapporterar anonymt attacker till Hub-nätverket och tar emot gemensamma blockeringar | Återkommande angripare som redan stoppats på hundratals andra sajter | maca Hub-app |
| **Filsystemsvakt 2.0** | Djupskannar uploads/teman efter nya PHP-filer och webshell-signaturer | Uppladdade backdoors, skadlig kod med eval/Base64/gzinflate | Skanner |
| **Säkerhetsbetyg** | Holistisk poäng 0–100 med checklista på instrumentpanelen | Ger överblick över PHP, HTTPS, 2FA, WAF, CVE och uppdateringar | Instrumentpanel |
| **Live Attack Map** | Realtidsdata till maca Hub (karta i appen) | Visualiserar att skyddet arbetar — attacker/min, länder, typer | maca Hub-app |

Alla säkerhetshändelser loggas under **maca Sec → Loggar**.

---

## Sidomenyn i korthet

| Sida | Vad du gör här |
|------|----------------|
| **Instrumentpanel** | Överblick: poäng, händelser, blockerade IP, modulstatus |
| **Skanner** | Säkerhetsskanning, filövervakning, CVE/WPScan |
| **Inställningar** | Brandvägg, inloggning, hårdning, supply chain & AI, maca Hub-app (flikar) |
| **Loggar** | Filtrera, söka, spärra IP, godkänna filändringar |
| **Guide** | Den här guiden |
| **Villkor & policy** | Läs och godkänn juridiska dokument |

Under **Inställningar** hittar du flikarna **Brandvägg**, **Inloggning**, **Hårdning**, **Supply chain & AI** och **maca Hub-app**.

---

## Brandvägg

**maca Sec → Inställningar → Brandvägg**

Brandväggen körs tidigt på varje sidförfrågan och analyserar inkommande trafik. Inloggade administratörer i wp-admin kringgår brandväggen så att inställningar kan sparas normalt.

### WAF-regler

| Regel | Skyddar mot |
|-------|-------------|
| SQL injection | Vanliga SQL-injektionsmönster i URL och formulär |
| XSS | Script-taggar och farlig indata |
| Path traversal | `../`-mönster och kataloggenomgång |
| Farliga uppladdningar | `.php`, `.phtml`, `.phar` m.fl. |
| Spoofade Referer | Falska Referer-headers |

### User-Agent-blockering

- **Skannrar & exploit-verktyg** — nikto, wpscan, sqlmap, masscan, nmap m.fl.
- **CLI-verktyg** (valfritt) — curl, wget, python-requests. *Kan påverka legitima API-klienter.*
- **Tom User-Agent** (valfritt) — förfrågningar utan User-Agent.
- **Egna strängar** — en sträng per rad, matchas om User-Agent innehåller texten.

### Rate limiting

**Vad den gör:** Räknar hur många förfrågningar varje IP-adress gör per minut och stoppar trafik som överskrider gränsen.

**Skyddar mot:** Brute force mot inloggning, massiva anrop mot wp-admin eller REST API, XML-RPC-flood och generella bot-flöden som försöker överbelasta eller skanna sajten.

Standardvärden:

| Område | Standard |
|--------|----------|
| Hela webbplatsen | 100/min |
| wp-login.php | 20/min |
| wp-admin | 60/min |
| xmlrpc.php | 10/min |
| REST API | 100/min |

**Smart hastighetsbegränsning** (valfritt, på som standard) väger in burst-hastighet, antal unika URL:er, HTTP-metod, cookies, referer och misstänkta URL-mönster.

**Strikt smart hastighetsbegränsning** sänker trösklarna (färre anrop per sekund och färre unika URL:er räcker för högre riskpoäng). Aktiveras i profilen *Maximalt skydd* — stoppar skannrar snabbare men kan ge fler 429 vid mycket snabba legitima flöden.

**Skyddar mot:** Aggressiva skannrar och automatiserade angrepp som sprider sig över många URL:er på kort tid, skrivande anrop utan cookies (t.ex. exploit-försök) och botar som saknar normal webbläsarbeteende. Ger färre falska positiva än en ren IP-spärr — legitima besökare med cookies och normal surfhastighet påverkas sällan.

| Signal | Varför det räknas |
|--------|-------------------|
| Burst-hastighet | Många anrop på några sekunder tyder på automatisering |
| Många unika URL:er | Skannrar kartlägger sajten systematiskt |
| Skrivande utan cookies | Exploit-försök mot formulär/API utan session |
| Saknad referer | Botar hoppar direkt mellan URL:er utan normal navigering |
| Misstänkta URL:er | t.ex. `wp-config`, `.env`, `shell.php` |

### AI-botar

**Vad den gör:** Känner igen kända AI-crawlers via User-Agent och tillämpar din valda policy per bot.

**Skyddar mot:** Oönskad skrapning för AI-träning, bandbreddsstöld och indexeringsbotar som kan publicera ditt innehåll i AI-tjänster utan att du vill det. Blockering stoppar boten helt; begränsning låter den crawla i låg takt.

Per-bot-policy för kända AI-crawlers:

| Bot | Standard |
|-----|----------|
| GPTBot | Begränsa |
| ClaudeBot | Begränsa |
| Bytespider | Blockera |
| PerplexityBot | Begränsa |
| Amazonbot | Tillåt |

**Tillåt** — ingen åtgärd. **Blockera** — HTTP 403. **Begränsa** — max antal förfrågningar per minut och IP (standard 15/min). Vitlistade IP påverkas inte.

### Attack shield

**Vad den gör:** Sätter hela webbplatsen i tillfälligt underhållsläge (HTTP 503) när trafiken överskrider en hög tröskel.

**Skyddar mot:** Volumetriska DDoS-liknande attacker och trafiktoppar som annars kan ta ner PHP/MySQL eller göra sajten oanvändbar för alla besökare.

Aktiverar underhållsläge (HTTP 503) vid extrem trafik. Standard: tröskel 500 förfrågningar/minut, varaktighet 600 sekunder. Om shield är aktiv visas en röd varning på brandväggssidan.

### Landskods-blacklist

Blockera besökare från valda länder med ISO-kod (t.ex. `RU, CN`). Vitlistade IP påverkas inte.

Landskod hämtas från Cloudflare/server-headers om möjligt, annars via ip-api.com (cachelagras 7 dagar). Om landskod **inte** kan avgöras blockeras besökaren **inte** av landskodsregeln.

> **Tips:** Lägg alltid din egen IP i vitlistan innan du aktiverar landsblock.

### IP-vitlista

Vitlistade IP/CIDR kringgår brandvägg, landsblockering och inloggningsspärrar. Använd knappen **Min IP** för att snabbt lägga till din adress. Stöd för CIDR, t.ex. `192.168.1.0/24`.

Om maca Hub är kopplat kan du synka vitlistade IP till alla dina Hub-sajter.

### Blockerade IP-adresser

Visa, avblockera eller vitlista IP som spärrats automatiskt eller manuellt. Spärrar kan vara tillfälliga eller permanenta.

---

## Inloggningsskydd

**maca Sec → Inställningar → Inloggning**

### Brute force-skydd

**Vad den gör:** Räknar misslyckade inloggningsförsök per IP och spärrar tillfälligt när gränsen nås.

**Skyddar mot:** Brute force och lösenordsspraying mot `wp-login.php` — automatiserade försök att gissa administratörslösenord.

- **Max inloggningsförsök** — standard 5 misslyckade försök.
- **Spärrtid** — standard 900 sekunder (15 minuter).
- **Dölj inloggningsfel** — visar generiskt felmeddelande (motverkar användarnamnsenumeration).
- **Kräv starka lösenord** — minst 12 tecken med stora/små bokstäver, siffror och specialtecken.

Vitlistade IP hoppar över brute force-spärr och captcha.

### E-postlarm vid inloggning

Skickar e-post vid misstänkta inloggningsförsök (med landskod om tillgänglig). Använder samma e-postadress som under **Hårdning → E-post för larm**. Du anger efter hur många försök larmet ska skickas — en gång per IP och spärrperiod.

### Inaktiv utloggning

Loggar ut inaktiva användare automatiskt — skyddar kvarlämnade admin-sessioner.

| Inställning | Standard |
|-------------|----------|
| Timeout | 60 minuter |
| Varning före utloggning | 5 minuter |
| Omfattning | Endast wp-admin |
| Kom ihåg mig | Gäller även dessa sessioner |

En dialog visas innan utloggning så användaren kan förlänga sessionen.

### Spamkontroll

- **Honeypot** — alltid aktivt. Dolt fält på inloggningssidan som fångar bots.
- **Captcha** — välj leverantör:
  - Matematisk (ingen API-nyckel)
  - Google reCAPTCHA v2 (kryssruta)
  - Google reCAPTCHA v3 (osynlig, tröskel 0.0–1.0)
  - Cloudflare Turnstile

Registrera site key och secret key för vald leverantör. Domänen måste matcha `wp-login.php`.

### Honeypot-fällor

**Vad den gör:** Erbjuder falska URL:er som inte finns i WordPress men som bots och skannrar ofta testar automatiskt.

**Skyddar mot:** Automatiserade sökvägsskannrar, botar som letar efter svaga login-sidor, XML-RPC och REST-endpoints — och avslöjar angripare tidigt genom att logga och spärra IP.

Falska sökvägar som lockar bots och skannrar — inte samma sak som login-honeypot ovan.

| Fälla | Exempel |
|-------|---------|
| Falsk inloggning | `/login.php`, `/wp-login.php.bak` |
| Falsk XML-RPC | `/xmlrpc2.php` |
| Falska REST-endpoints | `/wp-json/wp/v2/superadmin`, `/wp-json/api/v1/token` |

Vid träff loggas **IP, land, ASN och User-Agent**. IP spärras permanent som standard (kan stängas av under **Inloggning → Honeypot-fällor**). Egna sökvägar kan läggas till, en per rad.

Senaste träffar visas på samma sida.

### Aktiva sessioner

Visar dina inloggade enheter (enhet, IP, tid). Knappen **Logga ut alla andra sessioner** avslutar övriga sessioner.

### Tvåfaktorsautentisering (2FA)

2FA aktiveras per användare under **Användare → Profil**:

1. Aktivera 2FA och skanna QR-koden med Google Authenticator, Authy eller 1Password.
2. Spara **återställningskoderna** på en säker plats.
3. Vid inloggning anger du engångskod efter lösenordet.

---

## Hårdning

**maca Sec → Inställningar → Hårdning**

### Grundläggande hårdning

| Inställning | Effekt |
|-------------|--------|
| Inaktivera filredigerare | Tar bort **Utseende → Redigerare** och plugin-redigeraren |
| Dölj WordPress-version | Visar inte version i HTML |
| Ta bort generator-meta | Tar bort `<meta name="generator">` |
| Inaktivera XML-RPC | Blockerar xmlrpc.php (om inte redan av via inloggning) |
| Blockera författare-numrering | Stoppar `?author=1`-enumeration |
| Dölj användare i REST API | Anonymiserar användarlistan i `/wp-json/wp/v2/users` |
| Inaktivera pingbacks | Stänger av pingbacks |
| Inaktivera WP-Cron vid sidbesök | Stoppar automatisk cron vid sidladdning — kräver server-cron (se infobox i admin) |
| Ta bort ?ver= från CSS/JS | Tar bort versionsparameter i tilläggs- och tema-URL:er |
| Blockera readme/license i teman och plugins | 403 på readme.txt/html och license.txt under wp-content |
| Blockera readme.html och license.txt i webbrot | 403 på standardfiler i WordPress-rot |
| Blockera direktåtkomst till wp-includes/version.php | Hindrar vanlig WordPress-versionsfingerprinting |
| Hotlink-skydd | 403 om extern sajt länkar direkt till dina bilder |
| Begränsa postrevisioner | Standard 10 revisioner per inlägg |

#### WP-Cron (server-cron)

När **Inaktivera WP-Cron vid sidbesök** är på körs inte schemalagda jobb automatiskt när någon besöker sajten. Det minskar belastning och gör det svårare att missbruka `wp-cron.php` via besökstrafik.

**Viktigt:** Du måste sätta upp ett återkommande jobb hos din hostingleverantör (cron, schemalagda uppgifter, Task Scheduler). maca Sec visar en infobox med exempelkommandon (HTTP med curl/wget eller WP-CLI) anpassade till din sajt — utan att vara låst till en specifik leverantör.

Utan ersättning slutar t.ex. schemalagda inlägg, uppdateringskontroller och plugin-jobb att köras i tid.

#### Fingerprint-skydd

| Inställning | Effekt |
|-------------|--------|
| Ta bort ?ver= från CSS/JS | Versionsnummer försvinner från tilläggs- och tema-URL:er (style.css kan fortfarande innehålla `Version:` i filen) |
| Blockera readme/license i teman och plugins | 403 på readme och license under `wp-content/themes` och `wp-content/plugins` |
| Blockera readme.html och license.txt i webbrot | 403 på standardfiler i WordPress-rot |
| Blockera wp-includes/version.php | Stoppar direkt HTTP-åtkomst till WordPress versionsfil |

### HTTP-säkerhetsheaders

| Header | Beskrivning |
|--------|-------------|
| X-Frame-Options | SAMEORIGIN eller DENY — motverkar clickjacking |
| X-Content-Type-Options | nosniff |
| Referrer-Policy | Styr hur mycket referrer-info som skickas |
| Permissions-Policy | Begränsar kamera, mikrofon m.m. |
| Content-Security-Policy | Valfri CSP — *kan bryta vissa teman/plugins, testa noggrant* |
| HSTS | Aktiveras automatiskt vid HTTPS |

### Aviseringar

- **E-post för larm** — tom = WordPress admin-e-post. Får mail vid kritiska händelser och filändringar.
- **Loggretention** — standard 30 dagar. Äldre loggar rensas automatiskt.

---

## Skanner och filövervakning

**maca Sec → Skanner**

### Säkerhetsskanning

**Vad den gör:** Kontrollerar sajten mot en checklista med vanliga säkerhetsbrister och ger en poäng 0–100.

**Skyddar mot:** Konfigurationsfel och svagheter som angripare utnyttjar innan de ens behöver ett exploit — fel filrättigheter, exponerade filer, svaga konton och saknad 2FA.

Klicka **Kör skanning nu** för en fullständig kontroll. Du får en **säkerhetspoäng 0–100** och en lista med fynd sorterade efter allvarlighet:

- **Kritisk** — åtgärda omedelbart
- **Varning** — bör åtgärdas
- **Info** — rekommendationer

Skannern kontrollerar bland annat filrättigheter, misstänkt kod, admin-konton, 2FA-status, PHP-version, konfiguration och om aktivt tema exponerar versionsrad i `style.css`.

**Åtgärda** — vissa problem kan fixas med en knapp direkt i listan.

**Godkänn** — om du medvetet gjort en ändring (t.ex. egen kod i ett tema) kan du godkänna fyndet så det inte sänker poängen. Använd endast om du vet att ändringen är avsiktlig och säker.

### Filövervakning

**Vad den gör:** Beräknar hash på valda filer och varnar när innehållet ändras utan godkänd baslinje. För **`.htaccess`** och **`wp-config.php`** sparas även redigerade innehållssnapshots så att du kan se **rad-för-rad-diff**, **SHA-256 före/efter** och (när det går att avgöra) **trolig skribent** — t.ex. WordPress permalinks, plugin-/temaredigeraren eller en uppdatering.

**Skyddar mot:** Obehöriga filändringar efter intrång — t.ex. backdoor i `wp-config.php`, manipulerad `.htaccess` eller komprometterade plugin-filer.

| Fil/område | Standard |
|------------|----------|
| wp-config.php | Övervakas (diff + SHA-256) |
| .htaccess | Övervakas (diff + SHA-256) |
| Aktiva plugins (huvudfil) | Av |
| Alla maca Sec-filer | Av |

Vid ändring utan godkänd baslinje visas varning i wp-admin med **Visa diff** under Skanner och i Loggar. Du kan **godkänna** filändringen i **Loggar** eller **Skanner** för att uppdatera baslinjen.

> **Obs:** IP/användare i listan är vem som var aktiv när ändringen *upptäcktes*, inte nödvändigtvis vem som skrev filen. Externa skrivningar (FTP/SSH) markeras som okänd skribent. Hemligheter i `wp-config.php` (lösenord, salts) redigeras bort (`[REDACTED]`) innan snapshot, logg och Hub.

### CVE-skanning (WPScan)

**Vad den gör:** Jämför installerade plugin och teman mot WPScans databas över kända sårbarheter (CVE).

**Skyddar mot:** Utnyttjande av publikt kända sårbarheter i tredjepartskod — ofta det första angripare testar efter en CVE publiceras.

1. Skapa ett gratis API-token på wpscan.com.
2. Aktivera CVE-skanning och klistra in token under **Skanner**.
3. Skanning körs i batch per dag (schemalagt).

**Plugin-sårbarhetstabell** visar status per installerat plugin:

| Status | Betydelse |
|--------|-----------|
| **Hög risk** | Kritisk eller hög CVE i din installerade version (t.ex. CVE-2026-9050) |
| **Uppdatera snarast** | Lägre CVE eller ny version tillgänglig |
| **Ingen känd sårbarhet** | Skannad utan träff i WPScan |
| **Väntar på skanning** | Inte skannad i batch ännu |

Nya hög-risk-CVE loggas som kritiska händelser och kan skicka e-postlarm.

---

## Supply chain & beteendeanalys

**maca Sec → Inställningar → Supply chain & AI**

Två avancerade moduler som skyddar mot komprometterade plugin-uppdateringar och ovanliga attackmönster.

### Supply chain-skydd

Övervakar installerade plugin mot supply chain-attacker — när angripare köper upp plugin, komprometterar CDN:er eller publicerar skadliga uppdateringar.

| Funktion | Vad den gör |
|----------|-------------|
| **Utvecklarbyten** | Varnar om pluginets författare eller författar-URL ändras |
| **WordPress.org-checksums** | Jämför filer mot officiella checksums från WordPress.org |
| **Borttagning från WP.org** | Varnar om ett tidigare verifierat plugin inte längre finns på wordpress.org |
| **Extern JS i admin** | Upptäcker okända externa JavaScript-domäner i wp-admin |
| **Nya admin-domäner** | Bygger baslinje och varnar när nya domäner laddas från adminpanelen |

Kontrollen körs dagligen i batch (några plugin åt gången) och vid plugin-uppdateringar. Varningar visas på sidan **Supply chain & AI** och i **Loggar** (typ: supply chain).

> Vid första besök i wp-admin byggs en tyst baslinje för admin-domäner — inga falsklarm på befintliga tillägg.

### Beteendeanalys (riskpoäng 0–100)

Heuristisk analys av inkommande begäranden — inte extern AI, men beteendebaserad detektion som kompletterar signaturbaserad brandvägg:

- Ovanliga **POST**-anrop
- **REST API**-analys (oautentiserade skrivningar, okända routes)
- Kända exploitmönster i payload
- Upprepade misstänkta försök från samma IP ökar poängen

Exempel på loggmeddelande:

> Riskpoäng 91/100 – POST REST: Ovanligt REST API-mönster; Oautentiserad skrivning via REST API

| Inställning | Standard | Beskrivning |
|-------------|----------|-------------|
| Loggtröskel | 50 | Begäran med denna poäng eller högre loggas |
| Blocktröskel | 85 | Kritisk nivå — kan kombineras med automatisk IP-spärr |
| Automatisk IP-spärr | Av | Permanent spärr vid poäng ≥ blocktröskel |

> **Tips:** Låt automatisk IP-spärr vara av tills du sett hur trösklarna beter sig på din sajt. Vitlistade IP analyseras inte.

---

## Loggar

**maca Sec → Loggar**

Alla säkerhetshändelser samlas här med filter och paginering (50 per sida).

### Filtrera

- **Typ** — t.ex. firewall, login, file_monitor, supply_chain, behavior, legal_accepted
- **Allvarlighet** — info, varning, kritisk
- **IP-adress** — delvis matchning
- **Sök meddelande** — fritext
- **Datumintervall** — från/till

### Åtgärder per rad

- **Kopiera** — kopiera IP till urklipp
- **Spärra IP** — permanent blockering (med bekräftelse; varning om det är din egen IP)
- **Godkänn** — godkänn filändring direkt från loggen

### Kritiska händelser

Om det finns kritiska händelser senaste 24 timmarna visas en röd admin-notis. Stäng med × för att dölja tills antalet ökar. Du kan **återställa notisen** från loggsidan.

---

## maca Hub-app

**maca Sec → Inställningar → maca Hub-app**

Kräver maca Hub Connector och koppling till maca Hub-appen.

### Säkerhetsskydd

Huvudbrytare för maca Sec. När avstängt körs inga skyddsmoduler på webbplatsen. maca Hub kan fortfarande slå på eller av via API om det är konfigurerat.

### Villkor efter uppdatering via Hub

Om maca Sec uppdateras via maca Hub och nya villkor eller policy ingår:

1. **Skyddet pausas automatiskt** tills en administratör godkänner i wp-admin.
2. **Godkännande kan inte göras från appen** — endast under **maca Sec → Villkor & policy**.
3. maca Hub visar då att skydd **inte är aktivt** (`protection_active: false`) och att **åtgärd krävs** (`legal_action_required: true`).
4. Om skydd var påslaget innan uppdateringen sparas det valet (`protection_requested: true`), men skyddet körs inte förrän du godkänt.

**Så här godkänner du efter Hub-uppdatering:**

1. Öppna wp-admin (direkt eller via Hub → wp-admin-inloggning).
2. Klicka på den röda notisen högst upp, eller gå till **maca Sec → Villkor & policy**.
3. Läs dokumenten, kryssa i båda rutorna och klicka **Godkänn och fortsätt**.
4. Skyddet aktiveras igen automatiskt om det var påslaget innan pausen.

> maca Hub kan inte aktivera skydd förrän villkoren godkänts i wp-admin.

### Kollektiv hotintelligens

**Vad den gör:** Rapporterar anonymt attacksignaler (IP, typ, User-Agent, exploitmönster) till maca Hub och tar emot blockeringar som redan setts på andra maca Sec-sajter.

**Skyddar mot:** Återkommande angripare och nya exploitmönster som sprids i nätverket — t.ex. *«Ny attack upptäckt. 847 sajter har redan blockerat den.»*

| Inställning | Standard |
|-------------|----------|
| Nätverksintelligens | Av |
| Anonym rapportering | På |
| Automatisk blockering | Av |
| Minst antal sajter | 3 |

### Live Attack Map

maca Hub-appen kan visa en **livekarta** med data från din sajt: attacker per minut, länder, attacktyper, senaste exploits och blockerade IP. Data skickas via Hub-synk — själva kartan renderas i appen.

---

## Säkerhetsbetyg och filsystemsvakt 2.0

### Säkerhetsbetyg (instrumentpanelen)

Holistisk poäng **0–100** med checklista:

- ✓ PHP aktuell
- ✓ HTTPS
- ✓ 2FA för administratörer
- ✓ WAF aktiv
- ✓ Inga kända hög-risk-CVE
- ⚠ Plugin som behöver uppdateras

Skiljer sig från **skanningspoängen** som bara mäter senaste säkerhetsskanningen.

### Filsystemsvakt 2.0

Utökar filövervakningen med djup skanning av **uploads** och **teman**:

- Nya PHP-filer
- Base64-kod, `eval()`, `gzinflate()` och andra webshell-signaturer
- Misstänkta filnamn (t.ex. `shell.php`, slumpmässiga hex-namn)

Aktiveras under **Skanner → Filövervakning → Filsystemsvakt 2.0**.

### Fjärråtgärder

- **Tillåt från appen** — tillåt säkerhetsskanning och wp-admin-inloggning från maca Hub-appen.
- **Hub-vitlista** — ta emot och skicka vitlistade IP till alla kopplade Hub-sajter.

---

## Villkor & policy

**maca Sec → Villkor & policy**

Här läser och godkänner du:

- **Användarvillkor** — ansvar, garantier och begränsningar
- **Integritetspolicy** — hur data hanteras lokalt och via tredjepartstjänster

Godkännandet sparas med dokumentversion, tidpunkt och administratör. Vid uppdaterade dokument måste du godkänna igen — tills dess pausas säkerhetsskyddet.

---

## Vad blockade besökare ser

Enkel felsida med HTTP 403:

| Orsak | Rubrik | Meddelande |
|-------|--------|------------|
| Landskods-blacklist | Åtkomst nekad | Åtkomst nekad från ditt land. |
| IP-blacklist | Åtkomst nekad | IP blockerad |
| WAF-regel | Åtkomst nekad | Förfrågan blockerad / Åtkomst nekad |
| Rate limiting | — | För många förfrågningar |
| Smart rate limiting | Hastighetsbegränsning | För många förfrågningar (beteendebaserad) |
| AI-bot (blockerad) | AI-bot blockerad | Åtkomst nekad |
| AI-bot (begränsad) | AI-bot begränsad | För många förfrågningar |
| Beteendeanalys | — | Åtkomst nekad (vid automatisk spärr) |
| Attack shield | — | HTTP 503 (underhållsläge) |

Vid inloggning från spärrad IP: *För många misslyckade försök. Försök igen senare.*

---

## Säkerhetspoäng – vad betyder den?

| Poäng | Betydelse |
|-------|-----------|
| 80–100 | Bra — sajten är väl skyddad |
| 50–79 | OK — det finns förbättringar att göra |
| 0–49 | Varning — åtgärda kritiska problem omedelbart |

Poängen baseras på senaste skanningen och påverkas inte av godkända fynd.

---

## Tips och felsökning

### Kan inte spara inställningar eller får 503

Uppdatera till senaste versionen. Brandväggen ska inte blockera admin-sparning. Kontrollera att din IP inte är spärrad.

### Blockerar mig själv

1. Inaktivera pluginet via hosting/FTP (byt namn på mappen `maca-sec`).
2. Ta bort din IP från databastabellen `wp_maca_sec_blocked_ips`.
3. Eller vitlista din IP först via databas/hosting och aktivera igen.

### Landsblock fungerar inte

Kräver landskods-header från Cloudflare/server, eller utgående HTTP från servern till ip-api.com.

### reCAPTCHA/Turnstile visas inte

Kontrollera site key och secret key. Domänen i leverantörens panel måste matcha din webbplats och `wp-login.php`.

### Captcha eller brandvägg blockerar legitima användare

Vitlista betrodda IP. Sänk rate limiting-trösklar. Inaktivera CLI-blockering om API-klienter påverkas.

### Varning från annat säkerhetsplugin

maca Sec känns inte alltid igen av andra plugins — det betyder inte att det är inaktivt.

### Ett säkerhetsplugin i taget

Kör inte maca Sec tillsammans med Wordfence, iThemes Security eller liknande — risk för konflikter och dubbel blockering.

### Filövervakning larmar efter pluginuppdatering

Godkänn filändringarna i **Skanner** eller **Loggar** om uppdateringen var avsiktlig, så uppdateras baslinjen.

### maca Hub kan inte aktivera skydd

Godkänn villkor och policy under **Villkor & policy** i wp-admin först.

### Avinstallation

Vid borttagning via WordPress admin körs rensning automatiskt: inställningar, loggar, IP-listor, 2FA-metadata och schemalagda jobb tas bort.

---

## Systemkrav

| Krav | Version |
|------|---------|
| WordPress | 6.0 eller senare |
| PHP | 7.4+ (8.1+ rekommenderas) |
| Databas | MySQL eller MariaDB |

---

## Relaterade dokument

- **Villkor & policy** — i wp-admin under maca Sec
- **maca.se** — [https://maca.se/](https://maca.se/)
