Dokumentacija

M Security

M Security yra WordPress įskiepis, saugantis prisijungimą ir kovojantis su šlamštu: jis skaičiuoja nepavykusius prisijungimus pagal IP adresą ir naudotojo vardą, blokuoja atkakliuosius, gali riboti prisijungimą pagal šalį ir saugo komentarus, registraciją bei svetainės formas. Pagal numatytuosius nustatymus viskas veikia jūsų serveryje, o neprivalomas bendras grėsmių sąrašas lieka išjungtas, kol jo neįjungiate. Šis vadovas skirtas administratoriui, ką tik įdiegusiam įskiepį ir norinčiam viską sukonfigūruoti iš karto teisingai, įskaitant nustatymus, kuriais galima užsitrenkti duris į savo paties svetainę, ir tuos, kurie tyliai atstumia tikrus lankytojus.

Parašyta 1.8.2 versijai. WordPress 6.5+ PHP 8.1+

Diegimas ir aktyvavimas

M Security reikia WordPress 6.5 ar naujesnės versijos ir PHP 8.1 ar naujesnio. Prieš aktyvavimą nieko ruošti nereikia: įskiepis turi veikiančius numatytuosius nustatymus ir wp-login.php pradeda saugoti tą pačią akimirką, kai jį įjungiate, taip pat ir tose svetainėse, kuriose įjungtas priežiūros režimo įskiepis.

  1. Įkelkite įskiepį į /wp-content/plugins/m-security/ arba įdiekite zip failą per Plugins, Add New, Upload Plugin.
  2. Aktyvuokite. Sukuriamos trys duomenų bazės lentelės (wp_msc_log, wp_msc_lockouts, wp_msc_cloud), įrašomi numatytieji nustatymai ir suplanuojama kasdienė priežiūros užduotis.
  3. Adresas, iš kurio atėjo aktyvavimo užklausa, automatiškai įrašomas į „Allowlist“ sąrašą.
  4. Administravimo meniu atverkite „M Security“. Pirmiausia atsiveria skirtukas „Statistics“, kuris bus tuščias, kol nesulauksite srauto.
Atsargiai

Jei svetainė veikia už Cloudflare ar kito tarpinio serverio, aktyvuojant į „Allowlist“ įrašomas ne jūsų, o tarpinio serverio adresas: patikimos antraštės dar nėra kur nurodyti, todėl įskiepis mato tik prisijungiantį adresą. Tos eilutės niekas automatiškai nepašalina. Kol ji ten yra, kiekvienas pro tą tarpinį serverį atėjęs lankytojas laikomas patikimu, todėl jam netaikomi nei prisijungimų ribojimai, nei šalių taisyklės, nei „Denylist“, nei nuolatiniai blokavimai, nei komentarų bei registracijos apsaugos, nei bendras grėsmių sąrašas. Svetainė atrodo apsaugota, o iš tikrųjų neapsaugo nieko. Pirmiausia sutvarkykite tarpinio serverio nustatymus, tada šoninėje juostoje spauskite „Add my IP to the allowlist“, o paskui skirtuke „Access lists“ ranka ištrinkite aktyvuojant įrašytą tarpinio serverio eilutę.

Kas veikia iš karto po aktyvavimo

Daugelis apsaugų yra įjungtos iš karto, o tos, kurios adresą blokuoja visam laikui, yra išjungtos. Keli numatytieji nustatymai keičia, kaip svetainė elgiasi su tikrais lankytojais ir integracijomis, todėl sąrašą perskaitykite dar būdami šiame ekrane.

  • Prisijungimų ribojimas įjungtas: 4 nepavykę bandymai, tada 20 minučių blokuotė, pakartotiniams pažeidėjams laikas dvigubėja iki 24 valandų ribos.
  • Užblokuoti klientai vietoje prisijungimo formos gauna tuščią 403 puslapį, klaidų pranešimai bendriniai, slaptažodžio atkūrimas ribojamas.
  • XML-RPC išjungtas. Jetpack, WordPress mobiliosios programėlės ir nuotolinio publikavimo įrankiai nustos veikę, kol vėl jo neįjungsite.
  • Naudotojų vardų skenavimas blokuojamas: neprisijungęs lankytojas, atsidaręs bet kurį adresą su ?author=, gauna tuščią 403. Tai vienintelė sugriežtinimo taisyklė, atmetanti įprastas svetainės puslapių užklausas; komentarų, registracijos ir formų apsaugos veikia savo pačių siuntimo keliuose.
  • REST naudotojų sąrašas paslėptas nuo anoniminių lankytojų, WordPress versija nerodoma, iš oEmbed pašalinami autoriaus duomenys, naudotojai išimami iš svetainės žemėlapio.
  • Komentarų ir registracijos apsaugos įjungtos: nematomas jaukas, mažiausiai 4 sekundės iki išsiuntimo, JavaScript patikra, vienkartinių pašto domenų sąrašas ir MX įrašo patikra.
  • Svetainės formų apsauga įjungta: nedidelis scenarijus prie kiekvienos puslapio POST formos prideda nematomą jauką, o Contact Form 7, WPForms ir Gravity Forms siuntimai pažymimi kaip šlamštas, kai suveikia apsauga.
  • Laukas „Instant-ban usernames“ tuščias, todėl kol jo neužpildysite, niekas niekada nebus užblokuotas visam laikui.
  • Šalių taisyklės neveikia: „Allowed countries“ tuščias, o GeoIP duomenų bazė neįdiegta.
  • Bendras grėsmių sąrašas išjungtas. Nieko nesiunčiama ir nieko neatsisiunčiama.
  • Programų slaptažodžiai lieka įjungti.
  • Visi įvykiai registruojami ir saugomi 30 dienų, IP adresai saugomi pilni.

Kur rasti ekranus

M Security prideda vieną pagrindinio lygio meniu punktą su skydo piktograma, wp-admin meniu apačioje, adresu admin.php?page=m-security. Visiems ekranams ir veiksmams reikia manage_options teisės, todėl juos mato tik administratoriai. Daugumoje svetainių sąsaja yra angliška, todėl žemiau pateikiami tikslūs ekrane matomi pavadinimai.

  • „Statistics“: kas užblokuota per pastarąsias 7 ar 30 dienų, diagrama, nupiešta kaip įterptas SVG, aktyviausios šalys, bendro sąrašo indėlis ir savaitinio laiško nustatymai.
  • „Login protection“: bandymų skaičius, blokuočių trukmė ir momentinio blokavimo vardų sąrašas.
  • „Country rules“: leidžiamų šalių sąrašas, kuriems kanalams jis taikomas, GeoIP duomenų bazė ir tarpinio serverio nustatymai.
  • „Spam“: komentarų, registracijos ir formų apsaugos.
  • „Hardening“: XML-RPC, vardų skenavimo blokavimas, programų slaptažodžiai ir du neprivalomi blokavimo jungikliai.
  • „Access lists“: „Allowlist“, „Denylist“ ir skydelis „Permanently banned IPs“.
  • „Cloud“: neprivalomas bendras grėsmių sąrašas ir jo būsenos kortelė.
  • „Logs & privacy“: įvykių žurnalas su filtrais, CSV eksportas, IP saugojimo būdas ir saugojimo trukmė.
  • Šoninės juostos kortelė „Status & tools“ matoma visuose skirtukuose: pastarųjų 24 valandų skaičiai, visam laikui užblokuotų adresų kiekis, jūsų IP ir šalis, GeoIP būsena ir mygtukas „Add my IP to the allowlist“, o žemiau esančioje kortelėje „Active lockouts“ kiekvienoje eilutėje yra nuoroda „Release“.
  • WordPress skydelyje atsiranda ir M Security valdiklis su ta pačia 7 ir 30 dienų užblokuotų atakų diagrama.

