WordPress Sigurnost 2. Dio – Kako ga Zaštititi (20 Savjeta)

zaštita računala od virusa

Ažurirano: 06.10.2018.

Da dobijete cjelokupnu sliku, preporučujem vam da pročitate i WordPress Sigurnost 1. dio.

Prema internet live stats, svaki dan se sruši više od 90 000 web-stranica! Nedavne statistike pokazuju da preko 31% svih web-stranica širom svijeta koristi WordPress.

 

srušene web-stranice

 

Njegova popularnost ima svoju cijenu: često je na meti zlonamjernih hakera i spamera koji žele iskoristiti nesigurnost web-stranice u svoju korist.

Sigurnosne kopije (backup) su vaša prva obrana protiv svakog napada. Zapamtite, ništa nije 100% sigurno. Sigurnosna kopija vam omogućuju brzo vraćanje web-stranice u slučaju da se dogodi nešto loše.

 

Zaštita WordPressa – vodič za 2018 godinu

Važno: uređivanje izvornog koda može srušiti web-stranicu. Dobro pazite što radite, ako niste sigurni, obratite se web developeru. 

1. Krenite od vašeg računala

Uvijek biste trebali održavati računalo sigurnim, tj. bez zlonamjernog softvera i virusa. Zaštita računala je još važnija ako provodite transakcije i imate web stranicu, jer sve što je potrebno je keylogger koji će srušiti i najčvršće web-stranice.

Keylogger će pročitati sva korisnička imena/lozinke i poslati ih hakerima – što će, naravno, stvoriti čitav niz pitanja i problema za vašu web-stranicu.

Redovito ažurirajte operativni sustav, softver i web preglednike na računalu. Koristite dobar antivirusni softver, od besplatnih preporučujem odličan Avast i AVG.

 

programer ažurira operativni sustav

 

2. Koristite najnoviju verziju WordPressa, dodataka i tema

Pretpostavljam da ste tisuću puta čuli ovo: uvijek ažurirajte WordPress na najnoviju verziju.

Svako ažuriranje ne donosi samo nove značajke, nego još važnije, donosi zakrpe i sigurnosne popravke koje vašu web-stranicu štite od uobičajenih ranjivosti koje se lako mogu iskoristiti.

WordPress automatski provjerava ima li ažuriranja i prikazuje vam obavijesti kada su dostupne za vaše teme, dodatke i samu jezgru.

Da biste provjerili dostupna ažuriranja, idite na Dashboard » Updates u nadzornoj ploči. Kada se ažuriranje pojavi, kliknite na “Update Now” da biste ga ažurirali na najnoviju verziju.

Ako je dostupna nova inačica dodatka/teme, odaberite dodatke/teme koje želite ažurirati (ili odaberite sve klikom na “select all”), zatim kliknite na “Update plugins/update themes“.

Važno: ažuriranje teme uklanja sve promjene koje ste napravili. Zbog toga uvijek koristite Child temu! Preporučujem vam da izbrišete dodatke i teme koje ne upotrebljavate.

 

nadzorna ploča

 

3. Instalirajte samo pouzdani softver

Vrlo često se web-stranice “zaraze” jer administrator/vlasnik instalira malware. Dobra stvar o WordPress zajednici je da postoji ogroman broj open source ili besplatnih dodataka/tema.

Nažalost, postoje zlonamjerni korisnici koji uzimaju siguran (premium) dodatak ili temu i pretvaraju ga u nešto zlonamjerno, odnosno u nulled script.

Nikada ne instalirajte dodatke ili teme koji imaju “nulled” u nazivu!

Preuzmite besplatne dodatke za vašu web-stranicu samo iz uglednih izvora poput WordPress.org. Premium dodatke i teme možete naći na web mjestima kao što je ThemeForest.

 

4. Odaberite siguran web hosting

Koristite samo web hosting tvrtke poput Mydataknoxa koje imaju izvrsnu reputaciju u sigurnosti i pouzdanosti.

Sigurnosni stručnjaci iz WP White Security izvijestili su 2015. godine da je 41% WordPress web-stranica bilo hakirano zbog sigurnosne ranjivosti na samom serveru.

Važno: ako želite koristiti shared hosting, provjerite da li vaš plan uključuje izolaciju.  Ako se web-stranica zarazi malwareom, svaka druga web-stranica na istome serveru je u opasnosti, bez obzira na to koliko je zaštićena.

 

