Din multe motive, poate fi foarte util să aveți acces controlat la anumite directoare de pe un server web sau pur și simplu la conținutul paginii sau blogului nostru printr-un serviciu de autentificare bazat pe nume de utilizator și parolă. Vorbesc despre ceva de genul ferestrei tipice care apare atunci când vrem să intrăm pe un site web cu servicii restricționate.
Există mai multe modalități de a genera Windows cu formular de autentificare, dar este oferită o soluție interesantă la nivel de server htpasswd. Este un utilitar a cărui funcție este de a stoca parolele într-o formă criptată pentru a fi utilizate de Apache în serviciile de autentificare. Utilizarea acestuia ne-ar permite să afișăm anumite directoare sau fișiere prin http numai utilizatorilor identificați și fără a fi neapărat disponibile gratuit tuturor.
Înțeleg că nu este un subiect foarte apăsător, dar poate fi util pentru unii. Pentru a nu-i ucide cu plictiseală, voi folosi imagini pentru a o face mai didactică.
Considerații anterioare: voi folosi Ubuntu Server 12.04.1 y Apache 2.2.22 într-un mediu controlat.
Începem.
După cum este posibil ca unii dintre voi să știți deja, în mod implicit, site-urile Apache disponibile sunt stocate în director / Var / www / și pentru acest exemplu voi crea un director cu un șablon HTML și voi încerca să îl protejez cu .htpasswd.
Directorul de protejat este / var / www / exemplu / unde am plasat pagina următoare.
1. Vom crea .htpasswd.
Locul în care va fi amplasat este de o importanță relevantă și plasarea acestuia în afara unui director public poate fi mai mult decât recomandată. În cazul meu, îl voi plasa în folderul meu personal (care nu este un director public Apache) și cu numele .htpasswd (A priori nu este necesar să-l numim așa, dar cel ascuns este întotdeauna bun).
Cu următoarea comandă creez fișierul .htpasswd pentru un utilizator web pe care l-am numit: „Luke”.
# htpasswd -c /home/krel/.htpasswd Luke
Ne va cere să furnizăm parola de două ori, în cazul meu am pus „skywalker” (fără ghilimele). Într-un mediu necontrolat trebuie să stabilim parole mai puternice. Criptarea implicită pe Linux este MD5, dar pe Unix este o implementare standard a crypt () și pentru parolele cu mai puțin de 8 caractere poate fi vulnerabilă. Acum am îndoiala dacă este același lucru în BSD.
Comanda are această structură:
- -c → pentru a crea fișierul
- /home/krel/.htpasswd → calea absolută a fișierului.
- Luke → numele de utilizator (poate fi orice vrei)
În mod similar, nu forțez pe nimeni să utilizeze terminalul atunci când există servicii pe Internet pentru acesta:
http://www.web2generators.com/apache/htpasswd_generator
http://www.htaccesstools.com/htpasswd-generator/
Copiem rezultatul într-un fișier text și cu numele .htpasswd, dacă doriți. În ceea ce privește această metodă, nu încetați să citiți ceea ce comentez în paragraful următor.
În cazul nostru, vom vedea că fișierul a fost generat acolo unde ne așteptam /home/krel/.htpasswd. În imagine am evidențiat faptul că, cu această metodă, fișierul aparține grupului și utilizatorului apache, care în Ubuntu se numește www-data. Acest lucru este important, deoarece dacă am generat .htpasswd în orice alt mod, trebuie să ne asigurăm că are 644 permisiuni.
Ei bine, acum vom vedea cum sunt curajele lor:
După cum puteți vedea, există utilizatorul (Luke), dar parola este criptată.
În acest fel, am creat și conceput deja .htpasswd pentru utilizatorul Luke, până la urmă nu este altceva decât un container pentru parolă. „Toți cu o singură comandă” ar fi un slogan bun.
2. Configurați Apache pentru a utiliza și a permite acel serviciu pe site.
# nano /etc/apache2/sites-available/default
Dacă aveți mai multe gazde, acestea trebuie să lucreze la fiecare dintre ele, în cazul meu am doar cea care vine în mod implicit. Nu uitați că este întotdeauna bine să faceți o copie de rezervă a fișierului respectiv.
Acel fișier are structura implicită:
ServerAdmin webmaster @ localhost
..................
..................
Tocmai în cadrul titlurilor Virtualhost va fi specificată utilizarea .htpasswd pentru a accesa un anumit director. O facem așa cum apare imaginea de mai jos și adecvată exemplului nostru:
Trebuie să puneți directorul pentru a proteja.
AuthType Basic
Este tipul de utilizator și parolă negociat cu browserul, în acest caz este de bază, fără criptare.
Există un alt tip de negociere: Digest, aceasta criptează numele de utilizator și parola, totuși ultimul cuvânt pe care browserul îl are dacă acceptă serviciul menționat. Digestul se poate spune că este o implementare ceva mai robustă împotriva sniffers. Vă invit să vă adânciți în acest sens.
AuthName „Bate la ușă înainte de a intra”.
Este un mesaj care va apărea utilizatorului în browser cu formularul de autentificare și poate fi orice ne dorim.
AuthUserFile /var/www/.pass/.htpasswd
Trageți fișierul .htpasswd. Din acest motiv, spun că nici măcar nu este necesar să-l numim .htpasswd, pur și simplu punerea căii ar funcționa la fel.
Necesită validă utilizator
Această linie este concepută pentru mai mulți utilizatori cu parole individualizate. În cazul în care este un singur utilizator, acesta poate fi rezumat ca următoarea variantă.
Solicitați utilizatorului el_que_sea
În exemplul meu ar putea fi: Solicitați utilizatorului Luke
Și în cele din urmă închidem totul cu
Repornim apache:
# service apache2 restart
Sa incercam.
Dacă nu ne autentificăm corect, vom primi o eroare 401.
Pe partea opusă, dacă punem numele de utilizator și parola corecte, ne-ar lăsa să trecem fără inconveniente majore.
Sfaturi suplimentare.
- Pentru a adăuga mai mulți utilizatori într-un fișier htpasswd deja creat, puteți utiliza această comandă
htpasswd -mb /home/krel/.htpasswd Parola de utilizator
Dacă ați setat „Solicită utilizator” și nu „Solicită utilizator valid”, trebuie să adăugați noul utilizator urmat de cel precedent și separat de un spațiu. Exemplu:
Solicitați utilizatorului Luke Anakin
- Folosiți grupuri de utilizatori
Dacă în locul utilizatorilor individuali preferăm sau trebuie să lucrăm cu grupuri pe următorul site web, îl explicăm în detaliu și este un articol excelent.
http://www.juanfelipe.net/node/23
- De asemenea, putem seta un alt tip de criptare, de exemplu: SHA
htpasswd -sb /home/krel/.htpasswd Parola de utilizator
Iată o imagine a modului în care înregistrarea unei parole SHA ar fi reflectată în .htpasswd. În ambele a fost „skywalker”.
Aflați mai multe.
htpasswd - -help
Dacă doriți să aprofundați acest subiect, RTFM este întotdeauna bun!
http://httpd.apache.org/docs/2.0/es/howto/auth.html
http://httpd.apache.org/docs/2.2/misc/password_encryptions.html
Acest script PHP din pagina Universității din Granada mi-a fost, de asemenea, curios să creez un generator de htaccess și htpasswd. Nu am reușit să-l pun în practică, dar vă invit să „faceți curaj cu inteligență”.
Șablonul HTML pe care l-am obținut de pe această pagină în cazul în care cineva este interesat.
http://www.templatemo.com/
Sper că ți-a plăcut această prezentare htpasswd.
Citind din nou postarea, mi-am dat seama că am făcut o mică mizerie. Când explic liniile din configurația site-ului, în AuthUserFile am pus /var/www/.pass/.htpasswd când ar trebui să fie:
/home/krel/.htpasswd.
În imagine este bine dar acolo mi-a scăpat, este că făcusem anterior articolul cu traseul respectiv, dar în ultimul moment l-am schimbat și se pare că mi-a lipsit corectarea.
Îmi cer scuze în avans.
Orice alternativă pentru nautilus ??
Ceea ce întrebi cred că merge în sens invers, dar îți răspund oricum.
Cred că, cu Cryptkeeper, ar fi util să protejăm directoarele și așa ceva.
Dacă sunt sincer, dacă ceva ce urăsc despre gnome este nautilus. Dolphin (KDE) este mult mai puternic tocmai pentru aceste lucruri de protejare, criptare cu gpg etc.
Krel, mulțumesc pentru tutorialele complete pe care le aduci aici și mai ales pentru că nu sunt subiecte atât de obișnuite ...
Noroc !!! ...
Buna ziua totul a mers bine dar .. cand inchid fila cromata si deschid alta, scriu adresa si nu imi cere parola ...
care a spus că nu este strălucitor.
Era exact ceea ce căutam și mai bine explicat imposibil
Mulţumesc mult.
un mesaj de salut
Bună ziua, vă mulțumesc foarte mult pentru informații, în special pentru partea de adăugare a mai multor utilizatori în .htpasswd.
Dumnezeu sa te binecuvanteze!
Felicitări, este un articol foarte bun, clar și digerabil. Mulțumesc mult
Îmi dă o eroare de 500 când introduc numele de utilizator și parola
AuthType Basic
AuthName "Tocc tocc"
AuthUserFile /var/www/html/.pass/.htpasswd
Solicitați utilizatorului Akira
Ce grozav mi se întâmplă asta pentru că am comentat fără să mă uit la celelalte comentarii perodna.
Funcționează excelent post excelent
Bună, tutorial bun, dar există o alternativă la „htpasswd”? Întreb de ce folosesc linux mint 17.3 și nu am comanda ... trebuie să o instalez?
Ok, mi-am dat seama ... a trebuit să-l instalez cu sudo apt-get install apache2-utils
Bună, tutorial excelent, l-am făcut exact așa cum este indicat aici, singurul lucru este că, în loc să execut ceea ce este indicat la punctul 2:
nano / etc / apache2 / sites-available / default
A funcționat pentru mine cu
nano /etc/apache2/sites-enabled/000-default.conf
Salutări, nu funcționează pentru mine 🙁 folderul meu nu apare pe serverul meu, adică mi-am protejat folderul / var / 222 / html / content, iar când intru din browser folderul conținut nu apare. Ajutor