Hvordan beskytte nettstedene våre ved hjelp av .htpasswd + eksempler

Av mange grunner kan det være veldig nyttig å ha kontrollert tilgang til visse kataloger på en webserver eller bare til innholdet på siden eller bloggen vår via en autentiseringstjeneste basert på brukernavn og passord. Jeg snakker om noe som det typiske vinduet som vises når vi vil gå inn på et nettsted med begrensede tjenester.

Det er flere måter å generere vinduer med godkjenningsform på, men det er en interessant løsning på servernivå htpasswd. Det er et verktøy hvis funksjon er å lagre passord i kryptert form som skal brukes av Apache i autentiseringstjenester. Bruken vil tillate oss å vise visse kataloger eller filer via http bare til identifiserte brukere og uten nødvendigvis å være fritt tilgjengelig for alle.

Jeg forstår at det ikke er et veldig prangende emne, men det kan være nyttig for noen. For ikke å drepe dem med kjedsomhet, vil jeg bruke bilder for å gjøre det mer didaktisk.

Tidligere hensyn: Jeg vil bruke Ubuntu Server 12.04.1 y Apache 2.2.22 i et kontrollert miljø.

Vi begynner.

Som noen kanskje allerede vet, er tilgjengelige Apache-nettsteder som standard lagret i katalogen / Var / www / og for dette eksemplet vil jeg lage en katalog med en HTML-mal og prøve å skjerme den med .htpasswd.

Katalogen som skal beskyttes er / var / www / eksempel / der jeg har plassert neste side.

På serveren

I nettleseren

1. Vi skal lage .htpasswd.

Stedet der det skal være er av relevant betydning, og det kan være mer enn anbefalt å plassere det utenfor en offentlig katalog. I mitt tilfelle vil jeg plassere den i min personlige mappe (som ikke er en offentlig Apache-katalog) og med navnet .htpasswd (A priori er det ikke nødvendig å kalle det slik, men den som er skjult er alltid bra).

For brukere som er nye i Linux. For å skjule en katalog eller fil er det bare nødvendig å starte navnet med en punktum (.).

Med følgende kommando oppretter jeg .htpasswd-filen for en nettbruker som jeg har navngitt som: "Luke".

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

Det vil be oss om å oppgi passordet to ganger, i mitt tilfelle har jeg satt "skywalker" (uten anførselstegn). I et ukontrollert miljø må vi etablere sterkere passord. Standardkryptering på Linux er MD5, men på Unix er det en standard implementering av krypt () og for passord med mindre enn 8 tegn kan det være sårbart. Nå oppstår spørsmålet om det er det samme i BSD.

Kommandoen har denne strukturen:

  • -c → for å opprette filen
  • /home/krel/.htpasswd → absolutt bane til filen.
  • Luke → brukernavnet (det kan være hva du vil)

På samme måte tvinger jeg ingen til å bruke terminalen når det er tjenester på Internett for den:
http://www.web2generators.com/apache/htpasswd_generator

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

Resultatet kopieres til en tekstfil og med navnet .htpasswd hvis du ønsker det. Når det gjelder denne metoden, må du ikke slutte å lese det jeg kommenterer i neste avsnitt.

I vårt tilfelle vil vi se at filen er generert der vi forventet dem /home/krel/.htpasswd. På bildet har jeg markert at med denne metoden tilhører filen apache-gruppen og brukeren, som i Ubuntu kalles www-data. Dette er viktig fordi hvis vi har generert .htpasswd på annen måte, må vi sørge for at den har 644 tillatelser.

Nå skal vi se hvordan tarmen deres er:

Som du kan se, er det brukeren (Luke), men passordet er kryptert.

På denne måten har vi allerede opprettet og designet .htpasswd for brukeren Luke, til slutt er det ikke annet enn en beholder for passordet. "Alt med en kommando" vil være et godt slagord.

2. Konfigurer Apache til å bruke og tillate denne tjenesten på nettstedet.

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

Hvis du har flere verter, må de jobbe med hver av dem, i mitt tilfelle har jeg bare den som kommer som standard. Ikke glem at det alltid er bra å ta en sikkerhetskopi av den filen.

Den filen har standardstruktur:

ServerAdmin webmaster @ localhost

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

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

Det er nettopp i Virtualhost-overskriftene at bruken av .htpasswd vil bli spesifisert for å få tilgang til en bestemt katalog. Vi gjør det slik bildet nedenfor vises og passer til vårt eksempel:

Flink. Jeg forklarer linjene:

Du må sette katalogen for å beskytte.

AuthType Basic

Det er typen bruker og passord som er forhandlet med nettleseren, i dette tilfellet er det Basic, uten kryptering.

Det er en annen type forhandlet: Digest, denne krypterer brukernavnet og passordet, men det siste ordet er nettleseren om den støtter nevnte tjeneste. Digest kan sies å være en noe mer robust implementering mot sniffere. Jeg inviterer deg til å fordype deg i dette.

AuthName "Bank på døren før du går inn."

Det er en melding som vises for brukeren i nettleseren med påloggingsskjemaet, og det kan være hva vi vil.

AuthUserFile /var/www/.pass/.htpasswd

Sti .htpasswd-filen. Av den grunn er at jeg sier at det ikke engang er nødvendig å navngi det .htpasswd, bare å sette stien vil fungere det samme.

Require valid-user