siguran web hosting

 

5. Koristite najnoviju verziju PHP-a

PHP (programski jezik) je okosnica vaše WordPress web-stranice, stoga je vrlo važna upotreba najnovije verzije na vašem serveru.

Svako veliko izdanje PHP-a, obično je u potpunosti podržano dvije godine nakon objavljivanja. Tijekom tog vremena svi sigurnosni problemi redovito se popravljaju.

PHP 5.6 više nema podršku i izložen je nezakrpanim sigurnosnim ranjivostima. Prema službenim WordPress statistikama, 69% korisnika WordPressa još uvijek koristi PHP verziju manju od 7.0?!

Preporučujem vam prelazak na PHP 7.0 ili više za najbolje performanse/sigurnost. PHP 7.2 može izvršiti gotovo tri puta više transakcija (zahtjeva) u sekundi u odnosu na PHP 5.6.

 

PHP benchmark

 

Za početnike: možete lako saznati koja verzija pokreće vašu web-stranicu putem Pingdoma. Kliknite na prvi zahtjev i potražite parametar “X-Powered-By”.

 

prikazana verzija PHP

 

Ako ste na hostingu koji koristi cPanel, obično možete odabrati željenu PHP inačicu klikom na “Select PHP version” u kategoriji “Software“.

 

odabir verzije PHP-a u cPanelu

 

6. Koristite samo jaka korisnička imena i lozinke

Jedan od najboljih načina zaštite WordPressa je upotreba “jakih” i jedinstvenih korisničkih imena i lozinki.

SplashData – pružatelj upravitelja lozinki, upravo je objavio listu “100 najgorih lozinki u 2017. godini“, koristeći podatke iz 5 milijuna procurenih lozinki.

Tri najpopularnije lozinke su:

  • 123456
  • password
  • 12345678 ?!

Koristite samo jake (jedinstvene i dugačke) lozinke, prisilite korisnike da također upotrebljavaju samo snažne lozinke. Možete upotrijebiti online alate poput Strong Password Generatora, ili upravitelja lozinki kao što je LastPass.

 

kontakt obrazac

 

6.1. Izbrišite zadano korisničko ime

Nikada ne biste trebali koristiti zadano korisničko ime “admin”. Izradite jedinstveno korisničko ime za administratorski račun i izbrišite “admin” korisnika ako postoji.

Da biste dodali novog administratora, kliknite na Users » Add New i ispunite obrazac. Dvaput provjerite adresu e-pošte, jer će vam trebati kako biste ponovo postavili lozinke i primali obavijesti e-poštom.

Možete koristiti lozinku koju vam WordPress nasumično generira, ili izradite vlastitu. Odznačite kvadratić “Send User Notification “, pod “Role” odaberite administrator i kliknite na gumb “Add New User“.

 

dodavanje novog korisnika u WordPressu

 

Odjavite se iz WordPressa, zatim se ponovno prijavite s novim administratorskim računom.

Kliknite na Users » All Users i izbrišite “admin” korisnika tj. kliknite na crvenu poveznicu “delete”.

Važno: kada kliknete na “delete”, morate odabrati opciju “Attribute all content to” i svoj novi administratorski račun (u mom primjeru – Novi administrator). Ovo će dodijeliti sav sadržaj izbrisanog korisnika novom administratoru.

 

sadržaj se prebacuje na novog korisnika

 

7. Zaštitite vaš administratorski račun

7.1. Promijenite URL prijave

Promjena URL-a za prijavu u WordPress je jednostavan način da se drastično smanji broj loših pokušaja prijave na vašu web-stranicu.

Prema zadanim postavkama URL za prijavu je “wp-admin”. Jedan od problema s tim je da svi hakeri, botovi i skripte također znaju za ovo.

Da biste promijenili URL za prijavu, preporučujem vam upotrebu besplatnog dodatka WPS Hide Login.

Ako trebate pomoć s instaliranjem dodataka, pročitajte vodič za početnike.

Nakon aktivacije, kliknite na Settings » General, na dnu stranice jednostavno promijenite URL prijave. Odaberite nešto jedinstveno, što nije na popisu botova.

 

promjena URL-a za prijavu

 

Važno: nakon što kliknete na “Save Changes“, vaš URL za prijavu se odmah promijenio. To znači da “domena.com/wp-admin” više ne funkcionira.

 

