Kaip apsaugoti mūsų svetaines naudojant .htpasswd + pavyzdžius

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į.

Serveryje

Naršyklėje

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).

Naujiems „Linux“ vartotojams. Norėdami paslėpti katalogą ar failą, jo pavadinimą reikia pradėti tik tašku (.).

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.

Komanda turi tokią struktūrą:

  • -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:

Na. Aš paaiškinu eiles:

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.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   krelio sakė

    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.

  2.   Fernando sakė

    Bet kokia Nautilus alternatyva ??

    1.    krelio sakė

      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.

  3.   „DMoZ“ sakė

    Krelai, dėkojame už visas mokomąsias programas, kurias čia atsinešėte, ir ypač už tai, kad esate ne tokia dažna tema ...

    Cheers !!! ...

  4.   Juanas Carlosas sakė

    Sveiki, viskas gerai, bet .. kai uždarau chromo skirtuką ir atidarau kitą, aš parašau adresą ir jis neprašo slaptažodžio ...

  5.   bičiulis sakė

    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

  6.   7 sakė

    Sveiki, labai ačiū už informaciją, ypač už tai, kad pridėjote kelis vartotojus .htpasswd.

    Dievas tave laimina!

  7.   Mohtadi sakė

    Sveikiname, tai labai geras straipsnis, aiškus ir virškinamas. Labai ačiū

  8.   eduardo sakė

    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“

  9.   eduardo sakė

    Kaip puiku, kad man nutinka komentuoti nežiūrint į kitus komentarus perodna.
    Puikiai veikia puikiai

  10.   Somnus vyresnysis sakė

    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?

  11.   Somnus vyresnysis sakė

    Gerai, aš tai supratau ... Turėjau jį įdiegti naudodamas sudo apt-get install apache2-utils

  12.   Fernando Montilla sakė

    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

  13.   Jorge Rodrigo Torrezas Aramayo sakė

    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