„Login protection“ nustatymai ir numatytosios reikšmės

Šis skirtukas valdo brutalios jėgos (angl. brute force) atakų skaitiklius. Nesėkmės skaičiuojamos pagal IP adresą ir pagal naudotojo vardą wp-login.php, XML-RPC ir programų slaptažodžių kanaluose, o blokuotė taikoma kaskart, kai skaitiklis pasiekia bandymų ribos kartotinį. „Allowlist“ sąraše esantys adresai neskaičiuojami ir neblokuojami. Ši išimtis galioja skaitikliams, bet negalioja jaukų vardų sąrašui, apie kurį rašoma 15 skyriuje.

  • „Limit login attempts“: įjungta.
  • „Allowed retries“: 4, ribos nuo 1 iki 20.
  • „Lockout duration (minutes)“: 20, ribos nuo 1 iki 1440.
  • „Escalate repeat lockouts“: įjungta. Kiekviena kita blokuotė trunka dvigubai ilgiau.
  • „Maximum lockout (hours)“: 24, ribos nuo 1 iki 168.
  • „Reset counters after (hours)“: 12, ribos nuo 1 iki 168.
  • „Lock by username too“: įjungta. Puolamas naudotojo vardas blokuojamas iš visų adresų, todėl adresus keičiantis užpuolikas gali užblokuoti ir tikrą paskyrą.
  • „Serve locked-out bots a blank page“: įjungta.
  • „Generic login errors“: įjungta, todėl forma niekada neatskleidžia, ar suklysta varde, ar slaptažodyje.
  • „Throttle password resets“: įjungta. Skaičiuojama kiekviena atkūrimo užklausa, o ne tik nepavykusi, ir ji pridedama prie to paties IP skaitiklio, kurį skaito prisijungimo puslapis. Su numatytąja bandymų riba ketvirtoji užklausa užtraukia 20 minučių blokuotę ir prisijungimo puslapyje.
  • „Log successful logins“: įjungta.
  • „Notification email“: tuščia, tad naudojamas svetainės administratoriaus adresas.
  • „Email after N lockouts“: 0, tai reiškia, kad pranešimai išjungti. Ribos nuo 0 iki 100.
  • „Ban IPs that use those usernames“: įjungta, bet neveikia, kol žemiau esantis sąrašas tuščias. Išjungus, bandymas vis tiek atmetamas tuščiu 403 ir užregistruojamas žurnale, tik neišsaugomas nuolatinis blokavimas.
  • „Instant-ban usernames“: tuščia. Tai vienintelis blokavimo mechanizmas, kuris suveikia iš karto, vos jį užpildote.

Šalių taisyklės ir GeoIP duomenų bazė

Šalių taisyklės neveikia, kol netenkinamos dvi sąlygos: lauke „Allowed countries“ turi būti bent vienas ISO 3166-1 alpha-2 kodas ir turi būti įdiegta tinkama MaxMind formato .mmdb duomenų bazė. Prisijungimo puslapis visada praleidžia abejotinus atvejus, tad lankytojas, kurio šalies nustatyti nepavyko, ten neblokuojamas, o privatūs ir rezervuoti adresai yra išimtis visur.

  • „Allowed countries“: tuščia. Kodai atskiriami kableliais, pavyzdžiui LT, DE, US. Ištuštinus šį lauką, visos šalių taisyklės išjungiamos.
  • „Apply to login page“: įjungta. „Apply to registration“: įjungta. „Apply to comments“: įjungta. „Apply to third-party forms“: išjungta.
  • „Strict mode for registration/comments“: išjungta. Įjungus, nenustatyta šalis blokuoja registraciją ir komentarus, o kai įjungta „Apply to third-party forms“, blokuojami ir Contact Form 7, WPForms bei Gravity Forms siuntimai. Nustatymo pavadinime formos neminimos. Prisijungimo puslapis vis tiek praleidžia.
  • „GeoIP database source“: numatyta „Manual upload (.mmdb file)“. Parinkčiai „MaxMind GeoLite2 (account required, auto-updates twice weekly)“ reikia paskyros ID ir licencijos rakto, o „DB-IP Country Lite (no account, auto-updates monthly)“ paskyros nereikalauja.
  • „MaxMind account ID“ ir „MaxMind license key“: tušti.
  • „Client IP header“: „None“, tai yra naudojamas prisijungiantis adresas. Kiti pasirinkimai: CF-Connecting-IP, X-Forwarded-For, X-Real-IP ir True-Client-IP.
  • „Trusted proxy addresses“: tuščia. Pasirinkta antraštė patikima tik tada, kai užklausa iš tikrųjų ateina iš šių adresų, todėl jos suklastoti negalima.
  • Po forma esančioje kortelėje „GeoIP database“ yra mygtukai „Upload .mmdb“ ir „Download / refresh now“, o ekranas įspėja, kai veikianti duomenų bazė senesnė nei 35 dienos. Mygtukas „Download / refresh now“ ką nors daro tik tada, kai šaltinis yra MaxMind arba DB-IP, žr. 19 skyrių.
Atsargiai

Šalių sąrašas taikomas wp-login.php, XML-RPC ir programų slaptažodžių prisijungimams. Jei nurodėte šalis, o paskui išvykote, naudojate VPN ar svetimą mobilųjį tinklą, naujas prisijungimas iš tos šalies bus atmestas tuščiu 403. Išimtis užklausai su galiojančiu prisijungimo slapuku veikia tik wp-login.php kelyje. XML-RPC ir programų slaptažodžių prisijungimams šalis tikrinama be jokios slapuko išimties, o wp-login.php „Denylist“ ir nuolatinių blokavimų patikros slapuko išimties taip pat neturi, tad atviras wp-admin seansas neapsaugo užblokuoto ar į „Denylist“ įrašyto adreso prisijungimo puslapyje.

Apsauga nuo šlamšto

Skirtukas „Spam“ naudoja tik nematomas patikras: jokių CAPTCHA ir jokių trečiųjų šalių paslaugų. Ką kainuoja pataikymas į jauką, priklauso nuo to, kur tai nutinka. Komentaras atmetamas besąlygiškai: grąžinamas tuščias 403. Registracija atmetama su pranešimu „Registration could not be completed.“ Contact Form 7 ir Gravity Forms siuntimas tik pažymimas kaip šlamštas, o kas vyksta toliau, priklauso nuo tų įskiepių: Contact Form 7 siuntėjui parodo savo bendrinį klaidos pranešimą, Gravity Forms siuntimą priima ir įrašą padeda į „Spam“ aplanką, o WPForms parodo „Your submission could not be processed.“ Laiko ir JavaScript patikros yra švelnūs signalai, nukreipiantys komentarą į šlamšto eilę. Komentarų moderatoriams ir „Allowlist“ sąraše esantiems adresams nė viena šių patikrų netaikoma.

  • „Comment honeypot“: įjungta. Botas, užpildęs nematomą lauką, gauna tuščią puslapį.
  • „Minimum seconds before submit“: 4, ribos nuo 0 iki 60. Greitesni komentarai keliauja į šlamšto eilę. 0 patikrą išjungia.
  • „Require JavaScript for comments“: įjungta. Komentarai iš naršyklių be JavaScript patenka į šlamšto eilę.
  • „Protect front-end forms“: įjungta. Scenarijus nematomą jauką prideda prie kiekvienos puslapio formos su method=post, ne tik prie pačiam įskiepiui priklausančių.
  • „Form plugin integrations“: įjungta. Contact Form 7, WPForms ir Gravity Forms siuntimai pažymimi kaip šlamštas, kai suveikia apsauga.
  • „Registration honeypot & timing“: įjungta. Registracijos formoje naudojama fiksuota 4 sekundžių riba, nepriklausanti nuo komentarų nustatymo, o vienintelis būdas ją išjungti yra nuimti šią varnelę.
  • Paslėpta laiko žyma, kuria remiasi laiko patikra, yra pasirašyta ir priimama tik nuo mažiausio amžiaus iki 4 savaičių. Vėliau ji atmetama, o tai svarbu talpykloje laikomiems puslapiams, žr. 17 skyrių.
  • „Block disposable email domains“: įjungta, remiantis pridėtu vienkartinių pašto tiekėjų sąrašu.
  • „Verify email domain (MX record)“: įjungta. Rezultatai talpykloje saugomi 24 valandas, o patikra praleidžiama, jei serveris apskritai negali atlikti DNS užklausų.
  • „First-comment moderation“: ši varnelė keičia WordPress branduolio parinktį comment_previously_approved, o ne įskiepio nustatymą, tad ji išlieka ir pašalinus įskiepį.

