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.
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).
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.
- -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:
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č.
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.
Kakšna alternativa za nautilus ??
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.
Krel, hvala za celotne vadnice, ki jih prinašaš sem, in še posebej, ker nisi tako pogosta tema ...
Na zdravje !!! ...
Pozdravljeni, vse je šlo dobro, ampak .. ko zaprem zavihek chrome in odprem drugega, napišem naslov in ne vpraša za geslo ...
ki je rekel, da ni bleščeče.
Prav to sem iskal in bolje razloženo nemogoče
najlepša hvala
pozdrav
Pozdravljeni, najlepša hvala za informacije, še posebej za del dodajanja več uporabnikov v .htpasswd.
Bog vas blagoslovi!
Čestitamo, to je zelo dober članek, jasen in prebavljiv. Najlepša hvala
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
Kako super se mi to zgodi, da komentiram, ne da bi se ozrl na druge komentarje perodna.
Odlično deluje odlično
Živjo, dobra vadnica, vendar obstaja alternativa "htpasswd"? Vprašam, zakaj uporabljam linux mint 17.3 in nimam ukaza ... ga moram namestiti?
Ok, ugotovil sem ... Moral sem ga namestiti s sudo apt-get install apache2-utils
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
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č