Ako chrániť naše stránky pomocou príkladov .htpasswd +

Z mnohých dôvodov môže byť veľmi užitočné mať kontrolovaný prístup k určitým adresárom na webovom serveri alebo jednoducho k obsahu našej stránky alebo blogu prostredníctvom autentifikačnej služby založenej na užívateľskom mene a hesle. Hovorím o niečom ako typické okno, ktoré sa objaví, keď chceme vstúpiť na web s obmedzenými službami.

Existuje niekoľko spôsobov, ako generovať okná s autentifikačným formulárom, ale poskytuje sa zaujímavé riešenie na úrovni servera htpasswd. Je to obslužný program, ktorého funkciou je ukladať heslá v šifrovanej podobe, ktoré použije server Apache v autentifikačných službách. Jeho použitie by nám umožnilo zobraziť určité adresáre alebo súbory cez http iba identifikovaným používateľom a bez toho, aby boli nevyhnutne voľne dostupné pre všetkých.

Chápem, že to nie je veľmi okázalá téma, ale pre niektorých môže byť užitočná. Aby som ich nezabila nudou, použijem obrázky, aby to bolo didaktickejšie.

Predchádzajúce úvahy: Budem používať Ubuntu Server 12.04.1 y Apache 2.2.22 v kontrolovanom prostredí.

Začíname.

Ako už možno niektorí vedia, predvolene sú dostupné stránky Apache uložené v adresári / Var / www / a pre tento príklad vytvorím adresár so šablónou HTML a pokúsim sa ho chrániť štítkom .htpasswd.

Adresár, ktorý sa má chrániť, je / var / www / príklad / kde som umiestnil nasledujúcu stránku.

Na serveri

V prehliadači

1. Chystáme sa vytvoriť .htpasswd.

Miesto, kde sa bude nachádzať, má dôležitý význam a umiestnenie mimo verejný adresár môže byť viac ako odporúčané. V mojom prípade ho umiestnim do svojho osobného priečinka (ktorý nie je verejným adresárom Apache) a s názvom .htpasswd (A priori nie je potrebné to tak nazývať, ale ten skrytý je vždy dobrý).

Pre používateľov nových systémov Linux. Ak chcete skryť adresár alebo súbor, je potrebné, aby sa ich názov začínal iba bodkou (.).

Pomocou nasledujúceho príkazu vytvorím súbor .htpasswd pre webového používateľa, ktorého som pomenoval ako: „Luke“.

# htpasswd -c /home/krel/.htpasswd Luke

Požiada nás, aby sme heslo zadali dvakrát, v mojom prípade som uviedol „skywalker“ (bez úvodzoviek). V nekontrolovanom prostredí musíme ustanoviť silnejšie heslá. Predvolené šifrovanie v systéme Linux je MD5, ale v systéme Unix ide o štandardnú implementáciu crypt () a pre heslá s menej ako 8 znakmi môže byť zraniteľné. Teraz pochybujem, či je to rovnaké aj v BSD.

Príkaz má túto štruktúru:

  • -c → na vytvorenie súboru
  • /home/krel/.htpasswd → absolútna cesta k súboru.
  • Lukáš → používateľské meno (môže byť akékoľvek)

Rovnako tak nikoho nenútim, aby používal terminál, ak sú na internete poskytované služby:
http://www.web2generators.com/apache/htpasswd_generator

http://www.htaccesstools.com/htpasswd-generator/

Výsledok skopírujeme do textového súboru s názvom .htpasswd, ak chcete. Pokiaľ ide o túto metódu, neprestávajte čítať to, čo komentujem v nasledujúcom odseku.

V našom prípade uvidíme, že súbor bol vygenerovaný tam, kde sme ho očakávali /home/krel/.htpasswd. Na obrázku som zdôraznil, že pri tejto metóde súbor patrí do skupiny apache a používateľa apache, ktorá sa v Ubuntu nazýva www-data. Je to dôležité, pretože ak sme súbor .htpasswd vygenerovali iným spôsobom, musíme sa ubezpečiť, že má 644 povolení.