Sugriežtinimas („Hardening“)

Tai atskiri jungikliai, kiekvieną galima išjungti savarankiškai. Šeši iš jų įjungti iš karto: penki eiliniam lankytojui nieko nekeičia, o šeštasis, vardų skenavimo blokavimas, atmeta svetainės adresus. Du blokavimo jungikliai apačioje išjungti, ir būtent apie juos verta pagalvoti du kartus.

  • „Disable XML-RPC“: įjungta. xmlrpc.php atsako tuščiu 403 dar prieš pasileidžiant XML-RPC serveriui, o antraštė X-Pingback pašalinama. Išjunkite, jei naudojate Jetpack ar WordPress mobiliąsias programėles.
  • „Hide REST user listing“: įjungta neprisijungusiems lankytojams.
  • „Block author enumeration scans“: įjungta. Bet kuri svetainės užklausa su ?author= iš neprisijungusio lankytojo gauna tuščią 403, ir tai galioja bet kuriam adresui. Buvimas „Allowlist“ sąraše nuo šio atmetimo neapsaugo.
  • „Hide WordPress version“: įjungta. „Strip author from oEmbed“: įjungta. „Remove users from sitemaps“: įjungta.
  • „Disable application passwords“: išjungta. Įjungus, programų slaptažodžių prisijungimo kelias visiškai panaikinamas, todėl nustoja veikti juo besiremiančios REST integracijos.
  • „Ban IPs that probe XML-RPC“: išjungta. Įjungus, bet kuri užklausa į xmlrpc.php, kol XML-RPC išjungtas, tą adresą užblokuoja visam laikui.
  • „Ban IPs that scan for usernames“: išjungta. Įjungus, bet kuri neprisijungusio lankytojo užklausa su ?author= užblokuoja adresą visam laikui. Reikia, kad liktų įjungta ir „Block author enumeration scans“.
  • „File editor“: tik informacinė eilutė. Ji parodo, ar wp-config.php faile apibrėžta DISALLOW_FILE_EDIT, ir siūlo ją pridėti.
Atsargiai

Abu blokavimo jungikliai sukuria neterminuotus IP adresų blokavimus. Jie neatskiria užpuoliko nuo paieškos sistemos roboto, pasiekiamumo stebėjimo paslaugos, atsarginių kopijų įrankio ar jūsų pačių kitos svetainės įskiepio, kuris vis dar naudoja XML-RPC. Jei bet kuriame svetainės puslapyje yra nuoroda su ?author=, ją sekantis robotas bus užblokuotas.

„Access lists“: leidžiamųjų sąrašas, draudžiamųjų sąrašas ir nuolatiniai blokavimai

Šiame skirtuke sugyvena trys skirtingi dalykai, o jų painiojimas yra dažniausia klausimų priežastis. „Allowlist“ nusveria beveik visa kita įskiepyje, išskyrus dvi žemiau įvardytas išimtis. „Denylist“ skirtas tik rankiniams įrašams. Automatiniai blokavimai saugomi atskirai, savo skydelyje.

  • „Allowlist“: tuščias, išskyrus aktyvuojant įrašytą adresą. Vienas IP arba CIDR intervalas eilutėje. Šie adresai niekada neribojami, nefiltruojami pagal šalį, neblokuojami ir neteikiami bendram sąrašui.
  • Dvi išimtys: „Allowlist“ adresas, kuriuo bandoma prisijungti „Instant-ban usernames“ sąraše esančiu vardu arba iš kurio neprisijungus atveriamas svetainės adresas su ?author=, vis tiek gauna tuščią 403. Sąrašas apsaugo nuo blokavimo, bet ne nuo atmetimo. Abu atvejus aiškina 15 skyrius.
  • „Denylist“: tuščias. Vienas IP arba CIDR intervalas eilutėje, tik rankiniai įrašai. Šie adresai prisijungimo puslapyje gauna tuščią 403, negali nei registruotis, nei komentuoti, o jų Contact Form 7, WPForms ir Gravity Forms siuntimai pažymimi kaip šlamštas. Įrašius adresą, jis įtraukiamas ir į siuntimo eilę bendram juodajam sąrašui, jei tas siuntimas įjungtas.
  • „Permanently banned IPs“: skydelis po forma, kuriame surašyti adresai, automatiškai užblokuoti dėl vardo jauko, XML-RPC zondavimo ar vardų skenavimo. Kiekvienoje eilutėje yra „Unban“ nuoroda, o apačioje mygtukas „Clear all bans“. Rodomi 100 naujausių, saugoma iki 50000 blokavimų, seniausi šalinami pirmi.
  • Automatiniai blokavimai niekada nepatenka į „Denylist“ lauką. Šoninė juosta rodo jų skaičių ir veda čia.

Bendras grėsmių sąrašas (skirtukas „Cloud“)

Tai vienintelis modulis, bendraujantis su nutolusia paslauga, ir jis išjungtas, kol jo neįjungiate. Įjungus, foninė užduotis atsisiunčia M Blacklist sąrašą į vietinę lentelę, o prisijungimo ir registracijos patikros skaito tą vietinę kopiją, tad puslapio įkėlimas niekada nelaukia tinklo. Komentarai neįtraukti: komentarų apsauga bendro sąrašo apskritai netikrina. Jei paslauga lėta, nepasiekiama ar netinkamai sukonfigūruota, modulis praleidžia: patikros tiesiog atsako „nėra sąraše“, o jūsų pačių taisyklės veikia toliau.

  • „Use the shared threat feed“: išjungta. Kol tai neįjungta, visa kita žemiau neveikia.
  • „Service URL“: https://black.majevski.com. Netinkama reikšmė grąžinama į šią numatytąją, o ne tyliai išjungia modulį.
  • „API key“: tuščias. Reikalingas tik siunčiant pranešimus, nes sąrašo skaitymas anonimiškas. Raktas turi atitikti paslaugos formatą, kitaip jis ignoruojamas.
  • „Block addresses from the shared feed“: įjungta, taikoma wp-login.php, registracijai, XML-RPC ir programų slaptažodžių prisijungimams.
  • „Contribute my blocks“: įjungta, tačiau kol nėra galiojančio API rakto, nieko nekaupiama ir nieko nesiunčiama.
  • „Report permanent bans to the shared blacklist“: įjungta ir taip pat priklauso nuo rakto bei nuo įjungto dalijimosi.
  • „Check registration emails“: įjungta, bet tai nėra savarankiškas jungiklis. Patikra veikia tik tada, kai kartu įjungta ir „Block addresses from the shared feed“, tad ją išjungus tyliai nustoja veikti ir pašto patikra. Kai ji veikia, k-anonimiškumo užklausa išsiunčia tik pirmus penkis adreso maišos simbolius, atsakymas įsimenamas 24 valandoms, užklausa nutraukiama po 3 sekundžių, o klaidos atveju patikra praleidžiama.
  • „Sync every (hours)“: 6, ribos nuo 1 iki 168.
  • Kortelė „Threat feed status“ rodo vietoje saugomų įrašų kiekį, laukiančių pranešimų skaičių, paskutinį sinchronizavimą ir paskutinę klaidą paprastais žodžiais, taip pat mygtukus „Test connection“, „Sync now“ ir „Share existing bans & denylist“.

