Zaštita sajtova baziranih na WordPress-u

WordPress je trenutno jedna od najzastupljenijih platformi za blogove i sajtove kako personalne tako i komercijalne, te je samim tim i veoma zanimljiv hakerima koji bi da svoje znanje iskale na vašem sajtu, te ću sa vama podeliti par trikova za povećanje bezbednosti istih.

Napominjem da nisam ultimativni webmaster bog univezuma zaštite i odbrane i da sam i sam bio meta hakerskog napada i difejsovanju, doduše krivicom nezaštićenog servera kod hosting provajdera ali ajd sad da ne sitničarimo.

…isto napominjem da idealna zaštita ne postoji te da se uvek otvaraju rupe za upade ne samo na personalnim sajtovima već i na sajtovima velikih kompanija poput Sony-ja, Twittera i sličnih.

Pročitajte i: Kakvo je stanje bezbednosti domaćih sajtova i blogova.

Read only privilegije gde god je to moguće

Svi fajlovi i folderi sem onih koji se konstatno menjaju staviti na READ-ONLY mod, odnosno na takozvani chmod 444 sem onih koji sadrze poverljive informacije poput wp_config.php. Tom fajlu vidljivost smanjiti na 400, odnosno da bude vidljiv samo vama kao korisniku (bačite pogled, možda vam posle ove permisije neće raditi sajt, a ako se to desiti dati mu privilegiju 440). Takođe privilegije na 400 treba spustiti i fajlovima readme.html, licence.txt, xmlrpc.php i wp_admin/install.php
Po defaultu je postavljeno da se u svi fajlovi mogu menjati od strane korisnika, te ako je taj korisnik uhakovan neko će lako da modifikuje sam fajl.
Ovo sa sobom nosi jedan problemčić, a to je taj da ćete ovo morati raditi svaki put kada radite update WordPress-a, koji ćete morati da radite ručno, odnosno, moraćete sami sebi dati privilegije da možete da menjate fajlove, pa onda da brišete foldere wp-admin i wp-include kao i fajlove koji se nalaze na root-u.

WordPress file editor

Onemoguciti fajl editor unutar WordPress-a te time zabraniti onome ko se ulogovao da moze da menja ista od wp ili plugin fajlova direktno kroz panel. U principu, ovo je vec onemoguceno ako ste odradili ovo pod stavkom 1, ali neka ga, ne jede leba.
Ovo se radi tako što ćete u vaš wp-config fajl dodati dve linije:
define( ‘DISALLOW_FILE_EDIT’, true );
define( ‘DISALLOW_FILE_MODS’, true );

Skrivanje lokacije za logovanje

Pod tim mislim da standardni www.mojsajt.com/wp-admin zamenite sa www.mojsajt.com/milance_radosavljevic_je_car.
Dzaba nekome ko bi nasumičnim gadjanjem lozinke (takozvanom brute_force metodom) provalio u nas nalog, ako ne zna ni gde treba da ide da se uloguje.
Ovo je u principu najlakše odraditi wordpress pluginom koji se zove „Rename wp-login.php“ ili sa nekim od dole navedenih pluginova.

Još jedna od stvari koju morate znati jeste da vam se neko  može ušunjati brute-force tehnikom i putem xmlrpc.php fajla. Zaštitite taj fajl u .htaccess fajlu.
recimo kod za totalnu zabranu pristupa tom fajlu bi bio:

Skrivanje arhive autora i njegovog username-a

Zašto? Pa eto tako, ako odete na url vašeg bloga www.mojsajt.com/?author=1 u samom urlu sajta ce se videti vas username. Time ste otkrili polovinu vasih podataka.
Recimo, primera radi, namom omiljenom sajtu njuz.net ovom metodom mogu da ustanovim da postoji korisnik admin.
www.njuz.net/?author=1 =====> http://www.njuz.net/author/admin/
Istina jeste da se vaš username može naći u komentarima, ali eto, makar je malo otezano robotima da vas uhvate nespremne.Ovo skrivanje ćete odraditi prostim dodavanjem reda u vaš root .htaccess fajl (unutar rewrite moda):
RewriteRule ^author/(.*)$ http://www.nazivsajta.com/ [R,L]

Zabrana šetanja po folderima

Pa ne mora svako da vidi koje sve pluginove imate instalirane. Ovo radite tako što u .htaccess fajl ubacite i red:
 # directory browsing    
Options All -Indexes

Security plug-inovi

Ukratko, postoje trenutno 4 plugina koja su keva kad je u pitanju bezbednost WordPress sajta, ali morate obratiti pažnju jer i oni su sami po sebi meta, te treba s vremena na vreme otići na neki od sajtova poput exploit-db.com ili 1337day.com i proveriti da li je neki od ovih (ili bilo kojih drugih plaginova) postao nebezbedan, te ako jeste preći na sledeci dok se ovaj „ne opravi“ 🙂
Takodje, pre instalacije ovih pluginova bi bilo dobro napraviti pun bekap baze i fajlova, jer se može desiti da vam isti nešto prejebu na sajtu, te ukoliko ste dibidus početnik biće vam teško vratiti se na početno stanje. Većini ovih pluginova se sve svodi na izmenu .htaccess fajlova te i modifikacije samih Wp fajlova.
Dakle pluginovi koje preporučujem su:
Wordfence Security
Better WP Security
BulletProof Security
All In One WP Security & Firewall

Većina od ovih plaginova nudi i zaštitu od brute-force napada, tako da ovo necu navoditi kao dodatnu zaštitu.

Zaštita .htaccess-om foldera wp-admin, wp-includes, wp-content  i wp-uploads

Suviše je ovo detaljna tematika tako da neću o njoj pisati sad, pronadjite privremeno na Guglu 🙂
Sem .htaccess fajla svaki od ovih foldera treba da ima i jedan prazan index.php fajl sa read-only permisijama (chmod 400)

Limitiranje privilegija DB korisnika na MySQL bazi

Ukratko, db korisnik kojim se kačite na bazu ne treba da ima full privilegije, kao što ih svaki korisnik i ima po defaultu. Dovoljno je SELECT, INSERT, UPDATE, DELETE, ALTER, CREATE i ćao. Ovo možete podesiti kad se ulogujete kroz Cpanel na vaš phpMyAdmin.

Sve što ne koristite od tema i pluginova – DELETE

TO što ste ih isključili ne znači da je dovoljno. Dovoljno je samo ako ih obrišete

Standardna smaranja o kojima vas ja neću smarati, ali ih se morate pridržavati:

  • Ultra-zajebana lozinka za Cpanel, WP login, db usera, ftp korisnike sa minimum 3 velika, 3 mala slova, 3 broja, 3 specijalna karaktera.
  • Redovan bekap fajlova i baze na lokalni računar ili neki cloud servis poput Dropboxa
  • Skrivanje verzije wordpress-a
  • Pravilan odabir hosting provajdera, po mogućstvu uzeti hosting na nekom od najvecih provajdera poput recimo GoDaddy-ja
  • Redovan update svih instaliranih pluginova, tema i samog WordPress-a na poslednju izdatu verziju.
  • Odjebaus prefiksu wp_ kad su tabele u bazi u pitanju
  • Logovati se samo sa proverenih i zaštićenih mreža
  • Praćenje 404 grešaka, kako bi videli legitimne ali i sumnjive pokušaje pristupa sajtu
  • Zaštita vama bitnih foldera lozinkom (može i preko Password Protect Directories unutar vašeg Cpanela)
  • Captcha za login i komentare da vas spameri ne bi ubili u mozak

4 komentara na tekst Zaštita sajtova baziranih na WordPress-u

  • Milan

    Odličan tekst. Hvala.

  • Miodrag

    Postovani,
    wordpress je nedavno poceo automatski da apdejtuje svoje verzije. Da li ce wordpress biti u mogucnosti da se nesmetano automatski apdejtuje ako zastitim wp-admin folder dodatnom sifrom u cpanelu.
    Unapred hvala na odgovoru,
    Miodrag

    • Darko Dražović

      NIsam probao. Pretpostavljam da neće raditi ali vas naravno ništa ne košta da probate (samo prvo backup svega)

    • Miodrag

      Postovani Darko,
      probao sam da zastitim dodatnom sifrom wp-admin folder kroz c-panel (Password Protect Directories u c-panel), sve sam to odradio bez problema, kreirao user-a, kliknuo na „Password protect this directory“, snimio sve, ali prilikom logovanja na sajt (…./wp-login.php) se ne desava nista (ne pojavljuje se prozor u koji bi trebalo da se unese korisnicko ime i lozinka za ulaz u wp-admin). Ne znam o cemu se radi.
      Miodrag

Komentarišite

Email neće biti javno objavljen. Sajt je neobavezan podatak, svi ostali su obavezni.