7.2. Ograničite broj pogrešnih pokušaja prijave (Brute Force)

Prema zadanim postavkama, WordPress korisnicima omogućuje isprobavanje različitih lozinki koliko god puta žele. Tako se izvodi Brute Force napad.

Prvo što trebate učiniti je instalirati i aktivirati dodatak Login LockDown.

Kada ga aktivirate, kliknite na Settings » Login LockDown kako bi konfigurirali postavke.

 

dodatak za borbu protiv brute force

 

8. Uklonite neaktivne korisnike

Preporučujem vam da izbrišete sve neaktivne korisnike na svojoj web-stranici.

Korisnici, posebice administratori ali i drugi koji imaju mogućnost mijenjanja sadržaja, vjerojatno su jedna od najslabijih točaka bilo koje web-stranice, jer nažalost, većina korisnika ima tendenciju odabrati slabe lozinke.

U nadzornoj ploči, idite na Users » All Users i izbrišite neaktivne.

 

9. Spriječite Username Enumeration

Username enumeration je proces pronalaženja popisa postojećih korisničkih imena koja imaju pristup aplikaciji. Ovo je jedan od prvih koraka koje napadač treba učiniti kada joj želi pristupiti.

Ako haker otkrije vaše korisničko ime, treba mu samo lozinku za pristup. Da biste spriječili username enumeration, možete dodati sljedeće pravilo u .htaccess datoteku:

RewriteCond %{QUERY_STRING} author=d
RewriteRule ^ /? [L,R=301]

 

9.1. Što je .htaccess?

.htaccess je konfiguracijska datoteka za Apache web server, sadrži naredbe/pravila koja daju serveru različite upute za vašu web-stranicu. To je skrivena datoteka (zbog toga naziv datoteke počinje točkom), nema ekstenziju.

Prema zadanim postavkama, nalazi se u sljedećem direktoriju: “/home/korisničkoime/public_html/.htaccess”.

Napredni – upotrijebite svoj omiljeni FTP klijent (preporučujem FileZillu) da biste izmijenili ovu datoteku.
Početnici – slijedite korake u nastavku kako biste joj pristupili izravno iz cPanela:

1. Prijavite se u svoj cPanel.

2. U odjeljku “Files/Datoteke” kliknite na “File Manager/Program za upravljanje datotekama”.

 

file manager u cPanelu

 

3. Pronađite svoju .htaccess datoteku u /public_html mapi.

4. Desnom tipkom miša kliknite na .htaccess datoteku i odaberite “Edit/Uredi”.

 

.htaccess datoteka u /public_html mapi

 

Čak i jedna pogrešno stavljena točka (.) može srušiti web-stranicu. Prije nego što napravite bilo kakve promjene, preuzmite je na računalo.

 

10. Instalirajte SSL certifikat

Jedan od najčešće previđenih načina za zaštitu WordPressa je instaliranje SSL certifikata, i posluživanje web-stranica preko HTTPS protokola.

U osnovi, to je sigurnosna tehnologija za uspostavljanje šifrirane veze između servera (na primjer, WP Developeri) i klijenta (vašeg web preglednika).

Prema BuiltWith Technology Lookup, u kolovozu 2018. godine, 70.6% od 10 000 najboljih web-stranica koristi HTTPS.

Od srpnja 2018. godine, Chrome označava sve HTTP web-stranice kao nesigurne. To znači da čak i ako ne tražite od korisnika da ispune bilo koju vrstu obrasca, vaša web-stranica će biti označena kao nesigurna.

 

firefox ssl certifikat

 

11. Sakrijte WordPress verziju

Ako koristite najnoviju verziju WordPressa, što vam preporučujem, onda ne morate brinuti o ovome.

Ako ne koristite najnoviju verziju, hakeru pružate korisne informacije. Što manje zna o vašoj konfiguraciji, to bolje.

Prema zadanim postavkama, verzija WordPressa prikazuje se u zaglavlju izvornog koda vaše web-stranice. Ako ga želite ukloniti, jednostavno dodajte sljedeći kod u functions.php datoteku vaše teme:

function wpdeveloperi_sakrij_verziju() {
return ”;
}
add_filter(‘the_generator’, ‘wpdeveloperi_sakrij_verziju’);