Statistika, WordPress skydelio valdiklis ir savaitinis laiškas

Skirtukas „Statistics“ atsiveria pirmasis ir rodo, ką įskiepis iš tikrųjų sustabdė per pastarąsias 7 ar 30 dienų: užblokuotas atakas, užblokuotus prisijungimus, užblokuotą šlamštą, nepavykusius slaptažodžius ir skirtingus adresus, kartu su diagrama, nupiešta kaip įterptas SVG, kuriai nereikia nei JavaScript, nei išorinių užklausų. Kai IP saugojimas nustatytas kaip sutrumpintas, paskutinis skaičius rodo tinklus, o ne adresus, ir pavadinimas atitinkamai pasikeičia. Žemiau matyti šalys, iš kurių ėjo srautas, ir, jei bendras sąrašas įjungtas, kiek darbo nuveikė jis.

  • „Send a weekly summary“: išjungta. Įjungus, laiškas siunčiamas kiekvieną pirmadienį 08:00 svetainės laiku ir lygina savaitę su ankstesne.
  • „Send to“: tuščia, tai yra naudojamas svetainės administratoriaus adresas, matomas lauko užuominoje.
  • „Send a test report now“ išsiunčia iš karto aukščiau nurodytu adresu, nesvarbu, ar savaitinis grafikas įjungtas. Tai greičiausias būdas įsitikinti, kad svetainė apskritai gali siųsti laiškus.
  • WordPress skydelio valdiklyje yra ta pati 7 ir 30 dienų diagrama, o mato jį tik naudotojai su manage_options teise.

Žurnalas ir privatumo nustatymai

Kiekvienas prisijungimo bandymas, blokuotė, blokavimas ir šlamšto sprendimas įrašomas į žurnalo lentelę su laiko žyma, adresu, šalimi, kanalu, rezultatu ir taisyklės kodu. Skirtuke „Logs & privacy“ šią lentelę galima filtruoti, ieškoti joje, eksportuoti į CSV ir išvalyti. Kasdienė užduotis šalina įrašus, senesnius už saugojimo laikotarpį, o griežta 100000 eilučių riba neleidžia srautui užpildyti duomenų bazės.

  • „IP address storage“: „Full“ (numatyta), „Truncated“ arba „Hashed“. Sutrumpintas režimas palieka /24 IPv4 atveju ir /64 IPv6 atveju, o maišos režimas saugo su druska maišytą reikšmę. Abiejuose ne pilno saugojimo režimuose žurnalo eilutėse esančios greito leidimo ir draudimo nuorodos neveikia.
  • „Keep log entries (days)“: 30, ribos nuo 1 iki 365.
  • „Keep data on uninstall“: išjungta.
  • „Export CSV“ pateikia iki 100000 eilučių, o reikšmės, prasidedančios formulės ženklu, apsaugomos, kad skaičiuoklė jų neįvykdytų.
  • „Clear log“ ištuština lentelę, taigi ir statistikos ekraną. Atšaukti to negalima.
  • Kasdienis valymas nuolatinių blokavimų neliečia. Jų galiojimo pabaiga yra 2099-12-31 23:59:59, tad juos pašalina tik „Unban“, „Clear all bans“ arba rankinis darbas duomenų bazėje. Tačiau juos paaiškinančios žurnalo eilutės trinamos pagal įprastą saugojimo trukmę.

Pirmasis nustatymas iš eilės

Konfigūruokite įskiepį tokia eilės tvarka. Kiekvienas žingsnis remiasi ankstesniu, o eiliškumas sąmoningai nukelia viską, kuo galima užsitrenkti duris, po to žingsnio, kuris nuo to apsaugo.

  1. Jei svetainė veikia už Cloudflare, apkrovos skirstytuvo ar kito tarpinio serverio, pirmiausia atverkite „Country rules“, nurodykite „Client IP header“ ir įrašykite tarpinio serverio intervalus lauke „Trusted proxy addresses“. Išsaugokite.
  2. Pažvelkite į šoninę juostą. Adresas prie „Your IP“ turi būti tikrasis jūsų adresas. Jei matote mygtuką „Add my IP to the allowlist“, spauskite jį.
  3. Atverkite „Access lists“ ir perskaitykite „Allowlist“ eilutę po eilutės. Ištrinkite aktyvuojant įrašytą adresą, jei tai tarpinio serverio, o ne jūsų adresas. Galiausiai sąraše turi likti tikrasis jūsų adresas ir nieko, kas panašu į CDN ar apkrovos skirstytuvo tašką.
  4. Atverkite „Hardening“. Nuspręskite dėl XML-RPC: palikite išjungtą, nebent naudojate Jetpack ar mobiliąsias programėles. Abu blokavimo jungiklius kol kas palikite išjungtus.
  5. Atverkite „Login protection“. Jei norite, pakoreguokite bandymų skaičių ir blokuotės trukmę, o „Instant-ban usernames“ kol kas palikite tuščią.
  6. wp-admin skiltyje atverkite „Users“ ir išsirašykite visus tikrus paskyrų vardus. Tik tada grįžkite į „Login protection“ ir įrašykite jaukus, kurių tame sąraše nėra.
  7. Šalių taisykles nustatykite tik jei jų reikia: pirma įdiekite GeoIP duomenų bazę, įsitikinkite, kad šoninė juosta teisingai rodo jūsų šalį, ir tik tada užpildykite „Allowed countries“.
  8. Atverkite „Logs & privacy“ ir pasirinkite IP saugojimo būdą bei saugojimo trukmę, atitinkančius jūsų privatumo politiką.
  9. Jei norite, skirtuke „Statistics“ įjunkite savaitinę ataskaitą ir spauskite „Send a test report now“, kad įsitikintumėte, jog paštas veikia.
  10. Skirtuką „Cloud“ palikite pabaigai ir tik jei norite bendro sąrašo. Įjunkite, spauskite „Test connection“, tada „Sync now“ ir peržiūrėkite būsenos kortelę.
  11. Po savaitės grįžkite prie žurnalo. Tik tada spręskite, ar XML-RPC ir vardų skenavimo blokavimo jungikliai šiai svetainei apskritai tinka.

Avarinis jungiklis: MSC_DISABLE

