Kako zaščititi naša spletna mesta s primeri .htpasswd +

Iz mnogih razlogov je lahko zelo koristno imeti nadzorovan dostop do nekaterih imenikov na spletnem strežniku ali preprosto do vsebine naše strani ali spletnega dnevnika s pomočjo storitve preverjanja pristnosti na podlagi uporabniškega imena in gesla. Govorim o nečem podobnem tipičnem oknu, ki se pojavi, ko želimo vstopiti na spletno mesto z omejenimi storitvami.

Obstaja več načinov za ustvarjanje oken z obrazcem za preverjanje pristnosti, vendar je na ravni strežnika na voljo zanimiva rešitev htpasswd. Gre za pripomoček, katerega funkcija je shranjevanje gesel v šifrirani obliki, ki jih Apache uporablja v storitvah za preverjanje pristnosti. Njegova uporaba bi nam omogočila, da nekatere imenike ali datoteke prek http prikažemo samo določenim uporabnikom in ne da bi bili nujno na voljo vsem.

Razumem, da to ni zelo bleščeča tema, vendar je lahko koristno za nekatere. Da jih ne bi ubil z dolgčasom, bom s slikami naredil bolj didaktične.

Prejšnji premisleki: Uporabil bom Ubuntu strežnik 12.04.1 y Apache 2.2.22 v nadzorovanem okolju.

Začnemo.

Kot nekateri morda že vedo, so na voljo razpoložljiva spletna mesta Apache v imeniku / var / www / in za ta primer bom ustvaril imenik s predlogo HTML in ga poskušal zaščititi z .htpasswd.

Imenik za zaščito je / var / www / primer / kamor sem postavil naslednjo stran.

Na strežniku

V brskalniku

1. Ustvarili bomo datoteko .htpasswd.

Kraj, kjer se bo nahajal, je pomembnega pomena, zato ga je lahko več kot priporočeno. V mojem primeru ga bom postavil v svojo osebno mapo (ki ni javni imenik Apache) in z imenom .htpasswd (A priori ni treba, da ga tako imenujemo, toda tisti, ki je skrit, je vedno dober).

Za uporabnike, ki so novi v Linuxu. Če želite skriti imenik ali datoteko, morate samo začeti njegovo ime s piko (.).

Z naslednjim ukazom ustvarim datoteko .htpasswd za spletnega uporabnika, ki sem ga poimenoval kot: "Luke".

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

Dvakrat bo zahteval, da vnesemo geslo, v mojem primeru sem dal "skywalker" (brez narekovajev). V nenadzorovanem okolju moramo vzpostaviti močnejša gesla. Privzeto šifriranje v Linuxu je MD5, v Unixu pa je standardna izvedba crypt () in za gesla z manj kot 8 znaki je lahko ranljiva. Zdaj dvomim, ali je pri BSD enako.

Ukaz ima to strukturo:

  • -c → za ustvarjanje datoteke
  • /home/krel/.htpasswd → absolutna pot datoteke.
  • Luka → uporabniško ime (lahko je karkoli želiš)

Podobno ne prisilim nikogar, da uporablja terminal, če zanj obstajajo storitve v internetu:
http://www.web2generators.com/apache/htpasswd_generator

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

Rezultat kopiramo v besedilno datoteko in z imenom .htpasswd, če želite. Glede te metode ne prenehajte brati tega, kar komentiram v naslednjem odstavku.

V našem primeru bomo videli, da je bila datoteka ustvarjena tam, kjer smo jih pričakovali /home/krel/.htpasswd. Na sliki sem poudaril, da s to metodo datoteka pripada skupini apache in uporabniku apache, ki se v Ubuntu imenuje www-data. To je pomembno, ker če smo .htpasswd generirali na kakršen koli drug način, moramo zagotoviti, da ima 644 dovoljenj.

No, zdaj bomo videli, kakšna so njihova čreva:

Kot lahko vidite, obstaja uporabnik (Luke), vendar je geslo šifrirano.

Na ta način smo že ustvarili in oblikovali .htpasswd za uporabnika Luke, na koncu pa ni nič drugega kot vsebnik za geslo. "Vse z enim ukazom" bi bila dobra besedna zveza.

2. Konfigurirajte Apache za uporabo in dovolite uporabo te storitve na spletnem mestu.

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

Če imate več gostiteljev, morajo delati na vsakem od njih, v mojem primeru imam samo tistega, ki je privzet. Ne pozabite, da je vedno dobro narediti varnostno kopijo te datoteke.

Ta datoteka ima privzeto strukturo:

ServerAdmin spletni skrbnik @ localhost

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

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

Prav znotraj naslovov Virtualhost bo za dostop do določenega imenika določena uporaba .htpasswd. To naredimo, kot se prikaže spodnja slika in ustreza našemu primeru:

Dobro. Razložim vrstice:

Imenik morate dati v zaščito.

AuthType Basic

Gre za vrsto uporabnika in geslo, o katerem se je dogovoril brskalnik, v tem primeru je to osnovno, brez šifriranja.

Obstaja še ena vrsta pogajanj: Digest, če šifrira uporabniško ime in geslo, vendar je zadnja beseda, ki jo ima brskalnik, ali podpira omenjeno storitev. Za Digest lahko rečemo, da gre za nekoliko bolj trdno izvedbo proti snifferjem. Vabim vas, da se poglobite v to.

AuthName "Pred vstopom potrkajte na vrata."

To je sporočilo, ki se uporabniku prikaže v brskalniku z obrazcem za prijavo in je lahko tisto, ki ga želimo.

AuthUserFile /var/www/.pass/.htpasswd

Pot do datoteke .htpasswd. Zato rečem, da ga sploh ni treba imenovati .htpasswd, preprosto postavitev poti bi delovala enako.

