Paano protektahan ang aming mga site gamit ang .htpasswd + Mga Halimbawa

Para sa maraming mga kadahilanan maaari itong maging napaka kapaki-pakinabang upang kontrolado ang pag-access sa ilang mga direktoryo sa isang web server o sa mga nilalaman lamang ng aming pahina o blog sa pamamagitan ng isang serbisyo sa pagpapatotoo batay sa username at password. Nagsasalita ako tungkol sa isang bagay tulad ng karaniwang window na lilitaw kapag nais naming magpasok ng isang website na may mga pinaghihigpitang serbisyo.

Mayroong maraming mga paraan upang makabuo ng mga bintana na may form ng pagpapatotoo ngunit ang isang nakawiwiling solusyon sa antas ng server ay ibinigay htpasswd. Ito ay isang utility na ang pagpapaandar ay ang pag-iimbak ng mga password sa isang naka-encrypt na form upang magamit ng Apache sa mga serbisyo sa pagpapatotoo. Papayagan kami ng paggamit nito na magpakita ng ilang mga direktoryo o file sa pamamagitan ng http lamang sa mga kinilalang gumagamit at nang hindi kinakailangang malayang magagamit sa lahat.

Nauunawaan ko na ito ay hindi isang napakadulas na paksa ngunit maaari itong maging kapaki-pakinabang sa ilan. Upang hindi mapatay ang mga ito ng inip, gagamit ako ng mga imahe upang gawing mas hindi itoaktibo.

Mga dating pagsasaalang-alang: Gagamitin ko Ubuntu Server 12.04.1 y Apache 2.2.22 sa isang kontroladong kapaligiran.

Nagsisimula na kami

Tulad ng nalalaman na ng ilan sa inyo, bilang default ang mga magagamit na mga site ng Apache ay nakaimbak sa direktoryo / var / www / at para sa halimbawang ito ay lilikha ako ng isang direktoryo na may isang template ng HTML at subukang protektahan ito ng .htpasswd.

Ang direktoryo upang maprotektahan ay / var / www / halimbawa / kung saan ko inilagay ang susunod na pahina.

Sa server

Sa browser

1. Lilikha kami ng .htpasswd.

Ang lugar kung saan ito matatagpuan ay may kaugnayang kahalagahan at ang paglalagay nito sa labas ng isang pampublikong direktoryo ay maaaring higit sa inirerekumenda. Sa aking kaso ilalagay ko ito sa aking personal na folder (na hindi isang pampublikong direktoryo ng Apache) at may pangalan na .htpasswd (Isang priori hindi kinakailangan na tawagan ito sa ganoong paraan, ngunit ang nakatago ay laging mabuti).

Para sa mga gumagamit na bago sa Linux. Upang maitago ang isang direktoryo o mag-file kinakailangan lamang na simulan ang pangalan nito sa isang panahon (.).

Gamit ang sumusunod na utos nilikha ko ang .htpasswd file para sa isang web user na pinangalanan ko bilang: "Luke".

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

Hihilingin sa amin na ibigay ang password nang dalawang beses, sa aking kaso inilagay ko ang "skywalker" (nang walang mga quote). Sa isang hindi kontroladong kapaligiran dapat tayong magtatag ng mga mas malalakas na password. Ang default na naka-encrypt sa Linux ay MD5 ngunit sa Unix ito ay isang karaniwang pagpapatupad ng crypt () at para sa mga password na may mas mababa sa 8 mga character maaari itong maging mahina. Ngayon mayroon akong pag-aalinlangan kung pareho ito sa BSD.

Ang istraktura ay ang istrakturang ito:

  • -c → upang likhain ang file
  • /home/krel/.htpasswd → absolute path ng file.
  • Luke → ang username (maaari itong maging anumang nais mo)

Katulad nito, hindi ko pinipilit ang sinuman na gamitin ang terminal kapag may mga serbisyo sa Internet para dito:
http://www.web2generators.com/apache/htpasswd_generator

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

Kinokopya namin ang resulta sa isang text file at may pangalan na .htpasswd kung nais mo. Tungkol sa pamamaraang ito, huwag ihinto ang pagbabasa ng kung ano ang aking puna sa susunod na talata.

Sa aming kaso makikita namin ang file na nabuo kung saan namin inaasahan ang mga ito /home/krel/.htpasswd. Sa imahe ay na-highlight ko na sa pamamaraang ito ang file ay kabilang sa pangkat ng apache at gumagamit, na sa Ubuntu ay tinatawag na www-data. Mahalaga ito sapagkat kung nakagawa kami ng .htpasswd sa anumang ibang paraan, dapat naming tiyakin na mayroon itong 644 na mga pahintulot.

