Hogyan védhetjük meg webhelyeinket a .htpasswd + példákkal

Sok okból nagyon hasznos lehet, ha ellenőrzött hozzáférést biztosítunk a webszerver bizonyos könyvtáraihoz, vagy egyszerűen az oldalunk vagy blogunk tartalmához a felhasználónéven és jelszón alapuló hitelesítési szolgáltatáson keresztül. Olyasmiről beszélek, mint egy tipikus ablak, amely akkor jelenik meg, amikor korlátozott szolgáltatásokkal rendelkező webhelyre akarunk belépni.

Számos módja van a Windows hitelesítési űrlappal történő létrehozásának, de a kiszolgáló szintjén érdekes megoldást kínálunk htpasswd. Ez egy olyan segédprogram, amelynek feladata a jelszavak titkosított formában történő tárolása, amelyet az Apache használ a hitelesítési szolgáltatásokban. Használata lehetővé tenné számunkra, hogy bizonyos címtárakat vagy fájlokat a http-en keresztül csak az azonosított felhasználók számára jelenítsünk meg, és ne feltétlenül legyenek mindenki számára szabadon elérhetőek.

Megértem, hogy ez nem túl kirívó téma, de hasznos lehet egyesek számára. Annak érdekében, hogy ne unjam meg őket unalommal, képekkel fogom didaktikusabbá tenni.

Korábbi szempontok: használni fogom Ubuntu Server 12.04.1 y Apache 2.2.22 ellenőrzött környezetben.

Kezdjük.

Mint egyesek már tudják, alapértelmezés szerint az elérhető Apache-webhelyek a könyvtárban vannak tárolva / Var / www / és ehhez a példához létrehozok egy könyvtárat HTML sablonnal, és megpróbálom árnyékolni .htpasswd-vel.

A védendő könyvtár a / var / www / example / hová tettem a következő oldalt.

A szerveren

A böngészőben

1. Létrehozzuk a .htpasswd fájlt.

A hely, ahol található, releváns jelentőségű, és nyilvános könyvtáron kívülre helyezése több lehet, mint az ajánlott. Esetemben a személyes mappámba fogom helyezni (ami nem nyilvános Apache könyvtár) és a .htpasswd névvel. (A priori nem szükséges így hívni, de a rejtett mindig jó).

A Linux számára új felhasználók számára. A könyvtár vagy a fájl elrejtéséhez csak a nevét kell ponttal (.) Kezdeni.

A következő paranccsal létrehozom a .htpasswd fájlt egy webfelhasználó számára, amelyet "Luke" -nak neveztem el.

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

Kétszer kéri, hogy adjuk meg a jelszót, esetemben a "skywalker" -t tettem (idézőjelek nélkül). Ellenőrizetlen környezetben erősebb jelszavakat kell létrehoznunk. Az alapértelmezett titkosítás Linuxon az MD5, de Unix-on a crypt () szabványos megvalósítása, és 8 karakternél rövidebb jelszavak esetén sebezhető lehet. Most már kétlem, hogy ugyanez van-e a BSD-ben.

A parancsnak ez a felépítése:

  • -c → a fájl létrehozásához
  • /home/krel/.htpasswd → a fájl abszolút elérési útja.
  • Luke → a felhasználónév (bármi lehet, amit csak akarsz)

Hasonlóképpen nem kényszerítek senkit a terminál használatára, ha az interneten vannak szolgáltatások hozzá:
http://www.web2generators.com/apache/htpasswd_generator

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

Az eredményt szöveges fájlba másoljuk, és ha szükséges, a .htpasswd névvel. Ezzel a módszerrel kapcsolatban ne hagyja abba az olvasást, amit a következő bekezdésben megjegyzek.

Esetünkben látni fogjuk, hogy a fájl ott lett létrehozva, ahol számítottunk rájuk /home/krel/.htpasswd. A képen kiemeltem, hogy ezzel a módszerrel a fájl az apache csoporthoz és a felhasználóhoz tartozik, amelyet Ubuntuban www-adatnak hívnak. Ez azért fontos, mert ha bármilyen más módon létrehoztuk a .htpasswd fájlt, akkor meg kell győződnünk arról, hogy 644 jogosultsággal rendelkezik.