Drugo mjesto na kojem se pojavljuje, je readme.html datoteka, možete joj pristupiti iz bilo kojeg web preglednika. Dovoljno je upisati naziv datoteke nakon URL-a. Primjer: “https://domena.com/readme.html”.

 

readme datoteka

 

Možete sigurno izbrisati ovu datoteku putem FTP-a ili upravitelja datoteka.

 

12. Onemogućite XML-RPC

Ova funkcija, omogućena je prema zadanim postavkama od WP verzije 3.5, pruža usluge poput pingbacks i trackbacks (povratni pingovi i povratne veze). Nažalost, može se lako iskoristiti za slanje HTTP zahtjeva tj. brute force.

Postoji nekoliko dodataka poput Jetpacka koji se oslanjaju na XML-RPC, ali većini web-stranica XML-RPC nije potreban. Ako ste sigurni da ste i vi među njima, možete instalirati dodatak Disable XML-RPC ili jednostavno zalijepite sljedeći kod u svoju .htaccess datoteku:

<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

 

13. Spriječite Directory Listing

Prema zadanim postavkama, moguće je pristupiti važnim direktorijima vaše web-stranice tj. vidjeti čitav put do njih u web pregledniku.

Na primjer, ako izradite direktorij pod nazivom “podaci”, haker može lako vidjeti sve datoteke iz tog direktorija jednostavnim upisivanjem “https://domena.com/podaci/” u web pregledniku, lozinka mu nije potrebna.

To možete spriječiti dodavanjem sljedećeg retka koda u .htaccess datoteku:

Options All -Indexes

 

14. Onemogućite File Editing

Važno je dati korisnicima ispravne uloge i dopuštenja kako ne bi nešto (slučajno) loše napravili. Vrlo loša praksa je pružiti autorima ili suradnicima, administratorski pristup.

Prema zadanim postavkama, WordPress administratorima omogućuje uređivanje PHP datoteka (dodataka i tema) unutar nadzorne ploče.

Ovo je često prva stvar koju će napadač potražiti ako uspije dobiti pristup admin računu, jer ova funkcionalnost mu omogućuje izvršavanje koda na serveru.

Možete dodati ovaj kod u wp-config.php datoteku da biste onemogućili uređivanje tema i dodataka:

define( ‘DISALLOW_FILE_EDIT’, true );

Navedeni kod onemogućava dvije opcije iz nadzorne ploče – Appearance » Editor i Plugins » Editor.

 

15. Zaštitite wp-config.php

Wp-config.php je daleko najvažnija datoteka na vašoj web-stranici kada je u pitanju sigurnost WordPressa.

Vaša WordPress web-stranica sastoji se od dva elementa: baze podataka i vaših datoteka/jezgre. Wp-config.php je jedini element koji povezuje bazu podataka i datoteke.

Kada ručno instalirate WordPress na lokalni (localhost) ili live server, od vas se traži da unesete potrebne podatke kao što su detalji baze podataka i prefiks tablice. WordPress pohranjuje te postavke u konfiguracijsku datoteku pod nazivom wp-config.php.

Pomoću tih informacija, haker se može povezati s vašom bazom podataka i ukrasti ili izmijeniti vaše podatke.

 

15.1. Onemogućite pristup

Prema zadanim postavkama, datoteke “wp-config.php” i “wp-config-sample.php” nalaze se u root direktoriju vaše WordPress instalacije (public HTML). Od WP verzije 2.6, možete sigurno premjestiti wp-config.php datoteku jednu razinu iznad root direktorija, pod uvjetom da tamo ne postoji datoteka s istim imenom.

Trenutno ne preporučujem da stavite wp-config.php datoteku u direktorij iznad vašeg root direktorija, jer po mom mišljenju sigurnosna korist je minimalna.

Ako je vaša web-stranica smještena na Apache web server tj. ima .htaccess datoteku, možete zalijepiti u nju sljedeći kod da biste onemogućili pristup svima:

<files wp-config.php>
order allow,deny
deny from all
</files>

Možete izbrisati “wp-config-sample.php” datoteku, nije vam potrebna.

 

15.2. Promijenite dozvole

Prema WordPress dokumentaciji, dozvole za wp-config.php datoteku trebaju biti postavljene na 440 ili 400, kako bi se spriječili ostali korisnici na istom serveru.

Važno: dozvole za sve datoteke trebale bi biti 644 ili 640, za direktorije 755 ili 750. Nijedan direktorij ne smije dobiti 777 dozvolu!

 