Kaya, ngayon makikita natin kung ano ang kanilang lakas ng loob:

Tulad ng nakikita mo, mayroong gumagamit (Luke) ngunit naka-encrypt ang password.

Sa ganitong paraan nilikha na namin at dinisenyo .htpasswd para sa gumagamit na si Luke, sa huli ito ay hindi hihigit sa isang lalagyan para sa password. Ang "Lahat na may isang utos" ay magiging isang magandang catchphrase.

2. I-configure ang Apache upang magamit at payagan ang serbisyong iyon sa site.

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

Kung mayroon kang maraming mga host, dapat silang gumana sa bawat isa sa kanila, sa aking kaso mayroon lamang ako ng isa na dumarating bilang default. Huwag kalimutan na palaging mabuti na gumawa ng isang backup ng file na iyon.

Ang file na iyon ay may default na istraktura:

ServerAdmin webmaster @ localhost

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

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

Tiyak na sa loob ng mga heading ng Virtualhost na ang paggamit ng .htpasswd ay matutukoy upang ma-access ang isang tiyak na direktoryo. Ginagawa namin ito tulad ng paglabas ng imahe sa ibaba at naaangkop sa aming halimbawa:

Mabuti Ipinapaliwanag ko ang mga linya:

Kailangan mong ilagay ang direktoryo upang maprotektahan.

AuthType Basic

Ito ay ang uri ng gumagamit at password na nakipag-ayos sa browser, sa kasong ito ito ay Pangunahing, nang walang pag-encrypt.

Mayroong isa pang uri ng nakipag-ayos: Digest, ang isang ito ang naka-encrypt ng username at password, gayunpaman, ang huling salita ay ang browser kung sinusuportahan nito ang nasabing serbisyo. Maaaring sabihin ang Digest na ito ay isang medyo mas matatag na pagpapatupad laban sa mga sniffer. Inaanyayahan kita na tuklasin ito.

AuthName "Patok sa pintuan bago pumasok."

Ito ay isang mensahe na lilitaw sa gumagamit sa browser na may form sa pag-login at maaari itong maging ang nais namin.

AuthUserFile /var/www/.pass/.htpasswd

I-path ang file na .htpasswd. Para sa kadahilanang iyon ay sinasabi ko na hindi kinakailangan na pangalanan ito .htpasswd, simpleng paglalagay ng landas ay gagana ang pareho.

Mangailangan ang wastong-user

Ang linyang iyon ay idinisenyo para sa maraming mga gumagamit na may isinapersonal na mga password. Kung sakaling ito ay isang solong gumagamit, maaari itong ma-buod bilang sumusunod na pagkakaiba-iba.

Atasan ang gumagamit el_que_sea

Sa aking halimbawa ay maaaring: Hilingin ang gumagamit na si Luke

At sa wakas ay nakapaloob namin ang lahat

I-restart namin ang apache:

# service apache2 restart

Subukan Natin.

Kung hindi namin napatunayan nang tama makakakuha kami ng isang Error 401.

Sa kabaligtaran, kung ilalagay namin ang tamang username at password, papayagan kaming pumasa nang walang pangunahing abala.

Karagdagang mga tip.

  • Upang magdagdag ng higit pang mga gumagamit sa isang nilikha na htpasswd file na maaari mong gamitin ang utos na ito

htpasswd -mb /home/krel/.htpasswd User Password

Kung itinakda mo ang "Hilingin ang gumagamit" at hindi "Hilingin ang wastong-gumagamit" dapat mong idagdag ang bagong gumagamit na sinusundan ng naunang isa at pinaghiwalay ng isang puwang. Halimbawa:

Atasan ang gumagamit na si Luke Anakin

  • Gumamit ng mga pangkat ng gumagamit

Kung sa halip na mga indibidwal na gumagamit mas gusto namin o kailangang makipagtulungan sa mga pangkat sa sumusunod na website ipinapaliwanag nila ito nang detalyado at ito ay isang mahusay na artikulo.
http://www.juanfelipe.net/node/23

  • Maaari rin kaming magtakda ng isa pang uri ng pag-encrypt, halimbawa: SHA

htpasswd -sb /home/krel/.htpasswd User Password

Narito ang isang imahe kung paano makikita ang pagpaparehistro ng isang SHA password sa .htpasswd. Sa kapwa ito ay "skywalker".

Matuto nang higit pa.

htpasswd - -help

Kung nais mong mapunta nang mas malalim sa paksang ito, ang RTFM ay palaging mabuti!
http://httpd.apache.org/docs/2.0/es/howto/auth.html

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

