iThemes Security beállítási útmutató

[Ezt a cikket 17 perc elolvasni.]

Az egyik legjobb és leghasznosabb WordPress biztonsági bővítmény az iThemes Security (korábban BetterWP Security néven futott), azonban csak akkor ér valamit, ha okosan és logikusan van beállítva. Az alapelv itt is a megszokott, azaz nem elég csak feltenni és hátradőlni, az oldalunkhoz kell igazítani és csak azokat a védelmi funkciókat szabad aktiválni, amik nem okoznak galibát, nem ütköznek az aktuális konfigurációval és nem akadnak össze más bővítményekkel. Ehhez szeretnék segítséget nyújtani a lentebb található részletes beállítási útmutatóval.

A beállítások ismertetése előtt érdemes lehet kicsit alapozni egy korábbi, a biztonság alapjaival foglalkozó írásommal: [link]

Telepítés és aktiválás után egy “Security” névre hallgató fül jelenik meg a vezérlőpult menüsorában, itt fogjuk testre szabni a plugin beállításait. Az első almenüpont a “Dashboard”, azaz az iThemes Security információs panelje, itt láthatjuk a szerverrel, adatbázissal, fájlrendszerrel és a PHP konfigurációval kapcsolatos legfontosabb információkat. Amire érdemes különös figyelmet fordítani az a “WordPress File Permissions”, azaz a fájlok/könyvtárak jogosultsági szintjével kapcsolatos táblázat. Itt láthatóak az ajánlott (suggested) és az aktuális (value) jogosultsági szintek a fontosabb WordPress fájlokra/könyvtárakra lebontva. Értelemszerűen az “OK” jelzés nem jelent problémát, viszont a “Warning” felirat esetében érdemes megvizsgálni azt a bizonyos mappát vagy éppen fájlt. Ideális esetben a wp-config.php és a .htaccess fájl is 444-es jogosultsággal kellene, hogy szerepeljen, ám ezek szinte minden esetben 644-es jogosultsággal jönnek létre. Ez nem feltétlenül probléma, ilyenkor a WordPress még képes ezeket a fájlokat írni valamint módosítani. A 444-es jogosultság csak olvasást engedélyez, ez azért biztonságosabb, mert így egyes malware-ek sem lesznek képesek kártékony kódot elhelyezni az említett fájlokban. 644-ről 444-re váltani akkor lehet érdemes, ha biztosak vagyunk benne, hogy sem az oldal, sem a bővítmények nem akarják majd módosítani az említett két fájlt. Amennyiben szeretnénk megváltoztatni a jogosultságokat, akkor ezt a legegyszerűbben az FTP kliensünk segítségével tudjuk megtenni. Total Commanderben ez a “Fájl/Attribútumok módosítása” menüpont alatt érhető el.
Ugyanitt a “Dashboard” rész tetején találjuk még a “Temporarily whitelist my IP” nevű gombot, ez 24 órára a kivételek közé teszi az aktuális IP címünket, így biztosak lehetünk benne, hogy az oldal nem fog minket kizárni még a legszigorúbb biztonsági beállítások mellett sem. Ilyenkor azonban észben kell tartani azt, hogy a dinamikus IP cím változása esetén gondunk adódhat a belépéssel.

A legfontosabb beállításokat a “Settings” fül alatt találjuk, azonban szeretném megkönnyíteni azok dolgát, akik csak kattintgatni szeretnének és olvasni nem, számukra egy csillaggal (*) jelöltem azokat az opciókat, amiket probléma nélkül, bátran be lehet kapcsolni és két csillaggal (**) azokat, amiket engedélyezhetünk ugyan, de utána nem árt jó alaposan végigkattintgatni és tesztelni az oldalt, mert egyes esetekben érdekes anomáliákat okozhatnak.

Global Settings

