Kako zaštititi naše web stranice pomoću primjera .htpasswd +

Iz mnogih razloga može biti vrlo korisno imati kontrolirani pristup određenim direktorijima na web serveru ili jednostavno sadržaju naše stranice ili bloga putem usluge provjere autentičnosti na osnovu korisničkog imena i lozinke. Govorim o nečemu poput tipičnog prozora koji se pojavljuje kada želimo ući na web lokaciju s ograničenim uslugama.

Postoji nekoliko načina za generiranje prozora s obrascem za provjeru autentičnosti, ali pruža se zanimljivo rješenje na nivou poslužitelja htpasswd. To je uslužni program čija je funkcija pohranjivanje lozinki u šifriranom obliku koje Apache koristi u uslugama provjere autentičnosti. Njegova upotreba omogućila bi nam da određene direktorijume ili datoteke prikazujemo putem http-a samo identificiranim korisnicima i bez nužne dostupnosti svima.

Razumijem da to nije vrlo drečava tema, ali nekima može biti korisno. Da ih ne bih ubio dosadom, koristit ću slike kako bih to učinio didaktičnijim.

Prethodna razmatranja: koristiću Ubuntu Server 12.04.1 y Apache 2.2.22 u kontrolisanom okruženju.

Počinjemo.

Kao što neki možda već znaju, po defaultu se dostupne Apache stranice pohranjuju u direktorij / var / www / i za ovaj primjer ću stvoriti direktorij s HTML predloškom i pokušati ga zaštititi .htpasswd.

Direktorij za zaštitu je / var / www / primjer / gdje sam smjestio sljedeću stranicu.

Na serveru U pretraživaču

1. Stvorit ćemo .htpasswd.

Mjesto na kojem će se nalaziti je od relevantne važnosti i postavljanje izvan javnog imenika može biti više nego što se preporučuje. U mom slučaju ću ga smjestiti u svoju ličnu mapu (koja nije javni Apache direktorij) i s imenom .htpasswd (A priori to nije potrebno tako zvati, ali onaj koji je skriven je uvijek dobar).

Za korisnike koji su novi u Linuxu. Da biste sakrili direktorij ili datoteku, potrebno je samo započeti njegovo ime s tačkom (.).

Sljedećom naredbom kreiram datoteku .htpasswd za web korisnika kojeg sam nazvao: "Luke".

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

Od nas će se tražiti da dva puta dostavimo lozinku, u mom slučaju sam stavio "skywalker" (bez navodnika). U nekontrolisanom okruženju moramo uspostaviti jače lozinke. Zadana enkripcija na Linuxu je MD5, ali na Unixu je to standardna implementacija crypt () i za lozinke s manje od 8 znakova može biti ranjiva. Sad sumnjam da li je to isto i kod BSD-a.

Naredba ima ovu strukturu:

  • -c → za stvaranje datoteke
  • /home/krel/.htpasswd → apsolutni put datoteke.
  • Luka → korisničko ime (može biti što god želite)

Slično tome, ne prisiljavam nikoga da koristi terminal kada za njega postoje usluge na Internetu:
http://www.web2generators.com/apache/htpasswd_generator

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

Rezultat se kopira u tekstualnu datoteku i s imenom .htpasswd ako želite. Što se tiče ove metode, nemojte prestati čitati ono što komentarišem u sljedećem odlomku.

U našem slučaju vidjet ćemo da je datoteka generirana tamo gdje smo ih očekivali /home/krel/.htpasswd. Na slici sam naglasio da ovom metodom datoteka pripada grupi apache i korisniku apache, koji se u Ubuntuu naziva www-data. Ovo je važno jer ako smo .htpasswd generirali na bilo koji drugi način, moramo se pobrinuti da ima 644 dozvole.

E, sad ćemo vidjeti kakva su im crijeva: Kao što vidite, postoji korisnik (Luke), ali lozinka je šifrirana.

Na taj smo način već kreirali i dizajnirali .htpasswd za korisnika Luke, na kraju to nije ništa drugo nego spremnik za lozinku. "Sve s jednom naredbom" bila bi dobra krilatica.

2. Konfigurirajte Apache da koristi i dopustite tu uslugu na web lokaciji.

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

 

Ako imate nekoliko hostova, oni moraju raditi na svakom od njih, u mom slučaju imam samo onog koji je zadan. Ne zaboravite da je uvijek dobro napraviti sigurnosnu kopiju te datoteke.

Ta datoteka ima zadanu strukturu:

ServerAdmin webmaster @ localhost

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

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

Upravo će unutar naslova Virtualhost biti navedena upotreba .htpasswd za pristup određenom direktoriju. To radimo onako kako se pojavljuje donja slika i odgovara našem primjeru: Dobro. Objašnjavam redove:

Morate staviti direktorij radi zaštite.

AuthType Basic

To je vrsta korisnika i lozinke dogovorene s preglednikom, u ovom slučaju to je Basic, bez šifriranja.

Postoji još jedna vrsta pregovora: Digest, ovaj šifrira korisničko ime i lozinku, međutim, zadnja riječ je pretraživač da li podržava navedenu uslugu. Za sažetak se može reći da je to malo robusnija implementacija protiv njuškalica. Pozivam vas da se pozabavite ovim.

AuthName "Zakucajte na vrata prije ulaska."

To je poruka koja će se korisniku prikazati u pregledniku s obrascem za prijavu i može biti ona koju želimo.

AuthUserFile /var/www/.pass/.htpasswd

Put do datoteke .htpasswd. Iz tog razloga kažem da kažem da ga čak nije ni potrebno imenovati .htpasswd, jednostavno stavljanje putanje isto bi djelovalo.

Zahtevaj validan korisnik

