Portál technickej podpory

Ak tu nenájdete to, čo ste hľadali, neváhajte nás kontaktovať.
Potrebné informácie pre vás radi doplníme.

Zabezpečenie administrácie pomocou .htpasswd

V súvislosti s bezpečnostnou dierou, ktorá bola zistená v jadre redakčného systému Joomla verzia 2.5.x až verzia 2.5.7., sme pripravili niekoľko bezpečnostných doporučení, ako danú situáciu riešiť.

Bezpečnostná diera umožňuje útočníkovi nahrať vadný obsah priamo do webového priestoru danej prezentácie. Následne je možné spustiť škodlivý kód, ktorý spôsobí zahltenie a tým spomalenie alebo výpadok všetkých bežiacich prezentácií na našich serveroch.

Verziu svojho redakčného systému Joomla zistíte v administrácii v pravom hornom rohu. Viac informácií o tejto problematike je možné získať na týchto stránkach:

Doporučené riešenia

1. Upgrade na vyššiu verziu Joomla 2.5.8

Inštalačný balíček môžete stiahnuť tu: http://joomlacode.org/. Doporučujeme skontrolovať kompatibilitu všetký0ch využívaných doplnkov.

2. Zabezpečenie pomocou súboru .htaccess a .htpasswd

Dôvodom zavedenia tejto formy dodatočného zabezpečenia administrácie pri programoch Joomla a Wordpress bol vyšší počet hromadne vedených útokov na servery, ktoré boly smerované priamo do prihlasovacích dialógov týchto známych CMS. Následkom týchto útokov je preťažovanie webových serverov, ktoré sa môže prejaviť pomalšími odozvami. Nasadenie dalšej úrovne prihlásenia sa do administrácie open-source programov Joomla a Wordpress môže pomôcť obmedziť tento typ útokov na naše servery.

Zabezpečenie pomocou funkcie .htpasswd

.htaccess

Najskôr pridáme do súboru .htaccess požadované príkazy a uložíme do zložky, ktorú chceme zaheslovať:

AuthUserFile /cesta/.htpasswd
AuthGroupFile /dev/null
AuthName "Názov sekcie"
AuthType Basic

require valid-user

TU "Názov sekcie" je ľubovolný titulok zložky, ktorú si prajeme zaheslovať, napríklad "Priatelia".

Potom /cesta je absolútna cesta k súboru .htpasswd. Súbor .htpasswd môžete umiestniť do ľubovolnej zložky a ani nemusí byť pomenovaná .htpasswd. Z bezpečnostných dôvodov sa ale doporučuje .htpasswd umiestniť nad Vašu hlavnú zložku. To preto, aby súbor nešlo nájsť výpisom zložiek Vašej domény. V prípade, že využívate platený webhostingový priestor, na servery by pre Vás už mala byť zvláštna zložka k uloženiu citlivých údajov.

Pokiaľ nepoznáte tzv. absolútnu cestu na svoju doménu, môžete spustiť PHP funkciu phpinfo(), ktorá vypíše na monitor nastavenia serveru. Vytvorte si stránku s príponou .php (napr. phpinfo.php) a do nej vložte tento kód:

<?php phpinfo () ?>

Stránku uložte na server a spusťte v prehliadači. Mali by sa zobraziť tabuľky s nastavením serveru. V tabuľke "PHP variables" by mala byť položka _SERVER["DOCUMENT_ROOT"] alebo podobná. Toto je absolútna cesta k hlavnej zložke vašej domény.

.htpasswd

Súbor .htpasswd obsahuje užívateľské mená a heslá, ktoré budú mať prístup k ochrannej zložke.

Do súboru .htpasswd sa užívateľské mená a hesla pridajú v tomto formáte:

užívatel1:heslo1
užívatel2:heslo2
užívatel3:heslo3

Heslá si musíte sami zašifrovať PHP funkciou crypt(). Tu je hotový skript, ktorý toto vykoná. Vytvorte si stránku s príponou .php (napr. sifrovak.php) a do nej vložte tento kód:

<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1250' />
<title>Šifrovák</title>
</head>
<body>
<h1>Šifrovák</h1>
<form action="<?php echo $PHP_SELF ?>" method="post">
Heslo k zašifrovaniu:
<br /><input type=text name=heslo />
<input type="submit" name="submit" value=" jdi " />
</form>
</body>
</html>

<?php
$submit = $_REQUEST['submit'];
if (isset ($submit)) {
    $heslo = $_REQUEST['heslo'];
    $zasifrovane = crypt ($heslo);
    if (crypt ($heslo, $zasifrovane) == $zasifrovane)
        echo "<br />Heslo: $heslo = <span style='background:yellow;color:black;'>$zasifrovane</span>";
    else
        echo "<br />Došlo k chybe v šifrovania.";
}
?>

Zašifrovanie musíte vykonať na svojom internetovom servery, na ktorom budete mať zaheslovanú zložku. Nemá význam to robiť na nejakom inom servery, pretože rôzne servery šifrujú rôzne. Stránku sifrovak.php uložte na server a spustite v prehliadači. Zašifrujte si jedno heslo po druhom a vždy skopírujte klipom do súboru .htpasswd.

užívatel1:zasifrovane_heslo1
užívatel2:zasifrovane_heslo2
užívatel3:zasifrovane_heslo3

Ďalších užívateľov je možné pridávať ako ďalšie riadky súboru .htpasswd.

Keď sa potom niekto pokúsi o prístup k zaheslovanej zložke, prehliadač zobrazí výzvu k vloženiu užívateľského mena a hesla. Existujú tiež serverové moduly, ktoré zobrazujú tento dialóg ako súčasť stránky. Je možné tiež odoslať užívateľské meno a heslo (nezašifrované) v URL:

http://uzivatel:heslo@www.server.sk/zlozka/

3. Povoliť prístup do adresára /administrátor iba z konkrétnych IP

Pre nastavenie prístupu sa využíva súbor .htaccess do, ktorého môžete pridať záznam, aby pustil do konkrétneho adresára iba užívateľa z danej IP. Súbor .htaccess uložíte do zložky, kde má zadané pravidlo pracovať.

Príklad:

"allow from 123.123.123.123" - povolíte tejto IP adrese vstup na Vaše stránky.