Write to Files*: Ezzel engedélyezzük az iThemes Security bővítménynek a wp-config.php és a .htaccess fájl írását, pipáljuk ki
Notification Email: Adjunk meg egy e-mail címet, ahová a plugin küldheti az események értesítéseit
Send Digest Email*: Érdemes bepipálni, így nem kapunk minden egyes kizárásról vagy blokkolásról e-mailes értesítést, ehelyett csak egy összefoglalót küld majd nekünk a rendszer
Backup Delivery Email: Az adatbázis mentést az itt megadott e-mail címre küldi el a plugin
Host Lockout Message: A megjelenített üzenet, amikor egy host kizárásra kerül
User Lockout Message: A megjelenített üzenet, amikor egy felhasználó kizárásra kerül az oldalról a túl sok hibás bejelentkezési kísérlet miatt
Community Lockout Message: Amikor az iThemes Security közösség által rosszindulatúnak lesz bélyegezve egy IP cím, akkor ez az üzenet jelenik meg a tulajdonosa számára az oldal megtekintése vagy belépés során
Blacklist Repeat Offender*: Ha engedélyezzük, akkor az az IP cím, amelyik eléri a lentebb megadott maximális kizárások számát automatikusan végleges tiltólistára kerül. Érdemes bepipálni.
Blacklist Threshold: A végleges kitiltás előtt megadhatjuk az IP kizárások számát (alapértelmezetten 3).
Blacklist Lookback Period: Az itt megadott napok számát figyeli a plugin az újabb kizárás előtt, tehát ha egy IP a megadott tartományon belül már kizárásra került, akkor hozzáadódik a korábbi kizárások számához, tehát növekszik az összes kizárások száma (alapértelmezetten 7 nap).
Lockout Period: A kizárás ideje percben abban az esetben, ha elérte a hibás bejelentkezések korlátját (alapértelmezetten 15 perc, ha szeretnénk növelhetjük).
Lockout White List: A kizárások kivételi listája, itt adhatjuk meg, hogy mely IP címeket hagyja figyelmen kívül a rendszer. Dinamikus IP cím esetén használhatunk wildcard formátumot is, tehát például: 85.97.21.*
Email Lockout Notifications:  Engedélyezése esetén üzenetet küld a rendszer, ha egy host vagy felhasználó kizárásra kerül. Érdemes bepipálni.
Log Type: Kiválaszthatjuk, hogy hova logoljon a plugin (adatbázis, fájl, vagy mindkettő). A legtöbb esetben az alapértelmezett “adatbázis” tökéletesen megfelel.
Days to Keep Database Logs: Az adatbázis logok megőrzési ideje. Alapértelmezetten 14 nap.
Path to Log Files: A log fájlok elérési útvonala. Csak akkor kell módosítani, ha valami oknál fogva nem megfelelő az alapértelmezett útvonal.
Allow Data Tracking: A plugin számára engedélyezzük a névtelen adatgyűjtést. Nem szükséges bekapcsolni.
Disable File Locking: Bekapcsolása esetén kiküszöbölhetők egyes hibák, viszont lassulásokat okozhat.
Override Proxy Detection: Proxy használata esetén (Varnish, Cloudflare, stb.) érdemes kikapcsolva hagyni, ellenkező esetben viszont pontosabb IP meghatározást érhetünk el, ha engedélyezzük.
Hide Security Menu in Admin Bar: Bekapcsolása esetén elrejti a “Security” menüt a felső adminisztrációs menüsorról.

404 Detection

A 404 detektálás olyan felhasználókra vonatkozik, akik rövid idő alatt túl sok 404-es hibakódot kapnak vissza válaszként a szervertől, tehát nem létező oldalakat vagy fájlokat próbálnak megnyitni. Ilyenkor feltételezhető, hogy egy automatizált, sebezhetőséget kereső robottal vagy felhasználóval van dolgunk, tehát érdemes ezeket tiltani a 404 detektálás engedélyezésével.

404 Detection*: Mindenképp engedélyezzük
Minutes to Remember 404 Error (Check Period): Az itt megadott időintervallumon belül érkező újabb 404-es kérés számít bele a korábbi összesítésbe (alapértelmezetten 5 perc).
Error Threshold: A 404-es hibák tűréshatára. Az itt megadott érték után kerül kitiltásra a felhasználó (alapértelmezetten 20). Nulla megadása esetén csak logol a rendszer, de nem bannol.
404 File/Folder White List: A kivétel lista. Az itt megadott nem létező fájlokat nem számolja a rendszer 404-es találatként. Ha van olyan általában gyakori, de az oldalunkon nem létező fájl, amit alapértelmezetten sűrűn kérnek le (például favicon.ico vagy robots.txt), akkor érdemes itt hozzáadni a listához.
Ignored File Types: Az itt megadott kiterjesztéseket logolja a rendszer 404-es találatként, de nem történik utánuk kizárás.