Nos, most meglátjuk, milyen a belük:

Amint láthatja, van a felhasználó (Luke), de a jelszó titkosítva van.

Ily módon már létrehoztuk és megterveztük a .htpasswd fájlt a Luke felhasználó számára, végül ez nem más, mint a jelszó tárolója. A "minden egy paranccsal" jó jelszó lenne.

2. Állítsa be az Apache szolgáltatást a webhely használatára és engedélyezésére.

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

Ha több gazdagéped van, akkor mindegyiken dolgozniuk kell, nálam csak az van, amelyik alapértelmezés szerint jön. Ne felejtsük el, hogy mindig jó biztonsági másolatot készíteni a fájlról.

A fájl alapértelmezett szerkezete:

ServerAdmin webmester @ localhost

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

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

Pontosan a Virtualhost fejléceken belül határozza meg a .htpasswd használatát egy bizonyos könyvtár eléréséhez. Úgy csináljuk, ahogy az alábbi kép megjelenik és megfelel a példánknak:

Jó. Elmagyarázom a sorokat:

A védelem érdekében fel kell tenned a könyvtárat.

AuthType Basic

Ez a böngészővel egyeztetett felhasználói típus és jelszó, ebben az esetben Basic, titkosítás nélkül.

Van egy másik típusú tárgyalás: Digest, ez titkosítja a felhasználónevet és a jelszót, azonban az utolsó szó a böngészőnek arról, hogy támogatja-e az említett szolgáltatást. A Digest elmondható, hogy ez egy kissé erőteljesebb megvalósítás a szippantók ellen. Meghívlak benneteket, hogy mélyüljetek el ebben.

AuthName "Kopogjon be az ajtón, mielőtt belépne."

Ez egy olyan üzenet, amely a felhasználó számára megjelenik a böngészőben a bejelentkezési űrlappal, és ez lehet az, amelyet szeretnénk.

AuthUserFile /var/www/.pass/.htpasswd

Keresse meg a .htpasswd fájlt. Éppen ezért azt mondom, hogy nem is szükséges megnevezni .htpasswd, az útvonal egyszerű elhelyezése ugyanúgy működne.

Érvényes felhasználóra van szükség

Ezt a sort több felhasználó számára tervezték, egyedi jelszavakkal. Abban az esetben, ha egyetlen felhasználóról van szó, a következő változatként lehet összefoglalni.

El_que_sea felhasználó megkövetelése

Példámban a következő lehet: Luke felhasználó megkövetelése

És végül mindent bezárunk

Újraindítjuk az apache-t:

# service apache2 restart

Próbáljuk meg.

Ha nem hitelesítjük helyesen, akkor 401-es hibát kapunk.

Az ellenkező oldalon, ha helyesen írjuk be a felhasználónevet és a jelszót, ez nagyobb kényelmetlenség nélkül engedne át minket.

További tippek.

  • Ha további felhasználókat szeretne hozzáadni egy már létrehozott htpasswd fájlhoz, használhatja ezt a parancsot

htpasswd -mb /home/krel/.htpasswd felhasználói jelszó

Ha a "Felhasználó megkövetelése" beállítást választotta, és nem az "Érvényes felhasználó megkövetelése" beállítást, akkor hozzá kell adnia az új felhasználót, amelyet az előző követ, szóközzel elválasztva. Példa:

Luke Anakin felhasználó megkövetelése

  • Felhasználói csoportok használata

Ha az egyéni felhasználók helyett inkább a következő weboldalon dolgozunk, vagy csoportokkal kell dolgoznunk, akkor ezeket nagyon részletesen elmagyarázzák, és ez egy kiváló cikk.
http://www.juanfelipe.net/node/23

  • Beállíthatunk egy másik típusú titkosítást is, például: SHA

htpasswd -sb /home/krel/.htpasswd felhasználói jelszó

Itt egy kép arról, hogyan tükröződik az SHA jelszó regisztrációja a .htpasswd fájlban. Mindkettőben "skywalker" volt.

Tudj meg többet.

htpasswd - -segítség