Zahtevajte veljavnega uporabnika

Ta vrstica je namenjena več uporabnikom z individualnimi gesli. Če gre za enega uporabnika, ga lahko povzamemo kot naslednjo različico.

Zahtevaj uporabnika el_que_sea

V mojem primeru bi lahko bil: Zahtevaj uporabnika Luke

In na koncu vse priložimo

Znova zaženemo apache:

# service apache2 restart

Poskusimo.

Če se ne overimo pravilno, bomo dobili napako 401.

Če vstavimo pravilno uporabniško ime in geslo, nas na nasprotni strani pusti brez večjih nevšečnosti.

Dodatni nasveti.

  • Če želite dodati več uporabnikov v že ustvarjeno datoteko htpasswd, lahko uporabite ta ukaz

htpasswd -mb /home/krel/.htpasswd uporabniško geslo

Če ste nastavili "Zahtevaj uporabnika" in ne "Zahtevaj veljavnega uporabnika", morate dodati novega uporabnika, ki mu sledi prejšnji in ločen s presledkom. Primer:

Zahtevaj uporabnika Luke Anakina

  • Uporabite uporabniške skupine

Če namesto posameznih uporabnikov raje ali moramo sodelovati s skupinami na naslednjem spletnem mestu, nam to zelo podrobno razložijo in je odličen članek.
http://www.juanfelipe.net/node/23

  • Nastavimo lahko tudi drugo vrsto šifriranja, na primer: SHA

htpasswd -sb /home/krel/.htpasswd uporabniško geslo

Tu je slika, kako bi se registracija gesla SHA odražala v .htpasswd. V obeh je bil "skywalker".

Več o tem.

htpasswd - -pomoč

Če želite poglobiti to temo, je RTFM vedno dober!
http://httpd.apache.org/docs/2.0/es/howto/auth.html

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

Ta PHP skript sem našel tudi radoveden na strani Univerze v Granadi, da bi ustvaril generator htaccess in htpasswd. Nisem ga mogel uresničiti v praksi, vendar vas vabim, da "vzbujate inteligenco."

Predloga HTML, ki sem jo dobil s te strani, če koga zanima.
http://www.templatemo.com/

Upam, da vam je bila ta predstavitev htpasswd všeč.


14 komentarja, pustite svojega

Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   krel je dejal

    Zdaj, ko spet berem prispevek, sem ugotovil, da sem naredil majhen nered. Ko razložim vrstice v konfiguraciji spletnega mesta, v AuthUserFile vstavim /var/www/.pass/.htpasswd, ko bi moralo biti:
    /home/krel/.htpasswd.

    Na sliki je v redu, toda tam mi je ušel, to je, da sem že napisal članek s to potjo, vendar sem ga v zadnjem trenutku spremenil in zdi se, da bi ga lahko popravil.

    Vnaprej se opravičujem.

  2.   Fernando je dejal

    Kakšna alternativa za nautilus ??

    1.    krel je dejal

      Kar vprašate, mislim, da gre drugače, vendar vam vseeno odgovorim.
      Verjamem, da bi bilo z Cryptkeeper koristno zaščititi imenike in podobne stvari.

      Če sem iskren, če je nekaj, kar sovražim pri gnomu, nautilus. Dolphin (KDE) je veliko močnejši prav za te stvari, zaščito, šifriranje z gpg itd.

  3.   DMoZ je dejal

    Krel, hvala za celotne vadnice, ki jih prinašaš sem, in še posebej, ker nisi tako pogosta tema ...

    Na zdravje !!! ...

  4.   Juan Carlos je dejal

    Pozdravljeni, vse je šlo dobro, ampak .. ko zaprem zavihek chrome in odprem drugega, napišem naslov in ne vpraša za geslo ...

  5.   kolega je dejal

    ki je rekel, da ni bleščeče.
    Prav to sem iskal in bolje razloženo nemogoče
    najlepša hvala
    pozdrav

  6.   basco7 je dejal

    Pozdravljeni, najlepša hvala za informacije, še posebej za del dodajanja več uporabnikov v .htpasswd.

    Bog vas blagoslovi!

  7.   Mohtadi je dejal

    Čestitamo, to je zelo dober članek, jasen in prebavljiv. Najlepša hvala

  8.   Eduardo je dejal

    Ko vnesem uporabniško ime in geslo, se mi prikaže napaka 500

    AuthType Basic
    AuthName "Tocc tocc"
    AuthUserFile /var/www/html/.pass/.htpasswd
    Zahtevaj uporabnika Akira

  9.   Eduardo je dejal

    Kako super se mi to zgodi, da komentiram, ne da bi se ozrl na druge komentarje perodna.
    Odlično deluje odlično

  10.   Somnus starejši je dejal

    Živjo, dobra vadnica, vendar obstaja alternativa "htpasswd"? Vprašam, zakaj uporabljam linux mint 17.3 in nimam ukaza ... ga moram namestiti?

  11.   Somnus starejši je dejal

    Ok, ugotovil sem ... Moral sem ga namestiti s sudo apt-get install apache2-utils

  12.   Fernando Montilla je dejal

    Pozdravljeni, odlična vadnica, naredil sem natanko tako, kot je navedeno tukaj, edino, da namesto da bi izvedel, kar je navedeno v točki 2:

    nano / etc / apache2 / sites-available / default

    Pri meni je uspelo

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

  13.   Jorge Rodrigo Torrez Aramayo je dejal

    Lep pozdrav, zame ne deluje 🙁 moja mapa se ne prikaže na mojem strežniku, to je, zaščitil sem svojo mapo / var / 222 / html / content in ko vstopim iz brskalnika, se vsebinska mapa ne prikaže. Pomoč