Away mode

Away mode: Engedélyezése esetén mindenki számára letilthatjuk a WordPress vezérlőpult hozzáférését. Természetesen mi állítjuk be, hogy mettől-meddig tartson a tiltás. Fontos megjegyezni, hogy ilyen esetben még az adminisztrátor sem tud bejelentkezni.

Banned Users

Default Blacklist*: Ha bepipáljuk, akkor a HackRepair.com által összeállított feketelistán szereplő IP címek nem fognak tudni hozzáférni az oldalunkhoz. Ajánlott az engedélyezése.
Ban Users: Ha engedélyezzük, akkor manuálisan tudjuk megadni a kitiltani kívánt IP címeket/user agenteket.

Brute Force Protection

A brute force egy igen gyakori támadási forma, lényegében annyit jelent, hogy az összes gyakori, majd az összes létező jelszó kombinációt végigpróbálja egy bot vagy script, így mindenképpen tiltani kell a hibás bejelentkezéseket egy bizonyos számú sikertelen kísérlet után. Ebben segít az iThemes Security brute force védelme. Aktiválásához első körben igényelni kell egy teljesen ingyenes API kulcsot, ehhez csak az e-mail címünket kell megadni.

Enable iThemes Brute Force Network Protection*: A közösség által ártalmasnak ítélt IP címek automatikusan bannolódnak, ha engedélyezzük ezt a funkciót, ami egyébként erősen ajánlott.
Enable local brute force protection*: A lokális, azaz helyi védelem bekapcsolásához ide is tennünk kell egy pipát. Nagyon fontos, ne felejtsük el.
Max Login Attempts Per Host: Az itt megadott érték (alapértelmezetten 5) lesz a tűréshatár a hibás bejelentkezéseket tekintve. Amint egy felhasználó eléri ezt a számot úgy automatikusan kitiltásra kerül, de csak helyileg, azaz a felhasználónév, amellyel bejelentkezni kívánt továbbra is aktív marad. A nulla megadása esetén itt is csak logol a rendszer, de nem bannol.
Max Login Attempts Per User: Az itt megadott maximum hibás bejelentkezési érték elérése esetén kitiltásra kerül a felhasználó a lentebb megadott ideig. Nulla megadása esetén itt is csak logol a rendszer, de ez nem ajánlott.
Minutes to Remember Bad Login (check period): Az itt megadott ideig kerül kitiltásra a felhasználó (alapértelmezetten 5 perc).
Automatically ban “admin” user*: Automatikusan tiltsa ki azt a látogatót, aki az “admin”  felhasználónévvel próbál bejelentkezni. Mindenképpen érdemes engedélyezni, persze ennek az a feltétele, hogy a rendszerben nem létezik valódi admin felhasználó (remélhetőleg ez nem jelent problémát, mivel a megléte igen nagy biztonsági kockázat és már telepítéskor ügyelni kell rá, hogy adjunk meg egyedi adminisztrátor felhasználónevet).

Database Backups

Backup Full Database*: Engedélyezése esetén biztonsági mentést készít a rendszer a teljes adatbázisról (nem csak a WordPress táblákról).
Backup Method: Kiválaszthatjuk, hogy e-mailben, csak a szerverre, vagy mindkét helyre készüljön-e a mentés.
Backup Location: Itt adhatjuk meg, hogy a szerveren melyik könyvtárba is kerüljön az adatbázis mentése.
Backups to Retain: Megadhatjuk, hogy összesen mennyi adatbázis mentést tároljon a rendszer. A nulla jelentése itt a korlát nélküli mentést jelenti, azaz az összes mentést megőrzi a plugin.
Compress Backup Files: Ha pipálunk, akkor tömöríti az adatbázis mentésünket az iThemes Security. Ha szükséges az adatbázis mentés, akkor érdemes engedélyezni.
Exclude Tables: Kiválaszthatjuk, hogy mely adatbázis táblák ne kerüljenek bele a mentésbe.
Schedule Database Backups: Ha bekapcsoljuk, akkor automatikus adatbázis mentést készít a rendszer az általunk megadott intervallumban.