Natagpuan ko rin ang PHP script na ito na kakaiba mula sa pahina ng Unibersidad ng Granada upang lumikha ng isang htaccess at htpasswd generator. Hindi ko ito nagawang isagawa ngunit inaanyayahan kita na "mag-pry sa katalinuhan."

Ang template ng HTML na nakuha ko mula sa pahinang ito kung sakaling may interesado.
http://www.templatemo.com/

Inaasahan kong nagustuhan mo ang pagtatanghal na ito ng htpasswd.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   si krel dijo

    Ngayon sa pagbabasa muli ng post napagtanto ko na gumawa ako ng isang maliit na gulo. Kapag ipinaliwanag ko ang mga linya sa pagsasaayos ng site, sa AuthUserFile inilalagay ko /var/www/.pass/.htpasswd kung kailan dapat:
    /home/krel/.htpasswd.

    Sa imahe ay mabuti ito ngunit doon ito nakatakas sa akin, dati ko nang ginawa ang artikulo sa rutang iyon, ngunit sa huling minuto ay binago ko ito at tila maaari kong iwasto ito.

    Humihingi muna ako ng paumanhin.

  2.   Fernando dijo

    Anumang alternatibo para sa nautilus ??

    1.    si krel dijo

      Kung ano ang itatanong mo sa tingin ko ay kabaligtaran ngunit sinasagot din kita.
      Naniniwala ako sa Cryptkeeper na magiging kapaki-pakinabang upang protektahan ang mga direktoryo at mga bagay na tulad nito.

      Kung matapat ako kung ang isang bagay na kinamumuhian ko tungkol sa gnome ay nautilus. Ang Dolphin (KDE) ay mas malakas na tiyak para sa mga bagay na ito ng pagprotekta, pag-encrypt sa gpg, atbp.

  3.   DMoZ dijo

    Krel, salamat sa kumpletong mga tutorial na dinala mo dito at lalo na sa hindi gaanong pangkaraniwang mga paksa ...

    Cheers !!! ...

  4.   Juan Carlos dijo

    Kumusta ang lahat ay naging maayos ngunit .. nang isara ko ang tab na chrome at magbukas ng isa pa, isusulat ko ang address at hindi ito humihingi ng password ...

  5.   kaibigan dijo

    sinong nagsabing hindi ito marangya.
    Ito lang ang hinahanap ko, at mas mahusay na ipinaliwanag imposible
    Maraming salamat.
    isang pagbati

  6.   basco7 dijo

    Kumusta, maraming salamat sa impormasyon, lalo na ang bahagi ng pagdaragdag ng maraming mga gumagamit sa .htpasswd.

    Pagpalain ka ng Diyos!

  7.   Mohtadi dijo

    Binabati kita, ito ay isang napakahusay na artikulo, malinaw at natutunaw. Maraming salamat

  8.   Eduardo dijo

    Nagbibigay ito sa akin ng 500 error kapag nagpasok ako ng username at password

    AuthType Basic
    AuthName "Tocc tocc"
    AuthUserFile /var/www/html/.pass/.htpasswd
    Hilingin ang gumagamit na si Akira

  9.   Eduardo dijo

    Gaano kahusay ang nangyari sa akin para sa pagbibigay ng puna nang hindi tinitingnan ang iba pang mga puna perodna.
    Gumagawa ng mahusay na mahusay na post

  10.   Natutulog si Senior dijo

    Kumusta, mahusay na tutorial, ngunit mayroong isang kahalili sa "htpasswd"? Nagtanong ako dahil gumagamit ako ng linux mint 17.3 at wala akong utos ... kailangan ko bang i-install ito?

  11.   Natutulog si Senior dijo

    Ok, naisip ko ito ... Kailangan kong i-install ito sa sudo apt-get install apache2-utils

  12.   Fernando Montilla dijo

    Kumusta, mahusay na tutorial, ginawa ko ito nang eksakto tulad ng ipinahiwatig dito, ang tanging bagay ay sa halip na ipatupad kung ano ang ipinahiwatig sa point 2:

    nano / etc / apache2 / sites-available / default

    Gumana ito para sa akin

    nano /etc/apache2/site-enified/000-default.conf

  13.   Jorge Rodrigo Torrez Aramayo dijo

    Pagbati, hindi ito gagana para sa akin 🙁 ang aking folder ay hindi lilitaw sa aking server, iyon ay, protektado ko ang aking / var / 222 / html / folder ng nilalaman, at kapag ipinasok ko mula sa browser ang folder ng nilalaman ay hindi lilitaw. Tulong