16. Ograničite izvršavanje PHP datoteka

U slučaju hakiranja vaše web-stranice, možete spriječiti hakere u izvršenju zlonamjernog softvera, dodavanjem sljedećeg pravila u .htaccess datoteku:

<Directory “/var/www/wp-content/uploads/”>
<Files “*.php”>
Order Deny,Allow
Deny from All
</Files>
</Directory>

Navedeni kod ograničava izvršenje PHP datoteka iz mape za prijenos (upload), budući da hakeri najčešće tu prenesu zlonamjeran softver.

 

17. Zaštitite svoju bazu podataka

WordPress koristi PHP (programski jezik) za pohranu i preuzimanje podataka iz baze podataka. Ona sadrži sve važne informacije o vašoj web-stranici, što je čini omiljenom metom hakerima.

Jedan od načina na koji možete zaštititi svoju bazu podataka je mijenjanje prefiksa, što je vrlo lako napraviti pri instalaciji.

Prema zadanim postavkama, tablice u bazi podataka imaju prefiks “wp_”. Originalno, zar ne? Promijenite to u nešto sigurnije, poput “15md_”. Kada instalirate WordPress, tražit će se od vas da upišete prefiks tablice.

 

baza podataka i prefiks tablice u WordPressu

 

18. Kako zaustaviti DDoS napad

Nažalost, ne možete ništa učiniti da biste zaustavili ili spriječili pokušaj DDoS napada na vašu web-stranicu. Ali pravilnom zaštitom od DDoS-a tj. WAF-om, možete zaštititi svoju web-stranicu od prekida rada web servera i drugih problema.

Po mom mišljenju, dva najbolja rješenja za web application firewalls (WAF) koja se mogu lako implementirati na bilo koju vrstu web-stranica su: Cloudflare i Sucuri.

 

bot s laptopom

 

18.1. Cloudflare

Cloudflare (besplatan plan) obavlja pristojan posao u zaustavljanju malog prometa zlonamjernih botova, ali njihova DDoS zaštita je nedostatna.

S Cloudflare Pro planom (20$/mjesečno) dobivate naprednu DDoS zaštitu na slojeve 3 i 4 (TCP, SYN, UDP i ICMP). Da biste dobili zaštitu na propuste 7 sloja, morate priječi na Business plan (200$/mjesečno).

Besplatan Cloudflare plan možete lako omogućiti u cPanelu Mydataknoxa s par klikova, ili zamolite korisničku podršku da sve odradi za vas.

 

18.2. Sucuri

U Sucuri Pro planu za samo 20$/mjesečno, dobivate naprednu DDoS zaštitu na slojeve 3,4 i 7. Izvrstan Sucuri automatski detektira nagle promjene prometa i štiti vas od napada na DNS, tako da oni nikada ne dođu do vašeg web servera.

 

19. Pratite aktivnosti u nadzornoj ploči

Ako imate multisite ili više korisnika na svojoj web-stranici, možda je dobro pratiti sve što rade u nadzornoj ploči. Ne zbog toga što sumnjate u zlodjelo, nego ponekad, kada je puno ljudi uključeno u web-stranicu, jedan pogrešan korak može je srušiti.

WordPress automatski bilježi ove podatke, ali početnicima nije jednostavno ih pregledavati. Puno je bolje koristiti dodatak kao što je WP Security Audit Log  za navedeno.

Tako možete vidjeti je li instaliranje određenog dodatka, promjena koda ili učitavanje datoteke uzrokovalo problem s kojim se bavite.

 

programer piše kod

 

20. Najbolji sigurnosni dodaci

Hakeri napadaju web-stranice ne samo zbog krađe osobnih podataka i stvaranja povratnih veza, već i zbog zabave. Drugim riječima, vlasništvo male web-stranice ne jamči sigurnost od zlonamjernih napada.

Jedan od najboljih načina zaštitite je instaliranje sigurnosnog dodatka.

Takvi dodaci nude širok raspon značajki kako bi vaša web-stranica bila sigurna od vanjskih prijetnji. Top 5. popularnih sigurnosnih dodataka:

Nakon aktivacije, važno je postaviti redovne preglede (skeniranje), za najbolju zaštitu ključno je da je to omogućeno.

Morate znati da sigurnosni dodaci uzrokuju probleme s performansama, tj. malo usporavaju web-stranicu.