Viena eilutė wp-config.php faile visiškai išjungia įskiepį. Konstanta perskaitoma pačioje pagrindinio įskiepio failo pradžioje, dar prieš įkeliant bet ką kita, tad kol ta eilutė yra, nebelieka nei ugniasienės, nei blokavimų, nei blokuočių, nei šalių taisyklių, nei administravimo ekranų. Niekas neištrinama: nustatymai, blokavimai ir žurnalas lieka tokie patys, o pašalinus eilutę viskas grįžta. Šis kelias veikia net tada, kai wp-login.php apskritai nepasiekiamas.

  1. Per FTP, SFTP ar prieglobos failų tvarkyklę atverkite wp-config.php.
  2. Įrašykite žemiau esančią eilutę bet kur virš komentaro, sakančio, kad toliau redaguoti nereikia.
  3. Perkraukite wp-login.php ir prisijunkite įprastai.
  4. Sutvarkykite priežastį: atblokuokite adresą, panaikinkite blokuotę, išvalykite jaukų vardų sąrašą arba ištuštinkite „Allowed countries“.
  5. Pašalinkite eilutę iš wp-config.php ir perkraukite svetainę, kad įsitikintumėte, jog apsauga vėl veikia.
define( 'MSC_DISABLE', true );
Atsargiai

Kol konstanta apibrėžta, svetainė neturi jokios prisijungimo apsaugos, tad laikykite tai laikina priemone ir pašalinkite ją vos sugrįžę. Įskiepis vis tiek rodomas kaip aktyvus „Plugins“ ekrane, tačiau jo meniu dingsta, ir tai normalu.

Visi būdai, kaip šis įskiepis gali užtrenkti duris

Perskaitykite šį skyrių prieš keisdami ką nors skirtukuose „Login protection“, „Country rules“ ar „Hardening“. Dvi raminančios mintys teisingos tik iš dalies, tad jomis nepasikliaukite. Ugniasienė veikia wp-login.php ir xmlrpc.php, tačiau vardų skenavimo blokavimas prikabintas prie init kabliuko ir atmeta bet kurį neprisijungusio lankytojo svetainės adresą su ?author=, kad ir koks jis būtų. O galiojančio prisijungimo slapuko išimtis veikia tik wp-login.php šalies patikroje: „Denylist“ ir nuolatinių blokavimų patikros jos neturi, tad atviras wp-admin seansas negarantuoja, kad prie prisijungimo puslapio prieisite dar kartą. Savo adreso įtraukimas į „Allowlist“ vis tiek yra naudingiausias dalykas, kurį galite padaryti; ko jis neapima, aiškina 15 skyrius.

  • Vardas jaukas, kuris kartu yra tikra paskyra. Pats pirmas bandymas prisijungti tuo vardu visam laikui užblokuoja tai padariusį adresą ir grąžina tuščią 403, vienodai per wp-login.php, XML-RPC ir programų slaptažodžius. Sprendimas: „Access lists“, „Permanently banned IPs“, „Unban“, tada išbraukite vardą iš sąrašo.
  • Keturios slaptažodžio atkūrimo užklausos. „Throttle password resets“ skaičiuoja kiekvieną „Lost your password?“ išsiuntimą, o ne tik nepavykusį, ir krauna į tą patį IP skaitiklį, kurį skaito prisijungimo puslapis. Su numatytąja 4 bandymų riba ketvirtoji užklausa užtraukia 20 minučių blokuotę, o prisijungimo puslapis tada atsako tuščiu 403. Užtenka vieno naudotojo, keturis kartus spustelėjusio mygtuką, arba keturių kolegų už vieno biuro adreso. Sprendimas: šoninė juosta, „Active lockouts“, „Release“; arba palaukti; arba MSC_DISABLE.
  • Du „Hardening“ blokavimo jungikliai. Kai jie įjungti, pakanka vienos užklausos į xmlrpc.php arba vienos neprisijungusio lankytojo užklausos su ?author=, ir adresas blokuojamas visam laikui. Sprendimas: tas pats skydelis ir jungiklio išjungimas.
  • „Denylist“ įrašas ar CIDR intervalas, apimantis jūsų paties adresą. Sprendimas: pašalinkite eilutę arba įrašykite savo adresą į „Allowlist“, kuris nusveria visuose keliuose, kur jis apskritai tikrinamas.
  • Šalių taisyklės, neapimančios šalies, kurioje iš tikrųjų esate. Užtenka kelionės, VPN išėjimo taško, užsienyje registruoto mobiliojo tinklo ar pasenusios GeoIP duomenų bazės. Sprendimas: ištuštinkite „Allowed countries“ arba nuimkite varnelę nuo „Apply to login page“.
  • „Lock by username too“ leidžia daug adresų turinčiam užpuolikui užblokuoti tikrą paskyros vardą iš visur. Sprendimas: šoninė juosta, „Active lockouts“, „Release“, arba išjunkite šį nustatymą.
  • Netvarkinga tarpinio serverio konfigūracija. Jei „Client IP header“ parinktas neteisingai arba tarpinio serverio intervalai nesurašyti, visi lankytojai atrodo kaip vienas adresas, tad vieno užpuoliko blokuotė paliečia visą auditoriją. Sprendimas: sutvarkykite du tarpinio serverio laukus skirtuke „Country rules“.
  • „Disable application passwords“, taip pat blokavimo, šalies ir bendro sąrašo patikros programų slaptažodžių kanale tyliai sugadina integracijas, kurios jungiasi šiuo būdu. Jos gauna atmetimą be jokio paaiškinimo.
  • Įjungtas bendras grėsmių sąrašas gali jūsų prisijungimo puslapyje atmesti adresą, kurio patys niekada neblokavote. Sprendimas: įtraukite adresą į „Allowlist“ arba išjunkite „Block addresses from the shared feed“.
Atsargiai

Niekada nerašykite tikro paskyros vardo į „Instant-ban usernames“. Blokavimas taikomas IP adresui, jis nuolatinis, be jokio galiojimo termino, ir įvykdomas dar prieš tikrinant slaptažodį, tad kolega, tiesiog apsirikęs svetaine, gali atkirsti nuo prisijungimo visą jūsų biurą.

Ko „Allowlist“ neapima