File Change Detection

Amennyiben bármilyen fájl megváltozik a WordPress szerkezetében, úgy ez a funkció értesít minket róla. Igen hasznos lehet, mert a legtöbb esetben a fertőzés első jeleként értelmezhető, ha látszólag minden ok nélkül megváltozik egy WP core vagy éppen plugin fájl. Azért kivételek is akadnak, mert néhány bővítmény automatikusan frissül a WP-Cron segítségével.

File Change Detection*: Itt kapcsolhatjuk be a fenti funkciót.
Split File Scanning: Külön ellenőrzi a plugin, a sablon, a wp-admin, a wp-includes, az uploads és a maradék wp-content tartalmat és elosztja az ellenőrzések idejét a nap különböző szakaszaira. Gyengébb vagy lassabb tárhelyszolgáltatónál érdemes lehet ennek az engedélyezése, azonban ilyenkor több értesítést is kaphatunk.
Include/Exclude Files and Folders: Kiválaszthatjuk, hogy a lentebb kiválasztott könyvtárakat hozzáadja vagy éppen kivonja-e az ellenőrzésből a rendszer.
Ignore File Types: A megadott fájltípusokat nem ellenőrzi a rendszer változások után.
Email File Change Notifications*: Engedélyezése esetén elküldi a rendszer e-mailben a változások listáját.
Display File Change Admin Warning*: Az adminisztrátor számára is megjeleníti a változásokról szóló felhívást a vezérlőpultban.

Hide Login Area

Hide Backend*: Ha bekapcsoljuk, akkor elrejti a megszokott “/wp-admin” és “wp-login.php” oldalakat és egy az általunk megadott saját végződéssel érhetjük el a jövőben az admin felületet és a regisztrációt. Nagyon hasznos lehet az automatizált támadások kivédése szempontjából, ezért érdemes bekapcsolni és okosan konfigurálni.

Malware Scanning

A “Scan homepage for malware” gombra kattintással a  népszerű Sucuri Online Scannerrel ellenőrzi az oldalunkat, így kiderül, hogy van-e ismert malware fertőzés, valamint szerepel-e az oldal valamilyen feketelistán. Természetesen ez sem ad 100%-os eredményt, de a tapasztalataim szerint az esetek többségében képes észlelni a fertőzést.

Secure Socket Layer (SSL)

Ha a szerver támogajta, akkor bekapcsolhatjuk az SSL titkosítást bizonyos oldalakon, az egész weblapon vagy éppen csak a vezérlőpulton.

Front End SSL Mode: A “per content” csak bizonyos oldalakon engedélyezi az SSL-t (ezt az egyes oldalak/bejegyzések szerkesztési felületén tudjuk egyesével aktiválni), a “whole site” az egész weblapra bekapcsolja.
SSL for Dashboard: Itt pedig csak a vezérlőpult tartalmát titkosítja a plugin.

Strong Passwords

Strong Passwords*: Kikényszeríti a felhasználóktól az erős jelszavak használatát (ajánlott engedélyezni).
Select Role for Strong Passwords: A lenyílóban kiválasztott minimum jogosultsági szinttől lép érvénybe a kötelező erős jelszó. Ha publikus a regisztráció, akkor nem feltétlenül érdemes a legalacsonyabb (feliratkozó) szintet kiválasztani, mert sokakat felbosszanthat, azonban az adminisztrátorok számára mindenképpen szükséges ennek beállítása.

System Tweaks

