Dėl daugelio priežasčių gali būti naudinga turėti kontroliuojamą prieigą prie tam tikrų žiniatinklio serverio katalogų arba tiesiog prie mūsų puslapio ar tinklaraščio turinio, naudojant autentifikavimo paslaugą, pagrįstą vartotojo vardu ir slaptažodžiu. Kalbu apie kažką panašaus į įprastą langą, kuris pasirodo, kai norime patekti į svetainę su ribotomis paslaugomis.
Yra keli būdai, kaip generuoti langus su autentifikavimo forma, tačiau pateikiamas įdomus sprendimas serverio lygiu htpasswd. Tai yra įrankis, kurio funkcija yra saugoti slaptažodžius užkoduota forma, kurią „Apache“ naudos autentifikavimo tarnybose. Jo naudojimas leistų mums tam tikrus katalogus ar failus per http rodyti tik identifikuotiems vartotojams ir nebūtinai visiems laisvai prieinami.
Suprantu, kad tai nėra labai prašmatnus dalykas, tačiau kai kuriems jis gali būti naudingas. Kad jų nenužudyčiau nuoboduliu, naudosiu vaizdus, kad tai taptų didaktiškesni.
Ankstesni svarstymai: aš naudosiu „Ubuntu Server“ 12.04.1 y Apache 2.2.22 kontroliuojamoje aplinkoje.
Mes pradedame.
Kaip kai kurie jau gali žinoti, pagal numatytuosius nustatymus turimos „Apache“ svetainės saugomos kataloge / var / www / ir šiame pavyzdyje sukursiu katalogą su HTML šablonu ir pabandysiu jį apsaugoti .htpasswd.
Saugomas katalogas yra / var / www / example / kur įdėjau kitą puslapį.
1. Mes ketiname sukurti .htpasswd.
Vieta, kurioje ji bus, yra svarbi, todėl ją patalpinti už viešojo katalogo gali būti daugiau nei rekomenduojama. Mano atveju aš įdėsiu jį į savo asmeninį aplanką (kuris nėra viešas „Apache“ katalogas) ir pavadinimu .htpasswd (A priori to vadinti nebūtina, tačiau tas, kuris paslėptas, visada yra geras).
Naudodamas šią komandą, sukuriu .htpasswd failą žiniatinklio vartotojui, kurį pavadinau: „Lukas“.
# htpasswd -c /home/krel/.htpasswd Luke
Ji paprašys du kartus pateikti slaptažodį, mano atveju aš įdėjau „skywalker“ (be kabučių). Nekontroliuojamoje aplinkoje turime nustatyti griežtesnius slaptažodžius. Numatytasis „Linux“ šifravimas yra MD5, tačiau „Unix“ yra standartinis „crypt“ () diegimas, o slaptažodžiams, turintiems mažiau nei 8 simbolius, jis gali būti pažeidžiamas. Dabar man kyla abejonių, ar BSD yra tas pats.
- -c → sukurti failą
- /home/krel/.htpasswd → absoliutus failo kelias.
- Lukas → vartotojo vardas (jis gali būti koks tik nori)
Panašiai neverčiu nieko naudoti terminalo, kai jam yra interneto paslaugų:
http://www.web2generators.com/apache/htpasswd_generator
http://www.htaccesstools.com/htpasswd-generator/
Rezultatas nukopijuojamas į tekstinį failą ir, jei norite, su pavadinimu .htpasswd. Kalbant apie šį metodą, nenustokite skaityti to, ką komentuoju kitoje pastraipoje.
Mūsų atveju pamatysime, kad failas buvo sugeneruotas ten, kur tikėjomės /home/krel/.htpasswd. Paveikslėlyje aš pabrėžiau, kad naudojant šį metodą failas priklauso apache grupei ir vartotojui, kurie Ubuntu vadinami www-data. Tai svarbu, nes jei sugeneravome .htpasswd bet kokiu kitu būdu, turime įsitikinti, kad jis turi 644 leidimus.
Na, dabar mes pamatysime, kokie yra jų žarnos:
Kaip matote, yra vartotojas (Lukas), bet slaptažodis yra užšifruotas.
Tokiu būdu mes jau sukūrėme ir suprojektavome .htpasswd vartotojui „Luke“, galų gale tai yra ne kas kita kaip slaptažodžio talpykla. „Viskas su viena komanda“ būtų gera frazė.
2. Sukonfigūruokite „Apache“ naudoti ir leisti tą paslaugą svetainėje.
# nano /etc/apache2/sites-available/default
Jei turite kelis kompiuterius, jie turėtų dirbti su kiekvienu iš jų, mano atveju turiu tik tą, kuris yra numatytasis. Nepamirškite, kad visada yra gera padaryti to failo atsarginę kopiją.
Šio failo struktūra yra numatytoji:
„ServerAdmin“ žiniatinklio valdytojas @ localhost
..................
..................
Būtent „Virtualhost“ antraštėse bus nurodytas .htpasswd naudojimas norint pasiekti tam tikrą katalogą. Mes tai darome taip, kaip atrodo žemiau pateiktas paveikslėlis ir tinkamas mūsų pavyzdžiui:
Norėdami apsaugoti, turite įdėti katalogą.
AuthType Pagrindinis
Tai yra vartotojo tipas ir slaptažodis, dėl kurio susitarta su naršykle, šiuo atveju tai yra „Basic“, be šifravimo.
Yra ir kitas derybų tipas: „Digest“, jei šifruoja vartotojo vardą ir slaptažodį, tačiau paskutinis žodis yra naršyklės, ar jis palaiko minėtą paslaugą. „Digest“ galima pasakyti, kad tai yra šiek tiek patikimesnis sprendimas prieš snaiperius. Kviečiu gilintis į tai.
AuthName "Prieš įeidami pasibeldkite į duris".
Tai yra pranešimas, kuris vartotojui pasirodys naršyklėje su prisijungimo forma ir jis gali būti toks, kokio mes norime.
AuthUserFile /var/www/.pass/.htpasswd
Kelias .htpasswd failas. Dėl šios priežasties sakau, kad net nebūtina jo pavadinti .htpasswd, paprasčiausiai įdėjus kelią būtų taip pat.
Reikalauti galiojančio vartotojo
Ta eilutė skirta keliems vartotojams su individualizuotais slaptažodžiais. Jei tai yra vienas vartotojas, jį galima apibendrinti kaip šį variantą.
Reikalauti vartotojo el_que_sea
Mano pavyzdys galėtų būti: Reikalauti vartotojo Luko
Ir galiausiai mes viską uždarome
Paleidžiame iš naujo apache:
# service apache2 restart
Pabandykime.
Jei neteisingai patvirtinsime autentiškumą, gausime 401 klaidą.
Priešingoje pusėje, jei mes įdėtume teisingą vartotojo vardą ir slaptažodį, tai leistų mums praeiti be didelių nepatogumų.
Papildomi patarimai.
- Norėdami pridėti daugiau vartotojų prie jau sukurto „htpasswd“ failo, galite naudoti šią komandą
htpasswd -mb /home/krel/.htpasswd vartotojo slaptažodis
Jei nustatėte „Reikalauti vartotojo“, o ne „Reikalauti galiojančio vartotojo“, turite pridėti naują vartotoją, po kurio eina ankstesnis ir atskirti tarpu. Pavyzdys:
Reikalauti vartotojo Luko Anakino
- Naudokite vartotojų grupes
Jei vietoj atskirų vartotojų norime ar turime dirbti su grupėmis šioje svetainėje, jie tai paaiškina labai išsamiai ir tai yra puikus straipsnis.
http://www.juanfelipe.net/node/23
- Taip pat galime nustatyti kitą šifravimo tipą, pavyzdžiui: SHA
htpasswd -sb /home/krel/.htpasswd vartotojo slaptažodis
Čia yra vaizdas, kaip SHA slaptažodžio registracija būtų atspindėta .htpasswd. Abiejuose jis buvo „skywalkeris“.
Sužinokite daugiau.
htpasswd - - pagalba
Jei norite gilintis į šią temą, RTFM visada gerai!
http://httpd.apache.org/docs/2.0/es/howto/auth.html
http://httpd.apache.org/docs/2.2/misc/password_encryptions.html
Šis PHP scenarijus iš Granados universiteto puslapio taip pat man buvo įdomus sukurti „htaccess“ ir „htpasswd“ generatorių. Man nepavyko to pritaikyti praktiškai, tačiau kviečiu jus „žvalgytis protingai“.
HTML šabloną, kurį gavau iš šio puslapio, jei kas nors susidomėtų.
http://www.templatemo.com/
Tikiuosi, kad jums patiko šis „htpasswd“ pristatymas.
Dabar vėl skaitydamas įrašą supratau, kad padariau nedidelę netvarką. Kai paaiškinsiu svetainės konfigūracijos eilutes, „AuthUserFile“ įdėjau /var/www/.pass/.htpasswd, kai turėtų būti:
/home/krel/.htpasswd.
Paveikslėlyje jis yra puikus, bet ten jis manęs išvengė, tai yra tai, kad aš jau anksčiau padariau straipsnį tokiu maršrutu, bet paskutinę minutę jį pakeičiau ir atrodo, kad man nepavyko ištaisyti.
Iš anksto atsiprašau.
Bet kokia Nautilus alternatyva ??
Tai, ko klausiate, manau, eina kitu keliu, bet aš vis tiek jums atsakau.
Manau, kad kartu su „Cryptkeeper“ būtų naudinga apsaugoti katalogus ir panašius dalykus.
Jei aš nuoširdus, jei kažkas, ko nekenčiu gnome, yra „nautilus“. Delfinas (KDE) yra daug galingesnis būtent šiems dalykams apsaugoti, šifruoti naudojant gpg ir kt.
Krelai, dėkojame už visas mokomąsias programas, kurias čia atsinešėte, ir ypač už tai, kad esate ne tokia dažna tema ...
Cheers !!! ...
Sveiki, viskas gerai, bet .. kai uždarau chromo skirtuką ir atidarau kitą, aš parašau adresą ir jis neprašo slaptažodžio ...
kuris sakė, kad tai nebuvo prašmatnus.
Tai buvo tik tai, ko aš ieškojau, ir geriau paaiškinti neįmanoma
Labai ačiū.
pasveikinimas
Sveiki, labai ačiū už informaciją, ypač už tai, kad pridėjote kelis vartotojus .htpasswd.
Dievas tave laimina!
Sveikiname, tai labai geras straipsnis, aiškus ir virškinamas. Labai ačiū
Tai suteikia man 500 klaidą, kai įvedu vartotojo vardą ir slaptažodį
AuthType Pagrindinis
AuthName „Tocc tocc“
AuthUserFile /var/www/html/.pass/.htpasswd
Reikalauti vartotojo „Akira“
Kaip puiku, kad man nutinka komentuoti nežiūrint į kitus komentarus perodna.
Puikiai veikia puikiai
Sveiki, gera pamoka, bet ar yra alternatyva „htpasswd“? Aš klausiu, kodėl aš naudoju „Linux mint 17.3“ ir neturiu komandos ... ar turiu ją įdiegti?
Gerai, aš tai supratau ... Turėjau jį įdiegti naudodamas sudo apt-get install apache2-utils
Sveiki, puiki pamoka, padariau tai tiksliai taip, kaip nurodyta čia, vienintelis dalykas yra tas, kad užuot vykdžius tai, kas nurodyta 2 punkte:
nano / etc / apache2 / sites-available / default
Man tai pasiteisino
nano /etc/apache2/sites-enabled/000-default.conf
Sveikinimai, man tai neveikia 🙁 mano aplankas nerodomas mano serveryje, tai yra, aš apsaugojau savo / var / 222 / html / content aplanką, o įėjus iš naršyklės turinio aplankas nerodomas. Pagalba