Beveik visuose keliuose „Allowlist“ tikrinamas pirmiausia ir užklausa praleidžiama: taip elgiasi wp-login.php ugniasienė, authenticate filtras, programų slaptažodžių kelias, komentarų apsauga, registracijos apsauga ir formų adapteriai. Du keliai taip nesielgia, ir abu baigiasi visiškai tuščiu puslapiu be klaidos pranešimo, be pranešimo apie blokuotę ir daugeliu atvejų be žurnalo eilutės, kuri tai paaiškintų. Trečias kelias, xmlrpc.php, atmetamas dar prieš pažvelgiant į „Allowlist“, nors atmetamas vienodai visiems adresams. Būtent dėl to tikimasi daugiausia klausimų, tad perskaitykite tai, kol nenusprendėte, kad svetainė sugedo.

  • Jaukų vardų sąrašas. Kai kas nors bando prisijungti „Instant-ban usernames“ sąraše esančiu vardu, įskiepis prašo blokavimo, blokavimas atmetamas, nes adresas yra „Allowlist“ sąraše, ir žurnalo eilutė neįrašoma; užklausa vis tiek atmetama tuščiu 403. Taigi „Allowlist“ administratorius, įrašęs jauko vardą, nemato nieko: nei klaidos, nei blokavimo, nei žurnalo įrašo. Jei prisijungimo puslapis liko tuščias, o jūsų adresas yra „Allowlist“ sąraše, vadinasi, įvedėte jaukų sąraše esantį vardą. Junkitės tikru paskyros vardu.
  • Vardų skenavimo blokavimas. Neprisijungusio lankytojo užklausa į bet kurį svetainės adresą su ?author= gauna tuščią 403 nepriklausomai nuo to, ar adresas yra „Allowlist“ sąraše. Kai įjungta „Ban IPs that scan for usernames“, toks adresas atmetamas, bet neužblokuojamas, ir žurnalo eilutė vėl neįrašoma. Pirma prisijunkite arba pašalinkite ?author= parametrą iš adreso.
  • xmlrpc.php, kuris tikrinamas dar prieš „Allowlist“ ir nėra jo išimtis: kol įjungta „Disable XML-RPC“, šis failas visiems, ir esantiems sąraše, ir ne, atsako tuščiu 403. „Allowlist“ pakeičia tik tai, kas lieka žurnale. Kai kartu įjungta „Ban IPs that probe XML-RPC“, sąraše esantis adresas atmetamas, bet neužblokuojamas, ir žurnalo eilutė neįrašoma visai, o ta pati užklausa su išjungtu jungikliu užregistruojama. Todėl trūkstama žurnalo eilutė dar nereiškia, kad užklausos nebuvo.
  • Nuo ko „Allowlist“ patikimai apsaugo: nuo prisijungimų skaitiklių, nuo blokuotės, nuo šalių patikrų, nuo „Denylist“ ir nuolatinių blokavimų patikrų visuose keliuose, kur jis tikrinamas, nuo komentarų ir registracijos apsaugų, nuo trečiųjų šalių formų adapterių, nuo pranešimo bendram juodajam sąrašui ir nuo bet kurio iš trijų blokavimo mechanizmų.
  • Jei reikia užtikrintai atleisti adresą nuo visko, vienintelis pilnas jungiklis yra MSC_DISABLE wp-config.php faile.

Bendri adresai, CGNAT ir robotai

Blokuojamas adresas, o ne žmogus. Biuruose, mokyklose, viešbučiuose ir daugumoje mobiliojo ryšio tinklų už vieno viešo adreso slepiasi daug žmonių, o operatoriaus lygmens NAT gali sutalpinti tūkstančius. Jei vienas iš jų paleidžia skenerį arba vienas nuobodžiaujantis lankytojas išbando vardą jauką, visi už to adreso netenka prisijungimo puslapio (tuščias 403), komentarų formos (tuščias 403), registracijos (bendrinė klaida) ir kiekvieno Contact Form 7, WPForms bei Gravity Forms siuntimo, kuris pažymimas kaip šlamštas: Contact Form 7 ir WPForms atsako bendriniu klaidos pranešimu, o Gravity Forms parodo įprastą patvirtinimą, bet įrašą padeda į „Spam“ aplanką. Būtent kontaktų formą verslas pastebi paskiausiai ir būtent dėl jos praranda pinigus. Tas pats galioja paieškos sistemų robotams, kai įjungtas vardų skenavimo blokavimas, o kuriame nors puslapyje yra nuoroda su ?author=.

  • Prieš įrašydami įprastus jaukus, pagalvokite, kas dalijasi jūsų lankytojų adresais. Blogiausias atvejis yra verslo klientams skirta svetainė, kurios klientai sėdi už įmonės NAT.
  • Peržiūrėkite „Permanently banned IPs“, kol dar yra žurnalo eilutės, dėl kurių kiekvienas blokavimas atsirado. Blokavimai galioja neribotą laiką, o žurnalas išvalomas pasibaigus saugojimo trukmei, pagal numatymą po 30 dienų. Vėliau skydelis lieka adresų sąrašu be jokio paaiškinimo. Jei įjungtas bent vienas „Hardening“ blokavimo jungiklis, peržiūrinėkite skydelį kas savaitę arba padidinkite „Keep log entries (days)“.
  • Norėdami išgelbėti bendrą adresą: „Access lists“, „Permanently banned IPs“, „Unban“, tada įrašykite tą adresą ar intervalą į „Allowlist“, kad tai nepasikartotų.
  • „Clear all bans“ iš karto pašalina visus automatinius blokavimus ir yra greičiausia išeitis, kai sąrašas išsprūdo iš rankų.

Kaip tikri lankytojai atstumiami nieko nepasakius

Šios triktys jūsų neužrakina, todėl niekas apie jas nepraneša; užtat jos kainuoja užklausas, registracijas ir komentarus. Kiekviena turi konkrečią priežastį ir konkretų jungiklį.

  • Užklausos dingsta be pėdsako. Kai įjungta „Protect front-end forms“, scenarijus prie kiekvienos puslapio formos su method=post prideda nematomą teksto lauką, įskaitant atsiskaitymo, paieškos ir kitiems įskiepiams priklausančias formas. Naršyklių automatinis pildymas ir slaptažodžių tvarkyklės paslėptus teksto laukus užpildo. Kai kartu įjungta „Form plugin integrations“, užpildytas laukas Contact Form 7 ar Gravity Forms siuntimą pažymi kaip šlamštą: Contact Form 7 siuntėjui parodo savo bendrinį klaidos pranešimą, o Gravity Forms siuntimą priima, parodo įprastą patvirtinimą ir įrašą padeda į „Spam“ aplanką, į kurį niekas nežiūri. Sprendimas: nuimkite varnelę nuo „Protect front-end forms“ arba nuo „Form plugin integrations“.
  • Registracija nustoja veikti stipriai talpinamoje svetainėje. Pasirašyta formos laiko žyma priimama tik tada, kai jai daugiau nei mažiausias amžius ir mažiau nei 4 savaitės. Registracijos puslapis, ilgiau nei 28 dienas laikomas viso puslapio ar CDN talpykloje, kiekvienam lankytojui grąžina „Registration could not be completed.“, o tokios pačios būklės komentarų forma kiekvieną komentarą siunčia į šlamšto eilę. Sprendimas: išvalykite talpyklą, išimkite registracijos ir komentarų puslapius iš viso puslapio talpinimo arba komentarams nustatykite „Minimum seconds before submit“ į 0. Registracijos formos 4 sekundžių ribą galima išjungti tik nuėmus varnelę nuo „Registration honeypot & timing“.
  • Prisijungę nariai, rašydami komentarą, gauna tuščią puslapį. Komentarų apsauga praleidžia tik tuos naudotojus, kurie gali moderuoti komentarus. Prisijungęs prenumeratorius, klientas ar narys, komentuojantis ne iš „Allowed countries“ šalies, viduryje seanso gauna tuščią 403, nors turi galiojantį prisijungimo slapuką. Sprendimas: nuimkite varnelę nuo „Apply to comments“ arba įtraukite intervalą į „Allowlist“.
  • Vienas užblokuotas bendras adresas sugadina ir kontaktų formą. Nuolatinio blokavimo patikra veikia komentaruose, registracijoje ir kiekviename trečiųjų šalių formos siuntime, ne tik prisijungimo puslapyje. Sprendimas: atblokuokite adresą, įtraukite intervalą į „Allowlist“, o paskui peržiūrėkite formų įskiepio įrašus ar žurnalą ir pasižiūrėkite, kas buvo prarasta.
  • Kelių skaitytojų komentarai visada patenka į šlamštą. Taip elgiasi „Require JavaScript for comments“ su bet kuria naršykle be JavaScript.

Atkūrimas be wp-admin: duomenų bazė ir WP-CLI