Teraz uvidíme, aké sú ich vnútornosti:

Ako vidíte, je tu používateľ (Luke), ale heslo je šifrované.

Týmto spôsobom sme už vytvorili a navrhli .htpasswd pre používateľa Luke, nakoniec to nie je nič iné ako kontajner na heslo. „Všetko s jedným príkazom“ by bolo dobrou frázou.

2. Nakonfigurujte Apache tak, aby používal a povolil túto službu na webe.

# nano /etc/apache2/sites-available/default

Ak máte niekoľko hostiteľov, musia pracovať na každom z nich, v mojom prípade mám štandardne iba jedného. Nezabudnite, že tento súbor je vždy dobré zálohovať.

Tento súbor má predvolenú štruktúru:

ServerAdmin webmaster @ localhost

..................

..................

Presne v hlavičkách Virtualhost bude špecifikované použitie .htpasswd na prístup do určitého adresára. Robíme to tak, ako sa zdá na obrázku nižšie a ako vhodný pre náš príklad:

Dobre. Vysvetľujem riadky:

Musíte dať adresár na ochranu.

AuthType Basic

Je to typ používateľa a hesla dohodnutý s prehliadačom, v tomto prípade je to základné, bez šifrovania.

Existuje ešte jeden typ vyjednávania: Digest, tento šifruje používateľské meno a heslo, posledné slovo však má prehliadač, či uvedenú službu podporuje. Digest možno povedať, že ide o o niečo robustnejšiu implementáciu proti sniffers. Pozývam vás, aby ste sa do toho ponorili.

AuthName "Pred vstupom zaklopte na dvere."

Je to správa, ktorá sa používateľovi zobrazí v prehliadači s prihlasovacím formulárom a môže to byť tá, ktorú chceme.

AuthUserFile /var/www/.pass/.htpasswd

Cesta k súboru .htpasswd. Z tohto dôvodu je to, že hovorím, že nie je potrebné ani pomenovávať .htpasswd, jednoduché uvedenie cesty by fungovalo rovnako.

Vyžadovať platný používateľ

Táto linka je určená pre viacerých používateľov s individuálnymi heslami. V prípade, že ide o jedného používateľa, možno ho zhrnúť ako nasledujúci variant.

Vyžadovať používateľa el_que_sea

V mojom príklade by to mohlo byť: Vyžadovať používateľa Luke

A nakoniec všetko prikladáme

Reštartujeme apache:

# service apache2 restart

Vyskúšajme.

Ak sa neoveríme správne, zobrazí sa chyba 401.

Na druhej strane, ak uvedieme správne používateľské meno a heslo, bez väčších nepríjemností by nás to umožnilo prejsť.

Ďalšie tipy.

  • Tento príkaz môžete použiť na pridanie ďalších používateľov do už vytvoreného súboru htpasswd

htpasswd -mb /home/krel/.htpasswd Heslo používateľa

Ak ste nastavili možnosť „Vyžadovať používateľa“ a nie „Vyžadovať platného používateľa“, musíte pridať nového používateľa, za ktorým nasleduje predchádzajúci a oddeliť ho medzerou. Príklad:

Vyžadovať používateľa Luke Anakin

  • Používajte skupiny používateľov

Ak namiesto jednotlivých používateľov uprednostňujeme alebo potrebujeme pracovať so skupinami na nasledujúcej webovej stránke, vysvetlia to veľmi podrobne a je to vynikajúci článok.
http://www.juanfelipe.net/node/23

  • Môžeme tiež nastaviť iný typ šifrovania, napríklad: SHA

htpasswd -sb /home/krel/.htpasswd Heslo používateľa

Tu je obrázok toho, ako by sa registrácia hesla SHA prejavila v súbore .htpasswd. V oboch to bol „skywalker“.

Prečítajte si viac.

htpasswd - -pomoc

Ak sa chcete tejto téme venovať hlbšie, RTFM je vždy dobrá!
http://httpd.apache.org/docs/2.0/es/howto/auth.html

http://httpd.apache.org/docs/2.2/misc/password_encryptions.html

