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 poslužitelju ili jednostavno sadržaju naše stranice ili bloga putem usluge provjere autentičnosti na temelju korisničkog imena i lozinke. Govorim o nečemu poput tipičnog prozora koji se pojavljuje kada želimo ući na web mjesto 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 razini 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 bi nam uporaba omogućila da određene direktorije ili datoteke prikazujemo putem http-a samo identificiranim korisnicima, a da pritom nužno ne budu svima dostupni.

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

Prethodna razmatranja: koristit ću Ubuntu poslužitelj 12.04.1 y Apache 2.2.22 u kontroliranom okruženju.

Počinjemo.

Kao što neki možda već znaju, prema zadanim postavkama dostupne Apache stranice pohranjuju se 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 poslužitelju

U pregledniku

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 stavit ću ga u svoju osobnu mapu (koja nije javni direktorij Apache) i s imenom .htpasswd (A priori to nije potrebno tako zvati, ali onaj koji je skriven uvijek je dobar).

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

Sljedećom naredbom izrađujem datoteku .htpasswd za web korisnika kojeg sam nazvao: "Luka".

# 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 nekontroliranom 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 je li tako i u BSD-u.

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 kopiramo u tekstualnu datoteku i s imenom .htpasswd ako želite. Što se tiče ove metode, nemojte prestati čitati ono što komentiram u sljedećem odlomku.

U našem ćemo slučaju vidjeti 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. To je važno jer ako smo .htpasswd generirali na bilo koji drugi način, moramo se pobrinuti da ima 644 dozvole.

Eto, sad ćemo vidjeti kakva su im crijeva:

Kao što vidite, postoji korisnik (Luke), ali lozinka je šifrirana.

Na taj smo način već stvorili 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 mjestu.

# 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 primjereno našem primjeru:

Dobro. Objašnjavam redove:

Morate staviti direktorij radi zaštite.

AuthType osnovni

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

Postoji još jedna vrsta pregovaranja: Sažetak, ovo ako šifrira korisničko ime i lozinku, no zadnja je riječ koju preglednik ima da li podržava navedenu uslugu. Sažetak se može reći da je to malo robusnija implementacija protiv njuškalica. Pozivam vas da se udubite u ovo.

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 ga čak nije potrebno ni imenovati .htpasswd, jednostavno stavljanje puta isto bi funkcioniralo.

Zahtijevajte valjanog korisnika

Ta je linija dizajnirana 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

Pokušajmo.

Ako se ne autentificiramo ispravno, dobit ćemo pogrešku 401.

S druge strane, ako stavimo ispravno korisničko ime i lozinku, to bi nas propustilo bez većih neugodnosti.

Dodatni savjeti.

  • Pomoću ove naredbe možete dodati više korisnika u već stvorenu datoteku htpasswd

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 Lukea Anakina

  • Koristite korisničke grupe

Ako umjesto pojedinačnih korisnika radije 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 to bio "skywalker".

Saznajte više.

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 Sveučilišta u Granadi kako bih stvorio htaccess i htpasswd generator. Nisam je uspio primijeniti u praksi, ali pozivam vas da "radoznate 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.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   krel dijo

    Čitajući ponovo post, shvatio sam da sam napravio mali nered. Kad objasnim redove u konfiguraciji web mjesta, 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, jest da sam prethodno napravio članak s tom rutom, ali u zadnji trenutak sam ga promijenio i čini mi se da sam propustio ispraviti.

    Unaprijed se ispričavam.

  2.   Fernando dijo

    Bilo koja alternativa za nautilus ??

    1.    krel dijo

      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 puno moćniji upravo za ove stvari zaštite, šifriranja s gpg, itd ...

  3.   DMoZ dijo

    Krel, hvala na cjelovitim vodičima koje ovdje donosite i posebno na tome što niste toliko česte teme ...

    Živjeli !!! ...

  4.   Juan Carlos dijo

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

  5.   prijatelj dijo

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

  6.   basco7 dijo

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

    Bog te blagoslovio!

  7.   Mohtadi dijo

    Svaka čast, vrlo je dobar članak, jasan i probavljiv. Puno ti hvala

  8.   Eduardo dijo

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

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

  9.   Eduardo dijo

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

  10.   Somnus stariji dijo

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

  11.   Somnus stariji dijo

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

  12.   Fernando Montilla dijo

    Pozdrav, izvrsni tutorial, učinio sam to točno onako kako je ovdje naznačeno, jedino što je umjesto izvršenja onoga š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 dijo

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