Turint prieigą prie serverio konsolės ar duomenų bazės, administravimo ekranų apskritai nereikia. Blokavimai ir blokuotės guli vienoje lentelėje wp_msc_lockouts, kurioje eilutė su kind = 2 yra nuolatinis blokavimas, o bet kuri kita eilutė su ateities locked_until reikšme yra laikina blokuotė. Nuolatiniai blokavimai turi specialią, toli į ateitį nukeltą galiojimo pabaigą 2099-12-31 23:59:59, tad neatidžiai parašytai užklausai jie atrodo kaip veikiančios blokuotės. Nustatymai laikomi vienoje parinktyje msc_settings. Priešdėlį wp_ pakeiskite tuo, kuris iš tikrųjų naudojamas šioje svetainėje. Savų WP-CLI komandų įskiepis neturi, tad žemiau surašytos įprastos branduolio komandos.

  1. Prieš ką nors trindami, peržiūrėkite, kas užblokuota, kad žinotumėte, ką atšaukiate.
  2. Pašalinkite nuolatinius blokavimus arba, jei negalite redaguoti wp-config.php, tiesiog išjunkite įskiepį.
  3. Jei neturite nei failų, nei konsolės prieigos, aplanko wp-content/plugins/m-security pervadinimas prieglobos failų tvarkyklėje yra kraštutinė priemonė, o ne išjungimo atitikmuo. WordPress kitą kartą atvėrus administravimo puslapį atjungia įskiepį, kurio failas dingo, tačiau išjungimo kabliukas nesuveikia, todėl msc_purge, msc_geo_update, msc_cloud_sync ir msc_weekly_report lieka suplanuotos įskiepiui, kurio nebėra. Švaresnis kelias yra MSC_DISABLE wp-config.php faile, nes taip įskiepio būsena lieka nuosekli.
  4. Prisijunkite, sutvarkykite nustatymą, dėl kurio viskas nutiko, ir vėl įjunkite įskiepį arba grąžinkite aplanko pavadinimą. Jei aplanką pervadinote, paskui po kartą išsaugokite skirtukus „Country rules“ ir „Cloud“, kad GeoIP ir bendro sąrašo užduotys vėl susirikiuotų; kasdienė valymo užduotis, o kol savaitinė ataskaita įjungta, ir jos siuntimas atsikuria savaime kitą kartą atvėrus administravimo puslapį.
wp db query "SELECT subject, kind, locked_until FROM wp_msc_lockouts ORDER BY first_fail DESC LIMIT 50;"
wp db query "DELETE FROM wp_msc_lockouts WHERE kind = 2;"
wp db query "DELETE FROM wp_msc_lockouts WHERE kind != 2 AND locked_until IS NOT NULL;"
wp option patch update msc_settings ip_allowlist "203.0.113.10"
wp plugin deactivate m-security
Atsargiai

Pirmiausia pasidarykite duomenų bazės atsarginę kopiją. Antroji komanda pašalina visus nuolatinius svetainės blokavimus. Trečioji panaikina visas laikinas blokuotes ir daugiau nieko: būtent sąlyga kind != 2 saugo nuolatinius blokavimus, kurie guli toje pačioje lentelėje su locked_until reikšme 2099-12-31 23:59:59, tad paprastas WHERE locked_until IS NOT NULL ištrintų ir juos. Nė vienos šių komandų atšaukti negalima. Ketvirtoji pakeičia visą leidžiamųjų sąrašą vienu jūsų nurodytu adresu, tad prieš perrašydami peržiūrėkite dabartinę reikšmę su wp option get msc_settings.

Trikčių šalinimas

Štai kas iš tikrųjų nutinka ir į ką pažiūrėti pirmiausia. Dauguma šių dalykų nėra gedimai: tiesiog du skirtingi mechanizmai palaikomi vienu.

  • Tūkstančiai užblokuotų užklausų, bet nė vieno blokuoto adreso. Blokavimas atmeta vieną užklausą, o nuolatinis blokavimas išsaugo adresą. Jį sukuria tik jaukų vardų sąrašas ir, pasirinktinai, du „Hardening“ jungikliai.
  • Žinomo blokavimo nėra „Denylist“ lauke. Ir nebus: automatiniai blokavimai saugomi atskirai ir rodomi skydelyje „Permanently banned IPs“.
  • Atrodo, kad šalių taisyklės neveikia. Patikrinkite, ar įdiegta GeoIP duomenų bazė, ar šoninė juosta rodo jūsų adreso šalį ir ar „Allowed countries“ nėra tuščias. Kai šalis nežinoma, prisijungimo puslapis visada praleidžia.
  • Visos žurnalo eilutės rodo tą patį adresą. Svetainė veikia už tarpinio serverio, o „Client IP header“ ir „Trusted proxy addresses“ nesukonfigūruoti.
  • Visi komentarai staiga ima kristi į šlamšto eilę. Jauko lauko pavadinimas, pasirašyta laiko žyma ir JavaScript raktas išvedami iš svetainės autentikacijos druskos, tad pakeitus druskas iš talpyklos atiduodami puslapiai tampa negaliojantys. Išvalykite talpyklą. Jei druskos nebuvo keistos, pažiūrėkite į talpyklos amžių: senesnis nei 4 savaičių puslapis laiko žymos patikros nepraeina ir savaime.
  • Kelių skaitytojų komentarai visada patenka į šlamštą. Taip elgiasi „Require JavaScript for comments“ su bet kuria naršykle be JavaScript.
  • Registracijos atmetamos kaip nepristatomos. MX patikra kreipėsi į DNS ir domenui negavo nei MX, nei A įrašo. Ji praleidžia tik tada, kai serveris apskritai negali daryti DNS užklausų.
  • Bendro sąrašo sinchronizavimas pavyksta, bet paslaugoje jūsų įrašų nėra. Sąrašo skaitymas anoniminis, tad atsisiuntimas pavyksta net tada, kai siuntimas neveikia: pažiūrėkite laukiančių pranešimų skaičių, ar domenas patvirtintas ir ar raktas turi rašymo teisę. Laukiančių pranešimų skaičių rodo būsenos kortelė, o „Test connection“ pasako kitus du dalykus.
  • Pranešimas sako, kad GeoIP duomenų bazė senesnė nei 35 dienos. Su numatytuoju šaltiniu „Manual upload (.mmdb file)“ mygtukas „Download / refresh now“ nieko atnaujinti negali: atsisiųsti nėra iš kur, todėl jis nedaro nieko. Jei ankstesnė atsisiuntimo klaida nėra įsiminta, jis dar ir praneša „GeoIP database refreshed.“ Jei prieš grąžinant rankinį šaltinį nepavyko MaxMind ar DB-IP bandymas, tas pats mygtukas praneša „GeoIP refresh failed. Check the source settings.“ Nė vienas iš šių pranešimų nereiškia, kad failas atsirado. Įkelkite naują .mmdb failą arba pirma pakeiskite šaltinį į „DB-IP Country Lite“ ar „MaxMind GeoLite2“ ir tik tada spauskite mygtuką.
  • Savaitinė ataskaita neateina. Spauskite „Send a test report now“: laiškas išsiunčiamas iš karto ir parodo, ar svetainė apskritai siunčia paštą. Suplanuotas siuntimas dar priklauso nuo veikiančio WP-Cron.
  • Statistika atrodo tuščia arba trumpesnė nei tikėtasi. Numatytas saugojimo laikas yra 30 dienų, o „Clear log“ kartu su žurnalu ištrina ir skaičius.

Privatumas: kas saugoma ir kas išeina iš svetainės