Ta linija dizajnirana je za više korisnika s individualiziranim lozinkama. U slučaju da se radi o jednom korisniku, to se može sažeti kao sljedeća varijanta.

Zahtijevaj korisnika el_que_sea

U mom primjeru moj bi mogao biti: Zahtijevaj korisnika Luke

I na kraju sve prilažemo sa

Ponovo pokrećemo apache:

# service apache2 restart

Pokusajmo.

Ako se ne autentificiramo ispravno, dobit ćemo grešku 401. Na suprotnoj strani, ako stavimo ispravno korisničko ime i lozinku, to bi nas propustilo bez većih neugodnosti.

 

Dodatni savjeti.

  • Da biste dodali više korisnika u već stvorenu datoteku htpasswd, možete koristiti ovu naredbu

htpasswd -mb /home/krel/.htpasswd korisnička lozinka

Ako ste postavili "Zahtijevaj korisnika", a ne "Zahtijevaj valjanog korisnika", moraš dodati novog korisnika iza kojeg slijedi prethodni i odvojen razmakom. Primjer:

Zahtijevaj korisnika Luke Anakin

  • Koristite korisničke grupe

Ako umjesto pojedinačnih korisnika više volimo ili trebamo raditi s grupama na sljedećem web mjestu, oni to vrlo detaljno objašnjavaju i to je izvrstan članak.
http://www.juanfelipe.net/node/23

  • Možemo postaviti i drugu vrstu šifriranja, na primjer: SHA

htpasswd -sb /home/krel/.htpasswd korisnička lozinka

Evo slike kako bi se registracija SHA lozinke odrazila u .htpasswd. U oba je bio "skywalker".

 

Više informacija

htpasswd - -pomoć

Ako želite dublje ući u ovu temu, RTFM je uvijek dobar!
http://httpd.apache.org/docs/2.0/es/howto/auth.html

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

Također sam pronašao ovu PHP skriptu znatiželjnom sa stranice Univerziteta u Granadi za stvaranje htaccess i htpasswd generatora. Nisam uspio to primijeniti u praksi, ali pozivam vas da "pitate s inteligencijom".

HTML predložak koji sam dobio s ove stranice u slučaju da nekoga zanima.
http://www.templatemo.com/

Nadam se da vam se svidjela ova prezentacija htpasswd.


Sadržaj članka pridržava se naših principa urednička etika. Da biste prijavili grešku, kliknite ovdje.

14 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   krel rekao je

    Čitajući ponovo post, shvatio sam da sam napravio mali nered. Kada objasnim redove u konfiguraciji stranice, u AuthUserFile stavljam /var/www/.pass/.htpasswd kada bi to trebalo biti:
    /home/krel/.htpasswd.

    Na slici je to dobro, ali tamo mi je pobjeglo, to je da sam prethodno napisao članak s tom rutom, ali u zadnji trenutak sam ga promijenio i čini mi se da sam propustio da ga ispravim.

    Unaprijed se izvinjavam.

  2.   fernando rekao je

    Bilo koja alternativa za nautilus ??

    1.    krel rekao je

      Ono što pitate mislim da ide u drugom smjeru, ali svejedno vam odgovaram.
      Vjerujem da bi s Cryptkeeper-om bilo korisno zaštititi direktorije i slične stvari.

      Ako sam iskren ako je nešto što mrzim u vezi s gnomom nautilus. Delfin (KDE) je mnogo moćniji upravo za ove stvari zaštite, šifriranja sa gpg, itd ...

  3.   DMoZ rekao je

    Krel, hvala na kompletnim tutorijalima koje ovdje donosiš, a posebno na tome što nisi tako česta tema ...

    Živjeli !!! ...

  4.   Juan Carlos rekao je

    Pozdrav, sve je prošlo u redu, ali .. kada zatvorim krom karticu i otvorim drugu, napišem adresu i ne traži lozinku ...

  5.   druže rekao je

    koji je rekao da to nije bilo kričavo.
    Bilo je upravo ono što sam tražio, i bolje objasniti nemoguće
    Hvala puno.
    pozdravi

  6.   basco7 rekao je

    Pozdrav, puno vam zahvaljujem na informacijama, posebno na dijelu dodavanja više korisnika u .htpasswd.

    Bog te blagoslovio!

  7.   Mohtadi rekao je

    Čestitam, ovo je vrlo dobar članak, jasan i probavljiv. Hvala ti puno

  8.   eduardo rekao je

    Donosi mi 500 grešaka kada unesem korisničko ime i lozinku

    AuthType Basic
    AuthName "Tocc tocc"
    AuthUserFile /var/www/html/.pass/.htpasswd
    Zahtijevaj korisnika Akira

  9.   eduardo rekao je

    Kako mi se to super događa zbog komentara bez gledanja ostalih komentara perodna.
    Odlično radi sjajno

  10.   Somnus Senior rekao je

    Bok, dobar vodič, ali postoji li alternativa "htpasswd"? Pitam zašto koristim linux mint 17.3 i nemam naredbu ... moram li je instalirati?

  11.   Somnus Senior rekao je

    Ok, skužio sam ... Morao sam ga instalirati sa sudo apt-get install apache2-utils

  12.   Fernando Montilla rekao je

    Pozdrav, odličan vodič, učinio sam točno onako kako je ovdje naznačeno, jedino što je umjesto da izvršim ono što je naznačeno u točki 2:

    nano / etc / apache2 / sites-available / default

    Uspjelo mi je

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

  13.   Jorge Rodrigo Torrez Aramayo rekao je

    Pozdrav, to kod mene ne funkcionira 🙁 moja mapa se ne pojavljuje na mom serveru, odnosno zaštitila sam svoju mapu / var / 222 / html / content i kada uđem iz preglednika mapa sa sadržajem se ne pojavljuje. Pomoć