Taktiež som zistil, že tento skript PHP je zo stránky Granadskej univerzity zvedavý na vytvorenie generátora htaccess a htpasswd. Nedokázal som to zaviesť do praxe, ale pozývam vás, aby ste „vypáčili inteligenciou“.

Šablóna HTML, ktorú som získal z tejto stránky, ak by mal niekto záujem.
http://www.templatemo.com/

Dúfam, že sa vám táto prezentácia htpasswd páčila.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   krel dijo

    Keď si teraz znovu čítam príspevok, uvedomil som si, že som urobil malý neporiadok. Keď vysvetľujem riadky v konfigurácii webu, v AuthUserFile vložím /var/www/.pass/.htpasswd, keď to má byť:
    /home/krel/.htpasswd.

    Na obrázku je to v poriadku, ale tam mi to uniklo, je to, že som predtým vytvoril článok s touto trasou, ale na poslednú chvíľu som ho zmenil a zdá sa, že som to nestihol opraviť.

    Vopred sa ospravedlňujem.

  2.   Fernando dijo

    Akákoľvek alternatíva pre nautilus ??

    1.    krel dijo

      To, čo sa pýtate, si myslím, že to ide aj inak, ale aj tak vám odpovedám.
      Verím, že s Cryptkeeperom by bolo užitočné chrániť adresáre a podobné veci.

      Ak som úprimný, ak niečo, čo na gnome neznášam, je nautilus. Dolphin (KDE) je oveľa výkonnejší práve pre tieto veci ochrany, šifrovania pomocou gpg atď ...

  3.   DMoZ dijo

    Krel, ďakujem za kompletné návody, ktoré sem prinesieš, a najmä za to, že nie sú tak častými témami ...

    Na zdravie !!! ...

  4.   Juan Carlos dijo

    Ahoj všetko dobre dopadlo, ale .. keď zavriem kartu chrómu a otvorím ďalšiu, napíšem adresu a nepýta si heslo ...

  5.   kamoš dijo

    kto povedal, že to nie je okázalé.
    Bolo to práve to, čo som hľadal, a lepšie vysvetlené ako nemožné
    Mnohokrat dakujem.
    pozdrav

  6.   basco7 dijo

    Dobrý deň, veľmi vám ďakujem za informácie, najmä za časť pridania viacerých používateľov do súboru .htpasswd.

    Boh ti žehnaj!

  7.   Mohtadi dijo

    Gratulujem, je to veľmi dobrý článok, prehľadný a stráviteľný. Ďakujem ti veľmi pekne

  8.   Eduardo dijo

    Pri zadávaní používateľského mena a hesla mi spôsobí chybu 500

    AuthType Basic
    AuthName "Tocc tocc"
    AuthUserFile /var/www/html/.pass/.htpasswd
    Vyžadovať používateľa Akira

  9.   Eduardo dijo

    Ako skvelé sa mi to stane, že som komentoval bez toho, aby som si pozrel ďalšie komentáre.
    Funguje skvele skvelý príspevok

  10.   Somnus senior dijo

    Ahoj, dobrý návod, ale existuje alternatíva k „htpasswd“? Pýtam sa, prečo používam linux mint 17.3 a nemám príkaz ... musím si ho nainštalovať?

  11.   Somnus senior dijo

    Dobre, prišiel som na to ... Musel som ho nainštalovať pomocou sudo apt-get install apache2-utils

  12.   Fernando Montilla dijo

    Dobrý deň, vynikajúci návod, urobil som to presne tak, ako je to tu uvedené, jediná vec je, že namiesto vykonania toho, čo je uvedené v bode 2:

    nano / etc / apache2 / sites-available / default

    U mňa to fungovalo

    nano /etc/apache2/sites-enabled/000-default.conf

  13.   Jorge Rodrigo Torrez Aramayo dijo

    Zdravím, nefunguje to 🙁 môj priečinok sa nezobrazuje na mojom serveri, to znamená, že som chránil svoj priečinok / var / 222 / html / content a keď vstúpim z prehliadača, priečinok s obsahom sa nezobrazí. Pomoc