Su numatytaisiais nustatymais iš serverio neišeina niekas. Įskiepis užregistruoja WordPress asmens duomenų eksportuotoją ir šalintoją, abu susietus su žurnalo eilutėse esančiu paskyros vardu, o IP adresus galima saugoti pilnus, sutrumpintus arba maišytus, ir jie automatiškai išvalomi pasibaigus saugojimo laikui.

  • Vietoje saugoma: lentelės wp_msc_log, wp_msc_lockouts ir wp_msc_cloud, parinktys msc_settings, msc_geo_state, msc_db_version, msc_schema_rev, msc_cloud_queue, msc_cloud_state ir msc_report_last_sent, taip pat msc_ priešdėlį turintys laikini įrašai.
  • GeoIP duomenų bazė laikoma kataloge po wp-content/uploads, pavadintame m-security- ir aštuoniais iš svetainės druskos išvestais simboliais, saugomame savo .htaccess ir index.php failais.
  • Išorinės užklausos vyksta tik jums paprašius: į MaxMind, kai pasirinktas tas šaltinis, į DB-IP, kai pasirinktas šis, ir į bendro sąrašo paslaugą, kai įjungtas „Cloud“ modulis.
  • Įjungus dalijimąsi, pranešime keliauja IP adresas arba SHA-256 pašto adreso maiša ir kategorija, pavyzdžiui bruteforce ar spam. Naudotojų vardai, komentarų tekstas, formų turinys ir atviri pašto adresai niekada nekaupiami ir nesiunčiami, „Allowlist“ adresai neteikiami niekada, o pačios svetainės adresas ir domenas taip pat neteikiami niekada.
  • Registracijos pašto patikra remiasi k-anonimiškumu: iš svetainės išeina tik pirmi penki maišos simboliai.
  • Išsiunčiami laiškai apsiriboja neprivalomu pranešimu apie blokuotę ir neprivaloma savaitine santrauka, abu per wp_mail.

Išjungimas ir pašalinimas

Išjungimas ir ištrynimas čia yra du skirtingi dalykai. Išjungimas tik panaikina suplanuotas užduotis: nustatymai, žurnalas, blokuotės ir visi nuolatiniai blokavimai lieka duomenų bazėje ir sugrįžta vos vėl aktyvavus įskiepį. Ištrynimas per „Plugins“ ekraną paleidžia valymo procedūrą.

  • Ištrynus įskiepį, pašalinamos trys lentelės, jo paties parinktys ir msc_ laikini įrašai, panaikinamos keturios suplanuotos užduotys ir ištrinamas GeoIP katalogas po uploads.
  • Kas išlieka: WordPress branduolio nustatymas comment_previously_approved toks, kokį palikote skirtuke „Spam“, taip pat naudotojai, komentarai ir visa kita, kas priklauso WordPress. Įskiepis to neliečia.
  • Prieš trinant pažymėjus „Keep data on uninstall“ skirtuke „Logs & privacy“, viskas lieka vietoje, o to ir reikia keliantis pas kitą tiekėją ar diegiant iš naujo.
  • Daugiasvetainiame tinkle šie trys veiksmai elgiasi skirtingai. Pašalinimas visada vykdomas kiekvienoje tinklo svetainėje. Aktyvavimas ir išjungimas visas svetaines apeina tik tada, kai įskiepis aktyvuojamas ar išjungiamas visame tinkle; aktyvavus jį vienoje potinklio svetainėje, lentelės sukuriamos ir adresas į „Allowlist“ įrašomas tik toje vienoje svetainėje, o kitoms nedaroma nieko.

Statistika ir ataskaitos

Nuo 1.4.0 versijos įskiepis rodo, ką iš tikrųjų sustabdė. WordPress skydelyje atsiranda valdiklis „M Security — blocked attacks", o nustatymų lange — skirtukas Statistics (pirmasis): juose braižomi užblokuotų prisijungimų ir šlamšto grafikai už 7 arba 30 dienų, rodoma įtempčiausia diena, dažniausios šalys ir kiek darbo atliko bendras grėsmių sąrašas. Neprivaloma savaitinė ataskaita el. paštu — pagal numatytuosius nustatymus išjungta, įjungiama skirtuke Statistics — ateina pirmadieniais 08:00 svetainės laiku ir palygina savaitę su ankstesne; mygtukas „send a test report now" leidžia įsitikinti, kad laiškai pasiekia adresatą.

Naudojimo telemetrija ir atsiliepimai

Nuo 1.5.0 versijos įskiepis siunčia nuasmenintą naudojimo suvestinę į black.majevski.com. Tai valdoma skirtuke Cloud trimis padėtimis: Off (niekas niekada nesiunčiama ir joks siuntimas nesuplanuotas), Basic (versijų numeriai ir kurios apsaugos įjungtos) ir Full — numatytoji — pridedanti tuos pačius sumindavuosius skaitiklius, kuriuos įskiepis rodo jums. Naudotojų vardai, el. pašto adresai, IP adresai, URL ar turinys svetainės niekada nepalieka; peržiūra „what will be sent" parodo tikslų JSON, o atskiras žymimasis langelis valdo, ar atskleidžiamas jūsų svetainės domenas. Duomenys saugomi ne ilgiau kaip 180 dienų po to, kai diegimas nutyla. Puslapis „Send feedback" meniu M Security siunčia klaidų pranešimus ir pasiūlymus tiesiai kūrėjui — jis veikia net išjungus telemetriją, o diagnostiką prideda tik tada, kai tai leidžia jo paties žymimasis langelis.

Komentarų autorių juodasis sąrašas

Nuo 1.7.0 versijos komentarų lange yra veiksmas „Spam & blacklist" — po kiekvienu komentaru ir masinių veiksmų meniu. Jis pažymi komentarą kaip šlamštą kaip ir įprastas veiksmas, visam laikui užblokuoja autoriaus IP jūsų svetainėje ir praneša IP bei el. pašto adreso SHA-256 maišą bendram juodajam sąrašui — atviras adresas jūsų svetainės niekada nepalieka. Privatūs ir leidžiamųjų sąrašo adresai niekada nepranešami, jūsų pačių registruotų naudotojų el. pašto adresai praleidžiami, o veiksmui reikia komentarų moderavimo teisės. Kita kryptimi: autorių iš bendro juodojo sąrašo komentarai (ir atgalinės nuorodos) atmetami iškart, kol skirtuke Cloud įjungtas jungiklis „Block comments from listed authors". Vienas pranešimas nieko neįtraukia į sąrašą visuotinai: pirmiausia jį turi patvirtinti kita svetainė — tai saugo visus nuo klaidų ir piktnaudžiavimo.

Automatiniai atnaujinimai

Įskiepis tikrina majevski.com dėl naujų versijų ir siūlo jas per įprastą WordPress atnaujinimų langą — tas pats pranešimas, keitimų sąrašas ir diegimas vienu paspaudimu kaip ir bet kurio kito įskiepio. Tikrinimai talpinami podėlyje, niekada nelėtina puslapių ir veikia saugiai: jei majevski.com nepasiekiamas, svetainė tiesiog dirba toliau ir pabando vėliau. Atnaujinimo paketas priimamas tik iš majevski.com per HTTPS, o senesnė versija niekada nesiūloma. Versijos iki 1.6.0 atnaujinimų kanalo dar nepažįsta, todėl naujų leidimų nemato — vieną kartą rankiniu būdu įdiekite 1.6.0 ar naujesnę, ir visi vėlesni leidimai atkeliaus savaime.

Reikia kažko panašaus?

Viską šiame puslapyje suprojektavo, sukūrė ir prižiūri vienas žmogus. Jei to paties reikia jūsų verslui, parašykite, ką turite omenyje.

Rezervuoti pokalbį atsidaro naujame lange