Denne linjen er designet for flere brukere med individuelle passord. I tilfelle det er en enkelt bruker, kan den oppsummeres som følgende variant.

Krev bruker el_que_sea

I mitt eksempel kan mitt være: Krev bruker Luke

Og til slutt legger vi alt sammen med

Vi starter apache på nytt:

# service apache2 restart

La oss prøve.

Hvis vi ikke autentiserer riktig, får vi en feil 401.

På motsatt side, hvis vi setter riktig brukernavn og passord, vil det la oss passere uten store ulemper.

Flere tips.

  • For å legge til flere brukere i en allerede opprettet htpasswd-fil, kan du bruke denne kommandoen

htpasswd -mb /home/krel/.htpasswd brukerpassord

Hvis du har angitt "Krev bruker" og ikke "Krev gyldig bruker", må du legge til den nye brukeren etterfulgt av den forrige og atskilt med et mellomrom. Eksempel:

Krev bruker Luke Anakin

  • Bruk brukergrupper

Hvis vi foretrekker eller trenger å jobbe med grupper på følgende nettside, i stedet for individuelle brukere, forklarer de det i detalj, og det er en utmerket artikkel.
http://www.juanfelipe.net/node/23

  • Vi kan også angi en annen type kryptering, for eksempel: SHA

htpasswd -sb /home/krel/.htpasswd brukerpassord

Her er et bilde av hvordan registreringen av et SHA-passord vil gjenspeiles i .htpasswd. I begge var det "skywalker".

Lære mer.

htpasswd - -hjelp

Hvis du vil gå dypere inn i dette emnet, er RTFM alltid bra!
http://httpd.apache.org/docs/2.0/es/howto/auth.html

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

Dette PHP-skriptet fra University of Granada-siden har også vært nysgjerrig på meg for å lage en htaccess- og htpasswd-generator. Jeg har ikke klart å praktisere det, men jeg inviterer deg til å "lirke med intelligens."

HTML-malen jeg fikk fra denne siden i tilfelle noen er interessert.
http://www.templatemo.com/

Håper du likte denne htpasswd presentasjonen.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   krel sa

    Når jeg nå leser innlegget, har jeg innsett at jeg har gjort et lite rot. Når jeg forklarer linjene i nettstedskonfigurasjonen, setter jeg /var/www/.pass/.htpasswd i AuthUserFile når det skal være:
    /home/krel/.htpasswd.

    På bildet er det greit, men der slapp det meg, det er at jeg tidligere hadde laget artikkelen med den ruten, men i siste øyeblikk endret jeg den, og det ser ut til at jeg savnet å rette den.

    Jeg beklager på forhånd.

  2.   Fernando sa

    Noe alternativ for nautilus ??

    1.    krel sa

      Det du spør tror jeg går den andre veien, men jeg svarer deg uansett.
      Jeg tror med Cryptkeeper at det ville være nyttig å beskytte kataloger og sånt.

      Hvis jeg er ærlig hvis noe jeg hater ved gnome er nautilus. Dolphin (KDE) er mye kraftigere nettopp for disse tingene å beskytte, kryptere med gpg, etc ...

  3.   DMoZ sa

    Krel, takk for de komplette opplæringene du tar med her, og spesielt for at du ikke er så vanlige temaer ...

    Jubel !!! ...

  4.   Juan Carlos sa

    Hei alt gikk bra, men .. når jeg lukker kromfanen og åpner en til, skriver jeg adressen og den ber ikke om passordet ...

  5.   kompis sa

    som sa at det ikke var prangende.
    Det var akkurat det jeg lette etter, og bedre forklart umulig
    Takk så mye.
    en hilsen

  6.   basco7 sa

    Hei, jeg takker deg veldig mye for informasjonen, spesielt den delen av å legge til flere brukere i .htpasswd.

    Gud velsigne deg!

  7.   Mohtadi sa

    Gratulerer, det er en veldig god, klar og fordøyelig artikkel. Tusen takk

  8.   eduardo sa

    Det gir meg en 500 feil når jeg skriver inn brukernavn og passord

    AuthType Basic
    AuthName "Tocc tocc"
    AuthUserFile /var/www/html/.pass/.htpasswd
    Krev bruker Akira

  9.   eduardo sa

    Hvor flott det skjer med meg for å kommentere uten å se på de andre kommentarene perodna.
    Fungerer flott flott innlegg

  10.   Senior sover sa

    Hei, god veiledning, men er det et alternativ til "htpasswd"? Jeg spør hvorfor jeg bruker linux mint 17.3 og jeg ikke har kommandoen ... må jeg installere den?

  11.   Senior sover sa

    Ok, jeg skjønte det ... Jeg måtte installere det med sudo apt-get install apache2-utils

  12.   Fernando Montilla sa

    Hei, utmerket opplæring, jeg gjorde det nøyaktig som angitt her, det eneste er at i stedet for å utføre det som er angitt i punkt 2:

    nano / etc / apache2 / nettsteder-tilgjengelig / standard

    Det fungerte for meg med

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

  13.   Jorge Rodrigo Torrez Aramayo sa

    Hilsen, det fungerer ikke for meg folder Mappen min vises ikke på serveren min, det vil si at jeg beskyttet mappen / var / 222 / html / content, og når jeg går inn fra nettleseren, vises ikke innholdsmappen. Hjelp