System Files*: A rublika kiválasztásával az ismert rendszerfájlok publikus hozzáférését szünteti meg a plugin. Ez egy nagyon hasznos funkció, mindenképp engedélyezzük.
Disable Directory Browsing*: Megakadályozza a könyvtárban szereplő fájlok kilistázását abban az esetben, ha nem szerepel köztük index fájl. Engedélyezzük!
Request Methods**: Szűr néhány (egyes esetekben kártékony) kérési metódust. Engedélyezhetjük, azonban jó alaposan nézzük át utána az oldalt, hogy minden működik-e, néha összeakadhat bizonyos pluginekkel.
Suspicious Query Strings**: Az URL-ben szereplő gyanús stringeket szűri, szintén hasznos funkció, de itt is előfordulhatnak összeakadások, engedélyezés után át kell nézni az összes fő funkciót és oldalt.
Non-English Characters: A nem angol karaktereket szűri és csak akkor működik, ha a “Filter Suspicious Query String” is engedélyezve van. Értelemszerűen ne kapcsoljuk be, ha nem angol nyelvű az oldalunk.
Long URL Strings**: A túl hosszú URL-eket szűri, mert a hackerek előszeretettel injektálnak kódokat az adatbázisba ezzel a módszerrel. Bekapcsolása után itt sem árt ellenőrizni az oldal működését.
File Writing Permissions**: Engedélyezése esetén elveszi az írási jogosultságot a wp-config.php és a .htaccess fájlról (644-ről 444-re), azonban ilyenkor a WordPress és a pluginek sem lesznek képesek ezeket módosítani.
Uploads*: Letiltja a PHP fájlok futtatását az uploads könyvtáron belül. Nagyon hasznos, hátránya sincsen, mindenképp kapcsoljuk be.

WordPress Tweaks

Windows Live Writer Header*: Ha nem használunk Windows Live Writert vagy egyéb blogger klienst, aminek szüksége lenne erre, akkor nyugodtan bekapcsolhatjuk az eltávolítását.
EditURI Header*: Ha az oldal nincs kapcsolatban külső XMLRPC szolgáltatásokkal (mint a Flickr), akkor az RSD szolgáltatás valószínűleg szükségtelen, így bepipálható a négyzet.
Comment Spam*: Csökkenthetjük a hozzászólás spamet, ha bekapcsoljuk ezt a funkciót, ami tiltja a referrer és az user-agent nélküli botok kommentelési lehetőségét.
File Editor*: Kikapcsolja a vezérlőpultba beépített fájlszerkesztőt (sablonok/pluginek). Ha nincs rá szükségünk, akkor okos döntés lehet ide is pipát tenni.
XML-RPC**: A lenyílóból kiválaszthatjuk, hogy kikapcsoljuk-e vagy sem az XMLRPC-t. A népszerű Jetpack és még néhány plugin valamint külső szolgáltatás zavartalan működéséhez szükséges az XMLRPC, így javasolt bekapcsolva hagyni.
Multiple Authentication Attempts per XML-RPC Request*: Nem olyan régen derült fény az XMLRPC sebezhetőségére, miszerint egy lekérés alatt akár több száz felhasználónév/jelszó is kipróbálható, ezt tudjuk letiltani a lenyílóban a “Block (recommended)” lehetőséget választva. Ennek beállítása mondhatni kötelező.
Login Error Messages*: Kikapcsolja a hibás bejelentkezéskor megjelenő hibaüzenetet. Nem szeretnénk, hogy értesüljön róla a hacker, hogy a jelszó vagy a felhasználónév volt-e a hibás, ezért ezt kapcsoljuk be.
Force Unique Nickname*: Egyedi felhasználónév választására kötelezi a felhasználókat. Ezt is engedélyezzük.
Disable Extra User Archives*: Kikapcsolja a felhasználó szerkesztő oldalát, ha a posztjainak száma nulla. Hasznos, engedélyezzük.

Az “Advanced” fül alatt találjuk a plugin haladó beállításait, ezeket csak óvatosan és biztonsági mentés megléte mellett babráljuk. Itt változtathatjuk meg az admin felhasználó nevét és azonosítóját (ID), a WordPress saltokat, de akár a wp-content könyvtárat is átnevezhetjük, azonban ez elég kockázatos művelet. Lentebb lehetőségünk van még átnevezni az adatbázis prefixet az alapértelmezett “wp_”-ről, ezt érdemes megejteni, persze csak adatbázis mentés előtt.

A “Backups” fül alatt készíthetünk az adatbázisról azonnali biztonsági mentést, a “Logs” fülben pedig értelemszerűen ellenőrizhetjük a logokat és a legutóbbi naplózott történéseket.

Remélem hasznosnak bizonyult a kis útmutatóm, természetesen bármilyen kérdésre örömmel válaszolok a lenti komment szekcióban.

Ha tetszik, mutasd meg másoknak is: