Eelmisel nädala taastasin veebilehe, mis tehtud vana Joomla 1.5 peal. Antud Joomla kodulehe turvalisus oli juba pikka aega jäänud tähelepanuta, kuni ühel päeval oli leht häkkerite poolt maha võetud. Algseis oli selline:

Häkitud veebileht

Lisaks täielikule ümbersuunamisele, oli veebilehel kokku 39 troojalast sisaldavat faili, 3 tundmatut viirust, mida sai vaid teenusepakkuja kustutada ning 84 faili, mis sisaldasid vähemal või rohkemal määral erinevaid Javascripte, kahtlasi linke ja viiteid.

Kuidas siis teha oma Joomla koduleht turvalisemaks?

Joomla on populaarne sisuhaldustarkvara – üle 35 miljoni allalaadimise ning 3% maailma veebilehtedest on tehtud Joomlaga. Aga ikka leidub ilma südametunnistuseta pahalisi, kelle jaoks on päev korda läinud siis, kui saaks kellegi veebilehe maha võtta. Kuidas seda vältida?

  • Kõigepealt tee oma veebilehest varukoopia. Sõltuvalt info lisamise tihedusest võiks varukoopiaid teha kord kuus või kvartalis. Üks võimalus on varundada ise – laed FTP programmiga alla kõik failid ja kaustad ning PHPMyAdmin’ist teed andmebaasi ekspordi. Teine võimalus on kasutada Akeeba nimelist komponenti.
  • Uuenda järjepidevalt kõiki lisasid ja ka Joomla versioone. Juhtpaneelil näed, missugused lisad vajavad värskendmist ja kas oleks vaja ka Joomla versiooni uuendada.
  • Ära anna üleliigseid õiguseid Joomla kaustadele ja failidele.
    Õigused olgu määratud järgmiselt:
    PHP failid: 644
    Configuration.php: 444
    Kaustad: 755
    See kehtib eriti Radicenter klientidele, kes peavad installeerimiseks sättima kaustadele õigusi käsitsi.
  • Kustuta installeeritud lisad, mida veebilehel ei kasuta. Kui oled lisanud mõne komponendi, mooduli või plugina, mida tegelikult ei kasuta, siis eemalda see täielikult – ei piisa käsklusest Lülita välja (Unpublish). Failid jäävad alles ja võivad osutuda ohuallikaks.
  • Lisa .htaccess faili juurde mõned read – aitab blokeerida mõningaid rünnakuid.
    ########## Begin – Rewrite rules to block out some common exploits#
    # Block out any script trying to set a mosConfig value through the URL
    RewriteCond %{QUERY_STRING} mosConfig_
    [a-zA-Z_]{1,21}(=|%3D) [OR] # Block out any script trying to base64_encode crap to send via URL
    RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR] # Block out any script that includes a < script> tag in URL
    RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL
    RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR] # Block out any script trying to modify a _REQUEST variable via URL
    RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR] # Block out any script that tries to set CONFIG_EXT (com_extcal2 issue)
    RewriteCond %{QUERY_STRING} CONFIG_EXT([|%20|%5B).*= [NC,OR] # Block out any script that tries to set sbp or sb_authorname via URL (simpleboard)
    RewriteCond %{QUERY_STRING} sbp(=|%20|%3D) [OR] RewriteCond %{QUERY_STRING} sb_authorname(=|%20|%3D)
    # Send all blocked request to homepage with 403 Forbidden error!
    RewriteRule ^(.*)$ index.php [F,L] #
    ########## End – Rewrite rules to block out some common exploits
  • Kasutajanimi ei tohi olla admin ja parool ei tohi olla sõna. Parool peab sisaldama suuri ja väikseid tähti, numbreid ja võimalusel sümboleid. Näiteks KloET,Ekp329 – lühend laulust Kauneim linn on Eestis Tartu, Emajõe kalda peal.
  • Peida URL http://www.veebileht.ee/administrator. Oma administreerimise sisse logimist ei pea näitama juhuslikule külastajale. Kasuta näiteks JLSecure My Site pluginat.
    Lisaks on võimalik teha ka nii, et sisse logida saad peale turvakoodi sisestamist, mis saadetakse telefoni teel.
  • Vaata üle ka Joomla poolt pakutavad lisad, mis seotud teemaga „Kuidas muuta Joomla tehtud veebilehte turvalisemaks?“

Joomla 1.5 veebilehe omanikud – uuendage oma veebilehte.

Probleeme võib tekitada juba see, et tabelite eesliide on jos_. Põhjus, miks seda teha, on lihtne – häkkereid huvitab tabel nimega jos_users, kus on kirjas ka super administraatori andmed ning kasutajanimeks on seal admin ja järelikult peab muutma ainult parooli. Lisaks on vaikimisi administraatori ID 62. Juba nendest andmetest piisab, et saaks kasutada SQL käsklusi, mis muudaksid administraatori andmeid.

Nii kodulehe tegemise koolitusel kui ka Joomla veebilehe halduri koolitusel vaatame üle peamised lisad ja võtted, mida kasutada oma veebilehe turvaliseks muutmisel.
Kui turvaline on sinu koduleht?