Ha mélyebbre akarsz menni ebben a témában, az RTFM mindig jó!
http://httpd.apache.org/docs/2.0/es/howto/auth.html

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

Ezt a PHP szkriptet is kíváncsinak találtam a Granadai Egyetem oldaláról egy htaccess és htpasswd generátor létrehozására. Nem tudtam a gyakorlatba átültetni, de arra kérlek benneteket, hogy "intelligenciával bánjatok".

A HTML sablon, amelyet erről az oldalról kaptam, hátha valakit érdekel.
http://www.templatemo.com/

Remélem tetszett ez a htpasswd bemutató.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   krel dijo

    Most újra beolvasva rájöttem, hogy egy kis rendetlenséget csináltam. Amikor elmagyarázom a helykonfiguráció sorait, az AuthUserFile fájlba a /var/www/.pass/.htpasswd fájlt tettem, amikor annak kellett volna lennie:
    /home/krel/.htpasswd.

    A képen rendben van, de ott megúszott engem, az az, hogy korábban a cikket ezzel az útvonallal készítettem, de az utolsó pillanatban megváltoztattam, és úgy tűnik, hogy hiányzott a javítás.

    Előre elnézést kérek.

  2.   Fernando dijo

    Van alternatíva a nautilushoz?

    1.    krel dijo

      Amit kérdezel, az szerintem a másik irányba megy, de mindenképp válaszolok neked.
      Úgy gondolom, hogy a Cryptkeeperrel hasznos lenne megvédeni a könyvtárakat és hasonló dolgokat.

      Ha őszinte vagyok, ha valamit utálok a gnómban, az a nautilus. A Dolphin (KDE) sokkal hatékonyabb a védelem, a gpg-vel történő titkosítás stb.

  3.   DMoZ dijo

    Krel, köszönöm a komplett oktatóanyagokat, amelyeket idehoztál, és főleg, hogy nem annyira általános témák ...

    Egészségére !!! ...

  4.   Juan Carlos dijo

    Helló, minden rendben ment, de .. amikor bezárom a króm lapot és megnyitok egy másikat, megírom a címet, és nem kéri a jelszót ...

  5.   haver dijo

    aki azt mondta, hogy nem mutatós.
    Éppen ezt kerestem, és jobban megmagyarázhatatlan lehetetlen
    Köszönöm szépen.
    Az üdvözlés

  6.   basco7 dijo

    Helló, nagyon köszönöm az információkat, különös tekintettel arra, hogy a .htpasswd fájlba több felhasználót is felvettek.

    Isten áldjon!

  7.   Mohtadi dijo

    Gratulálok, nagyon jó, világos és emészthető cikk. Nagyon szépen köszönöm

  8.   eduardo dijo

    500 hibát ad, amikor megadom a felhasználónevet és a jelszót

    AuthType Basic
    AuthName "Tocc tocc"
    AuthUserFile /var/www/html/.pass/.htpasswd
    Akira felhasználó megkövetelése

  9.   eduardo dijo

    Milyen nagyszerű ez velem, ha megjegyzést fűzök anélkül, hogy megnézném a többi megjegyzést.
    Remekül működik, nagyszerű bejegyzés

  10.   Idősebb alvó dijo

    Szia, jó bemutató, de van alternatíva a "htpasswd" -re? Megkérdezem, miért használom a linux mint 17.3-at, és nincs parancsom ... telepítenem kell?

  11.   Idősebb alvó dijo

    Ok, rájöttem ... A sudo apt-get install apache2-utils programmal kellett telepítenem

  12.   Fernando Montilla dijo

    Helló, kiváló oktatóanyag, pontosan úgy tettem, ahogy itt jeleztem, csak annyi, hogy a 2. pontban jelzettek végrehajtása helyett:

    nano / etc / apache2 / sites-available / default

    Nekem bevált

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

  13.   Jorge Rodrigo Torrez Aramayo dijo

    Üdvözlet, nekem nem működik 🙁 a mappám nem jelenik meg a szerveremen, vagyis védem a / var / 222 / html / content mappámat, és amikor a böngészőből belépek, a tartalom mappa nem jelenik meg. Segítség